ZC序列符号同步:多径信道下的四种经典算法

ZC序列符号同步:多径信道下的四种经典算法

一、引言

在无线通信中,接收机需要知道每个符号从哪里开始------这就是符号同步。Zadoff-Chu(ZC)序列因其完美的数学特性,被广泛用作同步前导序列。本文简要介绍四种经典的ZC序列符号同步算法。


二、场景与模型

2.1 ZC序列定义

ZC序列长度为 NNN(奇数),其数学表达式为:

xun=exp⁡(−jπu n(n+1)N),n=0,1,...,N−1x_un = \exp\left(-j\pi\frac{u\,n(n+1)}{N}\right), \quad n=0,1,\ldots,N-1xun=exp(−jπNun(n+1)),n=0,1,...,N−1

核心性质:

  • 恒幅 :∣xun∣=1|x_un| = 1∣xun∣=1
  • 零自相关:非零延迟处自相关为0
  • 低互相关:不同根序列相互干扰小

2.2 前导结构

本文采用对称前导设计:

  • 主体xu;  conj(flip(xu)) \\mathbf{x}_u;\\; \\text{conj}(\\text{flip}(\\mathbf{x}_u)) xu;conj(flip(xu)),长度 2N2N2N
  • 循环前缀(CP) :复制主体尾部 LcpL_{\text{cp}}Lcp 个样点放到开头

接收信号经过多径Rayleigh信道并叠加AWGN噪声:

rn=∑khk⋅tn−τk+wnrn = \sum_{k} h_k \cdot tn-\\tau_k + wnrn=k∑hk⋅tn−τk+wn

同步任务:估计前导CP的起始位置 d^\hat{d}d^。


三、算法介绍

3.1 分段相关同步

思想:将长序列分成若干短段,段内相干相关,段间非相干合并,抵抗频偏。

分段 :本地序列 s\mathbf{s}s(长度 LLL)分为 MMM 段,第 mmm 段覆盖索引 bm−1,bm−1b_{m-1}, b_m-1bm−1,bm−1

段内相关

cm(d)=∑is∗i⋅rd+ic_m(d) = \sum_{i} s^*i \cdot rd+icm(d)=i∑s∗i⋅rd+i

归一化

ρm(d)=∣cm(d)∣2Es⋅Er+ϵ\rho_m(d) = \frac{|c_m(d)|^2}{E_s \cdot E_r + \epsilon}ρm(d)=Es⋅Er+ϵ∣cm(d)∣2

同步度量

Λseg(d)=1M∑m=1Mρm(d)\Lambda_{\text{seg}}(d) = \frac{1}{M}\sum_{m=1}^{M} \rho_m(d)Λseg(d)=M1m=1∑Mρm(d)

检测

d^=arg⁡max⁡dΛseg(d)\hat{d} = \arg\max_d \Lambda_{\text{seg}}(d)d^=argdmaxΛseg(d)


3.2 差分相关同步

思想:利用相邻样点的相位差消除公共相位旋转,对任意大小频偏均鲁棒。

差分序列

dsn=sn+1⋅s∗nd_sn = sn+1 \cdot s^*ndsn=sn+1⋅s∗n

drn=rn+1⋅r∗nd_rn = rn+1 \cdot r^*ndrn=rn+1⋅r∗n

差分相关

cdiff(d)=∑n=0L−2ds∗n⋅drd+nc_{\text{diff}}(d) = \sum_{n=0}^{L-2} d_s^*n \cdot d_rd+ncdiff(d)=n=0∑L−2ds∗n⋅drd+n

归一化

Λdiff(d)=∣cdiff(d)∣2Es⋅Er+ϵ\Lambda_{\text{diff}}(d) = \frac{|c_{\text{diff}}(d)|^2}{E_s \cdot E_r + \epsilon}Λdiff(d)=Es⋅Er+ϵ∣cdiff(d)∣2

检测

d^=arg⁡max⁡dΛdiff(d)\hat{d} = \arg\max_d \Lambda_{\text{diff}}(d)d^=argdmaxΛdiff(d)


3.3 CP阈值检测

思想:CP是主体尾部的副本,利用这一结构冗余实现盲同步。

CP相关

P(d)=∑i=0Lcp−1r∗d+i⋅rd+Lsym+iP(d) = \sum_{i=0}^{L_{\text{cp}}-1} r^*d+i \cdot rd+L_{\\text{sym}}+iP(d)=i=0∑Lcp−1r∗d+i⋅rd+Lsym+i

能量归一化

R(d)=12∑i=0Lcp−1(∣rd+i∣2+∣rd+Lsym+i∣2)R(d) = \frac{1}{2}\sum_{i=0}^{L_{\text{cp}}-1} \left(|rd+i|^2 + |rd+L_{\\text{sym}}+i|^2\right)R(d)=21i=0∑Lcp−1(∣rd+i∣2+∣rd+Lsym+i∣2)

同步度量

