5GNR中的常见序列精讲

5GNR中的常见序列精讲

文章目录

前言

1、5GNR 中常见序列对比

2、5GNR 信道应用的序列选择和原因

3、Zadoff - Chu(ZC)序列

3.1 ZC序列的定义

3.2 ZC序列的特点

3.3 Matlab code 说明特点

3.3.1 生成Zadoff-Chu序列

3.3.2 验证零自相关性

3.3.3 验证低互相关性

3.3.4 验证低峰均比(PAPR)

3.3.5 验证循环移位扩展性

3.3.6 验证时域和频域幅度恒定

3.3.7 结果总结

3.4 ZC序列特点术语解释

3.4.1 零自相关性

3.4.1.1 离散时间自相关函数定义

3.4.1.2 连续时间自相关函数定义

3.4.1.3 例子说明

3.4.1.4 零自相关性定义

3.4.1.6 零自相关性主瓣与旁瓣的识别

3.4.1.7 基站是怎么通过主瓣尖锐如快速检测信号

3.4.2 互相关性

3.4.2.1 互相关性低说明什么

3.4.2.1 互相关性高说明什么

3.4.3 峰均比

3.4.3.1 高峰均比

3.4.3.2 低峰均比

3.4.4 时域和频域幅度

3.4.4.1 ZC序列的时域幅度恒定(公式推导)

3.4.4.2 ZC序列的频域幅度恒定(公式推导)

4、Maximum Length Sequence(M)序列

4.1、M序列的定义

4.2、M序列的特点

4.3、Matlab code说明特点

4.3.1 验证平衡性

4.3.2 验证自相关性

4.3.3 验证伪随机性

4.3.4 验证M序列的缺点:互相关性低(差)

4.4、 M序列特点术语解释

4.4.1、 M序列自相关

4.4.2、 M序列互相关

4.4.3、 为什么 “互相关性差” 在 M 序列中是缺点

5、Gold序列

5.1 Gold序列的定义

5.2 Gold序列的特点

5.3 Matlab code说明特点

总结

前言

5G NR 系统中,不同序列凭借独特性能在通信各环节发挥关键作用。Zadoff-Chu 序列以恒包络、优良相关特性成为随机接入与 PUSCH 信道核心;Gold 序列借丰富数量与低互相关特性保障下行信道信息安全;m 序列凭借伪随机与易生成特点实现物理层加扰和同步;正交覆盖码利用正交性提升 PUCCH 资源利用率。本文主要梳理各序列优缺点、功能、信道选用序列的原因。

1、5GNR 中常见序列对比

序列类型

优点

缺点

主要作用

Zadoff-Chu (ZC)

零自相关;低互相关; 恒定幅度(低峰均比);抗频偏能力强(循环移位正交性)。

长度需为质数或特定组合;资源分配需满足正交条件。

同步(PSS)、随机接入(PRACH)、上行参考信号(DM-RS/SRS)。

Gold序列

随机性好;生成灵活,支持长序列。

互相关性较差;非恒定幅度(峰均比高)。

加扰(PBCH、PDSCH/PUSCH);干扰随机化。

M序列

结构简单;周期性自相关性良好。

序列数量有限;互相关性较差。

辅同步信号(SSS);标识小区组ID(共1008种组合)。

PN序列

近似白噪声特性;生成方式灵活。

自相关性低于ZC序列。

参考信号加扰(如CSI-RS);降低小区间干扰。

2、5GNR 信道应用的序列选择和原因

5GNR中信道选取原则主要如下:

同步/接入:ZC序列主导(自相关/正交性)

参考信号:上行ZC(恒包络)、下行Gold(多端口)

控制/数据:Gold序列加扰(随机性)

特殊场景:M序列(ID标识)、PN序列(干扰抑制)

NR信道与序列使用对照表:

信道/信号

使用的序列类型

使用原因

对比其他序列的优劣

主同步信号(PSS)

Zadoff-Chu (ZC) 序列

- 零自相关性: 非零延迟处自相关值为零,零延迟处尖锐峰值 → 精准定时同步 -低互相关性:不同根索引的ZC序列互干扰低 → 抗多小区干扰-低峰均比- 抗频偏:高速移动场景

