FFT算法与数字低通滤波器去噪性能对比研究系统
项目介绍
本项目是一个基于MATLAB开发的信号处理实验系统,旨在通过对比研究两种主流的去噪方法:基于快速傅里叶变换(FFT)的频域屏蔽法和基于巴特沃斯(Butterworth)架构的数字低通滤波器(LPF)。系统通过模拟含有特定频率成分的原始信号并叠加高斯白噪声,实验性地评估不同算法在噪声抑制、信号保真度以及运算效率方面的表现,为电子通信工程及传感器信号预处理提供参考依据。
功能特性
- 多频率信号合成:支持生成由多个正弦波频率成分构成的基准信号。
- 噪声模拟环境:内置高斯白噪声生成器,可灵活调整噪声强度以模拟真实的受损信号。
- FFT理想滤波实现:通过频域对称掩码技术,实现对特定截止频率以外能量的精确剔除。
- 零相位数字滤波:应用高阶巴特沃斯滤波器,并通过双向滤波技术消除相位滞后。
- 多维性能评估:自动计算输入与输出的信噪比(SNR)、均方误差(MSE)及算法执行耗时。
- 全维度可视化分析:提供时域对比图、功率谱密度(PSD)分析图以及自动生成的性能报告。
系统要求
- 软件环境:MATLAB R2016b 及以上版本。
- 工具箱需求:Signal Processing Toolbox(信号处理工具箱),用于调用滤波器设计与功率谱估计相关函数。
实现逻辑与功能说明
系统通过以下五个核心模块完成实验流程:
1. 信号生成与参数配置模块
系统设定采样频率为2000Hz,生成时长为1秒的信号。原始纯净信号由50Hz和120Hz两个正弦分量叠加而成。随后,系统通过正态分布随机函数生成强度为0.8的高斯白噪声,合成含噪信号作为待处理对象。
2. FFT频域滤波模块
该模块首先利用快速傅里叶变换将含噪信号投影至频域。核心逻辑是构建一个理想的“矩形”频率掩码:根据预设的150Hz截止频率,将该频率点及其对称频率点之外的频谱成分强制置零。最后通过逆快速傅里叶变换(IFFT)并保留实部,完成信号在时域的重构。
3. 数字低通滤波器模块
该模块通过设计一个6阶巴特沃斯数字低通滤波器来实现。实现逻辑首先是计算归一化截止频率(Wn),随后利用滤波器系数设计函数生成传递函数参数。为了保证信号波形不产生相移,系统采用了零相位滤波技术,即对信号进行前向和后向两次处理,从而在滤除150Hz以上高频噪声的同时保持相位特征。
4. 性能评价指标计算模块
系统内置了闭环评估逻辑:
- 信噪比(SNR):通过计算原始纯净信号功率与残余噪声功率的比值,评估信号质量的提升程度。
- 均方误差(MSE):测量去噪后信号与原始纯净信号之间的平均偏差平方值。
- 耗时统计:利用高精度计时器记录每种算法从数据输入到处理完成的时间开销。
5. 结果可视化模块
系统生成一个集成化图形界面:
- 时域对比:直观展示原始信号、含噪信号以及两种去噪方法处理后的波形。
- 频域分析:利用周期图法计算并绘制功率谱密度(PSD),对比三种信号在全频段的能量分布,并用虚线标示出截止频率位置。
- 报告展示:在图形界面和控制台同步输出数值化的性能统计报告。
关键函数与实现细节分析
- 频率映射关系:在FFT滤波中,系统精确处理了从0到采样频率之间的频率坐标映射,确保了理想低通掩码在双边频谱上的对称性。
- butter与filtfilt:系统中通过 butter 函数确定滤波器特性,随后未使用常规的单向滤波,而是使用了 filtfilt 函数。这一细节确保了低通滤波器的群延迟为零,对于保持信号在时间轴上的准确对齐至关重要。
- periodogram 功率谱分析:使用矩形窗口进行周期图估计,真实反映了滤波前后在截止频率处的能量衰减情况。
- 匿名函数计算指标:代码中通过定义匿名函数
calc_snr 和 calc_mse,统一了评估标准,确保了两种算法在对比时的客观性和公平性。