一条序列就是一个向量
先抛开雷达背景。一条长度为 N 的四相序列,本质上就是一个 N 维复向量:每一位取 1、i、-1、-i 之一,写成 i 的幂次即 i⁰、i¹、i²、i³,提交时简记为 0、1、2、3。这四个符号代表单位圆上的四个等分角,彼此可以做差、相乘,这也是后续所有计算的基础。
一个码本由五个这样的向量组成。题目要求这五个向量彼此尽可能指向不同方向,而且对它们各自的所有平移版本也同样成立。
内积衡量两个方向有多接近
两个复向量的内积定义为 ⟨y, x⟩ = Σ yₜ · conj(xₜ)。每一项 yₜ·conj(xₜ) 是两个单位复数的商,代表该位置上的相位差。
如果两个向量方向一致,每一位的相位差都相同,求和时各项同相叠加,模长最大可达 N。如果两个向量方向迥异,相位差散落在单位圆四个方向上,求和时彼此抵消,模长就接近于零。
在接收端,内积用来判断两段信号是否匹配:模长很大代表匹配,接近零代表不匹配。接收器正是靠这个判据从回波中识别信号的。
这道题真正的难点在于组合数量:接收器需要对上千种配对逐一计算内积,其中只有唯一正确的配对应该给出高响应。只要有任何一个错误配对也产生了较大的内积,接收器就会产生误判。压低所有错误配对的内积,才能让真正的回波清晰地凸显出来。
这里只关心内积的模长,因为信号反射会引入一个未知的整体相位偏移。整体相位旋转会改变内积的相位角,但不会改变它的模长。
每一个错位对应一个距离假设
信号发射后经过一段时间才会反射回来,而接收器事先并不知道延迟了多久。因此它会把候选序列依次错开 0 位、1 位、2 位……在每个错位上分别计算内积。错位量 k 在物理上直接对应一个距离假设:检验该距离处是否存在目标。
这样一来,接收器实际在检验一张二维表格:五个通道 × 每一个可能的距离。表格中每个格子的数值,就是对应配对与错位下的内积模长。
理想情况下,整张表里只有唯一一个格子给出强响应(对应正确的通道与正确的距离),其余所有格子都应当接近零。这就是本题的核心要求。
错位 |k| 重叠长度 这个内积检验的内容 0 N 两条完整序列是否匹配 1 N-1 错开一位后是否仍然相似 2 N-2 错开两位后是否仍然相似 ... ... N-1 1 仅首尾一位重叠
每条序列与自身有 N−1 个非零错位(正负错位的模长相等,只需计一半),每两条不同序列之间有 2N−1 个错位,五条序列共有 10 对组合。总计需要检验 5(N−1) + 10(2N−1) = 25N − 15 个格子:当 N = 37 时为 910 个,当 N = 73 时为 1810 个。
目标:让所有非匹配组合尽可能正交
综合以上两节,可以把题目要求概括为一句话:
设计五条四相复序列,使它们连同各自的所有平移版本在每一个非匹配组合上的内积都尽可能接近零。
唯一排除在外的是 a = b 且 k = 0 的情形,即同一条序列与自身零错位对齐。这一项恒等于 N,对应真实目标的主检测峰,不参与计分;其余所有内积都越小越好。
具体例子:正交与自相关旁瓣
考虑两条长度为 4 的序列:A 为常相位序列,四位均为 0°;B 每步逆时针旋转 90°,依次为 0°、90°、180°、270°。写成复向量即 A = (1, 1, 1, 1),B = (1, i, -1, -i)。
零错位时,⟨A, B⟩ = 1 − i − 1 + i = 0,两者完全正交:如果接收器收到 B 而用 A 检测,输出恰好为零。与此同时 ⟨B, B⟩ = 4,用正确的序列检测可以得到满分响应。
但零错位只占表格中的一个格子。如果检查 A 与自身平移版本的内积,就会发现严重问题:错开 1 位模长为 3,错开 2 位为 2,错开 3 位为 1。这意味着真实目标的回波会在相邻的每个距离档位上都产生强响应。常相位序列之所以不可用,正因为它与自身平移版本高度相似。
A = (1, 1, 1, 1) B = (1, i, -1, -i) ⟨A, B⟩ 错位 0 = 0 完全正交 ⟨B, B⟩ 错位 0 = 4 主检测峰,不参与计分 ⟨A, A⟩ 错位 1 模 3 在该距离档位产生强旁瓣 ⟨A, A⟩ 错位 2 模 2 ⟨A, A⟩ 错位 3 模 1
如何手算一个内积
编码 0、1、2、3 对应 i 的指数:符号 p 代表 iᵖ。因此两个位置的相位相除就是 i^(p−q),复数乘法直接转化为指数模 4 的减法,整个内积计算只需整数加减。
具体分三步:第一步,将两条序列按给定错位对齐,在重叠部分逐位计算上方符号减下方符号(模 4);第二步,统计差值中 0、1、2、3 各自出现的次数 n₀、n₁、n₂、n₃;第三步,内积实部为 n₀ − n₂,虚部为 n₁ − n₃,模平方即为 (n₀ − n₂)² + (n₁ − n₃)²。
原理很简单:差值为 0 贡献 +1,差值为 2 贡献 −1,两者在实轴上抵消;差值为 1 贡献 +i,差值为 3 贡献 −i,两者在虚轴上抵消。因此内积完全取决于这四个计数的两组差值。
A = 0 0 1 3 B = 0 2 3 1
逐位差 n₀/n₁/n₂/n₃ re = n₀−n₂ im = n₁−n₃ 模平方
错位 0 0 2 2 2 1/0/3/0 -2 0 4
错位 1 0 3 0 2/0/0/1 2 -1 5
错位 2 1 1 0/2/0/0 0 2 4验证器内部正是这样计算的。从公式也能看出优化的方向:0、1、2、3 四个计数分布得越均匀,实部和虚部就越接近零;反过来,只要某一种相位差明显偏多,内积模长就会冲高。
两类错误响应与动态范围
非匹配内积分为两类:同一条序列在非零错位上的自相关旁瓣过高,会让一个真实目标在其它距离档位上产生重影;不同序列之间的互相关过高,则会让某个通道的回波串入另一通道,造成方位误判。
主评分只看所有非匹配组合中的最大值。这是因为接收器无法区分强目标的旁瓣响应与弱目标的真实回波,主检测峰与最大旁瓣之比直接决定了系统能同时分辨的强弱目标动态范围。
下面对比长度 N = 73 的两组码本,两者的主检测峰均为 73:
主检测峰 最大旁瓣/互相关 主旁瓣比 常相位码本(初始基线) 73 73 1.00 倍 = 0.0 dB 本站参考码本 73 11.18 6.53 倍 = 16.3 dB
常相位码本的主旁瓣比为 1.00,最大旁瓣与主峰等高,毫无分辨能力,仅作为格式示例与初始占位基线。
计分规则:三级整数指标
由于每位取值为 1、i、-1、-i,每个内积都是实部与虚部均为整数的高斯整数。计分直接采用模平方 re² + im²,全程使用精确整数运算。
最终成绩由三个整数按字典序依次比较:第一项是所有非匹配组合中的最大模平方(峰值模平方);第二项是达到该峰值的组合个数(并列数);第三项是所有非匹配组合的模平方之和(总能量)。页面上显示为「峰值模平方 · 并列数 · 总能量」。
引入后两项作为次级指标,是因为峰值模平方是一个较小的整数,很容易出现多份提交峰值相同的情况。加入峰值并列数与总能量可以进一步区分码本质量。初次尝试时,只需集中精力压低第一项(最大峰值模平方)即可。
理论下界方面,在长度 N = 73 时,Welch 型不等式给出的连续下界约为 22.21。由于高斯整数的模平方必须能表示为两个整数的平方和,而 23 和 24 都无法拆成两平方和,最小的候选整数是 25 = 3² + 4²,因此严格理论下界为 25。目前文献中尚未见到该参数下公开完整序列的现成码本,因此本题暂未设置外部最佳纪录。
搜索空间与耦合难点
如果允许相位连续变化,构造低相关波形会容易得多;但实际硬件要求脉冲等幅且相位取自离散有限集合,四相调制(QPSK)是最常用的工程方案之一。
消除每条序列的首相位旋转自由度后,长度为 N 的五条四相序列共有 4^(5(N−1)) 种可能,在 N = 37 时约为 10¹⁰⁸,无法暴力穷举。更棘手的是全局耦合:修改任意一个位置的相位,会同时改变该序列的多项自相关和它与其余四条序列的多项互相关,压低当前最高峰往往会导致其它错位上的峰突起,是一个典型的离散极小极大优化问题。
工程背景
在多输入多输出(MIMO)雷达与声呐系统中,多个发射天线同时发射各自编码的脉冲,接收端收到的是所有通道回波的叠加。接收机依靠匹配滤波(即上文的内积表)分离各个通道并测定目标距离。非匹配位置上的高峰会在雷达屏幕上造成假目标、距离重影或通道间串扰。
低自相关旁瓣、低互相关的离散相位码本设计是雷达波形设计中的经典问题。P70 将其提炼为一个规则纯粹、可精确整数验算的组合优化模型:固定五条通道与四种相位,最小化所有非匹配位置上的最坏相关峰。