- M序列:自相关性差-Gold序列:峰均比高

辅同步信号(SSS)

M序列组合

- 组合多样性:两个M序列交织生成1008种小区组ID- 硬件简单:低复杂度实现

- ZC序列:组合空间不足- Gold序列:复杂度高

随机接入(PRACH)

长/短ZC序列(L=839/139)

- 长序列:正交性支持广覆盖多用户接入- 短序列:低时延场景资源高效

- Gold序列:正交性差- M序列:长度受限

PBCH(广播信道)

Gold序列(加扰)

- 干扰随机化:降低相邻小区PBCH冲突- 灵活生成:适配不同带宽配置

- ZC序列:加扰灵活性低- M序列:随机性不足

PDSCH(下行共享)

Gold序列(加扰)

- 数据随机化:避免重复模式干扰- 动态调度:支持多用户共享资源

- ZC序列:正交性需求不必要- PN序列:生成开销大

PUSCH(上行共享)

Gold序列(加扰)

- 干扰抑制:随机化多用户干扰- 兼容性:与下行PDSCH设计一致

- ZC序列:加扰灵活性不足- M序列:随机性差

PUCCH(上行控制)

CAZAC序列(ZC类)

- 恒包络:提升边缘用户覆盖- 低复杂度检测:简化基站接收机设计

- Gold序列:峰均比高- M序列:正交性差

上行DM-RS

ZC序列

- 恒包络:适配终端功率限制- 正交性:循环移位支持多用户/多流

- Gold序列:峰均比高- PN序列:正交性不足

下行DM-RS

Gold序列

- 多端口扩展:支持Massive MIMO大规模天线端口- 随机性:降低小区间干扰 -

ZC序列:端口扩展受限- M序列:随机性差

SRS(探测参考)

ZC序列

- 高精度估计:低互相关性提升信道测量精度- 低峰均比:适配上行功率受限

- Gold序列:峰均比高- M序列:正交性不足

CSI-RS(信道状态)

PN序列(加扰)

- 白噪声特性:降低小区间干扰- 灵活配置:适配不同密度/周期测量

- ZC序列:正交性需求冗余- Gold序列:随机性不足

PT-RS(相位跟踪)

QPSK-based序列

- 抗相位噪声:适配高频段(毫米波)场景- 伪随机性:灵活生成

- ZC序列:峰均比优势不必要- Gold序列:复杂度高

PDCCH(下行控制)

Gold序列(加扰)

- 干扰随机化:降低控制信道冲突- 动态加扰:依赖RNTI区分用户 - 其他序列:

3、Zadoff - Chu(ZC)序列

3.1 ZC序列的定义

从协议38.321中可以得出,对于长度为为LRA 的序列x(n),其定义公式为: x ( n ) = e − j π u L R A ⋅ n ( n + 1 ) , n = 0 , 1 , . . . , L R A − 1 x(n) = e^{-j\pi \frac{u}{L_{RA}} \cdot n(n+1)},\quad n=0,1,...,L_{RA}-1 x(n)=e−jπLRA​u​⋅n(n+1),n=0,1,...,LRA​−1 其中:

u: 被称为根序列索引。 不同的 u 值会产生不同的 ZC 序列,它的取值范围通常是根据具体的应用和规范来确定的。

LRA: 是序列长度。在 5G NR中,长前导码的LRA常为 839,短前导码的 LRA 常为 139 。

n: 是序列中的索引值。从 0 到 LRA −1 遍历,用于确定序列中每个位置的元素。

3.2 ZC序列的特点

零自相关性: 非零延迟时自相关值为零,零延迟时出现峰值,适合精准定时同步。

ZC 序列具有尖锐的自相关特性,当序列与其自身进行相关运算时,在零延迟处会出现一个尖锐的峰值,而在其他延迟处的相关值几乎为零。这使得基站能够准确地检测到信号的到达时间,从而实现精确的时间同步。

低互相关性:不同根索引的ZC序列间互相关性极低,抗干扰能力强。

不同的 ZC 序列之间具有较低的互相关性,这意味着在多个用户同时发送不同的 Preamble 时,各个 Preamble 之间的干扰较小,基站能够更容易地区分不同用户的接入请求。

低峰均比(PAPR): 峰均比(PAPR)低,适合功率受限场景。

