ZC序列理论学习及仿真 您所在的位置:网站首页 傅里叶变换共轭特性 ZC序列理论学习及仿真

ZC序列理论学习及仿真

2024-07-17 10:53| 来源: 网络整理| 查看: 265

文章目录 前言一、ZC 序列理论1、基本概念2、表达式3、ZC 序列一些定义①、自相关②、循环移位③、循环自相关④、循环互相关 二、ZC 序列性质1、性质 1:恒包络,即等模2、性质 2:零循环自相关3、性质 3:固定循环互相关4、其他性质①、傅里叶变换后仍是 ZC 序列②、低峰均比③、序列间的正交性 三、仿真结果1、ZC 序列生成①、复数点②、复平面散点图③、模值 2、ZC 序列循环移位3、ZC 序列自相关函数4、ZC 序列循环自相关5、ZC 序列循环互相关6、ZC 序列傅里叶变换7、ZC 序列低峰均比特性 四、资源自取

前言

ZC 序列和 m 序列是数字通信中常用的两种序列,在编码和解码过程中起到重要的作用。本文作为 ZC 序列学习笔记,主要研究 ZC 序列的一些性质,并通过 MATLAB 对其进行仿真验证。

一、ZC 序列理论 1、基本概念

ZC 序列(Zadoff-Chu 序列)是一种具有良好性质的离散序列,它是一种复数序列,在通信系统中广泛应用。它由 Zadoff 和 Chu 于 1964 年提出,是一种特殊的线性调频脉冲压缩序列。ZC 序列常用于通信系统中的同步和信道估计等方面。

ZC 序列的自相关性是指序列与其自身进行相关运算后的结果。自相关性能够体现序列的周期性和重复性,对于同步和信道估计非常重要。ZC 序列的互相关性是指序列与其他序列进行相关运算后的结果。互相关性能够体现序列之间的相似程度,对于信道估计和多用户检测等方面有着重要作用。

ZC 序列常用于各种无线通信系统中,如 LTE(Long Term Evolution)、WiMAX(Worldwide Interoperability for Microwave Access)、GNSS(Global Navigation Satellite System)等。它们被广泛应用于信号处理和通信领域,以提高系统性能和可靠性。

2、表达式

ZC 序列常用于随机接入(Random Access)中以生成 preamble 序列,其表达式如下图所示: 在这里插入图片描述 ZC 序列有两个重要的参数:

根索引(root index):对应上图中物理根序列号 u u u, u u u 是由逻辑根序列号查表获取;ZC 序列的长度:对应上图中根序列长度 L R A L_{RA} LRA​,一定得是奇数(常常是质数);

对于任意 ZC 序列,在长度 L R A L_{RA} LRA​ 和根序列 u u u 的取值确定的情况下,便可确定根序列 i i i。

注意到:每个 ZC 序列的长度为 L R A L_{RA} LRA​,而ZC序列的序列空间大小为 L R A − 1 L_{RA}-1 LRA​−1,即一共有 L R A − 1 L_{RA}-1 LRA​−1 个 ZC 序列。

我们可以发现,ZC 序列的值是一个复数,由欧拉公式 e j α = c o s ( α ) + j s i n ( α ) e^{j\alpha}=cos(\alpha)+jsin(\alpha) ejα=cos(α)+jsin(α),即可得到该复数的实部和虚部,除此之外,还可以发现它的幅值恒为 1,其实在复数坐标系中,它都是在单位圆上。

3、ZC 序列一些定义 ①、自相关

离散时间序列的自相关函数定义为: R n = ∑ n = − ∞ ∞ x [ k ] x ∗ [ k + n ] R_{n}= \sum\limits_{n=-\infty}^{\infty}x[k]x^{*}[k+n] Rn​=n=−∞∑∞​x[k]x∗[k+n]

x [ k ] x[k] x[k] 为调制序列; x ∗ [ k + n ] x^{*}[k+n] x∗[k+n] 为 x [ k ] x[k] x[k] 时延信号的共轭。 ②、循环移位

一个长度为 N N N 的有限长序列 x [ n ] x[n] x[n],其 m 次循环移位公式如下: x m [ n ] = x [ ( n + m )   m o d   N ] , m = 0 , 1 , 2 , . . . , N − 1 x^{m}[n]=x[(n+m)\ mod\ N],m=0,1,2,...,N-1 xm[n]=x[(n+m) mod N],m=0,1,2,...,N−1 一共有 N N N 个循环移位序列(包括本身)。

