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