☰
FDOA无源定位:信号模型、定位原理与频差估计工程实践
2026/10/6 13:05:26 网站建设 项目流程

做无源定位的都知道,TDOA是家常便饭,FDOA却是不少人绕了远路才弄明白的东西。我第一次认真推FDOA信号模型,是在一次机载平台仿真里:两个接收站都在动,目标辐射源也在动,3kHz的频差里埋着定位信息,正负号稍一疏忽,解算出的目标位置直接偏出几十公里。这篇继续“无源定位入门”系列,把FDOA的信号模型和原理一次说透——它测的到底是什么,为什么光靠频率差也能算出位置,以及工程上怎么把频差从采样数据里可靠地抠出来。

很多资料一上来就甩公式,却没有解释公式背后的物理图像。我的建议是先忘掉矩阵、忘掉最小二乘,回到“多普勒效应”这个直觉上:目标相对接收站有径向运动,接收到的载波频率就会偏移。FDOA就是把两个站的接收频率放在一起对比,频率差里含着“目标相对于两个站径向速度之差”的信息,而这个差异又和目标所处的空间位置强相关。说得更直白一点:频率差是结果,几何位置才是原因。明白了这条因果链,整个FDOA原理就立住了一半。

1. 为什么要做FDOA:它解决的是哪类定位问题

1.1 无源定位的几种观测量对比

无源定位的本质,是“不发射信号、只被动接收”的情况下,从接收信号里提取目标位置信息。主流观测量就那么几类:信号的到达时间(TOA)、到达时间差(TDOA)、到达角度(AOA)、到达频率差(FDOA),以及把它们混着用的联合定位。

观测量测量对象定位几何形式典型精度影响因素
TOA信号单程传播时间圆(球)时间同步、带宽
TDOA同一信号到两个站的时间差双曲线(面)站间时间同步
AOA信号到达方向直线(射线)阵列孔径、多径
FDOA同一信号到两个站的频率差等频差曲线(面)频率稳定度、相参积累时间

TDOA已经是大多数无源系统的标配,因为原理直观、实现链路成熟。但TDOA有一个绕不开的短板:它对站间时间同步要求很高,纳秒级同步误差对应米级定位误差,工程上要花很大力气做时频同步。而FDOA测的是频率差,对“时间同步”的敏感度天然低于TDOA,反而对“频率基准的一致性”更敏感。

更关键的是应用场景不同。若目标辐射源是地面固定雷达,两个接收平台都在运动,FDOA也能形成有效观测——这正是“运动平台对静止目标测频率差”的经典场景。换句话说,TDOA更多地利用信号“到达时刻”的差异,FDOA更多地利用“到达频率”的差异。目标不动、接收平台动;目标运动、接收平台不动;两者都动——FDOA都有信息可挖。

1.2 FDOA和“频率差”的直觉

多普勒效应的日常例子特别好懂:火车鸣笛驶近时音调变高,驶远时音调变低。电磁波也一样,只是频移量相对载频通常很小。设载频为f_c,目标相对接收站的径向速度为v_r,光速为c,那么多普勒频移近似为

f_d = f_c × (v_r / c)

举个例子,机载平台速度200m/s,载频10GHz,径向速度分量约100m/s,产生的多普勒频移大约3.3kHz。这个频移量在射频接收机里完全可测。

FDOA要的是“两个站的接收频率之差”。如果两个站相对目标的径向速度不一样,它们各自收到的多普勒频移就不一样,连带着接收频率出现差值。为什么径向速度会不一样?因为两个站的空间位置不同,它们各自相对目标的几何关系不同。频率差因此成为目标位置的函数,这就是可定位性的来源。

直觉上还可以这样理解:站在两个不同位置的运动接收站,听到同一个“频率源”时,感知到的信号音高不同。把两个音高之差测准,就能反推声源在哪个方向、距离多大。FDOA的原理不复杂,复杂的是如何把频率差测准,以及如何从频率差反解位置。

2. 信号模型:从连续波开始建立数学表达

2.1 接收信号的完整描述

