MATLAB中 tf2zpk函数用法

目录

语法

说明

示例

IIR滤波器的极点、零点和增益


        tf2zpk函数的功能是将传递函数滤波器参数转换为零极点增益形式。

语法

[z,p,k] = tf2zpk(b,a)

说明

        [z, p, k] = tf2zpk(b, a) 从传递函数参数 b 和 a 中找到零点矩阵 z,极点向量 p,以及相关的增益向量 k。该函数将多项式传递函数表示转换为零极点增益形式。

将单输入/多输出(SIMO)离散时间系统的传递函数转换为分解的传递函数形式。

注意

        在处理以逆幂表示的传递函数(1 + z^(-1) + z^(-2))时,使用 tf2zpk。而在处理以正幂表示的传递函数(如连续时间传递函数中的s^2 + s + 1)时,更适合使用类似的函数 tf2zp。

示例

IIR滤波器的极点、零点和增益

        设计一个3阶Butterworth滤波器,其归一化截止频率为0.4π弧度/样本。找到该滤波器的极点、零点和增益。

[b,a] = butter(3,0.4);
[z,p,k] = tf2zpk(b,a)
z = 3×1 complex

  -1.0000 + 0.0000i
  -1.0000 - 0.0000i
  -1.0000 + 0.0000i

p = 3×1 complex

   0.2094 + 0.5582i
   0.2094 - 0.5582i
   0.1584 + 0.0000i

k = 0.0985

        绘制极点和零点图以验证它们是否位于预期的位置。

zplane(b,a)
text(real(z)-0.1,imag(z)-0.1,"Zeros")
text(real(p)-0.1,imag(p)-0.1,"Poles")

如图所示:

参数说明

b - 传递函数分子的系数

        传递函数的分子系数,可以表示为向量或矩阵。如果 b 是矩阵,那么 b 的每一行对应系统的一个输出。b 包含按 z 的降幂排列的系数。b 的列数必须等于 a 的长度。如果两者不相等,可以通过填充零来使它们相等。您可以使用函数 eqtflength 来实现这一点。

a - 传递函数分母的系数,通常表示为一个向量

        传递函数分母的系数,指定为一个向量。a 包含按 z 的降幂排列的系数。

z-零点

        系统的零点,返回为一个矩阵。z 的各列包含了分子中的零点,列数与系统的输出数量相同。

p-极点

        系统的极点,返回为列向量。p 包含传递函数分母系数的极点位置。

k-增益

        系统的增益,返回为列向量。k 包含每个分子传递函数的增益。