Get states from a fdesign.bandpass object and use in filter function
4 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Wayne King
2012 年 5 月 17 日
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
その他の回答 (2 件)
参考
カテゴリ
Help Center および File Exchange で Filter Design についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!