How do filter function work?
이전 댓글 표시
I understand how the filter(b,a,X) works. What confuses me is the function with the initial conditions. The function filter(b,a,X,zi).
for example: y(n)=-0.5y(n-1)+x(n) x(n)=u(n) y(-1)=1
how will the filter function solve this? i tried to do it manually, but i get different output.
채택된 답변
추가 답변 (1개)
You find a Matlab implementation of the FILTER command at Answers: hard-code-filter. This should reveal the meaning of the initial and final conditions.
Splitting a signal into parts might be helpful also:
signal = rand(1,1000);
[b,a] = butter(3, 0.5); % Arbitrary filter parameters
inital_cond1 = zeros(1, length(a) - 1);
[filtered1, final_cond1] = filter(b, a, signal(1:500), initial_cond1);
[filtered2, final_cond2] = filter(b, a, signal(501:1000), final_cond1);
Joined = [filtered1, filtered2];
% Now filter in one step:
OnePiece = filter(b, a, signal, initial_cond1);
% Compare the results - should be tiny:
disp(mean(abs(Joined - OnePiece)));
This shows, that the inital conditions are the values of the internal status of the filter. When the signal is split into pieces, the final conditions of the former part are the inital conditions of the current part.
카테고리
도움말 센터 및 File Exchange에서 Matched Filter and Ambiguity Function에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!