我想使用tfestimate
并invfreqz
确定二阶线性系统中的系数。
理想情况下,它看起来像这样:
Nsamp = 2^16;
t = linspace(0,100,Nsamp);
x = square(t/30) + .1*randn(1,Nsamp);
Num = 1;
Den = [20 2 10];
sys = tf(Num, Den);
y = lsim(sys,x,t);
[txy, phi] = tfestimate(x,y);
[b, a] = invfreqz(txy,phi,2,0);
通过这种方式,我希望 中的值b
是对 中使用的原始值的良好估计Den
。
但是,我的价值观完全不同。如果我绘制系统的波德和tfestimate
,我发现它们根本不接近。我试过摆弄tfestimate
窗口类型和大小、采样频率、nfft 等中的所有设置,但我似乎无法得到准确的答案。
我不确定我对tfestimate
频谱分析的了解是否足以正确调整它。或者,也许有更好的办法完全做到这一点,我没有意识到。
此外,我无权访问系统 ID 工具箱,因此我无法使用其中的任何内容。