[信号处理] 数学与工程之美:相邻差分共轭乘积

[信号处理] 数学与工程之美:相邻差分共轭乘积 相邻差分共轭乘积表达式d[n1, k] × conj(d[n, k])在信号处理特别是无线通信、OFDM、阵列信号处理中极为常见被称为相邻差分共轭乘积Differential Conjugate Product。我们从数学本质、物理含义和工程应用三个层面来深度拆解1. 它凭什么叫叫差分差分应通常的“减法运算”(a?b)(a?b)(a?b)d[n1, k] × conj(d[n, k])明明是乘法为什么叫差分真相具体现在以下三个层次1.1 相位域的“直接差分”数学本质设信号为dA⋅ejθd A \cdot e^{j\theta}dA⋅ejθ该运算的结果为d[n1]×d[n]‾An1An⋅ej(θn1−θn) d[n1] \times \overline{d[n]} A_{n1}A_n \cdot e^{j(\theta_{n1} - \theta_n)}d[n1]×d[n]​An1​An​⋅ej(θn1​−θn​)注意看指数上的θn1−θn\theta_{n1} - \theta_nθn1​−θn​。在离散信号处理中一阶差分的标准定义就是Δθ[n]θ[n1]−θ[n]\Delta\theta[n] \theta[n1] - \theta[n]Δθ[n]θ[n1]−θ[n]。这个共轭乘积直接计算出了相邻两个采样点之间的相位增量差值。因为它提取的是相位的“差分”所以冠以“差分”之名。1.2 复数域“等效除法”运算本质在数字信号处理中如果我们想求两个复数之间的“变化量”最严谨的数学操作是相除d[n1]/d[n]d[n1] / d[n]d[n1]/d[n]因为除法能消除共同的幅度和初始相位只留下相对变化。但是复数除法在FPGA/DSP中非常消耗资源涉及除法器和反正切运算。而巧妙的数学恒等式告诉我们d[n1]×d[n]‾⟺∣d∣2⋅d[n1]d[n] d[n1] \times \overline{d[n]} \quad \Longleftrightarrow \quad |d|^2 \cdot \frac{d[n1]}{d[n]}d[n1]×d[n]​⟺∣d∣2⋅d[n]d[n1]​当幅度恒定时两者完全等价结论共轭乘法是除法运算在复数域中的高效替代品。既然它的本质是“做除法”来求相邻点的比值而除法对应着对数域的减法差分因此被称为“差分乘积”。1.3 通信系统中的“差分调制/解调”系统背景在通信理论中有一个专门的概念叫差分调制如DPSK差分相移键控。在差分调制中发送端并不是直接把数据放在绝对相位上而是把数据比特编码在相邻符号的相位差上即Δθ\Delta\thetaΔθ。那么在接收端为了解调出这个数据我们必须提取出这个“相位差”。提取方法恰恰就是判决变量d[n1]×d[n]‾\text{判决变量} d[n1] \times \overline{d[n]}判决变量d[n1]×d[n]​因为该运算直接给出了差分编码的相位差值。正因为该运算是专门用来解调“差分信号”的所以在工程界直接称呼其为“差分共轭乘积”。1.4特别辨析为什么叫“共轭”而不是“减法”你可能疑惑“既然是差分减法为什么不用减法d[n1]−d[n]d[n1] - d[n]d[n1]−d[n]”如果做减法两个复数相减结果严重依赖于绝对的初始相位θn\theta_nθn​完全无法消除信道带来的公共旋转且会丢失相位差信息。如果做共轭乘相当于对相位取差θn1−θn\theta_{n1} - \theta_nθn1​−θn​彻底剥离了当前时刻的绝对相位θn\theta_nθn​只保留相邻时刻的相对增量差分。1.5 总结一句话“差分”体现在它不关心d[n]d[n]d[n]这个点的值本身是多少只关心从nnn到n1n1n1这个间隔内信号相位发生了多大变化Δθ\Delta\thetaΔθ。因为计算的是“相邻两点的差值”所以叫“相邻差分”因为利用共轭乘法来实现所以叫“共轭乘积”。这两者结合起来正是你做帧同步时能消除扰码和公共相偏的根本原因。2. 数学本质提取相位差与幅度积设复数信号dA⋅ejθd A \cdot e^{j\theta}dA⋅ejθ那么d[n1,k]×d[n,k]‾(An1ejθn1)×(Ane−jθn)An1An⋅ej(θn1−θn) d[n1, k] \times \overline{d[n, k]} \left( A_{n1} e^{j\theta_{n1}} \right) \times \left( A_n e^{-j\theta_n} \right) A_{n1} A_n \cdot e^{j(\theta_{n1} - \theta_n)}d[n1,k]×d[n,k]​(An1​ejθn1​)×(An​e−jθn​)An1​An​⋅ej(θn1​−θn​)它干了两件事幅度得到了相邻两个时刻或频点的幅度乘积若幅度恒定则得到功率∣A∣2|A|^2∣A∣2。相位直接提取出了相邻点之间的相位差Δθ\Delta\thetaΔθ。3. 针对nnn和kkk维度的具体场景取决于你的定义在通信系统中nnn通常指时间/符号索引kkk通常指子载波/空间索引。针对不同的维度做这个运算意义截然不同场景 A沿时间轴做差分对nnn进行操作这是载波频偏CFO估计的核心操作。因为固定的频率偏移Δf\Delta fΔf会在时域相邻符号间引入固定的相位旋转2πΔfT2\pi \Delta f T2πΔfT。求该乘积的幅角角度再除以时间间隔即可算出频偏。经典算法Schmidl Cox时域同步中广泛使用此操作来抵抗信道相位影响。场景 B沿频率轴做差分对kkk进行操作这是整数倍频偏IFO估计或定时偏差SCO估计的核心操作。因为时偏延迟会在频域相邻子载波间引入线性相位旋转。计算该乘积的幅角即可反推出时间同步误差。经典算法Moose 算法或 LTE/5G NR 中的主同步信号PSS/SSS相关检测。4. 工程中的统计处理为什么要共轭相乘在实际接收机中信道是随时间变化的。直接使用原始信号会受到信道相位剧烈变化的影响。去调制/去信道影响如果ddd是经过信道均衡后的频域数据这个共轭相乘可以消除信道的公共相位偏转前提是信道在相邻符号间变化极慢。相干积累单独的乘积噪声很大。工程上通常会对多个kkk子载波进行求和平均即∑kd[n1,k]⋅d[n,k]‾\sum_{k} d[n1, k] \cdot \overline{d[n, k]}∑k​d[n1,k]⋅d[n,k]​。平均后的信噪比SNR会大幅提升然后再取相位角从而获得更稳健的频偏估计。5. 高阶信号分析视角提升从自相关函数看这个表达式本质上是信号在nnn维度的延迟自相关延迟为 1在频域kkk点上的瞬时值。从差分调制看如果是 DPSK差分相移键控解调接收端直接对这个值进行实部/虚部判决大于0判0小于0判1即可恢复原始比特无需进行复杂信道估计。6. 实际操作中的“避坑”提示注意共轭方向你是conj(d[n])还是conj(d[n1])上述写法得到的是后一点相位减去前一点相位。如果反了角度会变负频偏符号会反请务必保持接收机算法中符号一致性。相位解缠绕如果频偏较大Δθ\Delta\thetaΔθ会超过±π\pm \pi±π直接取angle()会产生模糊混叠。此时需要进行多步频偏估计先粗估再细估或者利用多个间隔如d[n2]×conj(d[n])d[n2] \times conj(d[n])d[n2]×conj(d[n])来扩大估计范围。