我想知道有没有人能告诉我如何使用matlab实现传递函数a1s + a2 /(b1s + b2)意味着不使用tf的离散形式的for循环([a1 a2],[b1 b2]) 。例如,如果我想实现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)
由于
答案 0 :(得分:0)
首先,同意您希望如何从s域转换为z域(离散)。使用双线性变换,用
代替2/T * (z-1)/(z+1).
这是双线性变换。求解方程并除以z的最高阶。对于z ^ -n,这是之前的“n”样本。