2. 信号处理数学基础:傅里叶变换、数字下变频、匹配滤波原理、多普勒效应

各位同学,欢迎来到第二章。说实话,这一章的内容是整个雷达信号处理的基石。你想想看,没有这些数学工具,我们连回波信号里藏着什么都看不出来。我个人习惯是,先把这些基础概念吃透,后面写代码、调板子才能心里有底。

2.1 傅里叶变换:从时域到频域的桥梁

傅里叶变换,说白了就是把一个信号从时间轴搬到频率轴。为什么我们要这么做?因为雷达回波里,目标的距离、速度信息都藏在频率里。时域上看,它只是一堆杂乱的波形;频域上一看,目标特征清清楚楚。

我在项目中遇到过一件事:有个同事死活调不出目标峰值,时域波形看着挺正常,但就是检测不到。我让他做个FFT看看,结果发现频谱上有个强干扰刚好压住了目标信号。嗯,这就是频域分析的价值。

核心公式(连续傅里叶变换):

X(f) = ∫ x(t) · e^(-j2πft) dt

实际嵌入式系统中,我们用的是离散傅里叶变换(DFT),以及它的快速实现——FFT。

离散傅里叶变换公式长这样:

X[k] = Σ x[n] · e^(-j2πkn/N)   (n=0 to N-1)

这里N是采样点数。你想想看,如果N=1024,直接算DFT要一百多万次复数乘法,太慢了。所以实际工程里,我们几乎只用FFT。我记得第一次在DSP上实现FFT时,看到计算时间从几十毫秒降到几百微秒,那种感觉,真爽。

工程小贴士:做FFT时,N最好取2的幂次方,比如256、512、1024。这样算法效率最高。我曾经为了省内存用N=500,结果FFT库不支持,自己手写了一个混合基算法,折腾了两天。后来学乖了,老老实实补零到512点。

2.2 数字下变频:把高频信号拉回基带

雷达接收到的信号,通常是几十MHz甚至GHz的高频信号。ADC采样后,数据率太高,DSP根本处理不过来。怎么办?数字下变频(DDC)就是干这个的。

DDC的核心思想很简单:把信号从高频搬移到零中频(基带)。具体分三步:

  1. 混频:乘以本振信号cos(ω₀t)和sin(ω₀t),得到I/Q两路
  2. 低通滤波:滤掉高频分量,保留基带信号
  3. 抽取:降低采样率,减轻后续处理负担

为什么需要I/Q两路?因为单路信号会丢失相位信息。雷达测距、测速都依赖相位,所以I/Q是标配。

数字下变频的数学表达:

I[n] = x[n] · cos(2πf₀n/fs)
Q[n] = x[n] · sin(2πf₀n/fs)

其中f₀是载频,fs是采样率。混频后,信号频谱被搬移到零频附近。

这里有个坑要注意:混频后的信号包含和频分量(2f₀)和差频分量(0附近)。低通滤波器的设计很关键。我曾经用了一个阶数太低的FIR滤波器,结果和频分量没滤干净,后面做FFT时出现了镜像假峰。嗯,那一次排查花了我整整一个下午。

避坑指南:DDC中的低通滤波器,通带要覆盖目标信号带宽,阻带衰减至少40dB以上。我建议用等波纹(Equiripple)设计,阶数控制在32-64之间,兼顾性能和资源。

2.3 匹配滤波原理:让信噪比最大化

匹配滤波,说白了就是让接收到的回波信号和发射信号做一次“相关”。为什么叫“匹配”?因为滤波器的冲激响应是发射信号的时域反转共轭。这样设计,输出信噪比能达到最大。

你想想看,雷达发射一个脉冲,碰到目标反射回来,信号已经衰减得很弱了,还混着噪声。匹配滤波就像一把钥匙配一把锁,只有和发射信号形状匹配的回波,才能产生大的输出峰值。

数学上,匹配滤波的输出是输入信号与发射信号的互相关:

y(t) = ∫ x(τ) · h(t-τ) dτ
其中 h(t) = s*(-t),s(t)是发射信号

在数字域,我们通常用FFT来实现快速卷积:

Y = IFFT(FFT(x) · conj(FFT(s)))

这样做的好处是,计算复杂度从O(N²)降到O(N log N)。我在项目中处理过1M点的数据,直接时域卷积要算到天荒地老,用FFT方法几秒钟就搞定了。

个人经验:匹配滤波的峰值位置对应目标的距离。峰值宽度由发射信号的带宽决定,带宽越宽,距离分辨率越高。所以线性调频信号(LFM)很常用,它能在有限脉宽内实现大带宽。

2.4 多普勒效应:从频率变化看速度

多普勒效应,大家中学都学过。火车靠近时汽笛声变尖,远离时变低沉。雷达里也一样,目标运动会让回波频率发生偏移。这个偏移量就叫多普勒频移。

多普勒频移的计算公式:

f_d = 2v/λ · cos(θ)

其中v是目标速度,λ是波长,θ是目标与雷达视线方向的夹角。

为什么是2倍?因为电磁波往返,路径变化是双程的。我记得第一次做动目标检测时,忘了这个2倍系数,算出来的速度全是实际值的一半。后来查了半天资料才发现问题,真是哭笑不得。

多普勒处理的关键点:

  • 慢时间维度的FFT可以提取多普勒频率
  • 多普勒频率正负代表目标靠近或远离
  • 多普勒分辨率取决于相干处理时间(CPI)

实际工程中,我们通常做二维FFT:快时间维(距离维)做一次FFT,慢时间维(脉冲维)再做一次FFT。这样就能得到距离-多普勒图(RD图),目标的距离和速度一目了然。

这里有个细节:多普勒模糊。当目标速度太快,多普勒频率超过脉冲重复频率(PRF)的一半时,就会发生模糊。我曾经在车载雷达项目中遇到过,高速公路上对面来车速度超过200km/h,多普勒频率直接翻了好几圈。解决办法是用多PRF解模糊,或者用更复杂的波形设计。

避坑指南:多普勒处理前,一定要做运动补偿。如果雷达平台本身在运动(比如车载、机载),静止目标也会产生多普勒频移。不做补偿的话,你会看到满屏都是“动目标”。

2.5 四个知识点的内在联系

好了,我们把这四个知识点串起来。一个典型的雷达信号处理流程是这样的:

  1. ADC采样得到数字中频信号
  2. 数字下变频(DDC)把信号搬到基带,得到I/Q数据
  3. 匹配滤波(脉冲压缩)提高信噪比,提取距离信息
  4. 多普勒处理(慢时间FFT)提取速度信息

你看,傅里叶变换贯穿始终。DDC里用到了频谱搬移,匹配滤波用到了FFT加速卷积,多普勒处理本身就是FFT。所以说,傅里叶变换是雷达信号处理的灵魂,一点不为过。

我个人习惯是,在写代码之前,先在Matlab里把整个链路跑通。调好参数、验证算法,再移植到嵌入式平台。这样能省掉很多调试时间。嗯,下一章我们就开始动手写代码了,敬请期待。

本章小结:

知识点 核心作用 工程要点
傅里叶变换 时频转换 FFT实现,N取2的幂次
数字下变频 频谱搬移 I/Q两路,低通滤波设计
匹配滤波 信噪比最大化 FFT加速卷积,峰值检测
多普勒效应 速度提取 二维FFT,解模糊