第一次拿到带波束成形芯片的相控阵天线评估板时,我盯着寄存器表发了一会儿呆。移相器那栏很好理解,每个通道按角度写入相位码就行;衰减器这栏却让我犯了难——芯片手册只会告诉你它是6 bit、0.5 dB步进、最大31.5 dB,不会告诉你某一个波束状态下该写多少。后来在阵列方向图仿真里踩了几次坑才明白,衰减值并不是随便填的,它承载的是波束成形里最关键的“幅度加权”:既要压低旁瓣,又要校正通道幅度误差。这篇文章是我从目标旁瓣、幅度权重一路算到衰减寄存器的完整过程,拿一个8通道线阵做例子,把衰减值计算这件事说透。
1. 衰减器在芯片链路里到底扮演什么角色
1.1 它和移相器是两码事:一个管方向,一个管形状
很多人刚接触相控阵天线时,容易把移相器和衰减器混在一起看,觉得它们都是“每个通道一个控制量”,功能差不太多。其实两者的分工非常清晰。
移相器控制的是每个单元的相位,核心作用是让各通道的信号在某个指定方向上同相叠加。只要相位设置正确,主波束就会指向目标方向。衰减器控制的是每个单元的幅度,核心作用是改变阵列的口径分布,也就是各单元信号的相对大小。它不负责把波束搬去某个方向,而是负责把波束副瓣压下去、把主瓣形状调整到设计值。
换句话说:
- 移相器决定“波束往哪看”
- 衰减器决定“波束长什么样”
如果一个阵列所有通道的幅度完全一样,那叫均匀激励。均匀激励的阵列旁瓣通常稳定在-13.2 dB左右,很多雷达、卫星通信、5G基站场景对这个旁瓣水平是不满意的。系统要求旁瓣低于-25 dB、-30 dB甚至更低时,就必须让中心通道的幅度大、边缘通道的幅度小。这个“中心大、边缘小”的幅度分布,就是靠衰减器把边缘通道的信号打下去实现的。
所以衰减器在波束成形芯片里的第一重身份,就是幅度加权的执行器。
1.2 两类用途:低旁瓣加权与通道增益校准
除了做幅度锥削之外,衰减器的第二重身份是通道增益校准。
波束成形芯片经过流片、封装、贴片之后,每个通道的有源电路不会做得完全一致。哪怕是同一批芯片,通道间的增益差也可能有0.5 dB到1 dB以上;再加上外围链路里的功分器、滤波器、天线馈线的差异,通道间的幅度失配会越来越明显。通道幅度不一致的后果,和加权失调类似——副瓣抬高、波束指向偏、零点填充、增益下降。
这时候衰减器就可以当“微调旋钮”使用。校准的思路很简单:测试出每个通道的实际增益,选定一个公共参考电平,然后把增益偏高的通道衰减多一点、增益偏低的通道衰减少一点,最终让所有通道的有效幅度对齐到目标值。
注意一个工程现实:衰减器只会增加损耗,不会提供增益。如果某个通道的增益明显偏低,光靠衰减器是补不回来的。这时候要么把所有其他通道都衰减到和它一样低,牺牲整体链路增益;要么在芯片里有VGA(可变增益放大器)的前提下用VGA去补。很多波束成形芯片会把衰减器和VGA的功能合并在一起,寄存器里写的可能叫“增益控制”或“衰减控制”,但计算时核心还是同一个问题:我要让每个通道的最终幅度等于多少。
1.3 典型芯片里的实现:DSA、控制位和插入损耗
现在市面上常见的模拟波束成形芯片,衰减器大多数是数字步进衰减器,英文缩写DSA。它会按固定步进切换电阻网络或FET开关网络,典型配置是6 bit、0.5 dB步进,最大衰减31.5 dB。也有一些芯片做0.25 dB步进,或者把最大量程做到15.5 dB、50 dB不等。
DSA的好处是控制简单、线性度好、温度稳定性比VGA更容易做好。寄存器写一个码,对应一个衰减量,不依赖模拟闭环。坏处是衰减量是离散的,没办法做到“理论要多少就精确给多少”。比如算出来某个通道需要衰减3.44 dB,0.5 dB步进下只能写3.5 dB或3.0 dB,这个量化误差会在后面的方向图中体现出来。
另外,任何衰减器都有插入损耗。DSA在0 dB状态也不是理想直通,通常会带来1~3 dB的插损,具体看频率和芯片工艺。计算衰减值时,我们一般关注的是“相对衰减量”,也就是各个通道之间的衰减差值;公共的插入损耗虽然影响系统增益和噪声系数,但不影响方向图形状。
注意:衰减器的“0 dB”不代表没有损耗,只代表相对衰减为0。系统链路预算里要把芯片手册的插损单独算进去。
2. 衰减值的源头:幅度分布设计与dB换算
2.1 均匀激励为什么旁瓣是-13.2 dB
要理解衰减值从哪里来,先要看阵列方向图的基本公式。
对一个N单元等间距线阵,阵因子可以写成:
AF(θ) = Σ a_n · exp(j · 2π · n · d / λ · (sinθ - sinθ₀))其中,a_n是第n个通道的复激励,d是阵元间距,λ是波长,θ₀是波束指向,θ是观察角度。a_n的模值|a_n|就是幅度权重,它的大小决定衰减器要写多少衰减。
当所有|a_n|相等时,这个阵列是均匀激励。均匀线阵的第一副瓣电平是固定值,约-13.2 dB,和阵元数量没有太大关系。这是由均匀口径分布的形状决定的,不是靠增加阵元就能改善的指标。增加阵元只会让主瓣变窄、增益变高,但副瓣的相对电平依然落在-13.2 dB附近。
如果想压低副瓣,就必须让阵列边缘的激励幅度小于中心激励幅度。所谓“加权”或“锥削”,本质上就是给口径分布套上一个从中心到边缘逐渐衰减的包络。而芯片里的衰减器,就是把这个包络落到具体硬件上的手段。
2.2 常用口径加权怎么选
工程上常用的幅度加权类型不少,最经典的有余弦加权、余弦平方加权、泰勒加权、切比雪夫加权等。它们的目标都是在给定副瓣指标下找到一个合适的口径分布。
| 加权类型 | 典型峰值旁瓣 | 主瓣展宽 | 适用场景 |
|---|---|---|---|
| 均匀 | -13.2 dB | 1.0倍 | 增益优先,副瓣要求低 |
| 余弦 | 约-23 dB | 约1.3倍 | 中等副瓣要求 |
| 余弦平方(带基座) | 约-25~-26 dB | 约1.3~1.4倍 | 增益和副瓣折中 |
| 泰勒加权 | 按设计值,如-25/-30/-40 dB | 1.1~1.4倍 | 雷达、通信系统常用 |
| 切比雪夫加权 | 设计值,所有副瓣基本等平 | 设计副瓣下最窄 | 需要严格等副瓣的场景 |
表格里的数值是连续口径近似,具体到离散阵列会略有差别,但选型思路是一样的。副瓣要求越低,边缘衰减就越大,主瓣也会相应变宽,增益和孔径效率随之下降。这就是为什么不是人人都把衰减值调到最大——副瓣压得太狠,代价是主瓣变胖、作用距离下降。
泰勒加权和切比雪夫加权在工程里更常用,因为它们在给定副瓣电平下能给出比较窄的主瓣。余弦类加权胜在公式简单、适合手算和快速验证。这篇文章的示例用带基座的余弦平方加权,就是为了把计算过程摊开给大家看清楚。
2.3 把权重变成衰减值:一个通用换算公式
假设我们已经通过某种加权方法得到了一组线性幅度权重w_n,那么衰减值的计算分三步:
第一步,归一化。找到所有w_n里的最大值w_max,把每个权重除以w_max,得到a_n = w_n / w_max。这样最大权重的通道对应1.0,其他通道对应0到1之间的小数。
第二步,转dB。幅度比转dB用20倍对数:
A_n(dB) = 20 · log10(a_n)第三步,取负号。衰减器是减法,不是加法。因为最大权重的通道要保留最多信号,所以它对应的衰减是0 dB;其他通道相对它来说信号要减小,衰减值就是负的幅度dB值:
ATT_n(dB) = -20 · log10(a_n) = -20 · log10(w_n / w_max)衰减器的本质是功率衰减,但工程上习惯用dB说幅度关系。只要负载阻抗一致,20·log10(V_out/V_in)和10·log10(P_out/P_in)在数值上是等价的。如果你手里拿到的是“功率权重”,而不是“电压/电流权重”,记得先把功率权重开方转成幅度权重再算。
注意:衰减值永远是非负的。最大权重通道写0 dB,其他通道写大于0 dB的衰减量。如果某个方案里算出负衰减值,说明归一化基准选错了。
3. 完整示例:8通道线阵从目标旁瓣到寄存器值
3.1 设计参数与计算前提
下面用具体数字走一遍流程。
假设有一个8单元等间距线阵,阵元间距d = λ/2,工作频率10 GHz,波束指向法向,目标峰值旁瓣低于-25 dB。衰减器按很多波束成形芯片里的典型配置来:6 bit、0.5 dB步进、最大衰减31.5 dB。
我选择带基座余弦平方加权来生成幅度分布,基座高度p = 0.08。这个加权的思想是:纯粹余弦平方的分布边缘权重会降到0,实际阵列里完全关掉边缘通道会让主瓣太宽、并且对公差太敏感;留一个0.08的基座,相当于给边缘通道保留8%的最低幅度,既能把旁瓣压到-25 dB量级,又不至于让边缘通道彻底失去作用。
3.2 生成幅度权重并转换成衰减值
对N单元线阵,带基座余弦平方加权可以写成:
w_i = p + (1-p) · sin²(π · i / (N-1))其中i从0到N-1。N=8、p=0.08时,算出来的一组权重如下:
| 通道 i | 相对位置 i/(N-1) | 线性权重 w_i | 归一化权重 a_i | 目标衰减 ATT(dB) | 0.5dB量化后 | 寄存器码 |
|---|---|---|---|---|---|---|
| 0 | 0 | 0.080 | 0.084 | 21.53 | 21.5 | 43 |
| 1 | 0.143 | 0.253 | 0.265 | 11.53 | 11.5 | 23 |
| 2 | 0.286 | 0.642 | 0.673 | 3.44 | 3.5 | 7 |
| 3 | 0.429 | 0.954 | 1.000 | 0.00 | 0.0 | 0 |
| 4 | 0.571 | 0.954 | 1.000 | 0.00 | 0.0 | 0 |
| 5 | 0.714 | 0.642 | 0.673 | 3.44 | 3.5 | 7 |
| 6 | 0.857 | 0.253 | 0.265 | 11.53 | 11.5 | 23 |
| 7 | 1 | 0.080 | 0.084 | 21.53 | 21.5 | 43 |
以通道0为例:线性权重0.080,归一化后0.084,衰减值为-20·log10(0.084)≈21.53 dB。量化到0.5 dB步进后写21.5 dB,寄存器码就是21.5/0.5=43。
这组数据有两个细节值得注意。
一是偶数单元阵列没有真正位于中心点的单元,所以通道3和通道4的权重同时达到最大值。工程上处理偶数阵时,务必保持左右对称,不要让两个中心通道一个写0 dB、另一个写0.5 dB,否则方向图会出现不对称的副瓣抬升。
二是最大的边缘衰减约21.5 dB,没有超过31.5 dB的量程。如果你选更低的基座,比如p=0.05,边缘衰减会进一步加大;如果量程只有15.5 dB,那就要重新权衡旁瓣目标和加权类型了。
顺手给一段Python,方便大家把这段计算复制下来改参数:
import numpy as np N = 8 p = 0.08 w = p + (1 - p) * np.sin(np.pi * np.arange(N) / (N - 1)) ** 2 a = w / w.max() att = -20 * np.log10(a) reg = np.round(att / 0.5).astype(int) print("权重:", np.round(w, 4)) print("衰减dB:", np.round(att, 2)) print("寄存器码:", reg)3.3 方向图校验与量化后结果
衰减值算到这里还没有结束,一定要把量化后的权重代回阵因子公式里做一次方向图校验。
对于法向波束、d=λ/2、8单元线阵,阵因子简化为:
AF(θ) = Σ a_i · exp(j · π · i · sinθ)把量化后的归一化权重代进去,扫描θ从-90°到90°,观察主瓣和最高副瓣。用这组权重做出来的方向图,旁瓣一般能保持在-24.5 dB到-25 dB附近,具体数值和量化误差有关。0.5 dB步进的量化对-25 dB级别的加权来说通常不是致命问题,但它会带来零点抬升和副瓣电平的轻微恶化,不能手算完就直接写寄存器。
对于8单元这样的小阵列,方向图还有比较强的离散效应,连续口径的副瓣公式只能作为初值。阵列越小,越要以离散阵因子的仿真结果为准。
3.4 换成面阵该怎么扩展
如果把线阵换成矩形排布的平面阵,计算思路可以自然扩展。常见做法是把行方向和列方向的加权分别设计好,然后取外积作为二维权重:
w_mn = w_row[m] · w_col[n]比如32×32的面阵,行方向用-30 dB泰勒加权,列方向也用-30 dB泰勒加权,合成权重的旁瓣大约还是-30 dB量级,但主瓣在两个切面分别展宽。芯片端,每个通道的衰减值就是这个外积权重归一化后的dB值。
需要注意的是,如果行、列两个方向都做了深度加权,边缘角落通道的衰减值会非常大,可能超过DSA量程。这时要回到归一化步骤,重新以二维权重里的最大值为基准,或者适当放宽角落通道的衰减值,再通过方向图仿真确认损失。
4. 设置了衰减值就万事大吉?量化误差、温度漂移与产线校准
4.1 0.5 dB步进带来的量化误差
DSA的每一个状态对应一个固定的衰减量,理论计算值几乎不可能刚好落在某个整步进上。量化误差的极值是±0.25 dB,也就是半个LSB。
±0.25 dB的幅度误差换算成线性比大约是±2.9%。单独看一个通道,这个误差不大;但阵列中有几十甚至上百个通道,每个通道的量化误差是随机的、有一定相关性的,它们叠加后会抬升方向图的平均副瓣。尤其是对低副瓣加权,副瓣的余量可能只有1~2 dB,量化误差会吃掉其中一部分。
我自己的习惯是:先把理想权重算出来,量化后再用蒙特卡洛方式做一遍误差分析。具体做法是给每个通道的衰减值叠加随机误差,误差按±0.25 dB均匀分布或按实际标定误差分布抽样,跑一千次方向图,看副瓣的统计上限。如果统计结果离指标还有余量,再决定要不要换0.25 dB步进的高精度衰减器。
4.2 衰减器状态之间的相位漂移与温度漂移
这是工程上最容易踩的坑。
很多人以为衰减器只改变幅度,不改变相位。实际不是。数字步进衰减器切换内部开关和电阻网络时,信号路径的寄生电容、电感会跟着变,不同衰减状态下会引入不同的插入相位。也就是说,你给每个通道设置衰减值时,通道的相位也会跟着动,波束指向可能因此偏掉零点几度。
应对方法有两种。
第一种,选衰减和相位耦合小的芯片。芯片手册里如果有“衰减状态下的相位变化”指标,优先选这个指标小的型号。
第二种,也是更可靠的做法,产线上做二维校准。分别在不同衰减码下测量每个通道的S21幅度和相位,生成一张“目标衰减值 + 相位补偿值”的查找表。软件写入时,先根据目标衰减值查表得到相位修正量,再连同移相器码一起写进去。
温度漂移也要留意。衰减器内部是电阻网络,电阻值随温度变化会改变实际衰减量。芯片内部自带的温度漂移系数通常不会单独标注,所以高精度场景下要在高低温箱里做带内S21复测,把校准表按温度分成几段。
4.3 衰减器放哪个位置:NF和线性度取舍
衰减器在接收链路中的位置,直接决定它对系统噪声系数的影响。
假设衰减器衰减值为L,放在LNA之前在物理上等于直接把输入信号打掉L dB,系统NF基本会恶化L dB。比如一个2 dB NF、20 dB增益的LNA,前面加10 dB衰减器,系统NF会从2 dB恶化到10 dB左右,LNA再牛也被衰减器毁掉了。
如果衰减器放在LNA之后,情况就完全不一样。还是同样参数,LNA增益20 dB,后面接10 dB衰减器,系统NF从2 dB只恶化到约2.2 dB。因为LNA已经把信号放大了20 dB,后面衰减器贡献的噪声被LNA的高增益压制住了。
所以看到芯片接收链路拓扑时,先搞清楚衰减器是在LNA前面还是后面。低噪声相控阵接收机里,衰减器通常放在LNA之后;如果必须放在前面,就要严格控制衰减值,并且每一分贝衰减都要算进NF预算里。
发射链路的取舍反过来。衰减器放在功放之前,可以用于驱动功率均衡和预失真;放在功放之后虽然也能控功率,但会浪费宝贵的发射功率,而且大功率衰减器损耗发热严重。多数波束成形芯片的发射链路会把衰减器放在PA输入侧,这样控制幅度不会牺牲太多EIRP。
4.4 产线校准流程
衰减值从理论到装机,最终是靠着产线校准落地的。完整流程大致如下:
- 用矢量网络分析仪测量每个通道在不同衰减码下的S21,记录幅度和相位。
- 建立衰减码与实测衰减量的对应关系,查找每个衰减码的真实偏差。
- 将“目标衰减值”插值到“实际衰减码”上,生成偏移修正表。
- 对每个衰减状态下的插入相位做二次修正,补偿给移相器。
- 在高低温环境抽测,确认校准表在温度范围内仍然有效。
- 把校准表写入芯片EEPROM或系统Flash,供开机自校准调用。
这一步花的时间往往比算衰减值本身多得多。但产品量产之后,方向图能不能稳定满足指标,靠的就是这张表。
5. 从示例到工程:几个值得记住的经验
5.1 衰减器不是用来省功耗的
有些工程师会把衰减器当成功率控制旋钮用,想着发射链路里把边缘通道衰减大一点,PA是不是就省电了。并不会。衰减器消耗的是信号功率,不是直流功耗。PA的静态偏置不会因为你衰减了输入信号就降下来,真正降低发射功耗的方法是降低PA漏极电压或关断部分通道。衰减器在这里的价值是“信号形态调整”,不是“节能工具”。
5.2 公共衰减量不影响方向图
前面公式里归一化到最大权重为1,最大通道衰减为0。但实际系统里经常需要所有通道统一衰减一点,比如接收链路怕信号过载、发射链路怕PA过驱动。
方向图形状只取决于通道之间的相对幅度。把每个通道的衰减值同时加上同一个常数C,相当于所有通道幅度等比例缩小,主瓣旁瓣比例完全不变,变化的只有系统增益和NF。所以看到芯片里有“公共增益控制”或者“总衰减”寄存器时,可以放心用它,不影响波束。
5.3 大扫描角下的幅度锥削会“打折”
法向波束下设计好的低副瓣加权,在波束扫描到±45°甚至±60°时会发生变化。原因不在于衰减器本身,而在于阵列投影口径缩短、单元方向图和互耦的影响变大。
扫描角增大时,每个单元看到的有效间距变成d·cosθ,阵因子的栅瓣条件和副瓣表现都会变。实际工程里,衰减器的幅度分布常常按法向设计,扫描时主要靠相位修正,但如果天线单元耦合强烈,扫描方向图还会出现明显的幅度/相位随角度变化。这时候要么用全波仿真提取带互耦的单元方向图,再做一次系统级校准;要么接受扫描后副瓣有一定恶化,把指标余量留足。
5.4 算完衰减值之后最容易被忽略的一步
算完一组衰减值,先别急着烧录。把相位和衰减看成一对组合状态来验证。
我曾经遇到过一次方向图副瓣不对称的问题,查了半天衰减寄存器都是对的,最后发现是移相器的量化状态和衰减器状态之间的相位耦合没有补偿。衰减器改了3 dB,移相器实际相位偏了5°,两个通道一叠加,波束和副瓣全乱套了。所以验证衰减值时,不要只看“幅度对不对”,要把每个通道的S21完整测下来,幅度相位一起看。
衰减值计算这件事,公式三分钟能列完,真正吃时间的永远是量化误差、温度漂移和系统校准。我的习惯是:第一版寄存器值用理论权重算,第二版用暗室实测数据修正,第三版放进高低温环境里复测。等这套流程跑顺了,相控阵天线的波束质量才算是真正握在了手里。