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); endend % END OF FUNCTION
Thanks!
Best Answer