ΛCP(d)=∣P(d)∣2R(d)2+ϵ\Lambda_{\text{CP}}(d) = \frac{|P(d)|^2}{R(d)^2 + \epsilon}ΛCP(d)=R(d)2+ϵ∣P(d)∣2

阈值检测

设置门限 γ=α⋅max⁡(ΛCP)\gamma = \alpha \cdot \max(\Lambda_{\text{CP}})γ=α⋅max(ΛCP),取第一个超过门限的位置:

d^=min⁡{d:ΛCP(d)≥γ}\hat{d} = \min\{d : \Lambda_{\text{CP}}(d) \ge \gamma\}d^=min{d:ΛCP(d)≥γ}


3.4 Pauli对称相关

思想 :利用对称前导 a;conj(flip(a))\\mathbf{a}; \\text{conj}(\\text{flip}(\\mathbf{a}))a;conj(flip(a)) 的结构,用Pauli矩阵构造四路检测通道。

提取左右部分(去掉CP后):

rleft=rd:d+N−1,rright=rd+N:d+2N−1\mathbf{r}{\text{left}} = rd:d+N-1, \quad \mathbf{r}{\text{right}} = rd+N:d+2N-1rleft=rd:d+N−1,rright=rd+N:d+2N−1

镜像右半 :r2=flip(rright)\mathbf{r}2 = \text{flip}(\mathbf{r}{\text{right}})r2=flip(rright)

本地参考 :s1=a,  s2=conj(a)\mathbf{s}_1 = \mathbf{a},\; \mathbf{s}_2 = \text{conj}(\mathbf{a})s1=a,s2=conj(a)

四个Pauli通道

CI=∑n(s1∗rleft+s2∗r2)C_I = \sum_n (s_1^* r_{\text{left}} + s_2^* r_2)CI=n∑(s1∗rleft+s2∗r2)
CX=∑n(s1∗r2+s2∗rleft)C_X = \sum_n (s_1^* r_2 + s_2^* r_{\text{left}})CX=n∑(s1∗r2+s2∗rleft)
CY=∑n(−js1∗r2+js2∗rleft)C_Y = \sum_n (-j s_1^* r_2 + j s_2^* r_{\text{left}})CY=n∑(−js1∗r2+js2∗rleft)
CZ=∑n(s1∗rleft−s2∗r2)C_Z = \sum_n (s_1^* r_{\text{left}} - s_2^* r_2)CZ=n∑(s1∗rleft−s2∗r2)

同步度量

ΛPauli(d)=∣CI∣2+∣CX∣2+∣CY∣2+∣CZ∣24⋅Es⋅Er+ϵ\Lambda_{\text{Pauli}}(d) = \frac{|C_I|^2 + |C_X|^2 + |C_Y|^2 + |C_Z|^2}{4 \cdot E_s \cdot E_r + \epsilon}ΛPauli(d)=4⋅Es⋅Er+ϵ∣CI∣2+∣CX∣2+∣CY∣2+∣CZ∣2

检测

d^=arg⁡max⁡dΛPauli(d)\hat{d} = \arg\max_d \Lambda_{\text{Pauli}}(d)d^=argdmaxΛPauli(d)


四、算法对比

算法 抗频偏 抗多径 计算量 是否需要导频
分段相关
差分相关 极强
CP阈值 否(盲)
Pauli相关

五、总结

四种算法各有适用场景:

  • 分段相关:工程首选,综合性价比最高
  • 差分相关:大频偏场景必备
  • CP阈值:盲检测和唤醒接收的理想选择
  • Pauli相关:追求极限性能时的选项

理解这些算法的原理和取舍,是设计鲁棒通信接收机的基础。


开源项目:https://github.com/hjHe-ee/zc-sequence-synchronization

相关推荐
hetao17338373 分钟前
校内场-提高组 ZYZSC-S-Round 4
c++·算法
彧azz31 分钟前
二叉搜索树学习记录
c语言·数据结构·笔记·算法
手写码匠1 小时前
DeepSeek 函数调用实战:从零搭建一个会“动手“的 AI 助手
人工智能·深度学习·算法·aigc
果壳science2 小时前
《自然本源》如何实现狭义相对论的代数化
笔记·算法·几何学
302wanger3 小时前
分享一个工作习惯:整点看即时消息
算法
洋不写bug4 小时前
排序(一)基础排序,插入|希尔|冒泡|直接选择排序详解
java·算法·排序算法·插入排序·冒泡排序·希尔排序·直接选择排序
牧羊人.3334 小时前
动手学深度学习 03 | 卷积神经网络实现手写数字识别
人工智能·深度学习·神经网络·算法·cnn
AgentMaster5 小时前
数据治理工具选型指南:一套可复用的四阶段决策框架
大数据·数据结构·人工智能·算法
liliangcsdn5 小时前
最终留出样本/样本外测试集-holdout解读
算法
爱敲代码的小黄5 小时前
机器学习入门:从数据、训练到业务决策
算法