ZC 序列的峰均比相对较低,这对于功率受限的用户设备(UE)来说非常重要。较低的 PAPR 可以降低功率放大器的复杂度和功耗,提高 UE 的能源效率。

扩展性: 通过选择不同的根序列和进行循环移位操作,可以生成大量的准正交序列,满足 5G 系统中多用户随机接入的需求。

时域和频域幅度恒定

3.3 Matlab code 说明特点

3.3.1 生成Zadoff-Chu序列

% 清除工作区和命令窗口

clear all;

close all;

clc;

% 1. 参数设置

N = 64; % ZC 序列的长度

u1 = 3; % 第一个 ZC 序列的根索引,需与 N 互质

u2 = 5; % 第二个 ZC 序列的根索引,需与 N 互质且不同于 u1

n = 0:N - 1; % 序列的索引

% 2. 生成 ZC 序列

zc_seq1 = exp(-1j * pi * u1 * n .* (n + 1) / N); % 生成第一个 ZC 序列

zc_seq2 = exp(-1j * pi * u2 * n .* (n + 1) / N); % 生成第二个 ZC 序列

3.3.2 验证零自相关性

验证零自相关性: 使用 xcorr 函数计算C 序列的自相关函数,并进行归一化处理。绘制自相关函数的图形,理论上零延迟处自相关值为 1,非零延迟处趋近于 0。

结果说明: 自相关峰尖锐(主瓣高,旁瓣低),便于基站快速检测信号到达时间。

主瓣是时延=0处的尖峰(幅度1.0);

旁瓣是时延≠0处的波动,两侧的低幅波动(幅度<0.1)。

主瓣尖锐使得基站能快速、精准定位信号到达时间,而低旁瓣减少了噪声和干扰的影响,二者共同保障了5G NR随机接入的高效性和可靠性。

% 3. 验证零自相关性

% 计算自相关函数

autocorr_seq1 = xcorr(zc_seq1, zc_seq1);

autocorr_seq1 = autocorr_seq1 / max(abs(autocorr_seq1)); % 归一化自相关函数

autocorr_seq2 = xcorr(zc_seq2, zc_seq2);

autocorr_seq2 = autocorr_seq2 / max(abs(autocorr_seq2)); % 归一化自相关函数

% 绘制自相关函数

figure;

stem(-N + 1:N - 1, abs(autocorr_seq1), 'filled', 'Color', 'r', 'DisplayName', 'ZC 序列 1 自相关');

hold on;

stem(-N + 1:N - 1, abs(autocorr_seq2), 'filled', 'Color', 'b', 'DisplayName', 'ZC 序列 2 自相关');

title('ZC 序列的自相关函数');

xlabel('延迟');

ylabel('归一化自相关幅度');

grid on;

legend;

hold off;

% 理论上,零延迟处自相关值为 1,非零延迟处趋近于 0

disp('验证零自相关性:观察自相关函数,零延迟处应为 1,非零延迟处应趋近于 0');

Note: 下图中绘制的是两个ZC序列,在时刻0的时候,峰值为1,实际上两个ZC序列是重叠了的,用户若有需求,可以注释对应的ZC序列在matlab中观察实际图。

3.3.3 验证低互相关性

验证低互相关性: 使用 xcorr 函数计算两个 ZC 序列的互相关函数,并进行归一化处理。绘制互相关函数的图形,低互相关性表现为互相关函数的幅值大多数趋近于 0。

结果说明: 互相关幅度显著低于自相关峰,且大多数幅值趋近于0,减少多用户干扰。

% 4. 验证低互相关性

% 4. 验证低互相关性

% 计算互相关函数

crosscorr_seq1_seq2 = xcorr(zc_seq1, zc_seq2);

crosscorr_seq1_seq2 = crosscorr_seq1_seq2 / max(abs(crosscorr_seq1_seq2)); % 归一化互相关函数

% 绘制互相关函数

figure;

stem(-N + 1:N - 1, abs(crosscorr_seq1_seq2), 'filled', 'Color', 'g', 'DisplayName', '序列 1 和序列 2 互相关');

title('两个 ZC 序列的互相关函数');

xlabel('延迟');

ylabel('归一化互相关幅度');