③、循环自相关

循环自相关也叫周期自相关,长度为 N N N 的有限长序列 x [ n ] x[n] x[n] 的序列循环自相关公式为: R 0 = ∑ n = 0 N − 1 x [ n ] x ∗ [ n ] R_{0}=\sum^{N-1}_{n=0}x[n]x^{*}[n] R0​=n=0∑N−1​x[n]x∗[n]

归一化的循环自相关公式为: R ‾ x x [ τ ] = 1 N R x x [ τ ] \overline{R}_{xx}[\tau]=\frac{1}{N}R_{xx}[\tau] Rxx​[τ]=N1​Rxx​[τ] 显而易见, R ‾ x x [ 0 ] = 1 , R ‾ x x [ τ ≠ 0 ] ≤ 1 \overline{R}_{xx}[0]=1,\overline{R}_{xx}[\tau \neq0]\le1 Rxx​[0]=1,Rxx​[τ=0]≤1。

④、循环互相关

循环互相关也叫周期互相关,给定长度为 N N N 的两个有限长序列 x [ n ] x[n] x[n] 和 y [ n ] y[n] y[n],它们的循环互相关公式为: R x y = ∑ n = 0 N − 1 x [ n ] y ∗ [ n ] R_{xy}=\sum^{N-1}_{n=0}x[n]y^{*}[n] Rxy​=n=0∑N−1​x[n]y∗[n] 类似地,我们可以定义归一化的循环互相关公式为: R ‾ x y [ τ ] = 1 N R x y [ τ ] \overline{R}_{xy}[\tau]=\frac{1}{N}R_{xy}[\tau] Rxy​[τ]=N1​Rxy​[τ] 一般地,我们把 R ‾ x y [ 0 ] \overline{R}_{xy}[0] Rxy​[0] 称为两个序列的互相关。

二、ZC 序列性质 1、性质 1:恒包络,即等模

任意长度的 ZC 序列幅值恒定,这也意味着功率恒定,这个好处就是射频器件不用忽大忽小的改变放大能量。为什么能够恒包络?看 ZC 序列的生成表达可以看到,本质就是一个底数为 e 的指数序列,每一个序列值代表单位圆上的一个点。每一个点值,仅是改变相位而已。复指数是一个二维 I、Q 的平面图。

令 u = 10 u=10 u=10, L R A = 839 L_{RA} = 839 LRA​=839,绘制的复平面图形如下: 在这里插入图片描述

2、性质 2:零循环自相关

一个 ZC 序列的循环自相关是最优的,因为对于所有的非零移位序列,与原序列的自相关都等于 0

ZC 序列循环移位 N,如果 N 不等于 ZC 序列的长度(N 等于序列长度,循环移位后回到起始点了),则移位后的序列和原序列不相关。啥意思?就是说虽然本是同根生,但是只要屁股挪了一下,哪怕是挪一位,那长得一点都不像没有挪前的样子。这个性质有什么好处?假如没挪前的序列表示一个 UE,挪位后的序列表示另一个 UE,那么基站用根序列与接收到的序列一相关运算,就知道有几个 UE 在向他打报告申请资源了。至于“相关”运算,可以理解为查看两条序列长得“像不像”的工具,长得“像”,相关峰值就又直又高耸入云,长得不“像”,相关峰值就软绵绵趴在地上。 在这里插入图片描述 ZC 序列循环移位后,原序列和移位后的相关峰值出现在移位大小的位置。

3、性质 3:固定循环互相关

对相同长度的两个 ZC 序列,即一个序列的 root index 为 q 1 q_1 q1​,另一个序列的 root index 为 q 2 q_2 q2​,且 q 1 ≠ q 2 q_1\neq q_2 q1​=q2​,那么两个序列的归一化循环互相关值正好等于 1 / N z c 1/\sqrt{N_{zc}} 1/Nzc​ ​,这里一般假设 N z c N_{zc} Nzc​ 是质数,或者更一般地,认为 ∣ q 1 − q 2 ∣ |q_1-q_2| ∣q1​−q2​∣ 与 N z c N_{zc} Nzc​ 互质。 在这里插入图片描述

