LFM线性调频和脉冲压缩的理论总结与仿真
一、背景
使用雷达探测物体时,雷达发射电磁波,电磁波撞到物体后反射回来,雷达接收回波信号来判断物体的位置。想象一下,如果雷达发出的信号非常弱,信号还没有到达物体处或者回波还没回来就衰减差不多了,雷达就探测不到物体的位置。雷达发射信号的功率有限,那么如果要提高信号的总能量,就只能增加信号的持续时间。
这样是能探测到物体了,但是如果两个物体离得很近会发生什么呢。雷达发出的微波信号,在碰到第一个物体时返回,过一段时间碰到第二个物体的信号也会返回。由于回波信号的时间很长,雷达信号在接收第一个回波信号的过程中,第二个回波信号又来了,这就会造成两个信号叠加,雷达无法分辨出这两个距离过近的物体。
对于以上说明的情况来说,远距离探测和高分辨率是一对矛盾点。那么有没有什么方法,能够一定程度上在探测距离和分辨率指标上都有能有较好的表现呢,线性调频和脉冲压缩就是为了解决这个问题。
二、线性调频信号
顾名思义,线性调频信号(LFM)的瞬时频率随时间线性变化,频率\(f\)与时间\(t\)的关系和表示为
其中:
- \(f_c\) 是脉冲的中心频率。
- \(K\) 是调频率(或称啁啾率),表示频率变化的速度,单位是 \(\text{Hz/s}\)。
- \(K = \frac{B}{T}\),其中 \(B\) 是带宽, \(T\) 是脉冲宽度。
LFM 信号的数学表达式可以写作
其中 \(\text{rect}(\frac{t}{T})\) 是一个矩形窗函数,表示信号的时宽为 \(T\)。
LFM 具有长时宽(T)和大带宽(B)的特点。长时宽意味着可以在保持峰值功率较低的同时,注入更多的总能量,从而提高雷达的作用距离(探测灵敏度)。大带宽能够提高雷达的距离分辨率
这个结论记住就好,即带宽越大,距离分辨力越好,下面会进行推导。
LFM 信号的优势在于它将长时宽(高能量)和大带宽(高分辨率)这两个通常相互矛盾的指标结合起来。
三、脉冲压缩
脉冲压缩是一种信号处理技术,它允许雷达在发射长脉冲(高能量)的同时,获得短脉冲(高分辨率)的效果。它通过对回波信号进行匹配滤波来实现。
首先雷达接收到目标反射回来的长 LFM 脉冲 \(r(t)\)。
然后需要对接收到的 \(r(t)\) 进行匹配滤波,其被输入到一个匹配滤波器中,这个滤波器的冲激响应 \(h(t)\) 是发射 LFM 信号 \(s(t)\) 的时间反转和共轭:
匹配滤波器的输出 \(y(t)\) 是输入信号 \(r(t)\) 与滤波器冲激响应 \(h(t)\) 的卷积:
由于 \(h(t)\) 是 \(s(t)\) 的匹配滤波器,当回波信号 \(r(t)\) 与其匹配滤波器卷积时,输出信号的能量会被集中到时间轴上的一个非常窄的尖峰中。
- 压缩前的脉宽: \(T\) (长时宽)
- 压缩后的脉宽: \(\tau \approx \frac{1}{B}\) (窄时宽)
脉冲压缩带来的性能提升由时间带宽积 (Time-Bandwidth Product, TB) 决定。
四、LFM 表达式用复数的原因
现实世界中的信号只有实数,没有复数,因此使用复数作为信号表达式本质上是一种数学技巧,目的是更加便于分析处理信号。
在雷达或通信系统中实际发射接收到的信号,比如一个随时间变化的电压,肯定是实数,比如说
这个才是物理上真正存在的信号。
余弦函数虽然直观,但它有两个“隐藏成分”:正频率和负频率。而且当你做傅里叶变换、滤波、匹配滤波、时频分析等操作时,余弦会让公式变得又长又复杂,还容易出错。比如,如果你对 cos(θ) 做傅里叶变换,你会得到两个冲激——一个在正频率,一个在负频率。但在很多工程应用中(比如雷达),我们其实只关心正频率部分,因为负频率是数学产物,没有物理意义。
复数表示只保留有用的一半。复指数信号在数学上有个神奇的性质:它的傅里叶变换只出现在正频率。这就相当于把余弦“拆开”,只取我们关心的那一半(称为解析信号或复包络)。这样做的好处是
- 计算简单:导数、积分、卷积、傅里叶变换都更容易。
- 避免负频率干扰:专注处理正频率,符合实际系统带通特性。
- 便于调制解调建模:现代通信和雷达系统普遍用“复基带模型”,把高频载波去掉,只处理低频的复包络,大大简化设计。
我们在仿真或理论分析时用复数形式,但在真正发射信号前,会取它的实部。所以复数只是中间工具,最终还是要回到实数世界。
五、距离分辨率推导
先定性分析一下。
- 如果你发射一个纯正弦波(比如连续波,带宽 B≈0),那它看起来“平平无奇”,持续很久都一样,你根本没法判断回波是早到 1 纳秒还是晚到 1 纳秒——分辨率极差。
- 但如果你发射一个变化剧烈的信号(比如一个很窄的脉冲,或者频率快速扫过的 LFM 信号),它的“特征”很明显,稍微时间错开一点,波形就对不上了——就能分辨得很细。
而信号“变化有多快”,在频域里就体现为带宽 B 越大。所以:带宽越大 → 时间分辨力越高 → 距离分辨率越好(ΔR 越小)。
雷达波走的是“来回”路径。如果目标距离是 \(R\),那么电磁波走过的总路程是 \(2R\),所需时间(时延)为:
所以,距离差\(\Delta R\)对应时间差\(\Delta \tau\)
因此要提高距离分辨率(降低\(\Delta R\)),就要能分辨很小的\(\Delta \tau\)
有个信号处理的基本原理(来自傅里叶变换的不确定性原理),一个信号在时域的“最小可分辨时间间隔”大约是其频域带宽的倒数:
综合可得
| 误区 | 正确理解 |
|---|---|
| “载频越高,分辨率越好” | ❌ 分辨率只看带宽 B,不是载频 f**c。你可以用 1 GHz 载频 + 10 MHz 带宽,也可以用 10 GHz 载频 + 10 MHz 带宽,分辨率一样! |
| “脉冲越窄,分辨率越好” | ✅ 对于简单脉冲雷达是对的,因为窄脉冲天然带宽大(B≈1/脉宽)。但脉冲压缩技术让我们可以用宽脉冲+大带宽达到同样效果,还能提高能量。 |
六、关于中心频率的定义
情况一:LFM 以载频 \(f_c\)为中心(对称调频)
- 起始频率:\(f_{start}=f_c−\frac{B}{2}\)
- 终止频率:\(f_{end}=f_c+\frac{B}{2}\)
- 带宽:\(B=f_{end}−f_{start}=10MHz\)
- 最高频率 \(f_0 + B\)。
这种定义在理论分析、匹配滤波设计中很常见。
情况二:LFM 从某个起始频率开始单向扫描(更贴近工程实际)
很多雷达系统并不强制让 LFM 以 \(f_c\)为中心,而是这样定义:
-
起始频率:\(f_0\)
-
终止频率:\(f_0 + B\)
-
带宽:\(B=10MHz\)
-
此时,中心频率(也叫“射频载频”)通常定义为:
\[f_c=f_0 + \frac{B}{2} \]
所以最高频率 \(f_0 + B\)。
七、MATLAB 脉压仿真
%% LFM 脉冲压缩仿真(含 SLL 和 SNR 分析)
clear; close all; clc;
%% 系统参数
c = 3e8; % 光速 (m/s)
fc = 1e9; % 载频 1 GHz(仅用于显示,基带仿真可忽略)
B = 10e6; % 带宽 10 MHz
T = 10e-6; % 脉宽 10 微秒
fs = 50e6; % 采样率(需 > 2*B,这里取 50 MHz)
ts = 1/fs;
N = round(T * fs); % 采样点数
t = (-N/2 : N/2 - 1)' * ts; % 时间向量(对称)
%% 1. 生成基带 LFM 信号(复数形式)
K = B / T; % 调频率
s = exp(1j * pi * K * t.^2); % 基带 LFM
s(t < -T/2 | t > T/2) = 0; % 加矩形窗(实际已由 t 范围限制)
%% 2. 频域分析
S = fftshift(fft(s)); % fft 计算出的结果直流和低频在两端,高频在中间。
% fftshif 的作用是使得直流和低频在中心,高频在两端。
f = (-N/2 : N/2-1)' * fs / N; % 频率轴(基带)
%% 3. 脉冲压缩:匹配滤波
% 匹配滤波器 = s 的时间反转共轭
h = conj(flipud(s)); % flipud 的作用是上下翻转数组
y = conv(s, h, 'same'); % 脉压输出(无噪声)
% 卷积操作的输出 y 的长度必须与输入信号 s 的长度相同。
y = y / max(abs(y)); % 归一化主瓣为 1
% 添加白噪声(用于 SNR 计算)
SNR_in_dB = 10; % 输入信噪比(dB)
noise_power = var(s) / (10^(SNR_in_dB/10)); % 根据输入 SNR 设置噪声功率
n = sqrt(noise_power/2) * (randn(size(s)) + 1j*randn(size(s)));
y_noisy = conv(s + n, h, 'same');
y_noisy = y_noisy / max(abs(y)); % 仍用无噪主瓣归一化(便于比较)
%% 4. 计算 SLL(旁瓣抑制比)
mag_y = abs(y);
[~, main_idx] = max(mag_y); % 主瓣位置,~为忽略输出变量值
% 排除主瓣附近区域(比如 ±2 个主瓣宽度),找最大旁瓣
mainlobe_width_samples = round(1/(B*ts)); % 理论主瓣宽度 ≈ 1/B
% 1/B 是时间宽度(秒),ts 是采样间隔(秒/点),这个式子是求主瓣占多少个采样点
% 加round是因为数组的下标必须是整数
mask = true(size(mag_y)); % size 返回数组的维度,比如 500 行 1 列: [500 1]
% true 用于创建一个逻辑数组,维度与 size
% 返回的完全相同,默认值都为true
mask(max(1, main_idx - mainlobe_width_samples) : min(end, main_idx + mainlobe_width_samples)) = false;
% 把主瓣附近区域设为 false,表示“这些不是旁瓣,不能参与最大旁瓣搜索”
% 上面两行的结果:mask 是一个逻辑数组,主瓣区域为 false,其余为 true
max_sidelobe = max(mag_y(mask)); % 只取出 mask 为 true 的那些点(即旁瓣区域的幅度值)找最大值
% SLL(dB)= 20log10(最大旁瓣幅度 / 主瓣幅度) = 20log10(最大旁瓣幅度)(因为主瓣=1)
SLL_dB = 20 * log10(max_sidelobe); % 因为主瓣已归一化为 1
%% 5. Peak SNR(在有噪输出中计算)计算方法:主瓣峰值处的信号功率 / 噪声功率
peak_signal_power = abs(y_noisy(main_idx))^2; % 峰值处信号功率
% 噪声功率估计:用远离主瓣的区域
noise_region = mag_y < 0.1; % 假找出所有幅度小于 0.1 的位置
% 为什么选 0.1?
% 主瓣归一化为 1,LFM 的第一旁瓣约 0.22(-13 dB),更远的旁瓣迅速衰减
% 所以 远离主瓣的区域(如 |t| > 3/B)幅度通常 << 0.1
% 这些区域几乎没有信号能量,只有噪声
if any(noise_region) % any 判断一个数组中是否存在任何非零元素
noise_power_est = mean(abs(y_noisy(noise_region)).^2);
% 用于得到噪声功率估计值
else
noise_power_est = var(y_noisy - y); % var() 计算方差:对零均值噪声,方差 = 功率
end
Peak_SNR_dB = 10 * log10(peak_signal_power / noise_power_est);
%% 6. 绘图
figure('Position', [100, 100, 1200, 900]);
% (a) 时域
subplot(3,1,1);
plot(t*1e6, real(s), 'b');
xlabel('时间 (\mus)'); ylabel('幅度');
title('LFM 信号(时域,实部)');
grid on;
% (b) 频域
subplot(3,1,2);
plot(f/1e6, abs(S), 'r');
xlabel('频率 (MHz)'); ylabel('|S(f)|');
title('LFM 信号频谱(基带)');
xlim([-B/2/1e6-1, B/2/1e6+1]);
grid on;
% (c) 脉冲压缩输出
subplot(3,1,3);
time_axis = (-length(y)/2 : length(y)/2 - 1)' * ts;
plot(time_axis*1e6, abs(y_noisy), 'k', 'LineWidth', 1.2);
hold on;
plot(time_axis(main_idx)*1e6, abs(y_noisy(main_idx)), 'ro', 'MarkerSize',8, 'MarkerFaceColor','r');
% 标出最大旁瓣
[~, sid_idx] = max(mag_y .* mask); % 在旁瓣区域找最大值
plot(time_axis(sid_idx)*1e6, abs(y_noisy(sid_idx)), 'bo', 'MarkerSize',6, 'MarkerFaceColor','b');
xlabel('时间 (\mus)'); ylabel('归一化幅度');
title(sprintf('脉冲压缩输出 | SLL = %.1f dB | Peak SNR = %.1f dB', SLL_dB, Peak_SNR_dB));
legend('脉压输出','主瓣峰值','最大旁瓣','Location','best');
grid on;
xlim([-3/B*1e6, 3/B*1e6]); % 显示约 ±3 个主瓣宽度
上面程序的执行结果如下:
八、指标
8.1 旁瓣抑制比
什么是旁瓣抑制比,第七节仿真图图3展示了对 LFM 信号的脉冲压缩结果,很明显是由主瓣和若干个较小的旁边组成的,想象一下,如果旁瓣的幅度与主瓣相比并没有小很多的话,雷达会不会认为它是另一个回波脉压的主瓣了,这就可能会造成雷达的虚警。旁瓣抑制比就是反应旁瓣相对于主瓣幅度大小的指标。
计算方法如下:
- 主瓣峰值幅度:记为 \(A_{main}\)
- 所有旁瓣中最大的那个幅度:记为 \(A_{max\_sidelobe}\)
- 旁瓣抑制比:\(SLL(dB)=20log_{10} \left( \frac{A_{max\_sidelobe}}{A_{main}} \right)\)
SLL 不加窗的典型值:13.2dB。这是因为压缩后的波形近似\(sinc(x)=\frac{sin(\pi x)}{\pi x}\),其第一旁瓣就是 -13.2 dB。
这意味着:最强的旁瓣有主瓣约 22% 的高度。
使用加窗的方法能够改善 LFM 的 SLL。例如:Hamming 窗可将 SLL 降到 -41 dB,代价是主瓣变宽(距离分辨率下降)、峰值 SNR 降低。这里不展开。
8.2 峰值信噪比
在脉冲压缩输出的主瓣峰值时刻,信号功率与噪声功率之比:
SLL 与 Peak SNR 的权衡关系:
| 方法 | SLL(旁瓣) | Peak SNR | 主瓣宽度(分辨率) |
|---|---|---|---|
| 理想 LFM(无窗) | -13.2 dB(差) | 最大(最优) | 最窄(最优) |
| 加 Hamming 窗 | ≈ -41 dB(好) | ↓ 损失 ~1.8 dB | ↑ 变宽 ~1.8 倍 |
| 加 Taylor 窗(-30 dB) | -30 dB(较好) | ↓ 损失 ~0.8 dB | ↑ 略微变宽 |
SLL 决定你“看不看得清真假目标”,Peak SNR 决定你“能不能从噪声里看到真目标”——LFM 脉冲压缩要在两者之间找平衡。
九、坐标问题
9.1 时域坐标有负值的解释
观察第七节图1,发现 LFM 信号的时域图的时间轴有负值,这是为什么?
在雷达信号处理(尤其是脉冲压缩)的仿真中,时间轴出现负值,并不是因为时间真的倒流了,而是出于 信号对齐、数学对称性和便于分析 的考虑。核心原因在于让信号“以零时刻为中心”。
在理论分析和仿真中,我们常常希望:
- LFM 脉冲对称地分布在 t = 0 附近
- 匹配滤波后的主瓣峰值正好出现在 t = 0
这样做的好处是:
- 数学表达简洁(比如 LFM 相位写成 \(\pi Kt^2\))
- 频谱是实偶函数或纯相位,便于理解
- 脉压输出的主瓣自然落在时间原点,不用额外计算延迟
举个例子,假设你有一个 10 微秒的 LFM 脉冲。如果从 t = 0 开始
t = 0 : ts : T-ts; % [0, T)
- 匹配滤波后,主瓣峰值会出现在 t ≈ T = 10 μs 处(因为卷积延迟)
- 你想看“目标回波对齐时刻”,还得手动找峰值位置
如果以 t = 0 为中心(含负时间):
t = (-T/2 : ts : T/2 - ts); % [-5μs, +5μs)
- 信号关于 0 对称
- 匹配滤波器也对称设计
- 输出主瓣自动出现在 t = 0
- 旁瓣左右对称,SLL 计算更直观
9.2 从匹配滤波角度看
匹配滤波器的冲激响应是:
- 如果原始信号 s(t) 定义在 [−T/2, T/2],
- 那么 h(t) 也在 [−T/2,T/2]
- 两者卷积后,最大输出(相关峰)自然出现在 t = 0
这称为 零相位对齐(zero-phase alignment),是信号处理中的标准做法。
9.3 在真实雷达系统里
- 发射信号确实从 t = 0 开始(没有负时间)
- 接收回波有延迟 τ=2R/c
- 匹配滤波输出的峰值出现在 t = τ
但在仿真或理论分析时,我们可以:
- 假设目标就在“参考距离”上(比如 R=0 → τ=0)
- 把信号中心对齐到 t=0,等效于已经补偿了传播延迟

浙公网安备 33010602011771号