正常的工程化做法,是先建立一个足够完善的信号模型,再根据模型的复杂程度决定算法深度。太粗的模型抓不住真实约束,太细的模型工程上又跑不动。这里先给出一个兼顾物理直观和可实现性的模型。

假设目标辐射源发射一个单载频连续波信号

s_t(t) = A_t × exp(j×2π×f_c×t + j×φ_0)

其中f_c是载频,A_t是幅度,φ_0是初始相位。接收站i收到的信号为

s_i(t) = A_i × exp(j×2π×f_c×(t - τ_i(t)) + j×φ_0) + n_i(t)

τ_i(t)是t时刻目标信号到接收站i的传播时延,n_i(t)是加性噪声。关键在于τ_i(t)是随时间变化的,因为目标或接收站一直在运动。

设目标位置p_t(t),接收站位置p_i(t),传播距离为d_i(t)=||p_t(t)-p_i(t)||,则τ_i(t)=d_i(t)/c。这个式子看起来简单,但把它代入相位项后,相位是时间的复合函数。

这里要特别强调一个和“电力电子小信号模型”神似的思想:真实系统的瞬时频率一直在变化,但我们可以把变化拆成“工作点附近的缓变项”和“小偏差项”。电力电子里把小信号扰动叠加在静态工作点上做线性化分析;FDOA信号模型也一样,把距离d_i(t)在观测时刻附近做泰勒展开,保留到一次项,必要时保留二次项。这种处理不是为了数学好看,而是为了明确告诉我们:哪些信息是定位要用的“信号”,哪些只是干扰。

2.2 距离的泰勒展开与瞬时频率

在t=t_0附近对d_i(t)做展开:

d_i(t) ≈ d_i(t_0) + r_i(t_0)(t - t_0) + 0.5×a_i(t_0)(t - t_0)^2

其中r_i(t_0)是t_0时刻距离变化率(即径向速度),a_i(t_0)是径向加速度。代入时延,接收信号相位为

φ_i(t) = 2πf_c×(t - d_i(t)/c) + φ_0

对相位求导,得到瞬时频率

f_i(t) = (1/2π)×dφ_i(t)/dt = f_c×(1 - (1/c)×r_i(t))

这个式子中的负号很关键:当目标远离接收站时,r_i>0,接收频率低于f_c;当目标接近时,r_i<0,接收频率高于f_c。正负号定错,整个定位解算就会崩塌。

进一步把r_i(t)展开成速度的投影形式。设目标速度v_t,接收站速度v_i,从接收站i指向目标的单位矢量为u_i,则有

r_i(t) = (v_t - v_i)·u_i

这个投影表达式是FDOA信号模型的心脏。它告诉我们:距离变化率不仅取决于目标速度,还取决于接收站速度,而且必须投影到“接收站到目标”的方向上。目标速度相同,从不同位置看过去的径向分量不同,于是不同站获得不同的频移。

2.3 两个站之间的频率差

设接收站i和j,分别有

f_i ≈ f_c×(1 - (1/c)×(v_t - v_i)·u_i)

f_j ≈ f_c×(1 - (1/c)×(v_t - v_j)·u_j)

两式相减,得到FDOA:

Δf_ij = f_i - f_j ≈ (f_c/c)×[(v_i - v_t)·u_i - (v_j - v_t)·u_j]

整理成更易于分析的形式:

Δf_ij = (f_c/c)×[(v_i·u_i - v_j·u_j) + v_t·(u_j - u_i)]

括号里第一项只和接收站速度、位置有关;第二项和目标速度有关。工程上这一分解非常有用:如果目标基本静止,第二项可以忽略,FDOA方程直接变成“目标位置的函数”,定位干净利落;如果目标运动速度不可忽略,则需要把目标速度也作为未知量处理,这是FDOA定位中最常见的困难。

这个模型的近似程度也要心里有数。一次项模型适合观测时间较短、目标无大幅度机动的场景。如果观测时间长达数秒且目标有加速度,距离的二次项会在相位里产生“线性调频”效应,瞬时频率随时间线性变化,导致CAF主瓣展宽。后面第5章会专门讲这类坑。

3. 定位原理与几何解释

3.1 等频差曲线与曲面