4、其他性质 ①、傅里叶变换后仍是 ZC 序列

这个性质,简直就是为 OFDM 系统量身打造,也省去多少运算量。既可以在时域相关,也可以在频域相关,灵活决定姿势,怎么方便怎么来。

OFDM 本质是多个并行的子载波采用正交 IQ 调制,然后相加在一起,以单个子载波对应的时间周期T,离散化后,刚好是一个离散逆傅立叶变换IFFT,这是 OFDM 调制采用 IFFT 变换的本质。

②、低峰均比

对于发端,ZC 序列峰均比低(ZC 序列时频域都是 ZC 序列,且幅值恒定),有利于射频功放信号发挥最大的效率。

对于信道估计,ZC 序列幅值恒定,其图形可看作一个单位圆。

序列长度对序列的影响:ZC 序列越长,序列间的互相关性越差。在做多用户 RA 时,序列间的互相关性越差,某一序列对其他序列造成的干扰越小,从而提高序列检测的正确率。因此,ZC序列越长,检测性能越好。

③、序列间的正交性 相同 root index 的两个 ZC 序列彼此正交;不同 root index 的两个 ZC 序列由于其彼此互相关性非零,因此不再具有正交性; 三、仿真结果 1、ZC 序列生成

MATLAB 上已经有函数专门产生 ZC 序列的函数:zadoffChuSeq 注:zadoffChuSeq 用在 R2019a 版本及以后,之前的版本使用 lteZadoffChuSeq 函数,这两个函数只是名字发生了变化。

使用方法:

seq = zadoffChuSeq(R,N) % 生成长度为 N 的第 R 根的 Zadoff-Chu 序列

例如我们生成长度为 139,根序列号为 25 的 Zadoff-Chu 序列,并输出序列的离散复数点、绘制复平面散点图及模值:

对应文末代码 zc_generator.m

仿真结果如下:

①、复数点

生成的输出序列的离散复数点如下:

1.0000 + 0.0000i 0.4266 - 0.9044i -0.9693 + 0.2461i 0.8789 - 0.4770i 0.3004 + 0.9538i -0.3219 + 0.9468i 0.1687 + 0.9857i 0.9746 - 0.2241i -0.9875 - 0.1576i 0.8323 - 0.5544i 0.7788 + 0.6273i 0.6869 + 0.7268i 0.9837 - 0.1798i -0.6702 - 0.7421i 0.7497 + 0.6618i -0.8679 + 0.4967i -0.9693 - 0.2461i -0.9936 + 0.1128i 0.0339 + 0.9994i 0.4670 - 0.8842i 0.1240 + 0.9923i -0.9571 + 0.2896i -0.9997 + 0.0226i -0.6360 + 0.7717i 0.9634 + 0.2679i -0.9571 - 0.2896i 0.6869 - 0.7268i 0.9959 + 0.0903i 0.9908 - 0.1352i 0.0790 - 0.9969i -0.6702 + 0.7421i 0.2570 - 0.9664i 0.9746 + 0.2241i 0.8064 + 0.5914i 0.9959 - 0.0903i -0.3643 - 0.9313i 0.2131 + 0.9770i -0.9271 - 0.3748i -0.1464 - 0.9892i -0.2351 - 0.9720i -0.9936 - 0.1128i 0.6184 + 0.7858i -0.8446 - 0.5354i 0.6184 - 0.7858i 0.9353 - 0.3538i 0.5823 - 0.8130i -0.8895 - 0.4570i 0.7190 + 0.6950i -0.9977 + 0.0678i -0.4469 - 0.8946i -0.4060 - 0.9139i -0.9977 - 0.0678i 0.5450 + 0.8385i -0.7031 - 0.7111i 0.8565 - 0.5162i 0.9908 + 0.1352i 0.9504 - 0.3112i -0.3219 - 0.9468i -0.1015 + 0.9948i -0.5638 - 0.8259i 0.6533 - 0.7571i 0.7788 - 0.6273i -0.0565 - 0.9984i -0.8446 + 0.5354i 0.8064 - 0.5914i 0.2570 + 0.9664i -0.5259 + 0.8506i -0.2351 + 0.9720i 0.9353 + 0.3538i -0.6005 - 0.7996i 0.9353 + 0.3538i -0.2351 + 0.9720i -0.5259 + 0.8506i 0.2570 + 0.9664i 0.8064 - 0.5914i -0.8446 + 0.5354i -0.0565 - 0.9984i 0.7788 - 0.6273i 0.6533 - 0.7571i -0.5638 - 0.8259i -0.1015 + 0.9948i -0.3219 - 0.9468i 0.9504 - 0.3112i 0.9908 + 0.1352i 0.8565 - 0.5162i -0.7031 - 0.7111i 0.5450 + 0.8385i -0.9977 - 0.0678i -0.4060 - 0.9139i -0.4469 - 0.8946i -0.9977 + 0.0678i 0.7190 + 0.6950i -0.8895 - 0.4570i 0.5823 - 0.8130i 0.9353 - 0.3538i 0.6184 - 0.7858i -0.8446 - 0.5354i 0.6184 + 0.7858i -0.9936 - 0.1128i -0.2351 - 0.9720i -0.1464 - 0.9892i -0.9271 - 0.3748i 0.2131 + 0.9770i -0.3643 - 0.9313i 0.9959 - 0.0903i 0.8064 + 0.5914i 0.9746 + 0.2241i 0.2570 - 0.9664i -0.6702 + 0.7421i 0.0790 - 0.9969i 0.9908 - 0.1352i 0.9959 + 0.0903i 0.6869 - 0.7268i -0.9571 - 0.2896i 0.9634 + 0.2679i -0.6360 + 0.7717i -0.9997 + 0.0226i -0.9571 + 0.2896i 0.1240 + 0.9923i 0.4670 - 0.8842i 0.0339 + 0.9994i -0.9936 + 0.1128i -0.9693 - 0.2461i -0.8679 + 0.4967i 0.7497 + 0.6618i -0.6702 - 0.7421i 0.9837 - 0.1798i 0.6869 + 0.7268i 0.7788 + 0.6273i 0.8323 - 0.5544i -0.9875 - 0.1576i 0.9746 - 0.2241i 0.1687 + 0.9857i -0.3219 + 0.9468i 0.3004 + 0.9538i 0.8789 - 0.4770i -0.9693 + 0.2461i 0.4266 - 0.9044i 1.0000 - 0.0000i ②、复平面散点图

