MATLAB FIR 数字滤波器设计与性能分析系统
项目介绍
本项目是一款基于 MATLAB 开发的数字信号处理辅助分析系统,专注于有限脉冲响应(FIR)滤波器的设计、性能评估及信号净化应用。通过集成窗函数设计法,系统实现了低通与带通滤波器的参数自定义配置,并提供了从系统特性分析到时频域信号验证的全流程可视化方案。该系统能够帮助开发人员和研究者快速验证滤波器指标对外加噪声及干扰频率的抑制性能。
功能特性
- 多成分混合信号构造:自动生成包含 50Hz 基频信号、500Hz 中频干扰、800Hz 高频干扰以及随机高斯噪声的复合原始信号,用于模拟复杂的信号环境。
- 双模 FIR 滤波器设计:
-
低通滤波器:采用汉明窗(Hamming Window)设计,专注于 200Hz 以下信号的平滑提取与高频噪声抑制。
-
带通滤波器:采用布莱克曼窗(Blackman Window)设计,精确实现 400Hz 至 600Hz 特定频段的选择性通过。
- 完备的系统响应分析:提供滤波器的幅频响应(dB)分析、线性相频特性验证以及系统零极点分布图,确保设计的稳定性和相位线性度。
- 可视化对比验证:
-
时域分析:波形前后对比,直观展示低通滤波对信号平滑度的提升。
-
频域分析:通过快速傅里叶变换(FFT)和功率谱密度(PSD)对比,量化评估各频段干扰的衰减程度。
- 冲激响应展示:可视化 FIR 滤波器的单位冲激响应系数 $h(n)$,反映滤波器的时域窗口特征。
系统要求
- MATLAB R2018a 或更高版本。
- 需安装 Signal Processing Toolbox(信号处理工具箱)。
功能实现细节与逻辑说明
系统按照严谨的数字信号处理流程执行,具体步骤如下:
- 参数初始化与设置:
系统统一设定采样频率(Fs)为 2000Hz,信号观察长度为 1000 个采样点。针对低通和带通两种模式,分别计算归一化的截止频率(Wn),通过将频率指标映射至 0 到 1 之间(对应 Nyquist 频率)供设计算法调用。
- 模拟信号合成:
利用正弦函数合成三个不同频段的分量,并叠加量级为 0.3 的高斯白噪声。这一步骤为后续验证滤波器的频率选择性提供了输入源。
- 滤波器系数计算:
采用窗函数法设计 60 阶 FIR 滤波器。低通滤波器通过汉明窗实现,以获得均衡的旁瓣衰减;带通滤波器通过布莱克曼窗实现,利用其更宽的过渡带和更强的阻带衰减特性来隔离干扰。
- 频率响应解析:
应用 N 点频率响应计算函数,解析获取复数频率轨迹。系统将结果转化为对数幅度(dB)和去卷绕相位(Unwrap Phase),用于评估增益平坦度和群时延特性。
- 信号时频域处理:
通过直接型 FIR 结构对原始信号进行卷积处理。处理后的信号分别进行 FFT 变换以获取频率幅度分布,并采用周期图法计算功率谱密度,从而在功率维度分析噪声抑制水平。
- 结果可视化逻辑:
系统通过两个独立的图形界面呈现结果。第一个窗口包含六个子图,汇总了低通滤波器的各种物理特性以及时域滤波效果。第二个窗口专注于带通滤波器的频谱净化能力和其系数 $h(n)$ 的时域特性分布。
关键算法与技术要点
- fir1 算法:作为系统的核心,该算法基于窗函数法生成滤波器系数,能有效保证滤波器的线性相位特性,避免信号处理中的相位失真。
- 线性相位验证:通过分析相频特性曲线的斜率,确认 FIR 滤波器在通带内对不同频率分量具有一致的时间延迟。
- 零极点分析:FIR 滤波器仅包含零点(极点全部位于原点),系统通过零极点图直观展示了该系统的绝对稳定性。
- 功率谱密度 (PSD):采用 $10log_{10}$ 缩放技术,将信号功率随频率的变化通过分贝值表现出来,使深度的阻带衰减细节清晰可见。
- 快速傅里叶变换 (FFT):对滤波前后的时间序列进行频谱展开,验证 500Hz 和 800Hz 干扰信号在不同滤波器作用下的消除情况。
运行说明
- 启动 MATLAB 软件并进入主程序所在目录。
- 运行主程序脚本。
- 系统将自动计算并弹出性能分析图表。
- 在命令行窗口中可以实时查阅当前设计的滤波器参数报告,包括滤波器阶数、采样率及各项截止频率指标。