MATLAB中 tf2zpk函数用法
目录
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 包含每个分子传递函数的增益。