
无源测向这个词刚入行的朋友听到容易发怵觉得是雷达、电子对抗领域里高深莫测的东西。其实把外壳剥掉它的核心命题朴素得很我不主动发射任何信号只靠“听”怎么判断对面那个东西在哪个方向。振幅法测向就是这套“听声辨位”功夫里最经典、最直观、工程上落地最早的一支。它不依赖复杂的相位比对也不要求多通道严格同步靠的就是一个物理事实——天线是有方向性的信号从不同角度进来接收到的幅度不一样把这个幅度差异读出来方向就出来了。这套东西适合谁看做无线电监测的、搞频谱管理的、玩软件无线电的爱好者、电子类专业的同学做课设甚至是对“不用发射也能定位”这件事好奇的工程师都能从里面拿到能直接上手的东西。我下面会把振幅法测向的选型逻辑、天线方向图背后的数学、实操中的参数计算、以及一堆只有真正搭过台架才会遇到的坑全部摊开讲。看完你至少能做到拿到一副定向天线和一台接收机知道怎么摆、怎么算、怎么校准以及为什么你测出来的角度总是差那么几度。1. 振幅法测向的整体设计与思路拆解1.1 为什么先讲振幅法三种测向路线的取舍无源测向主流路线大致三条振幅法、相位法、时差法。相位法精度高但要求多通道幅相一致、通道间相位误差控制在几度以内射频前端成本直接翻倍时差法需要宽带高采样率同步采集对时钟抖动和采样同步要求极苛刻适合宽带瞬时信号。振幅法在这三者里是“门槛最低、鲁棒性最好、但精度最依赖校准”的那一个。我选振幅法作为切入点理由很实在它把测向问题从“多通道协同”降维成了“单通道幅度测量天线方向图已知”。你只需要一副方向图可复现的定向天线、一台能读幅度的接收机、一个转台或者人工转动机构就能把整个链路跑通。对于预算有限、通道数受限、或者只是想先把原理吃透的场景这是最划算的路径。代价也要说清楚。振幅法的角度分辨率直接受天线波束宽度制约波束越宽幅度随角度变化越平缓同样的幅度测量误差换算成角度误差就越大。所以它天生不适合“高精度”场合但在“快速判向、粗定位、引导窄带精测”这类任务里它是性价比之王。很多实际系统就是先用振幅法粗测一个扇区再把相位法或其它精测手段引到那个扇区里去分工明确。1.2 振幅法测向的两种典型架构振幅法内部还分两条常见路子选哪条决定了你后面的硬件和算法形态。第一条是最大信号法也叫波瓣扫描法。用一副窄波束定向天线机械或电控地转动记录接收幅度随角度的变化曲线幅度最大值对应的角度就是来波方向。它的优点是实现极简一副天线一个接收机就够缺点是必须“扫”测向需要时间对短促信号或者跳频信号不友好而且最大值附近幅度曲线平坦峰值定位对噪声敏感。第二条是等信号法也叫比幅法。用两副或多副方向图相同、指向略微错开的天线同时接收同一信号比较两路幅度。当来波正好在两波束交叠的等信号轴方向时两路幅度相等偏离时一路强一路弱强弱关系直接给出偏转方向幅度差大小给出偏角。它的优点是无需机械扫描、响应快、对短信号友好缺点是需要两路幅度通道且两副天线的方向图一致性、通道增益一致性必须校准到位否则“等信号轴”会漂。我个人的经验是如果你手上只有单通道接收机、信号是连续波或者持续时间足够长走最大信号法最省事如果你要做实时判向、信号很短、或者想做成固态无机械转动的设备比幅法是更合理的方向。下面两条都会讲但重点放在比幅法上因为它的工程细节更多、坑也更多学会了它最大信号法基本是降维打击。1.3 核心指标先摆出来精度、灵敏度、分辨率动手之前先把三个指标想明白否则后面调参会很盲目。测向精度指测得角度与真实角度的偏差通常用均方根误差衡量。振幅法的精度天花板由波束宽度和信噪比共同决定经验上单次测量的角度标准差大致与“波束宽度/信噪比相关的斜率因子”成正比波束越窄、信噪比越高精度越好。测向灵敏度指能触发有效测向的最小输入信号功率它取决于接收机噪底和天线增益。注意灵敏度不是越高越好过高会把噪声也当成信号导致虚警。角度分辨率指能区分两个相邻来波的最小角度间隔它主要由波束宽度决定一般要求两目标夹角大于一个波束宽度才可能分开。这三个指标互相牵制波束做窄能提精度和分辨率但会牺牲搜索空域覆盖和灵敏度设计时必须在任务需求上做平衡。2. 天线方向图与幅度—角度映射的核心细节2.1 方向图就是一张“角度到幅度”的查找表振幅法测向的本质是把“测角度”转化成“查表”。天线方向图描述了增益随来波方向的变化数学上写成 G(θ)θ 是来波方向与天线主瓣指向的夹角。接收到的信号幅度 A(θ) 正比于 sqrt(G(θ)) 乘以入射场强再乘上接收链路增益。只要 G(θ) 是已知且稳定的测到 A 就能反解 θ。这里有个关键认知方向图不是理想的一条光滑曲线它有主瓣、副瓣、零点。主瓣内 G(θ) 单调下降这一段才是可用的测向区间一旦来波落到副瓣区幅度可能和主瓣某个角度“撞值”出现角度模糊。所以振幅法测向的第一条铁律是必须保证来波落在主瓣覆盖范围内副瓣区要么被物理遮挡要么在算法上被排除。很多新手测出来的角度乱跳八成是把副瓣响应当成了主瓣。2.2 波束宽度怎么算为什么它决定一切以最常见的均匀口径或者阵列近似半功率波束宽度可以用一个经典近似式估算θ_3dB ≈ k * λ / D其中 λ 是工作波长D 是天线口径尺寸对阵列为阵面长度k 是口径效率相关的系数均匀照射口径约取 0.886弧度制换算后常用 51°·λ/D 这个工程近似。举个具体数工作在 1 GHzλ0.3 m口径 D0.6 m则 θ_3dB ≈ 51°×0.3/0.6 ≈ 25.5°。这个数直接告诉你这套天线做主瓣测向可用单调区间大概就是主瓣那二十几度超出就得靠转台或者多波束覆盖。波束宽度和测向精度的关系可以用一个粗略的灵敏度系数描述在主瓣线性段幅度随角度的变化率约为每度几个百分点到十几个百分点取决于波束形状。假设某天线在主瓣中心附近幅度斜率是 2%/度接收机幅度测量精度含噪声和量化是 1%那么单次角度误差量级就是 0.5°。这个估算方法很土但能让你在选天线和选接收机之前就心里有数不至于做完才发现精度差一个数量级。2.3 比幅法里的“等信号轴”与交叉点比幅法用两副天线指向分别偏开等信号轴 ±δ 角。两副天线的方向图在等信号轴处相交交点处两路幅度相等。来波偏离等信号轴 φ 角时两路幅度差 ΔA 近似正比于 φ 乘以该处的方向图斜率。写成工程近似φ ≈ ΔA / (2 * S)S 是单副天线在交叉点附近的幅度斜率单位 dB/度或线性比例/度系数 2 来自两路一增一减。这个式子说明两件事第一斜率 S 越大波束越窄同样的幅度差对应越小的角度精度越高第二δ 的选取要保证在关心的角度范围内两路都还在主瓣内δ 太大两路都跑到副瓣δ 太小则交叉点附近斜率不够、灵敏度低。工程上常取 δ 约为波束宽度的四分之一到三分之一让交叉点落在两主瓣都较陡的区域。2.4 幅度测量为什么不能用“瞬时峰值”这是实操里最容易被忽略的细节。接收机读到的幅度如果是瞬时采样值噪声会让它剧烈抖动单次读数根本没法用。正确做法是对一段时间的信号做包络检波或者功率积分得到平均功率再开方。积分时间的选择有讲究太短噪声抑制不够太长如果信号本身有调制或者目标在动幅度会被“平均掉”斜率信息失真。经验上积分时间取信号符号周期的若干倍或者取几十毫秒量级具体要看信号带宽和平台运动速度。我一般会先抓一段原始 IQ离线看幅度随时间的稳定度再定积分窗长这一步偷懒后面全是误差。3. 实操过程与核心环节实现3.1 硬件链路搭建与增益预算一套最小可用的比幅法测向链路是这样的两副参数一致的定向天线间距尽量小减小空间相位差对幅度比较的干扰虽然振幅法不测相位但间距过大会让两路看到的信道不一致各自接低噪放再进双通道接收机或者通过射频开关分时进单通道接收机。分时方案要注意开关切换带来的增益不一致必须做通道校准。增益预算我习惯从灵敏度倒推。假设接收机噪底折算到输入端是 -110 dBm/Hz 量级信号带宽 10 kHz则噪底约 -70 dBm。要求测向时信噪比不低于 10 dB则最小可测信号约 -60 dBm。天线增益 10 dBi低噪放增益 20 dB、噪声系数 2 dB链路算下来输入信号只要 -90 dBm 左右就能满足。这个预算不是让你照抄而是提醒你每一级增益和噪声系数都要写进表格别凭感觉。下面这张表是我常用的记录格式。环节增益(dB)噪声系数(dB)备注天线100.5含馈线损耗已折算低噪放202.0靠近天线安装射频开关-11.0分时方案必算接收机308.0含中频与ADC级联噪声系数用 Friis 公式逐级算前级增益越高后级噪声贡献越小所以低噪放一定要尽量靠前这是老生常谈但每次搭台都能看到有人把放大器放在长电缆后面白白损失灵敏度。3.2 通道一致性校准比幅法的命门比幅法测的是两路幅度之比任何一路的额外增益都会直接变成角度偏差。校准分两步。第一步是电校准用信号源通过功分器等幅馈入两路记录两路读数差把这个差值作为修正因子存起来。注意要在整个工作频段内多点校准因为放大器和滤波器的幅频响应不平坦单点校准在别的频点会失效。我一般按 10 MHz 间隔打点做成频率—修正因子表实测时插值使用。第二步是场校准把两天线装到实际支架上在微波暗室或者开阔场用标准源从若干已知角度照射记录每个角度下两路幅度差拟合出“幅度差—角度”曲线。这条曲线才是真正用于测向的查找表。场校准能同时把天线方向图不一致、支架反射、电缆相位差对幅度比较影响小但会改变耦合一并吸收进去。没有暗室条件的话找一个空旷场地、把源架在远场距离大于 2D²/λ上用转台或者人工按角度打点也能得到可用的曲线只是精度差一些。注意校准用的源功率要落在接收机线性区绝不能进压缩。一旦某一路压缩幅度差就失真校准曲线整个作废。校准时我习惯在接收机前端加衰减器宁可牺牲灵敏度也要保证线性。3.3 角度解算的完整流程拿到两路平均功率 P1、P2 后解算流程如下。先算幅度差用 dB 形式最直观ΔP_dB 10*log10(P1) - 10*log10(P2)然后查校准表。校准表是离散角度点上的 ΔP_dB 值实际测量值落在两点之间就线性插值。这里有个细节ΔP_dB 随角度不是严格线性的交叉点附近近似线性越往两边越弯所以插值区间不能取太宽校准打点间隔建议不大于波束宽度的十分之一。插值得到偏角 φ 后结合等信号轴的指向角 θ0来波方向就是 θ0 φ符号由 ΔP 的正负决定。如果系统有多个比幅对比如四副天线组成两组正交比幅对可以分别解出两个方向分量再做角度合成覆盖 360° 空域。多对配置下还要处理“哪一对的信号最强”这个选择逻辑通常选两路功率和最大的那一对因为那对天线最正对来波信噪比最好。3.4 一个可复现的离线验证脚本台架搭好后我强烈建议先用离线数据把解算链路跑通再上实时。下面这段 Python 是我常用的验证骨架输入是两路功率序列和校准表输出角度估计。import numpy as np # 校准表角度(度) - 幅度差(dB)假设已测得 cal_angle np.array([-30, -20, -10, 0, 10, 20, 30]) cal_delta np.array([-6.2, -4.1, -2.0, 0.0, 2.0, 4.1, 6.2]) def estimate_angle(p1, p2, theta00.0): delta_db 10*np.log10(p1) - 10*np.log10(p2) # 限制在校准范围内防止外推 delta_db np.clip(delta_db, cal_delta.min(), cal_delta.max()) phi np.interp(delta_db, cal_delta, cal_angle) return theta0 phi # 模拟来波偏 12 度两路功率 p1, p2 1.0, 0.55 print(estimate_angle(p1, p2))这段代码故意写得很朴素就是为了让你看清“查表插值”这个核心。实际系统里 p1、p2 是积分后的平均功率theta0 来自天线安装方位cal 表来自场校准。跑通它你就有了一个可以反复迭代的基准后面加滤波、加多对融合都在这个骨架上长。3.5 实时处理中的平滑与野值剔除实时测向最怕角度跳变。原始解算结果里混着噪声引起的野值直接送显示会像抽风一样。我的做法是两级处理先用中值滤波去掉明显的野值窗口取 5 点再用一阶低通或者卡尔曼滤波做平滑。中值滤波对付“孤立尖刺”特别有效低通负责压随机抖动。参数上低通系数不能太小否则目标真机动时角度跟不上形成滞后我一般根据目标最大角速度反推时间常数保证滞后不超过允许误差。提示平滑之前一定要确认野值是真野值还是真机动。有次我把目标快速转向误判成野值滤掉了结果跟踪丢失。判断依据是看连续多点是否同向变化单点跳变才当中值滤波处理。4. 常见问题与排查技巧实录4.1 角度系统性偏移先怀疑校准再怀疑安装测出来的角度整体偏一个固定值这是最常见的现象。排查顺序我固定为先看电校准修正因子是否在当前频点生效再看场校准表是否用了错误的天线安装方位最后看等信号轴 θ0 有没有算错。系统性偏移几乎不会是随机噪声造成的一定是某个“常量”错了。我遇到过最隐蔽的一次是两副天线的馈线长度差了半个波长虽然振幅法不比相位但馈线损耗随频率波动导致两路幅频响应不一致在某个频点偏了 3 度换频点就正常最后靠全频段扫频校准才定位到。4.2 近距离目标测不准远场条件没满足振幅法依赖方向图而方向图是在远场定义的。如果目标距离太近落在近场区天线口面上的幅度和相位分布都变了实测方向图和你校准用的方向图对不上角度自然错。远场判据是距离大于 2D²/λD 是口径、λ 是波长。举个例子D0.6 m、λ0.3 m远场距离约 2.4 m看着不远但如果你的天线口径更大或者频率更高这个距离会迅速变大。近距离测向偏差大时先算一下远场距离别急着改算法。4.3 多径反射导致的“假方向”城市或者室内环境信号经建筑物、金属面反射后从另一个方向进来振幅法分不清直达波和反射波会把反射波方向也报出来甚至反射波更强时直接报错方向。缓解手段有几个用窄波束天线压制非主瓣方向来的反射多对天线做一致性校验真实来波在各对上应满足几何一致性反射波往往对不上必要时结合极化信息反射常伴随极化旋转。这一条没有银弹只能靠现场环境和多手段交叉验证。4.4 常见问题速查表现象可能原因排查动作角度整体偏移固定值校准表频点不匹配、θ0 错误核对频点、复算安装方位角度随机跳动大积分时间过短、信噪比不足加长积分、检查前端增益近距离偏差大未满足远场条件计算 2D²/λ 并拉开距离某些角度报错方向副瓣响应或多径检查是否落在主瓣、换窄波束换频点精度骤降幅频响应不平坦全频段重新电校准两路功率同时饱和前端压缩加衰减、查线性区4.5 几条踩过坑才懂的经验第一校准比算法重要十倍。我见过太多人花大力气写解算算法结果校准表是随手打的几个点精度怎么也上不去。把校准做扎实哪怕用最朴素的查表插值结果都比花哨算法配烂校准强。第二天线一致性要实测不能信标称。同一批次两副天线方向图在副瓣和波束边缘的差异可能超出你的想象标称参数只保证主瓣大致一致。有条件就逐副实测方向图没条件至少实测交叉点附近的幅度差曲线。第三积分时间和信号特性要匹配。连续波好办调制信号要小心某些调制方式包络起伏大积分窗没对准会导致幅度估计有偏。我习惯先看信号的时域包络再定积分策略这一步花十分钟能省后面几小时的调试。第四留一路参考通道。如果条件允许加一路全向参考天线用“定向/全向”的幅度比代替“定向/定向”的比幅可以抵消发射功率起伏和信道衰落的共模影响对非合作信号特别有用。这个改动不大但鲁棒性提升明显。振幅法测向这套东西原理一层窗户纸工程细节却是一本厚账。真正决定成败的从来不是那个查表公式而是校准做没做透、线性区守没守住、远场条件满没满足这些“笨功夫”。我个人的体会是把这几个基础环节抠死振幅法在粗测向场景里能稳定输出到波束宽度的十分之一量级足够撑起大多数引导和监测任务反过来基础环节糊弄再高级的算法也救不回来。后面如果想继续往下走可以在这个骨架上叠加多波束融合或者和相位法做粗细结合那是另一段值得单独展开的路。