从方程Δf_ij = (f_c/c)×[(v_i·u_i - v_j·u_j) + v_t·(u_j - u_i)]可以看出,给定两站的位置、速度,以及目标的运动状态,每一个目标位置唯一对应一个频差。反过来,一个频差测量值对应的是平面上的一条曲线,或三维空间中的一个曲面——这就是FDOA的等值线(面)。

二维场景比较直观:假设两个接收站速度方向相反,目标静止,那么等频差曲线通常是两条对称的曲线,围绕两个接收站之间的连线展开。当目标位置远离两站连线时,u_i和u_j的方向差异变小,频差也趋近于零;目标越靠近某个站,或者站速投影差异越大,频差越明显。

所以,单对FDOA测量只能把目标限制在一条曲线上,无法给出唯一位置。要得到目标坐标,至少需要两组独立的FDOA测量,也就是至少三个接收站,形成两条等频差曲线的交点。三维场景更加苛刻:单条FDOA等值面是三维空间中的一张曲面,两条曲面相交得到一条曲线,三条曲面相交才得到离散点。

3.2 目标速度与站速的耦合问题

上面还隐含了一个大前提:目标速度v_t已知或者可忽略。如果目标速度未知,每个FDOA方程里都包含v_t这个三维向量,未知数数量急剧增加。三个站给出两个独立的FDOA方程,再加上目标位置(x,y,z)和目标速度(vx,vy,vz),方程数量远小于未知数,解不出来。

工程上有几条常用出路。第一,约束目标运动模型,比如地面匀速直线运动,速度方向可参数化;第二,联合TDOA一起解算,时间差提供位置约束,频率差提供速度约束,两者互补;第三,增加观测站数量或延长观测时间,利用多个时刻的FDOA测量联合估计位置和速度。做了多年定位算法,我的体会是:FDOA很少单独使用,最稳的组合是TDOA+FDOA联合解算,一个看“距离差”,一个看“速度差”,信息互补性非常好。

3.3 一个简单的仿真算例

用一组直观参数演示定位原理。设两个接收站位于二维平面:

  • 站1位置(0,0),速度(0,100)m/s
  • 站2位置(10000,0),速度(0,-100)m/s
  • 载频f_c=10GHz
  • 目标真实位置(5000,5000),静止

目标到站1的单位矢量u1≈(0.707,0.707),到站2的单位矢量u2≈(-0.707,0.707)。代入FDOA公式:

Δf_12 = (f_c/c)×(v1·u1 - v2·u2)

v1·u1 = 100×0.707 = 70.7 m/s

v2·u2 = (-100)×0.707 = -70.7 m/s

两项相减得到141.4m/s,乘以f_c/c≈33.3Hz/(m/s),FDOA≈4711Hz。

把这个频差代回方程,反解目标位置,得到的等频差曲线就是一条经过(5000,5000)的弧线。再加入第三个站或另一时刻的FDOA测量,两条曲线交汇,目标位置就唯一了。实际仿真中的Python脚本大致如下:

import numpy as np # 网格搜索等频差曲线 x = np.linspace(-2000, 12000, 200) y = np.linspace(-2000, 12000, 200) X, Y = np.meshgrid(x, y) u1 = np.stack([X / np.sqrt(X**2 + Y**2), Y / np.sqrt(X**2 + Y**2)], axis=-1) u2 = np.stack([(X - 10000) / np.sqrt((X-10000)**2 + Y**2), Y / np.sqrt((X-10000)**2 + Y**2)], axis=-1) v1 = np.array([0, 100]) v2 = np.array([0, -100]) fdoa = 33.3 * (u1 @ v1 - u2 @ v2) # 再取fdoa≈4711Hz的等值线

看到这里你应该能明白:FDOA定位原理本身不玄乎,就是一个“频率差-位置”映射。工程复杂度主要在频差估计的精度和系统误差的校准上。

4. 从采样数据中估计FDOA:互模糊函数

4.1 为什么不把两路信号分别测频再相减

初学者最容易想到的方法:两个通道各做一次FFT,找谱峰对应的频率,然后相减得到FDOA。这个方法在信号很干净、频差很大的情况下能用,但工程精度往往不够。原因有两层:

