基于FIR滤波器的宽带波束形成信号产生与仿真
项目介绍
本项目旨在MATLAB环境下模拟宽带波束形成算法所需的特定频带信号源。项目核心在于构建一个高精度的数字信号处理流程,通过设计高阶FIR带通滤波器,将全频带的高斯白噪声整形为严格限制在特定频率范围(500Hz - 700Hz)内的宽带信号。该仿真生成的信号具有确定的频谱特性,可作为标准测试数据,用于验证时域宽带波束形成算法、阵列增益评估及指向性分析。
功能特性
- 高精度FIR滤波器设计:不依赖MATLAB信号处理工具箱的高级函数(如
fir1),而是基于基本数学原理手动实现了窗函数法(Hamming窗)设计带通滤波器。 - 严格的频带控制:在3000Hz采样率下,实现了500Hz至700Hz的平坦通带,并保证了阻带的有效衰减。
- 宽带随机信号合成:生成服从高斯分布的白噪声序列,模拟真实的复杂环境噪声背景。
- 时域卷积与相位对齐:通过时域卷积实现滤波,并引入了群延迟(Group Delay)补偿机制,确保输出信号在时域上与输入信号对齐,模拟稳态响应。
- 独立频谱分析算法:内置了基于FFT的功率谱密度(PSD)计算和频率响应计算模块,实现了从时域波形到频域特性的全方位可视化。
系统要求
- 软件环境:MATLAB R2016a 或更高版本。
- 工具箱依赖:本项目核心算法主要基于MATLAB基础函数(如
fft, cos, conv等)编写,尽可能减少了对 Signal Processing Toolbox 的强依赖。
使用方法
- 确保MATLAB工作路径已切换至脚本所在文件夹。
- 直接运行主程序脚本。
- 程序将自动执行参数初始化、滤波器系数计算、信号生成、滤波处理及频谱分析。
- 运行结束后,系统将弹出两个图形窗口:
*
图1:展示FIR滤波器的时域冲击响应系数、幅频响应(dB)及相频响应。
*
图2:展示时域波形对比(原始噪声与滤波后信号)以及滤波前后的功率谱密度(PSD)对比。
代码实现逻辑详解
主程序脚本严格按照数字信号处理的流水线进行设计,主要包含以下六个核心步骤:
1. 系统参数配置
程序首先定义了全局仿真环境:
- 采样率设为 3000Hz,仿真时长 2.0秒。
- 设定目标通带为 500Hz (下截止) 至 700Hz (上截止)。
- 设定FIR滤波器阶数 $M=100$(对应滤波器长度 $L=101$),以保证足够的滤波陡峭度。
2. FIR带通滤波器设计(手动窗函数法)
为了精确控制滤波器特性并展示算法原理,代码未调用工具箱函数,而是手动计算滤波器系数:
- 理想脉冲响应计算:基于带通滤波器的数学定义,将其视为两个理想低通滤波器的差值(截止频率分别对应高频和低频边界)。利用公式 $frac{sin(omega_c n)}{pi n}$ 计算理想系数。
- 奇点处理:对于 $n = tau$ (中心点)的情况,分母为零,代码利用洛必达法则计算极限值 $frac{omega_{c2} - omega_{c1}}{pi}$ 赋值。
- 加窗处理:计算 Hamming 窗函数序列 $w(n) = 0.54 - 0.46 cos(frac{2pi n}{M})$,并将理想脉冲响应与窗函数相乘,得到最终的有限长单位冲击响应 $h(n)$。
3. 宽带信号合成
利用
rng(42) 固定随机数种子,确保每次仿真结果的可复现性。随后使用
randn 函数生成均值为0、方差为1的高斯白噪声序列,作为包含全频带分量的原始输入信号。
4. 滤波与前端处理
- 时域卷积:使用
conv 函数将原始噪声信号与设计好的FIR滤波器系数 $h(n)$ 进行卷积。 - 群延迟补偿:由于M阶FIR滤波器具有线性相位特性,会引入 $tau = M/2$ 的群延迟。代码通过截取卷积结果的中间部分(
delay+1 到 delay+N_samples),去除了滤波器的瞬态响应和延迟,使输出信号在时间轴上与输入信号对齐。
5. 频谱分析 (PSD)
代码通过FFT算法手动计算功率谱密度:
- 计算FFT点数(取大于信号长度的2的幂次)。
- 对原始信号和滤波后信号分别进行FFT变换。
- 计算模的平方并归一化,得到功率谱。
- 将双边谱转换为单边谱,并进行对数变换转换为 dB 刻度,便于观察频谱动态范围。
6. 辅助算法:频率响应计算
脚本末尾包含一个名为
compute_freq_resp 的辅助函数。该函数利用FFT对滤波器系数补零后通过快速傅里叶变换计算其频域特性,替代了
freqz 函数。这用于在图1中绘制滤波器的幅频和相频响应曲线,验证设计指标是否达标。
关键算法与技术细节
- Sinc函数与带通合成:利用 $h_{BP}(n) = h_{LP_high}(n) - h_{LP_low}(n)$ 的原理,通过数学公式直接合成带通冲击响应,而非使用频率采样法或等波纹逼近。
- Hamming窗的应用:选择Hamming窗是为了在主瓣宽度和旁瓣衰减(约-43dB)之间取得平衡,适合宽带波束形成的通用需求。
- 稳态信号截取:在卷积操作后,并未直接保留所有卷积结果,而是基于滤波器群延迟进行了精确的索引截取。这一步对于时域波束形成(Delay-and-Sum)至关重要,因为波束形成对信号的时间对齐非常敏感。
- 频率轴归一化:在频响分析中,频率轴被精确映射到实际物理频率(Hz),而非仅展示归一化频率(rad/sample),使得可视化结果更加直观。