grid on;

legend;

% 低互相关性表现为互相关函数的幅值大多数趋近于 0

disp('验证低互相关性:观察互相关函数,幅值应大多数趋近于 0');

3.3.4 验证低峰均比(PAPR)

验证低峰均比(PAPR): 计算两个 ZC 序列的峰均比,ZC 序列理论上具有低峰均比,通常接近 0 dB。

结果说明: 输出示例:ZC序列的PAPR: 0.00 dB(理论恒包络,实际因IFFT插值略有波动)

% 5. 验证低峰均比(PAPR)

% 计算峰均比

PAPR_seq1 = 10 * log10(max(abs(zc_seq1).^2) / mean(abs(zc_seq1).^2));

PAPR_seq2 = 10 * log10(max(abs(zc_seq2).^2) / mean(abs(zc_seq2).^2));

disp(['第一个ZC序列的峰均比(PAPR):', num2str(PAPR_seq1),'dB'])

disp(['第二个ZC序列的峰均比(PAPR):', num2str(PAPR_seq2),'dB'])

% ZC 序列理论上具有低峰均比,通常接近0 dB

disp('验证低峰均比:观察计算得到的PAPR值,应接近0dB')

result:

3.3.5 验证循环移位扩展性

验证循环移位扩展性: 对第一个 ZC 序列进行循环移位,计算移位后序列的自相关函数并绘制图形。循环移位后的序列应保持零自相关特性。

结果说明: 循环移位后的序列与原序列仅在移位处有峰,支持多用户正交。

% 6. 验证循环移位扩展性

shift = 10; % 循环移位的点数

shifted_zc_seq1 = circshift(zc_seq1, shift); % 对第一个 ZC 序列进行循环移位

% 计算移位前后序列的自相关

autocorr_shifted_seq1 = xcorr(shifted_zc_seq1, shifted_zc_seq1);

autocorr_shifted_seq1 = autocorr_shifted_seq1 / max(abs(autocorr_shifted_seq1)); % 归一化自相关函数

% 绘制未移位 ZC 序列 1 自相关

figure;

stem(-N + 1:N - 1, abs(autocorr_seq1), 'filled', 'Color', 'r', 'DisplayName', '未移位 ZC 序列 1 自相关');

title('未移位 ZC 序列 1 自相关函数');

xlabel('延迟');

ylabel('归一化自相关幅度');

grid on;

legend;

% 绘制移位 ZC 序列 1 自相关

figure;

stem(-N + 1:N - 1, abs(autocorr_shifted_seq1), 'filled', 'Color', 'b', 'DisplayName', '移位 ZC 序列 1 自相关');

title('移位 ZC 序列 1 自相关函数');

xlabel('延迟');

ylabel('归一化自相关幅度');

grid on;

legend;

% 循环移位后的序列应保持零自相关特性

disp('验证循环移位扩展性:观察循环移位后序列的自相关函数,应保持零自相关特性');

% 计算原序列和移位后序列的互相关

% 注意:这里调整输入顺序,确保在正延迟处出现峰值(若写成xcorr(zc_seq1,shifted_zc_seq1)就是在负延迟出现峰值)

crosscorr_original_shifted = xcorr(shifted_zc_seq1, zc_seq1);

crosscorr_original_shifted = crosscorr_original_shifted / max(abs(crosscorr_original_shifted)); % 归一化互相关函数

% 绘制原序列和移位后序列的互相关函数

figure;

stem(-N + 1:N - 1, abs(crosscorr_original_shifted), 'filled', 'Color', 'g', 'DisplayName', '原序列与移位序列互相关');

title('原序列与移位序列的互相关函数');

xlabel('延迟');

ylabel('归一化互相关幅度');

grid on;

legend;

disp('验证循环移位正交性:观察原序列与移位序列的互相关函数,应在延迟为 +10 位置出现幅值接近 1 的峰');

观察图形:

零延迟处: 未移位序列的自相关在零延迟处有一个幅值为 1 的峰(因为归一化后),这是自相关的特性。

移位处: 移位后的序列与原序列的互相关(在图形中体现为自相关对比)会在移位点数对应的延迟处出现一个峰,见下图3。例如,代码中 shift = 10,那么在延迟为 10 的位置会出现一个幅值接近 1 的峰。

