在MATLAB中使用tf()函数

时间:2016-09-21 19:35:52

标签: matlab

我试图在matlab中输入这个传递函数,但我无法弄清楚它是如何同时具有正指数和负指数。

enter image description here

如果我H = tf([1],[1 1 1 1],0.1,'variable','z^-1')我几乎得到了它,但我无法弄清楚如何将积极的z添加到底部。我尝试使用此Hpzmap(H)绘制极点和零点。

3 个答案:

答案 0 :(得分:0)

为了避免负指数,我们可以将分母和分子乘以z^3

H = tf([1 0 0 0 0],[1 1 1 1 1],0.1,'variable','z')

或者除以z

H = tf([1],[1 1 1 1 1],0.1,'variable','z^-1')

答案 1 :(得分:0)

您可以创建

z = tf('z', 0.1)

然后创建您想要的任何传输函数,例如

H = z / (1 + z + z^-1 + z^-2 + z^-3)

然而,Matlab会在z=0自动添加额外的零极点对,以使传递函数H仅包含z而不包含z^-1。因此,您会在z=0看到多个极点,而不是只有一个极点。不幸的是,我还没有找到一个解决方案来阻止Matlab这样做......

答案 2 :(得分:0)

由于其实现属性,您所称的传递函数实际上称为DSP表示。因为z的每个幂都是单位延迟。因此,您必须使用filt。在这个表示中,z术语应该具有非正定幂,因此如果你从分母中分解出一个z并取消你得到

H = filt(1,[1,1,1,1,1])