Ok, I searched online and found out that I was wrong on the concept :) Here' the correct formulation of 1D filtering with delay initial values: SciPY Filtering Documentation, and it outputs the same result as MATLAB filter() does.
How to write my own filter function with initial condition similar to Filter.m?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hossein
am 5 Feb. 2013
Kommentiert: Mariasole Laureti
am 7 Okt. 2019
I have read the documents on how MATLAB implements Filter(b,a,y,z0). To fully understand the concept and learn more about Signal Processing, I tried to implement it by myself, but the answer is different from MATLAB filter.m
Could anyone let me know what I am missingg?! :-(
function y =myfilter(num, den, x, zi)
N = length(x);
% assuming order of Num and Den are the same.
ord = (length(num)-1)/2;
y = zeros(N,1);
for i=1:N
c = 0;
for j=1:2*ord
if i-j < 1
c = c+1;
xo(j) = zi(c);
yo(j) = 0;
else
xo(j) = x(i-j);
yo(j) = y(i-j);
end
end
y(i) = num(1)*x(i) + sum(num(2:end).*xo') - sum(den(2:end).*yo');
end
0 Kommentare
Akzeptierte Antwort
Hossein
am 6 Feb. 2013
1 Kommentar
Mariasole Laureti
am 7 Okt. 2019
Hi, I have the same problem, can I ask you if you can show me your code? I would be very grateful. Thank you very much
Weitere Antworten (1)
ssp
am 12 Feb. 2017
Hi! Greetings!
I was also trying to write my filter function. However y=filter(b,a,x) seems easy to implement, but I am stuck at implementing y=filter(b,a,x,zi). What would be the new sequence of the following sequence after applying initial condition zi? y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb) - a(2)*y(n-1) - ... - a(na+1)*y(n-na)
Thanks! SSP
1 Kommentar
Jan
am 12 Feb. 2017
Bearbeitet: Jan
am 12 Feb. 2017
See this full implementation for filter(b,a,X,z): https://www.mathworks.com/matlabcentral/answers/9900-use-filter-constants-to-hard-code-filter#answer_13623
Please do not attach a question as an answer to another question.
Siehe auch
Kategorien
Mehr zu Frequency Transformations finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!