How to convert filter object to state space?

1 次查看(过去 30 天)
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Filter Analysis 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by