本节核心: 深入学习MATLAB中信号处理的核心应用,并通过一个完整的实战案例,将数据读取、处理、计算和可视化等技能融会贯通,解决实际的声学工程问题。
2.4 MATLAB信号处理基础应用
MATLAB的 Signal Processing Toolbox™ 是声学工程师的"瑞士军刀",提供了进行专业声学分析所需的各种核心工具。
数字滤波
滤波是信号处理中最常见的操作之一,用于从信号中分离出感兴趣的频率成分。
设计滤波器:
- • designfilt: (推荐) 一个统一的、强大的滤波器设计函数。
- • 传统函数: fir1 (FIR滤波器), butter (巴特沃斯IIR滤波器), cheby1 (切比雪夫IIR滤波器) 等。
应用滤波器:
- • filtfilt: 零相位滤波函数。它先正向滤波一次,再反向滤波一次,可以完全消除由滤波带来的相位延迟,在信号分析中非常常用。
代码示例:设计并应用一个A计权滤波器
FFT与频谱分析
快速傅里叶变换 (FFT) 是将信号从时域转换到频域的基石。
- • 窗函数 (hann, hamming 等): 在FFT前对信号分段加窗,可以有效减少因信号截断带来的频谱泄漏效应,让频谱峰值更准确。
- • pwelch: 封装了加窗、分段、FFT、平均等一系列操作,是计算信号功率谱密度 (PSD) 的推荐方法,结果更平滑可靠。
代码示例:对比加窗与不加窗对FFT结果的影响