MATLAB 上的 Z 变换极点和零点位置

Posted

技术标签:

【中文标题】MATLAB 上的 Z 变换极点和零点位置【英文标题】:Z-Transform Poles and Zeros Locations on MATLAB 【发布时间】:2017-05-10 11:37:27 【问题描述】:

我正在实现如下所述的 FIR 滤波器:

y(n) = x(n) + 2x(n-1) + 4x(n-2) + 2x(n-3) + x(n-4)

这个系统中没有极点。

在 MATLAB 上计算传递函数会产生 HZ = 1 + 2 z^-1 + 4 z^-2 + 2 z^-3 + z^-4,这是正确的,但是当我尝试绘制 Zeros 位置时,我在原点找到了一个极点。然而系统的脉冲响应是正确的,但它只是向右移动了一个。为什么还会出现这种情况?

我想不通的是,为什么原点有一个极点,为什么单位圆外有一些零点。

close all;clear;clc;

Ts = 0.1;

num = [1, 2, 4, 2, 1];
den = 1;

HZ = tf(num, den, Ts, 'variable', 'z^-1')

figure(1)
pzplot(HZ)
axis equal

figure(2)
stem(impulse(HZ*Ts), 'linewidth', 1)
xlabel('n', 'FontSize', 13)
ylabel('h(n)', 'FontSize', 13)
title('Impulse Response')
grid minor
axis([0 10 0 max(num)+0.1])

【问题讨论】:

FIR 滤波器包含的极点与它们的零点一样多,但它们都位于原点。将 num 和 den 乘以 z^4 @percusse 我明白你的意思,但你的解决方案需要符号表达式,我想计算数值。 反转你的数字并使用 den 作为[1,0,0,0,0] 例如。您也可以为此使用信号处理工具箱的过滤命令 @percusse 你的意思是我用'Z'而不是'z^-1' 如果您想要 z 的逆幂,请使用 filt(num,den,0.1)。它会做你想做的事 【参考方案1】:

你的冲动反应是HZ = 1 + 2 z^-1 + 4 z^-2 + 2 z^-3 + z^-4 因此对于z = 0 i.e Origin,脉冲响应是infinity/undefined,因此按照惯例z=0 应该是一个极点。 而且由于您的脉冲响应是“有限持续时间”,ROCwhole Z-Plain except 0,并且 ROC 可以包含零点但不能包含极点。因此,您在单位圆之外有零。 无论如何,您始终可以将 HZ = 0 并计算 Z 的值(方程为 4 级,应该有 4 个值。)

【讨论】:

外部的零使系统不稳定,然而,它是一个有限脉冲系统,在这个例子中必须是一个稳定的。 我不知道零,但我读到如果 ROC 包含单位圆系统应该是稳定的。 您的部分答案是正确的,我阅读了稳定性和因果关系,发现稳定性仅在单位圆内或单位圆外的极点上起作用。但我不了解原点的极点。 @OsamaAbbas,让我看看我是否可以澄清 Pole 是函数变为未定义/无穷大的任何点 对吗?现在你的impulse response is HZ = 1 + 2 z^-1 + 4 z^-2 + 2 z^-3 + z^-4。这是一个几何级数,5 个项和 z^-1 作为公比。现在,如果我们使用 G.P 总和的公式,我们得到 HZ = (1 - z^5)/z^4(1-z) 现在尝试将 z=0 放入其中,看看你是否得到无穷大:)。你可以随时输入z=0 in HZ = 1 + 2 z^-1 + 4 z^-2 + 2 z^-3 + z^-4,你仍然会得到infinity作为1*z^-1 at z = 0 equals 1*1/0 = infinity 您的回答有点方便,但我确信原点处的极点提供了非常高的增益,但脉冲响应并未接近无穷大。因此,绘制原点处的极点是有原因的。如果你把光标放在原点的极点上,你可以看到它的特性,超调是 NaN,这让我说你的答案有点方便。

以上是关于MATLAB 上的 Z 变换极点和零点位置的主要内容,如果未能解决你的问题,请参考以下文章

最小相位系统

滤波器稳定性与极点

matlab 画拉普拉斯变换的零极点

abaqus三角形、梯形的荷载怎么加(也就是静水压力怎样施加)请说得详细点,多谢了

线性系统笔记9有限零点和有限极点

基于切比雪夫逼近法的滤波器的matlab设计与实现