第一,分开测频时,每路信号的测频误差相互独立,最终FDOA的误差是两个误差的平方和开根号,比单路测频误差还大。FFT谱峰频率分辨率受观测时间限制,约1/T Hz,T=0.1s时分辨率仅10Hz,而FDOA定位常常需要亚赫兹甚至更小误差,直接FFT根本达不到。

第二,两路信号在相位上存在强相关性,分别处理把这个相关性白白丢掉了。合理做法是把两路信号做“联合处理”,利用两路信号来自同一辐射源的先验信息,把时间差和频率差放到同一个二维搜索空间里找峰值,这就是互模糊函数(Cross Ambiguity Function, CAF)的基本思想。

4.2 CAF的定义与计算

互模糊函数定义为

χ(τ, f) = ∫ s_1(t) × s_2*(t - τ) × exp(-j×2π×f×t) dt

其中s_1(t)和s_2(t)分别是两路接收信号,s_2*是s_2的共轭,τ是时延变量,f是频差变量。从表达式看,CAF把“时间对齐”和“频率对齐”放在同一个二维搜索里完成。当(τ, f)恰好等于真实的时间差和频率差时,两路信号对齐并且相位补偿,积分模值出现峰值。

计算CAF的典型步骤如下:

  1. 对两路信号截取相同时间长度的数据段,做去直流和带通滤波;
  2. 设定时延搜索范围和频差搜索范围;
  3. 对每个时延候选值,做一次“共轭相乘+FFT”,用FFT一次性算出所有频差对应的积分值;
  4. 得到二维模糊函数谱,搜索峰值;
  5. 峰值位置(tau_peak, f_peak)就是TDOA和FDOA的粗估计;
  6. 如果需要更高精度,在峰值附近做插值细化。

第三步是计算核心。工程实现时,每个时延候选值对应一次点乘和一次FFT,计算量等于时延搜索点数乘以FFT长度。如果时延搜索范围是100个样本,FFT长度4096点,一次CAF约等于100次4096点FFT,对现代处理器来说完全可接受。实测中,FPGA或GPU并行化后,可在毫秒级完成一次CAF计算。

4.3 工程参数怎么选

观测时间T直接决定频差分辨率,约1/T Hz。想要0.1Hz的频差精度,观测时间至少要有10s,但长时间观测又会引入加速度效应和信号截获的不连续性,所以需要权衡。

采样率要根据信号带宽定,一般取信号带宽的2~5倍。载频本身可以在前端混频后降到中频或基带,采样率不一定要覆盖载频。以X波段10GHz载频、20MHz带宽信号为例,射频前端下变频到中频,再以50MHz采样率采集,后续所有处理都在数字域完成。

窗函数选择也影响峰值质量。直接截断会造成频谱泄漏,CAF峰值主瓣变宽、旁瓣抬高。我做仿真时习惯先用汉明窗或布莱克曼窗抑制旁瓣,但加窗也有代价:主瓣会略微变宽,降低频率分辨率。信号比较干净时甚至可以不加窗,直接矩形截断,以获得更窄的主瓣。

频差搜索范围需要提前估算。机载平台之间相对速度按300m/s估计,载频10GHz,FDOA变化范围约±20kHz。搜索范围太小会漏峰,太大会浪费时间。先用粗搜索锁定大致区域,再在峰值附近做细化搜索,是比较通用的做法。

4.4 峰值插值与细化技术

粗搜索得到的频差分辨率只有1/T Hz,对定位精度往往不够,这时候需要插值。最常用的是抛物线插值,取峰值点以及左右相邻两个点,拟合一条抛物线,顶点位置就是频差的精细估计。

设峰值位置为f0,相邻点分别为f0-Δf和f0+Δf,对应的CAF模值为y_m、y_0、y_p,则峰值的修正量为

δ = (Δf/2)×(y_m - y_p)/(y_m - 2y_0 + y_p)

实际的频差估计为f0 + δ。这个修正量通常只有零点几个频率分辨率,但效果显著。我在仿真中对比过,观测时间1s、频率分辨率1Hz时,抛物线插值后频差估计标准差可以从0.3Hz左右降到0.05Hz量级。