对应的复平面上的散点图见下图,为单位圆: 请添加图片描述

③、模值

对应的模值如下图,恒定为 1 请添加图片描述

2、ZC 序列循环移位

在对某一个 ZC 序列进行循环移位时,可使用 MATLAB 自带 circshift() 函数 语法:

Y = circshift(A,K) Y = circshift(A,K,dim)

说明:

Y = circshift(A,K) 循环将 A 中的元素平移 K 个位置。如果 K 为整数,则 circshift 沿大小不等于 1 的第一个 A 维度进行平移。如果 K 为整数向量,则每个 K 元素指示 A 的对应维度中的平移量。Y = circshift(A,K,dim) 循环将 A 中的值沿维度 dim 平移 K 个位置。输入 K 和 dim 必须为标量。

生成长度为 11,根序列号为 1 的 Zadoff-Chu 序列,循环移位长度为 3

对应文末代码 cycle_shift.m

仿真运行时打断点可以看到原 Seq1 和移位后的 Seq2 在这里插入图片描述

3、ZC 序列自相关函数

我们还是使用上面生成长度为 139,根序列号为 25 的 Zadoff-Chu 序列,绘制 ZC 序列的自相关函数

对应文末代码 autocorrelation.m

仿真结果如下: 请添加图片描述 可以看到 ZC 序列具有集中的主瓣。

自相关的结果为 2N-1 个点,即 2 * 139 - 1 = 277 个点,关于 N=139 对称(这里从 -138 开始,因此关于 0 对称)。

有关 MATLAB 中自相关函数可以参考这个博客:一个例子学会自相关互相关的计算

4、ZC 序列循环自相关

对应文末代码 cyclic_autocorrelation.m

仿真结果如下: 请添加图片描述 请添加图片描述 从仿真结果可以看出,ZC 序列具有良好的循环自相关特性且自相关峰值尖锐,对于任意 ZC 序列与其循环移位 a 位后的序列互不相关 a ≠ 0 a\neq 0 a=0;

