How to convert filter object to state space?

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 日

0 投票

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 件)

カテゴリ

ヘルプ センター および File ExchangeDynamic System Models についてさらに検索

製品

リリース

R2020b

質問済み:

2022 年 8 月 29 日

編集済み:

2022 年 8 月 29 日

Community Treasure Hunt

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

Start Hunting!

Translated by