How to implement a generic 'filter' function using direct form I?
7 ビュー (過去 30 日間)
古いコメントを表示
vinicius lanziotti
2019 年 6 月 14 日
回答済み: Walter Roberson
2019 年 6 月 14 日
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!