其他位置: 除了移位处的峰,其他位置的幅值应该趋近于 0,这表明循环移位后的序列与原序列在非移位处的相关性很低,体现了循环移位正交性。

3.3.6 验证时域和频域幅度恒定

结果说明: 时域和频域幅度恒定

%% 参数设置

N = 67; % 质数长度(减少栅栏效应)

u = 5; % 根索引(与N互质)

n = 0:N-1; % 时域索引

%% 生成ZC序列

zc_seq = exp(-1j * pi * u * n .* (n + 1) / N);

%% 计算DFT

freq_domain = fft(zc_seq);

freq_mag = abs(freq_domain);

%% 理论值(频域幅度应为sqrt(N))

theory_mag = sqrt(N);

disp(['理论频域幅度:', num2str(theory_mag)]);

disp(['实际频域幅度波动范围:', num2str(max(freq_mag) - min(freq_mag))]);

%% 可视化

figure;

subplot(2,1,1);

stem(n, abs(zc_seq), 'filled');

title('时域幅度(恒为1)');

xlabel('时域索引n'); ylabel('幅度');

subplot(2,1,2);

stem(0:N-1, freq_mag, 'filled');

hold on; yline(theory_mag, 'r--', ['理论值 \sqrt{N}']);

title('频域幅度(恒为 \sqrt{N})');

xlabel('频域索引k'); ylabel('幅度');

从下图可以看出

时域幅度:严格为 1(无波动):时域幅度为一条水平直线(恒为1)

频域幅度:所有点均为 √67 ≈ 8.1854(波动范围 ~1e-15,浮点误差导致):频域幅度为一条水平直线(恒为 √N),并标有红色虚线理论值。

3.3.7 结果总结

特性

验证方法

预期结果

强自相关性

自相关函数主瓣高、旁瓣低

单一尖锐峰(同步检测可靠)

弱互相关性

不同根序列互相关幅度低

最大互相关值远小于自相关峰

低PAPR

时域信号峰均比接近0 dB

PAPR ≤ 1 dB(适合功率受限UE)

循环移位正交

移位序列与原序列互相关峰唯一

仅在移位位置出现峰(多用户正交)

时域和频域幅度恒定

求序列幅度

时域幅度为一条水平直线(恒为1)频域幅度为一条水平直线(恒为sqrt(N) )

3.4 ZC序列特点术语解释

3.4.1 零自相关性

3.4.1.1 离散时间自相关函数定义

R x x [ k ] = ∑ n = − ∞ ∞ x [ n ] ⋅ x ∗ [ n + k ] R_{xx}[k] = \sum_{n=-\infty}^{\infty} x[n] \cdot x^{*}[n+k] Rxx​[k]=n=−∞∑∞​x[n]⋅x∗[n+k]

变量注释:

x[n]: 离散时间信号(如5G NR的同步序列、OFDM符号等),n 是时间索引(样本点)。

x*[n]: x[n]的复共轭(如果是实数信号,可忽略共轭)。

k: 时延(lag),表示信号与自身偏移多少个样本后计算相关性。

R xx [k]: 在时延 k 处的自相关值,衡量信号与自身时移版本的相关性。

不同时延 k 的物理意义

k=0 (零时延)

公式: R_{xx}[0] = \sum_{n} |x[n]|^2

意义:信号与自身完全对齐时的总能量(峰值)。

5G NR应用:同步信号(PSS)在 k=0 处有最高峰,用于检测信号到达时间。

k>0 或 k<0(非零时延)

R xx [k]>0:信号在时移 k 后仍有相似性(如周期性信号)。

R xx [k]<0:信号在时移 k 后出现反相(如某些调制方式)。

R xx [k]=0:信号在时移 k 后完全不相关(理想同步信号的设计目标)。

3.4.1.2 连续时间自相关函数定义

R x ( τ ) = lim ⁡ T → ∞ 1 2 T ∫ − T T x ( t ) ⋅ x ∗ ( t + τ ) d t R_x(\tau) = \lim_{T \to \infty} \frac{1}{2T} \int_{-T}^{T} x(t) \cdot x^*(t + \tau) \, dt Rx​(τ)=

相关推荐