How to implement a generic 'filter' function using direct form I?
조회 수: 6 (최근 30일)
이전 댓글 표시
I need a code for the filter function in direct form I, like as I implemented a filter function in direct form II transposed below:
function[y] = filtro(a,b,x)
% Generic filter function in direct form II transposed
N = size(b,2) - 1;% filter order
y = zeros(size(x)); % Initializes y with zeros
%% FOR THE CASE FIR
if not(size(a,2) == size(b,2))
a(1) = 1;
a = zeros(size(b));
end
%% Recursive implementation of equations to differences
aux = zeros(1,N);
for r = 1 :size(x,2)
y(r) = b(1)*x(r) + aux(1);
for n = 2 : N
aux(n-1) = b(n)*x(r) + aux(n);
aux(n-1) = aux(n-1)- a(n)*y(r);
end
aux(N) = b(N+1)*x(r) - a(N+1)*y(r);
end
end % END OF FUNCTION
Thanks!
댓글 수: 2
Walter Roberson
2019년 6월 14일
What is the difference between this question and the other one you asked about these filters?
채택된 답변
Walter Roberson
2019년 6월 14일
filterdf1 = @(a,b,x) filter( dfilt.df1(a,b), x);
This is a three-argument filter function that uses direct type 1 form.
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Statistics and Linear Algebra에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!