驻定相位原理详解:LFM信号频谱为何近似矩形?

📅 发布时间:2026/10/12 8:17:35
驻定相位原理详解:LFM信号频谱为何近似矩形?
做信号处理这几年我经常被问到一个问题线性调频LFM信号的频谱为什么画出来是一个矩形教材上写“由驻定相位原理可得幅度谱近似为矩形包络”但很多人拿着FFT一跑发现谱边缘有毛刺中心也不完全平坦就开始怀疑人生。这里面的关键就是“驻定相位原理”这个看似高深的工具到底在什么条件下成立、怎么用、以及为什么直接套FFT会看到不一样的细节。这篇文章我把推导过程、仿真验证和实战坑位一次讲透适合雷达/声呐/通信系统工程师、做信号处理毕设的同学以及所有想把“书上的一句话”变成自己能复现结果的人。1. 一个看似简单的问题LFM信号的频谱到底长什么样1.1 LFM信号在“调”的是频率线性调频信号又叫Chirp信号最典型的复数基带形式写作$s(t)\text{rect}\left(\frac{t}{T}\right)e^{j\pi K t^2}$其中$T$是脉冲宽度$K\frac{B}{T}$是调频斜率$B$是信号带宽。瞬时频率对相位求导再除以$2\pi$$f_i(t)\frac{1}{2\pi}\frac{d(\pi Kt^2)}{dt}Kt$也就是说频率在脉冲宽度内从$-B/2$线性扫到$B/2$这是雷达脉冲压缩最常用的波形。为什么常用因为脉宽大能保证发射能量带宽大能保证距离分辨力而脉冲压缩把这两者的矛盾解开了。调制简单、生成方便让LFM成了信号处理里“万金油”一样的存在。想算它的频谱最直接的想法是敲一行fft。确实现代计算机算一个几十万点的FFT毫无压力数字仿真里直接看FFT幅度谱就能看到“接近矩形”的形状。但问题在于FFT只是数值结果它不会告诉你频谱为什么是矩形也不会告诉你这个矩形包络的精确表达式是什么更不会在你需要推导匹配滤波输出、分析旁瓣结构时给出解析依据。工程上很多系统设计需要闭式公式这时候驻定相位原理就该登场了。1.2 教科书答案幅度近似矩形相位近似二次先给结论。在时间带宽积$BT$足够大的条件下LFM复数基带信号的频谱可以近似写成$S(f)\approx \sqrt{\frac{T}{B}},\text{rect}\left(\frac{f}{B}\right)e^{-j\pi f^2/Kj\pi/4}$这里有几个关键信息幅度谱$\sqrt{T/B}$在带宽$B$内近似恒定带外为零。相位谱$-\pi f^2/K$是一个关于频率的二次函数。常数相位项$\pi/4$当$K0$时这个45度偏移是驻定相位方法特有的很多人推导后会忘掉它。问题是这公式是怎么来的“近似”到底近似到什么程度为什么时间带宽积小了就不行要回答这些必须从驻定相位原理本身说起。2. 驻定相位原理快速振荡背后的“少数派报告”2.1 一个积分为什么可以只用“几个点”的贡献代替驻定相位原理处理的是这样一类积分$I\int_{-\infty}^{\infty} g(t)e^{j\phi(t)}dt$其中$g(t)$是缓慢变化的幅度函数$\phi(t)$是大范围快速变化的相位函数。我们想求这个积分但指数项的振荡可能非常快直接数值积分会很痛苦更关键的是我们想得到解析近似。直观理解很有画面感一个有正有负、快速振荡的曲线在大部分区间上正半周和负半周几乎完全抵消积分贡献约等于零。唯一能“打破平衡”的地方是相位函数变化最慢、几乎停下来的那个点附近。因为相位变化慢指数项的振荡周期很长正负半周不再对称抵消积分主要来自这个小区间。这个特殊点叫作“驻定相位点”驻定的意思是$\phi(t)0$。你可以想象一群人在操场上转圈只有某个位置的人旋转速度几乎为零他周围的人也跟着慢下来拍照时只有这一小片人是清晰的其余全是运动模糊。这就是驻定相位原理的全部直觉。2.2 高阶项交给高斯积分在驻定相位点$t_0$附近相位做泰勒展开$\phi(t)\approx\phi(t_0)\phi(t_0)(t-t_0)\frac{1}{2}\phi(t_0)(t-t_0)^2$由于$\phi(t_0)0$一阶项消失保留到二阶。于是积分近似变成$I\approx g(t_0)e^{j\phi(t_0)}\int_{-\infty}^{\infty} e^{j\frac{1}{2}\phi(t_0)(t-t_0)^2}dt$这个积分不能直接套普通高斯积分公式因为指数上有虚数$j$。利用Fresnel积分的结果$\int_{-\infty}^{\infty} e^{j\alpha x^2}dx\sqrt{\frac{\pi}{|\alpha|}}e^{j\frac{\pi}{4}\text{sgn}(\alpha)}$代入后得到经典的驻定相位近似公式$I\approx g(t_0)\sqrt{\frac{2\pi}{|\phi(t_0)|}}e^{j\phi(t_0)j\frac{\pi}{4}\text{sgn}(\phi(t_0))}$注意这里出现的$\pi/4$就是上一节说的45度相位项。它本质上来源于Fresnel积分的贡献而不是什么经验修正。很多初学者把$g(t_0)$和$\phi(t_0)$算对了偏偏忘了这个常数相位最终相位谱和理论对不上。整个推导其实非常“粗暴”把积分限从驻点附近扩展到无穷远把高阶相位项全部丢掉。之所以成立是因为远处区间的光速振荡相互抵消而近邻区域的高阶项在相位二阶导数足够大的时候对积分结果的影响很小。2.3 近似成立的临界条件驻定相位法不是万能的它的核心条件是$g(t)$缓变、$\phi(t)$足够大。具体到LFM信号相位$\pi Kt^2$的二阶导数是$2\pi K$在脉冲宽度$T$内相位差总量约为$\pi K T^2\pi BT$。要求这个值远大于$2\pi$也就是$BT\gg1$。这里的$BT$就是时间带宽积也是脉冲压缩比。工程上什么时候能用这个近似我的经验是$BT100$时驻定相位近似给出的频谱包络已经和FFT结果吻合得很好边缘纹波很小。$BT$在10到100之间频谱边缘会出现明显的Fresnel振荡中心区域还能接受。$BT10$时矩形谱假设基本失效频谱变成带内起伏很大的形状这时候必须老老实实用精确的Fresnel积分来表述。所以做题时如果遇到$BT6$这样的参数再断言“LFM频谱是矩形”就会出问题。这也是为什么很多教材在给出结论前都要挂一个“大时间带宽积”的前提。3. 逐步推导LFM频谱的驻定相位实现3.1 把傅里叶变换写成标准形式复数基带LFM信号定义为$s(t)e^{j\pi Kt^2},\quad -T/2\le t\le T/2$傅里叶变换采用如下定义$S(f)\int_{-\infty}^{\infty}s(t)e^{-j2\pi ft}dt$代入后$S(f)\int_{-T/2}^{T/2}e^{j(\pi Kt^2-2\pi ft)}dt$令相位函数为$\phi(t)\pi Kt^2-2\pi ft$。这里幅度函数$g(t)$是矩形窗本身它是缓变的除了边缘跳变可以使用驻定相位近似。3.2 求驻定相位点对相位求导$\phi(t)2\pi Kt-2\pi f$令其为零$t_0\frac{f}{K}$在驻点处求二阶导$\phi(t)2\pi K$因为$K$是常数二阶导处处恒定。如果$K0$则$\text{sgn}(\phi)1$如果$K0$则为$-1$。驻点必须落在矩形窗范围内才有真正积分贡献$-\frac{T}{2}\le \frac{f}{K}\le\frac{T}{2}$整理后得到$|f|\le\frac{|K|T}{2}\frac{B}{2}$这就自然推出了频带限制条件也就是矩形谱的范围。只要驻点在窗外相位到处都是快速振荡积分贡献可忽略频带外频谱近似为零。3.3 代入近似公式得到幅度谱和相位谱把二阶导和驻点代入驻定相位公式$S(f)\approx \sqrt{\frac{2\pi}{2\pi |K|}}e^{j\phi(t_0)j\frac{\pi}{4}\text{sgn}(K)}\frac{1}{\sqrt{|K|}}e^{j\phi(t_0)j\frac{\pi}{4}\text{sgn}(K)}$再计算$\phi(t_0)$$\phi(t_0)\pi K\left(\frac{f}{K}\right)^2-2\pi f\cdot\frac{f}{K}\frac{\pi f^2}{K}-\frac{2\pi f^2}{K}-\frac{\pi f^2}{K}$于是$S(f)\approx \frac{1}{\sqrt{|K|}}\text{rect}\left(\frac{f}{B}\right)e^{-j\pi f^2/Kj\frac{\pi}{4}\text{sgn}(K)}$用$KB/T$替换$\frac{1}{\sqrt{|K|}}\sqrt{\frac{T}{B}}$最终得到$S(f)\approx \sqrt{\frac{T}{B}},\text{rect}\left(\frac{f}{B}\right)e^{-j\pi f^2/Kj\frac{\pi}{4}\text{sgn}(K)}$这个推导过程有两点值得提醒第一驻定相位公式和傅里叶变换定义中的指数符号必须配套。我的计算用的是$e^{-j2\pi ft}$的变换定义如果你用的是$e^{j2\pi ft}$定义最后相位符号会整体翻转千万别只看结论不看前提。第二$\pi/4$项的符号完全由$K$的符号决定。$K0$是正$K0$是负。对调频斜率符号不敏感的人很容易在这里写反。到这里理论推导就闭环了。但纸上得来终觉浅我们赶紧用仿真验证一下看看驻定相位原理给的理论谱和FFT数值谱到底有多接近。4. 动手验证当理论谱遇到FFT谱4.1 仿真参数与核心代码我习惯用Python做这类验证代码短逻辑直白。以脉宽$T10,\mu\text{s}$、带宽$B10,\text{MHz}$为例时间带宽积$BT100$已经能满足驻定相位近似精度。import numpy as np from numpy.fft import fft, fftshift, fftfreq T 10e-6 # 脉宽 10 us B 10e6 # 带宽 10 MHz K B / T # 调频斜率 fs 2 * B # 复基带信号采样率至少两倍带宽 dt 1 / fs N int(round(T * fs)) # 总采样点数 2*BT 200 # 生成复数基带LFM信号 t np.arange(-T/2, T/2, dt) # 注意Python浮点数精度可能跳过末点 if len(t) N: t np.linspace(-T/2, T/2, N, endpointFalse) s np.exp(1j * np.pi * K * t**2) # FFT并搬移零频到中心注意缩放因子 S fftshift(fft(s)) / fs f fftshift(fftfreq(N, dt)) # 驻定相位近似理论谱 S_theory np.sqrt(T/B) * (np.abs(f) B/2) * \ np.exp(-1j * np.pi * f**2 / K 1j * np.pi/4) # 比较幅度谱 amp_fft np.abs(S) amp_theory np.abs(S_theory)这个代码有几个细节采样率$f_s2B$对复基带信号来说刚好满足奈奎斯特但点数只有$2BT200$。如果你想看谱边缘更细腻的纹波可以过采样比如$f_s4B$。FFT后除以$f_s$是为了让离散傅里叶变换逼近连续时间傅里叶变换的幅度。如果不除幅度量纲会随点数变化和理论值没法直接比。t的生成最好用np.linspace配合端点排除避免np.arange因浮点舍入导致采样点数和预期不一致。4.2 看形状也看“看不见”的相位跑完代码幅度谱会呈现一个非常接近矩形的形状。细看带内会有小幅波动尤其在$f\pm B/2$附近出现类似过冲的纹波这是Fresnel积分造成的理论上存在不是仿真bug。相位谱对起来更有意思。FFT直接得到离散频谱后用np.angle提取相位一定是一团乱麻。为什么因为相位跳跃超过$2\pi$时np.angle会把它们压回$(-\pi,\pi]$形成锯齿状。必须用np.unwrap解包裹再和理论相位$-\pi f^2/K$对比。解包裹后你还会发现FFT相位谱在$|f|B/2$的绝大部分区间内和理论二次曲线重合得很好但到带外幅度接近零相位由数值噪声主导解包裹也无济于事。所以比较相位谱时一定要用幅度阈值把带外部分遮掉否则你会看到一堆随机跳变误以为自己仿真错了。4.3 改变BT看近似精度怎么变化我分别用$BT10$、$100$、$1000$做了三组对比归纳出一个很直观的规律时间带宽积BT带内幅度平坦度边缘纹波驻定相位近似的可用性10有明显波浪突出振铃勉强定性可用100较平坦局部小纹波定量分析基本够用1000非常平坦边缘尖峰窄但很小高精度可用具体到数字$BT100$时理论谱和FFT谱在带内大部分频点的幅度差通常小于几个百分点边缘窄带除外。$BT10$时差异可以到百分之二三十矩形谱假设明显失真。这个实验也提醒我们实际雷达系统里$BT$通常取几十到几百驻定相位原理作为设计工具是可靠的。但如果有人用$BT5$的LFM做演示还硬说频谱是理想矩形那就要打一个问号。5. 实操中的坑相位、实信号与频谱边缘5.1 相位解绕和符号方向我在实际项目里踩得最深的一个坑就是相位谱的符号。理论相位是$-\pi f^2/K$如果$K$为正频率$f$从负到正相位都是负值如果$K$为负相位又变成正的。而且Fresnel相位项$\pi/4\text{sgn}(K)$会让常数值也正负反过来。用MATLAB或Python对比时建议先把频率轴变成以零为中心接着对FFT相位做unwrap最后和理论相位曲线画在同一张图上。只要有一处符号漏了曲线就会呈现“开口朝上/朝下”的镜像一眼就能看出来。另外unwrap默认沿最后一个维度操作频率轴如果从负到正排列可能因为边界跳变造成解绕不彻底。我的做法是使用fftshift后的频率轴并用np.unwrap(phase_angle, axis0)同时把幅度低于峰值80%的部分置为NaN避免噪声主导。5.2 实信号和复基带的区别很多教程直接用余弦形式的LFM$x(t)\cos(2\pi f_0t\pi Kt^2)$对实信号做FFT你会看到正频和负频两个谱峰负频区域的“矩形”其实是正频谱的镜像幅度还会减半。这时候如果直接套复数基带的驻定相位公式相位和幅度都会对不上。正确的做法是把余弦展开成两个指数项分别对正、负频部分的指数项应用驻定相位近似。正频部分在$f_0-B/2$到$f_0B/2$有矩形谱负频部分在$-f_0$附近也有一个镜像矩形谱两者幅度各为原来复数信号的一半。工程上我们通常先做正交解调得到复基带信号再分析频谱就是为了避开这种正负频纠缠。5.3 窗函数和频谱边缘过冲FFT频谱边缘的过冲一部分来自LFM本身在频谱边缘的Fresnel效应另一部分来自矩形窗的频谱旁瓣。两者的叠加很容易让人误判。理论推导里矩形窗决定了频谱的带外为零但真实FFT计算时信号截断窗口就是矩形加上本身频率扫描会在频带边缘产生类似Gibbs现象的过冲。工程上如果需要降低这个过冲可以对时域信号加窗比如汉明窗或Taylor窗但加窗之后频谱边缘不再是陡峭的矩形而是平滑滚降。这个“以时间副瓣换取频率平滑”的权衡和脉冲压缩的输出副瓣抑制是同一套思路。5.4 快速排查清单如果你复现这段推导时发现谱形不对按下面顺序检查采样率是否满足复基带奈奎斯特没满足的话频谱会混叠矩形谱边缘直接卷到另一端。FFT缩放因子是否正确连续傅里叶变换和离散FFT之间差一个$1/f_s$。频域幅度比较时是否用了双边频率轴单边谱要记得乘2。相位比较时是否做了幅度掩膜带外噪声相位不值得信任。调频斜率$KB/T$是否用对了带宽定义有些资料把$B$定义为$K\cdot T$但符号约定不同会导致驻点范围翻转。按这个清单排错基本半小时内能定位。6. 从频谱走向系统驻定相位原理的工程延伸6.1 匹配滤波与脉冲压缩输出LFM频谱有了近似表达式后匹配滤波器的输出也很容易分析。匹配滤波器频率响应是$H(f)S^*(f)$输出频谱为$Y(f)|S(f)|^2\approx \frac{T}{B}\text{rect}\left(\frac{f}{B}\right)$对这个矩形谱做逆傅里叶变换输出时域波形就是$\text{sinc}$形状主瓣宽度约$1/B$。这个结果解释了为什么LFM脉冲压缩后距离分辨力只由带宽决定和脉宽无关。驻定相位原理在这里的价值是可以“快速”写出匹配滤波输出解析形式而不需要跑完FFT卷积再提取峰值。我在某个雷达系统中预估目标旁瓣对消效果时就是用这个近似模型快速迭代参数的。6.2 在SAR成像中的延伸合成孔径雷达SAR的方位向回波也是一个LFM信号驻定相位原理被广泛用于推导距离-方位耦合、二次距离压缩等公式。比如“距离徙动校正”里回波信号的二维频谱需要用到驻定相位原理做近似才能得到解析的相位表达式。如果不用这个工具二维傅里叶变换会变成含有二维二次相位的双重积分数值仿真慢优化设计也没法做。所以从这个角度看驻定相位原理不只是计算LFM频谱的小技巧它是整个脉冲压缩和SAR成像理论的基础工具之一。理解它的适用边界远比背住一个矩形谱结论重要。6.3 我的几点体会最后说一个我自己的经验。第一次推导驻定相位原理时我只关心能不能得到矩形谱结果完全没注意那个$\pi/4$相位项。后来和一位前辈讨论波形相位对距离测量精度的影响时才发现这个常数相位在调频斜率正负切换时会带来相位跳变对干涉测量来说可能就是误差源。从那之后我养成了一个习惯凡是涉及LFM的理论推导先把驻定相位公式完整抄一遍强制自己检查二阶导符号和Fresnel相位项。另一个习惯是“先数值后理论”。在信任驻定相位近似之前先跑一个中等$BT$的FFT和理论谱对比确认误差在容忍范围内。毕竟驻定相位原理是近似工具不是精确解知道它什么时候会失效才算是真正掌握它。