作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在实现如下所述的 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
这是正确的,但是当我尝试绘制零点位置,我在原点找到了一根极点。然而系统的脉冲响应是正确的,但只是向右移动了一位。为什么也会出现这种情况?
我不明白的是,为什么原点处有一个极点,为什么单位圆之外有一些零点。
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])
最佳答案
你的脉冲响应是HZ = 1 + 2 z^-1 + 4 z^-2 + 2 z^-3 + z^-4
因此,对于 z = 0 即原点
,脉冲响应是无穷大/未定义
,因此按照惯例,z=0
应该是极点。由于您的脉冲响应是“有限持续时间”,因此 ROC
是除 0 之外的整个 Z 平面
,并且 ROC 可以包含零,但不能包含极点。因此,零点位于单位圆之外。不管怎样,你总是可以设置 HZ = 0 并计算 Z 的值(方程的阶数为 4,应该有 4 个值。)
关于matlab - MATLAB 上的 Z 变换极点和零点位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41323890/
我正在尝试在我的一个新项目中使用 WhirlyGlobe-Maply 的二进制库。图书馆可以在这里找到:http://mousebird.github.io/WhirlyGlobe/ WhirlyGl
我是一名优秀的程序员,十分优秀!