从图中可以看到 ZC 序列循环移位后,原序列和移位后的相关峰值出现在移位大小的位置。

由此可得下面结论: 在这里插入图片描述 ZC 序列循环移位 N 后,原序列只与移位后的序列得良好的相关峰值且峰值在N处,其它位置的相关峰值为 0,这也是 preamble 检测的理论依据。

5、ZC 序列循环互相关

如果不同根产生的 ZC 序列进行相关运算会发生什么情况呢?下面我们构造两个根为 11 和 7 并且长度 N = 67 的 ZC 序列。

对应文末代码 cyclic_cross_correlation_1.m

两个不同根序列相关运算后的结果如下图: 请添加图片描述

N=67,u1=11,u2=7, ZC序列互相关函数

因此可得结论:若 N N N 与 ∣ u 1 − u 2 ∣ |u_1-u_2| ∣u1​−u2​∣ 互质,则互相关函数 ∣ R u 1 u 2 ∣ = N |R_{u_1u_2}|=\sqrt{N} ∣Ru1​u2​​∣=N ​

我们从图上看出,对于不同根的序列再进行相关运算之后,不会产生像上面相同根的序列那样会产生又高又细的相关峰。

下面我们再构造两个根为 17 和 8 并且长度 N = 63 的 ZC 序列。

对应文末代码 cyclic_cross_correlation_2.m

两个不同根序列相关运算后的结果如下图: 请添加图片描述

N=63,u1=17,u2=8, ZC序列互相关函数

因此可得结论:若 N 为奇数,假设 N N N 与 ∣ u 1 − u 2 ∣ |u_1-u_2| ∣u1​−u2​∣ 有最大公约数 δ ≠ \delta \neq δ=,则互相关函数 ∣ R u 1 u 2 = δ N ∣ |R_{u_1u_2}=\sqrt{\delta N}| ∣Ru1​u2​​=δN ​∣ ∣ R u 1 u 2 ∣ = { δ N n = k δ 0 n ≠ k δ , k = 1 , 2 , . . . , N δ |R_{u_1u_2}|= \begin{cases} \sqrt{\delta N}& {n=k\delta}\\ 0& {n\neq k\delta} \end{cases},k=1,2,...,\frac{N}{\delta} ∣Ru1​u2​​∣={δN ​0​n=kδn=kδ​,k=1,2,...,δN​

上面我们说过:对相同长度的两个 ZC 序列,即一个序列的 root index 为 q 1 q_1 q1​,另一个序列的 root index 为 q 2 q_2 q2​,且 q 1 ≠ q 2 q_1\neq q_2 q1​=q2​,那么两个序列的归一化循环互相关值正好等于 1 / N z c 1/\sqrt{N_{zc}} 1/Nzc​ ​,这里一般假设 N z c N_{zc} Nzc​ 是质数,或者更一般地,认为 ∣ q 1 − q 2 ∣ |q_1-q_2| ∣q1​−q2​∣ 与 N z c N_{zc} Nzc​ 互质。

这里我们进行仿真证明一下:

对应文末代码 normalized_cycle_cross_correlation_value.m

仿真图如下: 请添加图片描述 验证了我们上面所说的结论:两个序列的归一化循环互相关值正好等于 1 / N z c = 1 / 11 ≈ 0.3015 1/\sqrt{N_{zc}}=1/\sqrt{11}\approx0.3015 1/Nzc​ ​=1/11 ​≈0.3015

6、ZC 序列傅里叶变换

这里介绍一下对 ZC 序列做完傅里叶变换后,再去分析复平面散点图及循环自相关特性

对应文末代码 zc_fft.m

仿真结果如下: 请添加图片描述 请添加图片描述 请添加图片描述 从上图仿真可以看出,结果显而易见,经过傅里叶变换之后的序列仍然具有同样的特性。

7、ZC 序列低峰均比特性

对应文末代码 low_peak_to_average_ratio_characteristic.m

仿真结果如下: 请添加图片描述 请添加图片描述 可以看到,ZC 序列峰均比较低,从而有利于射频功放信号发挥最大的效率。

参考文献:5GNR漫谈13:Zadoff –Chu(ZC)序列性质

四、资源自取

链接:ZC序列理论学习及仿真 在这里插入图片描述

我的qq:2442391036,欢迎交流!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有