搞雷达脉冲压缩的时候,我接了个活儿:要设计一段64位的相位编码波形,要求自相关旁瓣尽可能低。最初我的第一反应是用巴克码,结果一查资料,巴克码最长只有13位,完全不够用。后来试过查表法、遗传算法,折腾了一圈,最后发现梯度下降法反而是最直接、最容易调通的一条路。
这篇就记录我用梯度下降法优化波形自相关特性的完整过程,包括目标函数怎么选、梯度怎么推、参数怎么调,以及几个仿真阶段特别容易踩的坑。内容偏工程实践,不过该有的数学推导也会给出来。适合做雷达波形设计、通信前导码、超声编码激励、声呐探测这些方向的朋友参考,看完应该能直接上手复现。
1. 为什么波形设计要从“自相关旁瓣”入手
1.1 自相关特性在接收端到底起什么作用
先说一下自相关和接收机的关系。雷达或者通信系统里,接收端通常做一个匹配滤波操作,匹配滤波器的输出就是发射波形的自相关函数。理想情况下,我们希望自相关函数是一个冲击函数——只有一个主峰,其他位置全是零。这样两个目标回波靠得再近,也能清晰分开。
但现实中没有理想波形。有限时宽的信号,自相关函数除了主瓣之外,必然带着一串旁瓣。问题就出在这些旁瓣上。举个例子,假设两个目标分别位于延时10和延时15的位置,第一个目标是强目标,回波幅度很大,第二个目标是弱目标,回波幅度很小。如果强目标在延时5处的旁瓣比弱目标在延时15处的主瓣还高,那弱目标就完全被淹没在旁瓣底下了。这在雷达里叫“强目标遮蔽弱目标”,是波形设计必须解决的问题。
所以波形设计不能只看带宽、时宽这些表面参数,最终还是要落回到自相关函数形状上。自相关旁瓣越低,接收机的动态范围就越好,越能分辨强信号背后的弱信号。
1.2 两个核心指标:峰值旁瓣电平和积分旁瓣电平
量化自相关好坏,工程上常用两个指标。
第一个叫峰值旁瓣电平(PSLR,Peak SideLobe Ratio),定义是最大旁瓣幅度和主瓣幅度的比值,通常换算成分贝。这个指标衡量的是“最坏情况有多差”,雷达目标检测最关心这个,因为任何一个高旁瓣都可能变成虚假目标。
第二个叫积分旁瓣电平(ISL,Integrated SideLobe Level),定义是除主瓣外所有旁瓣能量之和与主瓣能量的比值。这个指标衡量的是“旁瓣总能量有多大”,它跟杂波抑制能力、信道估计精度关系更密切。
我做的项目里,两个指标都要求。但在用梯度下降优化时,先优化哪个、用什么目标函数,学问很大,这个后面详细展开。
这里还有个大背景:经典波形方案都存在各自的局限。巴克码自相关旁瓣均匀,但最长只有13位,码长不够时没法直接用。线性调频信号(LFM)技术很成熟,但存在距离-多普勒耦合的问题,而且加窗压低旁瓣会以展宽主瓣为代价。m序列、Gold码在扩频通信里用得多,自相关性能也不错,但灵活性和相位自由度不如连续相位编码。
我当时的判断是,相位编码波形自由度最高,每个码片的相位都可以独立设计,正好适合用梯度下降这种数值优化方法去搜索。只要把目标函数和梯度定义清楚,剩下的交给迭代就行。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 梯度下降之前:目标函数与梯度推导
2.1 为什么选ISL做代价函数,而不直接优化PSLR
这是我踩的第一个坑。最开始我天真地想,既然雷达关心峰值旁瓣电平,那直接把PSLR当目标函数不就好了?结果一跑就发现梯度下降根本走不动。
原因不难理解。PSLR用的是max运算,它只关注最大旁瓣的那一个点。max函数
