使用Matlab实现通用传递函数

时间:2016-07-12 22:23:03

标签: matlab discretization transfer-function

我想知道有没有人能告诉我如何使用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)

由于

1 个答案:

答案 0 :(得分:0)

首先,同意您希望如何从s域转换为z域(离散)。使用双线性变换,用

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

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