Get states from a fdesign.bandpass object and use in filter function
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi all,
I designed several bandpasses using
hband = fdesign.bandpass(....)
Hband = design(hband,'cheby1','MatchExactly','passband');
What I want to do is split the input in frequency bands and filter each with a FIR filter. This works fine but the problem is the bandpass - I have a long signal and I chop it in 1024 sample frames. I therefore need to save the states of each filter and use them in the next iteration. This works for the FIR filters using the standard
[y,zf] = filter(b,a,X,zi).
However, I can't do that with Hband. How can I return an update of the Hband states from the filter function for further use? I assume that Hband(i).states has something to do with it, however it doesn't seem to change at all. It's my first time doing this and I'm not familiar with second order section IIR filter cascades etc., so any help would be highly appreciated.
Nemanja
0 Kommentare
Akzeptierte Antwort
Wayne King
am 17 Mai 2012
After you design your filter, set the PersistentMemory property of the object to true.
d = fdesign.bandpass;
Hd = design(d,'cheby1');
Hd.PersistentMemory = true;
Hd
Now you see the states. Apply your filter to some data.
y = filter(Hd,randn(1024,1));
% view the states
Hd
Weitere Antworten (2)
Siehe auch
Kategorien
Mehr zu Filter Design finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!