本站所有资源均为高质量资源,各种姿势下载。
本项目是一个基于 MATLAB 开发的数字信号处理演示系统,旨在通过窗函数法设计有限冲激响应(FIR)滤波器。项目核心目标是利用理想滤波器的逆傅里叶变换配合多种典型窗函数(如矩形窗、汉宁窗、汉明窗、布莱克曼窗等),截断并平滑无限长序列,从而构建满足特定指标的低通滤波器。通过对包含多频段干扰和随机噪声的信号进行滤波仿真,本项目直观地展示了数字滤波器在信号提取、噪声抑制以及频域分析方面的强大功能,是理解数字信号处理核心理论的实用案例。
1. 多种窗函数对比分析 系统集成了矩形窗、汉宁窗、汉明窗、布莱克曼窗以及凯泽窗的计算方法。通过对同一阶数的滤波器应用不同类型的窗函数,能够对比分析不同窗函数对主瓣宽度和旁瓣衰减的影响,特别是在过渡带斜率和阻带抑制能力上的差异。
2. 典型信号仿真与合成 程序内置了一个复杂的输入信号模型,包含两个低频有用信号(50Hz 和 100Hz 正弦波)、一个高频单频干扰(500Hz 正弦波)以及随机高斯白噪声。这种多成分信号模型可以有效地检验滤波器的实际过滤性能。
3. 完整的频域与时域表征 项目不仅计算滤波器的单位脉冲响应(系数),还提供了幅频特性(分贝刻度)和相频特性的分析视图,帮助用户确认滤波器的线性相位特征以及截止频率的准确性。
4. 实时滤波效果可视化 通过快速傅里叶变换(FFT),系统可以实时展示信号在滤波前后的频谱分布变化,并配合时域波形图,直观展现高频分量被滤除、有用波形被还原的过程。
---
第一阶段:环境与参数初始化 程序首先定义了采样频率(2000Hz)、信号长度(1000点)及时间向量。核心设计指标设定为 60 阶 FIR 滤波器,截止频率设定在 150Hz,并据此计算归一化的 Nyquist 频率比例。
第二阶段:含噪信号构造 利用叠加原理生成待处理信号。低频信号代表需要保留的有效信息,高频 500Hz 信号模拟特定干扰,而随机噪声用于模拟真实的物理环境。
第三阶段:滤波器系数设计 使用 fir1 函数作为核心设计工具。程序调用了五种窗函数生成器,分别计算出不同窗函数下的 FIR 系数。这一步实现了从理想频响到物理可实现的有限长脉冲响应的转换。
第四阶段:频率响应计算 利用 freqz 函数对设计出的系数进行离散傅里叶变换,计算出 1024 点的复频率响应。这为后续绘制幅频和相频特性曲线提供了理论数据支持。
第五阶段:信号处理与频谱分析 选取汉明窗设计的滤波器作为执行单元,通过 filter 函数对合成信号进行时域卷积(滤波)。随后对原始信号和滤波输出信号执行 FFT 变换,计算幅值谱并进行归一化处理。
第六阶段:多维度结果输出 程序生成多个子图,分别展示:
关键算法:fir1 函数 该函数是实现窗函数法设计的核心,其内部逻辑是通过对理想低通滤波器的频率响应进行傅里叶逆变换得到 sinc 函数序列,然后与所选窗函数(如 Hamming)在时域相乘,从而达到截断和降低谱泄露的目的。
窗函数性能差异 在代码实现中,矩形窗提供最窄的过渡带但旁瓣衰减较小;汉明窗和布莱克曼窗则通过牺牲一定的过渡带宽度,换取了更深的阻带衰减,这在程序输出的 dB 曲线对比图中得到了验证。
线性相位特性 由于 FIR 滤波器系数具有对称性(程序中由 fir1 自动保证),其相频特性表现为频率的线性函数。这意味着信号通过滤波器后,不同频率成分的时延是一致的,保证了滤波后波形不产生相位失真。
FFT 频率归一化 在频谱分析环节,程序通过 2^nextpow2 优化了 FFT 的计算效率,并对变换结果除以信号长度 L 进行幅值修正,确保了频谱图中频率分量的幅值与时域正弦波振幅的一致性。
---
---