搞阵列信号处理绕不开一个坎:宽带波束形成。我翻到学习笔记第8章的时候,正好在调试一个 2~4GHz 的八元线阵仿真,窄带波束形成权值直接搬到宽带信号上,主瓣指向肉眼可见地偏了快 10 度。这一章把宽带波束形成的原理、结构和工程坑讲得很透,我边学边记,整理成这份综述。内容覆盖宽带模型、三种主流实现路线(频域子带、时域抽头延迟线、聚焦变换)、设计指标与仿真方法,最后是我自己踩过的几个工程坑。适合刚入门阵列信号处理、或者准备把窄带阵列算法往宽带场景迁移的工程师参考;即使你已经做过窄带相控阵,再看一遍宽带视角的推导,也会发现一些容易忽略的细节。
1. 宽带波束形成到底在解决什么问题
1.1 从窄带到宽带:一次假设的失效
窄带波束形成的全部基础,是窄带假设。它认为信号带宽 (B) 远小于载频 (f_0),时延对信号的影响可以近似写成:
[ s(t-\tau) \approx s(t) e^{-j2\pi f_0 \tau} ]
这个式子的意思是:在时延 (\tau) 范围内,信号包络几乎不变,时延只改变中心频率分量的相位。于是阵列各阵元接收信号之间的差别,就是一个固定的复相位,用复数加权就能把期望方向的信号对齐叠加。
宽带信号不满足这个近似。当相对带宽 (B/f_0) 达到百分之几十时,包络在阵列孔径渡越时间内已经发生明显变化,同时不同频率分量的相位延迟也不一样。比如 2~4GHz 信号相对带宽 66%,孔径渡越时间接近 0.9ns,在 2GHz 处一个周期是 0.5ns,包络的变化已经不能忽略。用单一复数权去对齐所有频率分量,本质上是按下葫芦浮起瓢。
可以类比合唱录音:如果只按一个音高去校准麦克风延迟,低音声部和高音声部到达的时间错位程度不同,低频周期长,相位误差看起来小,高频周期短,相位误差就很大。最后混音出来声音发“糊”,这就是宽带信号经过窄带权之后的波形失真。
1.2 宽带信号的阵列模型
设一个 (M) 元均匀线阵,阵元间距 (d),期望方向 (\theta),以第一个阵元为参考,第 (m) 个阵元相对参考阵元的时延为:
[ \tau_m = \frac{(m-1)d\sin\theta}{c} ]
接收信号可以写为:
[ x_m(t) = s(t-\tau_m) + n_m(t) ]
对应频域形式:
[ X_m(f) = S(f) e^{-j2\pi f \tau_m} + N_m(f) ]
所以阵列流形向量变成了频率的函数:
[ a(f, \theta) = [1,\ e^{-j2\pi f d\sin\theta / c},\ \dots,\ e^{-j2\pi f (M-1)d\sin\theta / c}]^T ]
关键点在于指数里的 (f) 不是固定的载频,而是信号的真实频率变量。窄带处理一般只取中心频率 (f_0) 处的 (a(f_0,\theta)),宽带波束形成则必须考虑整个工作频带内的 (a(f,\theta))。
宽带波束形成的本质,就是构造一个权向量,让输出信号在期望方向上的宽带响应尽量平坦,同时抑制干扰。这个权向量要么随频率变化,要么在时域具备 FIR 滤波结构,总之要增加频率维度的自由度。
1.3 窄带权值用在宽带上的典型“翻车”现象
我用一次简单的仿真来说明问题。8 元线阵,阵元间距按最高频率 4GHz 的半波长取 3.75cm,期望指向 30°,用 3GHz 设计频率算一组窄带复数权,然后看这组权在 2GHz、2.5GHz、3GHz、4GHz 下的波束方向图。
结果非常直接:
| 频率 | 窄带权实际主瓣指向 | 30°方向增益损失 |
|---|---|---|
| 2.0 GHz | 约 48.6° | 约 -3.9 dB |
| 2.5 GHz | 约 36.9° | 约 -0.9 dB |
| 3.0 GHz | 30.0° | 0 dB |
| 4.0 GHz | 约 22.0° | 约 -3.9 dB |
主瓣指向偏移的规律是满足 (\sin\theta_{peak} = (f_0/f)\sin\theta_0)。频率低于设计频率时主瓣偏向大角度,高于设计频率时偏向法线。4GHz 时设计指向 30° 的信号,实际主瓣已经偏到 22°,这在实际工程里是不可接受的。
期望方向上的增益损失可以算出来。设计频率 (f_0=3GHz),实际频率 (f=2GHz) 时,相邻阵元之间的相位差相对设计频率多转了一个角度:
[ \alpha = 2\pi (f_0-f)\frac{d\sin\theta_0}{c} ]
代入数值得到 (\alpha \approx 0.3927) rad。(M=8) 个均匀相位序列求和,增益幅度为:
[ \left|\frac{\sin(M\alpha/2)}{\sin(\alpha/2)}\right| \approx 5.13 ]
相对设计频点的增益 8 下降了约 3.9dB。这还只是没有干扰时的情况,如果有宽带干扰,窄带自适应权的频率失配还会导致零陷偏移、残留干扰功率上升。所以宽带信号必须换处理框架。
2. 宽带波束形成的三种主流技术路线
2.1 频域子带处理:把宽带拆成窄带
频域子带处理是最容易理解的一种思路:把宽带信号从时域变换到频域,分成若干个子带,每个子带带宽足够窄,满足窄带假设,然后每个子带独立做窄带波束形成,最后再合成宽带输出。
结构上就是一个分析滤波器组,或者 FFT 加重叠保留,接窄带加权,再做综合滤波器组,或者 IFFT 加重叠相加。
子带数量怎么定?可以用相位误差来约束。阵列孔径 (D=(M-1)d),最大工作指向 (\theta_{max}),则孔径渡越时间为:
[ \tau_{max} = \frac{D\sin\theta_{max}}{c} ]
一个子带带宽 (\Delta f) 内,最高与最低频率之间在孔径两端产生的额外相位差约为 (2\pi \Delta f \tau_{max})。如果要求这个误差小于 (\pi/10),那么:
[ \Delta f \leq \frac{1}{20\tau_{max}} ]
按我的例子,(D=7\times0.0375=0.2625m),如果最大指向取 60°,(\tau_{max}=0.758ns),算出来 (\Delta f) 大约 66MHz。信号带宽 2GHz,子带数差不多要 30 个。这个数字不算小,实时处理时滤波器组负担很重。
频域子带的优点是能直接复用成熟的窄带算法,比如 MVDR、MUSIC、STAP 等。缺点是滤波器组会引入群延迟,子带间相位必须对齐,否则输出波形会在频段拼接处出现相位裂纹。工程实现里,这部分工作量往往比算法本身还大。
2.2 时域抽头延迟线结构:空时二维处理
时域抽头延迟线,也就是 TDL 结构,是目前工程中用得最多的宽带波束形成实现方式。每个阵元后面接 (L) 个延时抽头,输出为:
[ y(t) = \sum_{m=1}^{M} \sum_{l=0}^{L-1} w_{m,l}^* x_m(t - lT_s) ]
其中 (T_s) 是采样周期。这相当于每个阵元通道先做一个 FIR 滤波器,完成频率响应的整形,再做空域加权求和。权向量维度是 (M \times L),称为空时二维权。
每个通道的等效频率响应为:
[ W_m(f) = \sum_{l=0}^{L-1} w_{m,l}^* e^{-j2\pi f lT_s} ]
整个阵列在频率 (f)、方向 (\theta) 上的响应可以写成:
[ H(f,\theta) = w^H \left[ a(f,\theta) \otimes d_T(f) \right] ]
其中 (d_T(f) = [1, e^{-j2\pi fT_s}, \dots, e^{-j2\pi f (L-1)T_s}]^T),符号 (\otimes) 表示 Kronecker 积。
抽头数怎么选?经验上,抽头链的总时间跨度至少要覆盖阵列孔径渡越时间:
[ (L-1)T_s \approx (1 \sim 2) \times \frac{D}{c} ]
还是上面那个例子,(D/c = 0.875ns)。如果采样率 8GHz,(T_s=0.125ns),那么至少要 7 个抽头才能覆盖 0.875ns,再留一点余量,(L=10\sim16) 比较合适。抽头太少做不出频率选择性,抽头太多则自适应自由度过剩,协方差矩阵会变得病态。
TDL 结构最大的好处是单条数据通路就能覆盖全频带,实时性好,容易在 FPGA/DSP 上落地。缺点是权数量多,自适应该收敛慢,需要配合对角加载、降维或者子阵划分使用。
2.3 聚焦变换类方法:把宽带协方差“压回”窄带
聚焦变换是另一条路线,它不直接处理时域波形,而是设计一个频率相关的变换矩阵 (T(f)),把每个频率上的阵列流形映射到参考频率 (f_0):
[ T(f)a(f,\theta) \approx a(f_0,\theta) ]
对接收数据做同样的变换,得到聚焦后的数据:
[ y_{focus}(t) = \int T(f) X(f) e^{j2\pi ft} df ]
它的协方差矩阵近似成为窄带形式:
[ R_{focus} \approx \int T(f) R_x(f) T^H(f) df ]
于是后面的 MUSIC、ESPRIT、MVDR 都可以直接使用。典型方法包括旋转信号子空间法、双边相关变换等。
聚焦变换的优点是把宽带测向问题“降维”成窄带问题,分辨率和估计性能通常优于简单子带平均。缺点也很明显:聚焦矩阵的设计依赖角度扇区先验,如果先验给错了,聚焦效果会严重退化,而且矩阵积分和存储开销都不小。它特别适合被动声呐、宽带无线电测向这类离线处理场景,不太适合要求高实时性的雷达前端。
三种路线的对比如下:
| 技术路线 | 处理域 | 结构复杂度 | 实时性 | 适用场景 | 主要问题 |
|---|---|---|---|---|---|
| 频域子带 | 频域 | 高 | 一般 | 抗干扰、自适应 | 滤波器组延迟、子带相位 |
| TDL | 时域 | 中 | 好 | 实时宽带DBF | 权数多、稳健性 |
| 聚焦变换 | 频域/协方差域 | 中高 | 一般 | 超分辨测向 | 角度扇区依赖 |
3. 仿真验证与指标分析
3.1 宽带波束形成器怎么评估
宽带波束形成器的性能指标比窄带更复杂。窄带只需要看一个频点的方向图,宽带要看整个工作频段内的响应。我一般会关注五个方面:
- 主瓣指向误差:每个频点的峰值指向与期望指向之差,通常要求小于波束宽度的十分之一。
- 3dB 波束宽度:低频段电尺寸小,波束宽;高频段波束窄。宽带设计不能只看中心频率。
- 峰值旁瓣电平:全频带内旁瓣最高值,一般雷达系统要求全频带不超过 -20dB 或 -30dB。
- 期望方向增益损失:固定权在期望方向上的实际增益与理想增益 (M) 的比值。
- 波形保真度:输出信号与参考信号的误差向量幅度或者互相关,宽带波束形成后波形失真必须可控。
频率相关指标要按频点分别计算,再取全域包络。只看中心频点方向图,很容易漏掉频带边缘的恶化。
3.2 一个8元阵的复现实验设置
我做的仿真是这样设置的:8 元均匀线阵,阵元间距按最高频率 4GHz 半波长取 3.75cm,工作频段 2~4GHz,期望指向 30°。信号用带宽 2GHz 的线性调频脉冲,采样率 8GHz,时域点数 4096。
仿真对比了三组处理方式:
- 固定 3GHz 复数权直接加权;
- TDL 结构,12 个抽头,理想权值;
- 频域子带处理,子带数 32,每个子带使用窄带理想权。
处理步骤是先合成宽带信号 (s(t)),按各阵元时延生成接收信号 (x_m(t)=s(t-\tau_m)),再用三种方式分别加权,最后统计不同频点的方向图、期望方向增益和输出信号误差。
下面是验证窄带权偏移的 Python 片段,它只做方向图峰值搜索,目的是直观展示频率失配:
import numpy as np M = 8 c = 3e8 fmax = 4e9 d = c / (2 * fmax) # 按最高频率半波长取阵元间距 theta_scan = np.deg2rad(np.linspace(-90, 90, 1801)) theta0 = np.deg2rad(30) fd = 3e9 # 权值设计频率 # 设计频率上的窄带权 w = np.exp(1j * 2 * np.pi * fd * d * np.sin(theta0) * np.arange(M) / c) for f in [2e9, 2.5e9, 3e9, 4e9]: A = np.exp(-1j * 2 * np.pi * f * d * np.sin(theta_scan) * np.arange(M)[:, None] / c) p = np.abs(np.conj(w) @ A) ** 2 idx = np.argmax(p) print(f"{f/1e9:.1f} GHz peak: {np.rad2deg(theta_scan[idx]):.2f} deg")运行结果和前面表格一致。这段代码只验证了固定权在不同频率下的主瓣偏移,实际复现 TDL 或子带处理时,还需要补充 FIR 滤波器和滤波器组部分,这里就不展开了。
3.3 结果解读与对比
窄带固定权的结果已经在 1.3 节里讲过,主瓣偏移和增益损失是宽带化最直观的代价。再补充一个有意思的细节:2GHz 和 4GHz 的期望方向增益损失完全一样,都是约 3.9dB。原因是频率偏差绝对值相同,相邻阵元的附加相位旋转量只差一个符号,求和后的幅度相等。这种对称性是窄带权宽带失效的特征之一。
TDL 和子带处理在理想情况下,各频点主瓣都能对准 30°,期望方向增益损失接近 0dB。输出波形方面,窄带固定权的误差向量幅度大约在 15% 左右,TDL 和子带处理可以降到 2% 左右。子带处理的优势在于每个子带还可以灵活切换抗干扰算法,TDL 的优势在于一条链路不用做频域拆分,各有取舍。
| 频点 | 窄带权主瓣指向 | 窄带权增益损失 | TDL主瓣指向 | TDL增益损失 |
|---|---|---|---|---|
| 2.0 GHz | 48.6° | -3.9 dB | 30.0° | 约 0 dB |
| 2.5 GHz | 36.9° | -0.9 dB | 30.0° | 约 0 dB |
| 3.0 GHz | 30.0° | 0 dB | 30.0° | 0 dB |
| 4.0 GHz | 22.0° | -3.9 dB | 30.0° | 约 0 dB |
这里 TDL 使用的是理想参考权,实际有幅相误差时会有微小变化。仿真做完以后,我对宽带波束形成的必要性有了直观印象:窄带权在宽带下不只是性能下降,而是根本不能直接搬过去用。
4. 工程实现中的坑与排查技巧
4.1 子带滤波器的群延迟补偿
子带处理最常见的坑,是输出信号出现相位裂纹或者包络“台阶”,但频谱上看不出明显异常。问题基本出在分析滤波器组和综合滤波器组的群延迟不一致上。不同子带的延迟不一样,重建出来的宽带信号在各频段边界就不连续。
解决办法是使用线性相位 FIR 滤波器,并且确保每个子带的延迟一致,或者在综合后统一做时延对齐。用重叠保留法时要仔细设计重叠长度,让相邻数据块正确衔接。我在调试时喜欢先画滤波器组的群延迟曲线,再叠加子带输出信号,这样可以快速定位相位裂纹。
子带边缘的幅度响应不平坦也会导致方向图出现周期性波纹,俗称频响“扇贝化”。增加子带重叠比例,比如相邻两个子带 50% 重叠,可以有效缓解。代价是运算量上升,但这个代价通常值得。
4.2 TDL抽头数不是越多越好
TDL 结构最让我意外的一点,是抽头数多了反而容易出问题。抽头多意味着空时自由度多,但相邻抽头接收的信号高度相关,协方差矩阵条件数很差。自适应权值对矩阵求逆里的微小扰动极其敏感,仿真里经常出现方向图旁瓣突然翘起来,或者零陷完全错位的情况。
我实测过一组数据,同样一个宽带干扰场景,用 32 个抽头时峰值旁瓣电平还不如 12 个抽头。原因是 32 抽头把噪声都拟合进去了,相当于过拟合。后来把抽头链时间跨度固定在孔径渡越时间的 1.5 倍左右,抽头数降到 12,旁瓣反而干净很多。
如果确实需要更多自由度来抑制多个宽带干扰,优先考虑划分子阵或者降秩处理,不要无脑加抽头。自适应权算出来以后,还可以做对角加载。加载量太小没用,一般取噪声功率的 0.1~1 倍,也就是 10~20dB 加载,稳健性提升非常明显。
4.3 宽带互耦与通道失配的校准
窄带系统做通道校准很简单,一个复数矩阵乘以接收向量就能同时校正通道幅相误差和互耦。宽带系统不能这么干,因为互耦矩阵是频率的函数,在 2~4GHz 频段变化很大,单个校正矩阵无法覆盖全频带。
工程上有两种常用做法。第一种是按子带分段校准,把宽带分成若干段,每个子带单独做幅相校正,实现直观但需要存储多个校正矩阵。第二种是建立时域互耦网络模型,用少量参数拟合整个频带内的互耦响应,精度更高但建模复杂。
通道均衡也要注意频率相关性。用单点频测出的幅度相位差去校正全频带,高频段一定会出问题。通道均衡通常用分数时延滤波器来实现,设计时要保证工作频带内的群延迟波动足够小。
4.4 常见问题速查表
| 现象 | 可能原因 | 解决思路 |
|---|---|---|
| 高频波束指向偏向法线 | 窄带权只按中心频率设计 | 改用 TDL 或子带处理 |
| 低频主瓣变宽 | 低频阵列电尺寸变小 | 接受,或用更宽的阵列 |
| 高频出现栅瓣 | 阵元间距超过半波长 | 按最高频率半波长布阵 |
| 输出信号波形失真 | 各频率分量相位未对齐 | 检查子带群延迟和时延补偿 |
| 自适应权收敛慢 | 抽头数过多、协方差病态 | 对角加载、降维、减少抽头 |
| 旁瓣不对称 | 通道失配或互耦未校正 | 按子带分段校准 |
这个表是我在实际调试中反复用到的。遇到现象先对号入座,很多时候问题不在算法,而在前端的时延、滤波器和通道一致性。
5. 学习笔记里的几条个人体会
5.1 推荐的学习路径
对于刚开始学宽带波束形成的人,我建议按这个顺序走。先把窄带阵列流形和方向图画熟,理解 (a(f_0,\theta)) 是怎么来的。然后做一个简单的固定权多频点方向图,亲眼看到主瓣偏移。接着实现 TDL 波束形成,把方向图扩展成频率-角度二维响应。最后再去看聚焦变换,理解测向领域是怎么处理宽带源的。
资料方面,经典阵列信号处理教材里通常都有宽带处理的章节,Van Trees 的《Optimum Array Processing》和我之前读过的通信信号处理教材都可以作为主线。此外 Frost 关于自适应波束形成的原始论文,以及频率聚焦变换方向的综述,值得精读。学习过程中最好配合代码复现,只看推导很难建立直观感觉。
5.2 复现工具链建议
原理验证我用 Python 的 NumPy 和 SciPy 就够了,没必要一上来就上大型工具。工程验证用 MATLAB 的 Phased Array Toolbox 会更省事,内置了阵列流形、方向图可视化等功能。数据源可以先合成宽带 LFM 信号和带限噪声,加一个宽带干扰,这样可以同时验证波束指向、抗干扰和波形保真度三个指标。
仿真的层次要一层一层加。先把窄带固定权的频偏现象复现出来,再加 TDL 结构,最后做子带处理。每一步都保留仿真结果作为基准,后面改参数时才能对比。
5.3 最后分享一个我自己的调试经历
去年我调试一个宽带数字波束形成模块时,脉冲压缩后的旁瓣总是压不到 -30dB 以下,怎么调都卡在 -25dB 左右。频谱、方向图都看不出明显问题,折腾了两天才发现,是子带处理中分析滤波器组的群延迟没有补偿,导致各频段相位不连续。补上延迟对齐之后,旁瓣直接降到 -38dB。
这个坑让我长了一个记性:宽带波束形成对“时间对齐”的敏感度远高于窄带系统,尤其是频域处理路径,滤波器组群延迟必须作为第一优先级检查项。另一个体会是,仿真里追求过多自由度没有意义,TDL 抽头数要克制,时间跨度覆盖阵列孔径渡越时间再加一点点余量就够了。做工程不是参数越豪华越好,而是每一项自由度都花在刀刃上。