示例:零相位滤波
使用函数
filtfilt 并利用“正-倒向”过滤模型计算滤波器的零相位响应。
1. 使用函数
butter 求得 2 阶模拟
Butterworth 滤波器的系数。
2. 使用函数
iirlow 求得截断频率为 0.25 的低通 IIR 滤波器的系数。
4. 根据 p,重新定义所有 f 值的滤波器幅度和相位响应。
5. 绘制幅度响应图像,然后使用标记显示其在截断频率处的幅度。
6. 绘制相位响应图像,然后使用标记显示其在截断频率处的值。
7. 定义样本脉冲信号并绘制其图像。
输入由信号中点处的脉冲组成。
8. 使用函数 filtfilt 计算零相位输出。
9. 使用函数
dft,通过计算两个信号的傅立叶变换以及绘制
Y 的幅度和相位图像来查看滤波器对信号的影响。
10. 使用函数 mag 证明传递函数 (已知 X 和 Y 的模比) 具有预期的 Butterworth 截断形状。
11. 绘制幅度响应以及该传递函数的图像。
12. 使用函数 arg 定义 X 和 Y 主值辐角之间的相位差。
13. 绘制幅度响应以及 X 和 Y 之间相位差的图像。
• 函数 filtfilt 的作用是加倍过滤信号幅度 (如图所示),但相位偏移为零,并不是原始滤波器的非线性相位。
• 解释相位图时请记住,相位 -2π 与 0 等价。若 Y 的幅度非常小 (距离截断频率非常远时),则相位可能因数字噪声而变得无意义。