更复杂的情况可以用Chirp-Z变换(CZT)在某些频段做局部细化,相当于在峰值附近做“局部放大”,精度比抛物线插值更高,但计算量也更大。工程上先做CAF粗搜,再做抛物线插值,最后用CZT精细细化,是一条成熟稳妥的技术路径。

5. 常见问题与排错记录

5.1 频差估计总差一个固定偏差

这种问题我踩过不止一次,根因通常是两个通道的射频前端本振不同频。FDOA测的是两路信号频率之差,如果两个接收通道各自的本振有频率偏差,这个偏差会直接叠加到测量值上。解决方法是在系统设计时尽量让两路共用一个本振,或者在处理环节注入一个已知频率的校准信号,用校准信号的实际频差修正测量值。

5.2 频谱泄漏导致CAF峰值展宽

信号截断长度有限,频谱势必泄漏。尤其当信号带宽很窄、接近单频时,矩形窗截断会产生明显的主瓣展宽和旁瓣,CAF峰值变得“胖乎乎”的,定位精度下降。排查时先看CAF谱的旁瓣水平,如果主瓣旁边有显著的周期性旁瓣,优先考虑换窗函数。另外,数据段边界不连续时先加窗再处理,能有效压低旁瓣。

5.3 目标机动导致FDOA随时间变化

目标一旦有加速度,瞬时频率就会随时间线性变化,相当于信号变成了线性调频信号,CAF结果不只是单峰,而是沿频率方向展宽,峰值幅度下降。处理办法有三种:一是缩短观测时间,让加速度效应小于频率分辨率;二是做分段CAF,把长时间数据切分成多段短时CAF,再对频率估计结果做多项式拟合;三是用更高阶的模糊函数,直接搜索加速度参数。

5.4 两路信号幅度差异大

实际场景中两个接收站到目标的距离可能差异很大,导致两路信号幅度差几十倍。CAF本身对幅度有一定鲁棒性,但大幅度差会降低有效积分信噪比。工程上可以先对各通道做自动增益控制,或对CAF结果做幅度归一化。需要注意归一化方式会影响噪声底,峰值检测门限要以实际噪声底来设定。

5.5 多普勒模糊问题

当信号本身是脉冲串时,脉冲重复频率会在频谱上产生梳状谱,CAF可能出现多个等间隔的峰,峰值所在位置对应的是模糊的频差。解决办法是利用先验的脉冲重复频率信息,把候选峰做多假设校验,结合定位连续性排除模糊峰。这个在雷达辐射源定位中尤其常见。

现象可能原因排查思路
CAF峰值宽、旁瓣高未加窗或信号带宽过窄换窗函数,检查截断长度
频差固定偏差两路本振频率不一致共用本振,注入校准信号
FDOA随时间漂移目标加速度或平台机动缩短观测时间,分段估计
多个等间隔CAF峰脉冲信号重复频率模糊用重复频率先验排除
峰值被噪声淹没积累时间不足或信噪比低加长观测时间,提高积累增益

6. 实操建议与个人体会

最后分享几条从项目里磨出来的经验。

第一,做FDOA算法不要只盯着“频率测量”,要一开始就把系统误差模型建起来。两路本振频偏、平台位置速度误差、传播路径色散,这些系统误差比随机噪声更容易毁掉定位结果。算法指标写得再漂亮,系统校准做不好,外场照样跑偏。

第二,正负号约定一定要白纸黑字写清楚。我见过不止一个项目因为距离变化率符号不统一,导致FDOA公式翻车。项目初期就把坐标定义、速度方向、单位矢量方向固定下来,并写一段自检代码,用已知场景验证正负号。

第三,联合TDOA和FDOA比单一观测量可靠得多。时间差对位置敏感,频率差对速度敏感,两者联合求解时,定位几何的覆盖范围更广,对站址误差的容忍度也更高。很多实际系统最后跑通,靠的不是某个单一技术多么精巧,而是多个观测量的信息互补。

FDOA入门最难的不是数学,而是把“频率差-位置”的物理因果链从公式里抽出来。等你能在脑子里画出等频差曲线,看到一组频差就能大致判断目标在哪个方向,基本功就算真正过关了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询