雷达脉冲压缩与旁瓣
摘要:从脉冲压缩、峰值旁瓣比(PSLR)、积分旁瓣比(ISLR)的基本概念出发,说明本工程中主瓣边界的确定方式、互相关脉压、归一化与作图方法,并补充与理论距离分辨率的联系。
关键词:脉冲压缩、匹配滤波、PSLR、ISLR、主瓣宽度、LFM
一、基础概念
1.1 什么是脉冲压缩(脉压)?
在雷达/声呐等系统中,为获得足够能量与距离分辨率,常先发射一段在时间上被拉长、在频率或相位上被“编码”的波形(如线性调频 LFM Chirp)。接收到回波后,用与发射波形共轭匹配的滤波器对回波作处理,使能量在时域上重新聚集成一个窄而高的尖峰。
这一过程称为脉冲压缩(Pulse Compression,常简称脉压)。直观理解是:把长脉冲在接收端“压”成短脉冲,以同时兼顾大作用距离与高分辨。
理想情况可以概括为:
- 时域上:中间有一个又尖又高的主峰(对应该距离单元上的目标/散射点);
- 主峰两侧没有多余起伏。
实际情况中,因旁瓣、失配、噪声、非理想采样等,主峰两侧往往会出现一系列较小的起伏,称为旁瓣(Sidelobes)。评价脉压“干净程度”时,PSLR、ISLR是最常用的两类指标。
1.2 峰值旁瓣比 PSLR(最直观)
含义(直观):比较主瓣峰值与所有旁瓣里最高的那一个的相对关系。
- 若用幅值比较:关心的是“最嚣张的那根旁瓣”相对主峰有多矮。
- 工程上常用dB表示。本仓库实现为(见后文):
[
\mathrm{PSLR_{dB}} = 20\log_{10}\frac{P_{\text{side,max}}}{P_{\text{main,peak}}}
]
(其中 (P_{\text{side,max}}) 为旁瓣区最大幅值,(P_{\text{main,peak}}) 为全序列峰——归一化后主峰约 1。)
- 一般结果为负的 dB 值(旁瓣低于主峰时):数值越负(在数轴上越靠左),表示相对主峰,最高旁瓣越低,通常认为越好(例如可理解为 -30 dB 量级表示旁瓣比主峰低约三个数量级,具体以定义为准)。
一句话:PSLR 看的是——最高的那根旁瓣,相对主峰能“嚣张”到什么地步。
1.3 积分旁瓣比 ISLR(更全面)
含义(直观):不只盯“最高的那一根”旁瓣,而是把所有旁瓣上的能量与主瓣内能量作比较,反映整体的“底噪/尾巴”是否干净。
本仓库中能量在离散样本上用幅值平方和表示,定义为:
[
\mathrm{ISLR_{dB}} = 10\log_{10}\frac{E_{\text{side}}}{E_{\text{main}}}
= 10\log_{10}\frac{\sum_{i \in \text{旁瓣}} |a_i|^2}{\sum_{j \in \text{主瓣}} |a_j|^2}
]
- 同样,常希望 ISLR 越负越好(旁瓣总能量相对主瓣越小)。
和 PSLR 的分工:
- PSLR:受一个最突出的强旁瓣主导——适合发现“单根大旁瓣”问题;
- ISLR:受所有旁瓣的积分效应主导——适合描述“整体有多糊、多吵”。
注意:不同文献对 ISLR/PSLR 的符号约定(是“主/旁”还是“旁/主”取对数)会略有差别,阅读论文时一定要对上定义;
二、为什么 PSLR / ISLR 在真实系统里重要?
举一类典型场景:
- 同一距离维上,存在大目标(强回波)和小目标(弱回波)相邻或一强一弱。
若旁瓣很高或旁瓣总能量很大:
- 高 PSLR 问题(强单旁瓣):大回波的旁瓣在幅度上盖过小目标的主峰,小目标在幅度维上被淹没;
- 高 ISLR 问题(旁瓣总能量大):一片旁瓣“抬高基座”,整体对比度变差,小目标更难从背景中分出来。
因此,在同样的 SNR/动态范围约束下,往往希望:
- 主峰尖锐、旁瓣在幅度与能量上都被压低——对应PSLR、ISLR 的 dB 值在约定下“足够负”。
三、本工程中的处理流程
执行顺序零中频 IQ → 脉冲检测 → 截断单脉冲 → 脉压与指标:
- 生成或输入 IQ:产生仿真零中频 LFM 与真值列表。
- 脉冲检测: 得到各脉冲在 IQ 中的起止下标。
- 截脉冲: 按某个
pulse_index取一段复序列x作为待压信号。 - 构建理论模板(LFM): 用真值中的
fc_hz、bw_hz、amp等,与当前截出段长度n_samples生成TemplateSpec;最后 生成理论模板。 - 三种脉压结果(概念上便于对照)
- 实测自脉压:
x与自身 → 自相关型结果; - 实测对模板脉压:
x与h→ 评估与理想匹配的压缩效果; - 理想模板自脉压:
h自脉压 → 作为上界/对照。
- 实测自脉压:
- 每次脉压经计算得到PSLR、ISLR、主瓣宽和曲线图。
四、主瓣与旁瓣如何划分?——
在已得到幅值序列pc_mag且已按峰值归一化后,确定主瓣在离散 lag 轴上的下标范围[mainlobe_left, mainlobe_right]:
- 优先:在主峰左右分别向两侧搜索,取第一个局部极小点作为左右边界,记方法
first_local_min。 - 否则,若整段包络是单峰、两侧分别单调(例如某些自相关形呈三角形),不存在可分离的“谷”→ 将全支撑视为主瓣,记
full_support_monotone;此时无独立旁瓣用于统计。 - 再否则:用−3 dB 等效(以峰值为参考,取幅值不低于峰/√2的左右最外沿)近似主瓣宽度,记
minus_3db_fallback。
旁瓣则为上述主瓣区间之外的所有样本。
主瓣宽度(样本数):
[
N_{\text{main}} = \texttt{mainlobe_right} - \texttt{mainlobe_left} + 1
]
这是在匹配滤波输出(lag 轴)上的主瓣宽,不是发射脉冲在原始 IQ 时间轴上的脉宽PW。
五、PSLR 与 ISLR 在代码中的计算(_compute_pslr_islr)
在主瓣掩膜和旁瓣掩膜划分好之后(见第四节),对pc_mag计算:
5.1 PSLR
- 取旁瓣区的最大幅值
side_peak; - 全序列最大幅值为
peak(归一化后主峰约 1);
[
\mathrm{PSLR_{dB}} = 20\log_{10}\frac{\max(\text{side_peak}, \varepsilon)}{\text{peak}}
]
- 当无旁瓣(如全段算主瓣、旁瓣区为空等)时,实现上返回负无穷(
float("-inf"))表示不可分或未定义于当前划分。
5.2 ISLR
- 主瓣能量(用幅值平方和):(;E_{\text{main}} = \sum_{i \in \text{主瓣}} |a_i|^2);
- 旁瓣能量:(;E_{\text{side}} = \sum_{i \in \text{旁瓣}} |a_i|^2);
[
\mathrm{ISLR_{dB}} = 10\log_{10}\frac{E_{\text{side}}}{\max(E_{\text{main}},\varepsilon)}
]
- 若
side_energy == 0,同样为(-\infty)(实现细节以源码为准)。
六、互相关脉压与归一化
6.1 匹配滤波(时域实现)
- 构造匹配滤波器核:
kernel = conj(h[::-1])(时间反序 + 共轭)。 - 计算
y = np.convolve(x, kernel, mode="full"),得到全长度卷积结果。
物理/信号含义:
y的每个下标对应一个相对时延上的匹配输出;- 伴随的
lag_samples从-(len(h)-1)到len(x)-1(样本单位的时延,不是原始录制 IQ 的绝对时间码); - 频域在理想下对应相关接收(H^*(f)X(f)) 的直观形式。
6.2 幅值与归一化
pc_mag = np.abs(y),得到随 lag 变化的脉压包络;- 取全局幅值最大处为主峰
peak_index; - 当
normalize=True且peak>0时,令pc_mag /= peak,便于将主峰归一到 1;
随后的主瓣划分、PSLR、ISLR 均在归一化后的pc_mag上计算,与“相对主峰的旁瓣比/能量比”的叙述一致。
注意:复数结果y在现流程里一般只取模绘图;pc_mag被缩放后,若仍需要与y保持同一标度,需自行约定(当前作图不依赖y的相位)。
七、与距离分辨率和主瓣宽度的关系(pipeline中的摘要项)
在摘要 JSON 中常出现(概念上):
- 理论距离分辨率(与带宽,粗对应常规 Chirp 雷达):
theory_range_res_m = 3e8 / (2 * bw_hz),即(\Delta R \approx c/(2B))(与教材一致;具体场景是否加窗、是否等效宽带需另论)。 - 由主瓣宽估计的压缩后时间宽度:
compressed_width_est_s = mainlobe_width_samples / fs_hz,可换算为compressed_width_ns等。
再次强调:这里的mainlobe_width_samples来自脉压输出 lag 轴上的主瓣,会随第四节边界算法而变,是估计量,不是原脉冲时宽PW。
八、脉压图如何画
本流水线导出的典型曲线为:
- 横轴:
result.lag_s * 1e6,微秒(相对时延); - 纵轴(线性):
result.pc_mag(已视情况归一化); - 纵轴(dB):
20 * log10(max(pc_mag, eps)),并常截断到如−80 dB下限,避免深拖尾把纵轴拉得过大。
一句话:图 = 对匹配滤波后的复输出取幅值(可归一化)相对 lag 的曲线;dB 图是同一包络的对数表示。
九、小结
| 主题 | 要点 |
|---|---|
| 脉压 | 长编码脉冲经匹配滤波在时域上压成窄主峰,旁瓣为不理想带来的起伏。 |
| PSLR | 关注单根最高旁瓣相对主峰的dB(本实现为20·log 旁/主)。 |
| ISLR | 关注所有旁瓣能量相对主瓣能量的dB(本实现为10·log((E_s/E_m)))。 |
| 主瓣划分 | 先找谷,再单调全宽,再 −3 dB 回退;划分影响PSLR/ISLR 与主瓣宽统计。 |
| 实现主链 | conv(conj(flip(h)))与x全卷积 → ` |