0

我想知道任何人都可以告诉我如何使用 Matlab 实现传递函数 a1s+a2/(b1s+b2) 的含义是不使用 tf([a1 a2],[b1 b2]) 的离散形式的 for 循环。例如,如果我想实现 a1/s,我知道我会这样做:

value(n)=value(n-1)+a1*fx*Ts;

其中 Ts 是采样频率,fx 是需要集成的函数。对于 a3*s,我会做以下事情:

output=value(n)-lastvalue(n);
   lastvalue(n)=value(n);

但我想知道如何实现通用 (a1*s+a2)/(b1*s+b2)

谢谢

4

1 回答 1

0

首先,就如何从 s 域转换到 z 域(离散)达成一致。使用双线性变换,将 s 替换为

2/T * (z-1)/(z+1). 

这是双线性变换。求解方程并除以 z 的最高阶。对于 z^-n,即前一个“n”样本。

于 2016-07-12T22:32:05.033 回答