How to convert filter object to state space?

1 ビュー (過去 30 日間)
tfg250
tfg250 2022 年 8 月 29 日
編集済み: tfg250 2022 年 8 月 29 日
I'm creating a filter object using
%B1(f) is my target transfer function
d_1a = fdesign.arbmagnphase('n,f,h',8,(0:0.1:30),double(B1(0:0.1:30)),60);
filtObj = design(d_1a,'iirls','SystemObject',true)
Then, I can use
freqz(filtObj)
to confirm it matches the target function. However, when I convert it to state space using
[A,B,C,D] = ss(filtObj);
sys_ss1 = ss(A,B,C,D);
Then I try to confirm the behavior of this system using
[H,wout] = freqresp(sys_ss1);
this output does not match my target transfer function. What am I missing here?

採用された回答

Robert U
Robert U 2022 年 8 月 29 日
Hi tfg250,
You missed to supply the sample frequency for your state space model. Converting the filter object for a time discrete system to state space requires to use a time-discrete state space model as well.
[A,B,C,D] = ss(filtObj);
sys_ss1 = ss(A,B,C,D,1/60);
Kind regards,
Robert
  1 件のコメント
tfg250
tfg250 2022 年 8 月 29 日
編集済み: tfg250 2022 年 8 月 29 日
that's is, thank you so much!

サインインしてコメントする。

その他の回答 (0 件)

製品


リリース

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by