19、5G NR物理层处理:数值与MATLAB建模详解

5G NR物理层处理:数值与MATLAB建模详解

1. 引言

在5G通信系统中,物理层处理对于实现高效、可靠的数据传输至关重要。本文将深入探讨5G NR物理层处理的关键技术,包括混合自动重传请求(HARQ)、循环冗余校验(CRC)附加、码块分段、低密度奇偶校验(LDPC)编码以及速率匹配等方面,并结合MATLAB工具进行详细分析。

2. 混合自动重传请求(HARQ)

2.1 HARQ原理

5G NR采用混合自动重传请求(HARQ)技术,它结合了自动重传请求(ARQ)和前向纠错(FEC),以提供可靠的数据传输。具体采用的是增量冗余HARQ(IR - HARQ),在重传时不发送错误编码比特的精确副本,而是生成并发送另一组编码比特,利用重传编码比特中的不同奇偶校验位降低码率并提高编码增益。

2.2 5G中的HARQ流程

5G支持下行传输最多16个HARQ进程。这意味着在检查每个数据包的ACK响应之前,可以连续发送16个数据包,而不是发送一个数据包后等待UE的ACK响应再发送下一个。如果某个HARQ进程未收到ACK响应,则需要重传,根据起始比特索引重传数据包的一个片段。

2.3 冗余版本(RV)

在5G NR中定义了四个冗余版本(RV),其用于优先考虑性能的顺序为[1, 2, 3, 5]。例如,在一个使用16个HARQ进程进行5G下行传输的示例中,若HARQ进程2、6、7和13中的数据包接收错误,接收器会向发送器发送NACK消息。在完成前16个HARQ进程后,接下来的16个进程中,除了进程2、6、7和13会使用RV 2重发之前错误接收的数据包外,其他进程将发送带有RV 0的新数据包。

2.4 MATLAB实现

在MATLAB的5G工具箱中,可以使用 hNewHARQProcesses 函数初始化用于跟踪HARQ进程的数组,其语法如下:

[harqProcesses] = hNewHARQProcesses(numHARQProcesses,rvsequence,ncw)

输入参数说明:
- numHARQProcesses :HARQ进程的数量。
- rvsequence :冗余版本序列。
- ncw :码字的数量。

该函数返回一个包含以下字段的结构数组:
- RVSequence :冗余版本序列。
- ncw :码字的数量。
- blkerr :块错误指示符。
- RV :冗余版本。
- RVIdx :冗余版本ID。

使用 hUpdateHARQProcesses 函数在每个HARQ进程后更新使用 hNewHARQProcess 函数创建的数组,其语法如下:

[harqProcess] = hUpdateHARQProcess(harqProcess,ncw)

输入参数说明:
- harqProcess :需要更新的由 hNewHARQProcess 创建的数组。
- ncw :码字的数量。

该函数返回更新后的 harqProcess 结构数组。

2.5 HARQ流程示意图

graph LR
    A[发送16个数据包] --> B{检查ACK响应}
    B -- 有NACK --> C[根据RV重传数据包片段]
    B -- 全部ACK --> D[发送新的16个数据包]
    C --> B

3. 循环冗余校验(CRC)附加

3.1 CRC原理

循环冗余校验(CRC)用于数据通信中,在接收器端检测传输数据流中的错误。待传输的数据流通过循环生成多项式处理,生成CRC比特流,然后在传输前将其附加到数据流中。在接收器端,对CRC编码数据应用相同的多项式,检查是否引入了错误。

3.2 5G中的CRC应用

在5G的下行共享信道(DLSCH)编码块中,CRC附加是第一个步骤。对于DLSCH,根据3GPP TS 38.212定义了两个循环生成多项式:
- (g_{CRC16}(D)=D^{16}+D^{12}+D^{5}+1),当消息块大小(N_A\leq3824)比特时使用。
- (g_{CRCA24}(D)=D^{24}+D^{23}+D^{18}+D^{17}+D^{14}+D^{11}+D^{10}+D^{7}+D^{6}+D^{5}+D^{4}+D^{3}+D + 1),当消息块大小(N_A>3824)比特时使用。

3.3 CRC输出长度计算

CRC附加子块的输出长度由以下公式计算:
(N_{bits}=N_B + N_{L1})
其中,(N_{L1})是附加到消息块的CRC比特数,(N_B)是消息块大小。

3.4 数值示例

给定CRC多项式(g_{CRC6}(D)=D^{6}+D^{5}+1)和消息块(in0 = 1010101010),通过以下异或过程获得CRC比特:

1010101010 000000 - 消息比特右填充六个0比特
⊕ 1100001 - 基于CRC多项式的除数
0110100010 000000
⊕ 1100001
0000100110 000000
⊕ 110000 1
0000010110 100000
⊕ 11000 01
0000001110 110000
⊕ 1100 001
0000000010 111000
⊕ 11 00001
0000000001 111010
⊕ 1 100001
0000000000 011011

计算得到的CRC比特为:011011,因此CRC附加过程块的输出为(B_0 = 1010101010011011)。

3.5 MATLAB实现

在MATLAB中,可以使用 nrCRCEncode 函数执行CRC附加,其语法如下:

Crced = nrCRCEncode(blk, poly)

输入参数说明:
- blk :要附加CRC的输入传输块。
- poly :选择的CRC多项式(‘6’, ‘11’, ‘16’, ‘24A’, ‘24B’ 或 ‘24C’)。

该函数返回CRC编码后的数据 crced

3.6 CRC流程示意图

graph LR
    A[输入消息块] --> B[选择CRC多项式]
    B --> C[生成CRC比特]
    C --> D[附加CRC比特到消息块]
    D --> E[输出CRC编码数据]

4. 码块分段

4.1 分段原因

对经过CRC附加后的输出(B_a)进行码块分段,因为要发送到LDPC编码器的码块长度应是可用LDPC提升大小的倍数,且不超过最大码块大小。LDPC基础图(BG)1和2的最大码块大小分别为8448和3840。

4.2 分段操作

如果输入块长度超过最大码块大小,则将其分割成多个较小的码块,并为每个码块附加额外的24位CRC。使用的CRC生成多项式为:
(g_{CRCB24}(D)=D^{24}+D^{23}+D^{6}+D^{5}+1)

4.3 输出段数量计算

输出段的数量由以下向上取整函数计算:
(N_C=\left\lceil\frac{N_B - N_{L2}}{K_{cb}}\right\rceil)
其中,(N_B)是CRC附加子块的输出长度,(K_{cb})是最大码块大小,(N_{L2})是附加到每个码块的额外CRC比特数(24位)。

4.4 提升大小选择

需要为BG矩阵选择合适的提升大小(Z_c)。根据参数(\alpha)定义了八组提升大小,可用提升大小由方程(Z_c = j\times\alpha\times2)确定。选择满足以下方程的LDPC提升大小的最小值:
(Z_c\geq\frac{K’}{K_b})
对于LDPC BG1,(K_b = 22);对于LDPC BG2,根据(N_B)的不同取值,(K_b)有不同的值。

4.5 数值示例

对于一个大小为528比特且带有16位CRC附加的传输块,若(N_B = 544),使用BG2((K_{cb}=3840)),由于(N_B<K_{cb}),输入不分割,也不添加额外的CRC比特,(K’ = N_B = 544)。

根据(192<N_B\leq560),(K_b = 8),则(Z_c\geq\frac{544}{8}=68),从表中最接近的值为(Z_c = 72)。

每个段的长度为(K = 10\times Z_c = 10\times72 = 720),每个段添加的填充比特数为(K - K’ = 720 - 544 = 176)。

4.6 MATLAB实现

在MATLAB的5G工具箱中,可以使用 nrCodeblockSegmentLDPC 函数进行码块分段,其语法如下:

Segmented = nrCodeblockSegmentLDPC(crced,bgn)

输入参数说明:
- crced :要分段的输入数据块。
- bgn :选择的LDPC基础图编号(1或2)。

该函数返回一个矩阵 segmented ,其中每列对应一个码块段。

4.7 码块分段流程示意图

graph LR
    A[输入CRC编码数据] --> B{是否超过最大码块大小}
    B -- 是 --> C[分割成多个码块并附加24位CRC]
    B -- 否 --> D[不分割,不添加额外CRC]
    C --> E[选择提升大小Zc]
    D --> E
    E --> F[计算段长度和填充比特数]
    F --> G[输出分段后的码块]

5. LDPC编码

5.1 LDPC码原理

LDPC码是eMBB数据信道选择的信道码,采用基于原型图的准循环(QC)LDPC码构造。通过3GPP定义的两个速率兼容的基础图,使用在码块分段中确定的提升大小(Z_c)生成奇偶校验矩阵。

5.2 奇偶校验矩阵结构

奇偶校验矩阵由循环移位的单位矩阵(Q(P_{i,j}))组成,对于非零的(P_{i,j})元素,矩阵有右循环移位(P_{i,j});(P_{i,j}=0)对应单位矩阵;(P_{i,j}=-1)对应零矩阵。

5.3 基础图选择

BG1适用于编码大传输块并实现高达8/9的高码率,支持最大输入码块大小为8448比特;BG2适用于编码小传输块并实现低码率,最低可达1/5,支持最大输入码块大小为3840比特。满足以下条件之一时使用BG2:
- (N_A\leq292)
- (N_A\leq3824)且目标码率(R\leq0.67)
- (R\leq0.25)

否则使用BG1。

5.4 生成矩阵推导

在进行LDPC编码之前,将码块分段中得到的段(C_x^a)中的填充比特(用 <NULL> 表示)替换为0。使用LDPC生成矩阵通过以下矩阵方程对每个段(C_x^a)进行LDPC编码,得到LDPC码字(D_x^a):
(D_x^a = C_x^a\times G)
为了推导生成矩阵,首先对奇偶校验矩阵进行高斯 - 约旦消元,得到以下形式的(H_{GJ}):
(H_{GJ}=\begin{bmatrix}I_{N - K}&P\end{bmatrix})
其中,(P)是((N - K)\times K)的奇偶校验矩阵,(I_{N - K})是((N - K)\times(N - K))的单位矩阵。
然后,通过以下方式重塑(H_{GJ})得到生成矩阵:
(G=\begin{bmatrix}I_K&P^T\end{bmatrix})

5.5 数值示例

给定二进制消息(u = [1, 0, 1])和奇偶校验矩阵(H_1):

H1 = [1 0 0 1 0 1;
      1 1 0 1 1 1;
      0 0 1 0 1 1];

对(H_1)进行高斯 - 约旦消元,得到(H_{GJ}):

HGJ = [1 0 0 1 0 1;
       0 1 0 0 1 0;
       0 0 1 0 1 1];

根据公式得到生成矩阵(G_1):

G1 = [1 0 0 1 0 0;
      0 1 0 0 1 1;
      0 0 1 1 0 1];

消息(u)的LDPC码字为:

CLDPC = [0 1 0] * G1;

5.6 MATLAB实现

在MATLAB中,可以使用 nrLDPCEncode 函数进行5G LDPC编码,其语法如下:

Encoded = nrLDPCEncode(segmented,bgn)

输入参数说明:
- segmented :要进行LDPC编码的输入数据块。
- bgn :选择的LDPC基础图编号(1或2)。

该函数返回LDPC编码后的数据 encoded

5.7 LDPC编码流程示意图

graph LR
    A[输入分段后的码块] --> B{选择基础图BG1或BG2}
    B --> C[生成奇偶校验矩阵]
    C --> D[高斯 - 约旦消元得到HGJ]
    D --> E[推导生成矩阵G]
    E --> F[进行LDPC编码得到码字Dx^a]
    F --> G[输出LDPC编码数据]

6. 速率匹配

6.1 速率计算

基础矩阵的速率由输入到LDPC编码器的系统比特数(K)和LDPC码字的长度(N_D)计算:
(R=\frac{K}{N_D})
对于LDPC BG1和BG2,其速率分别为:
- (R_{BG1}=\frac{22Z_c}{66Z_c}=\frac{1}{3})
- (R_{BG2}=\frac{10Z_c}{50Z_c}=\frac{1}{5})

6.2 速率匹配流程

在5G中,速率匹配包括比特选择和比特交织两个过程。

6.2.1 比特选择

对于每个LDPC码字(D_x^a),根据HARQ冗余版本和要排除的奇偶校验比特数选择需要传输的比特,并去除所有填充比特。该过程的输出码字记为(E_x^a),其长度(N_{E_x^a})由以下公式计算:

N_{E_x^a}=\begin{cases}
\left\lceil\frac{N_{Layers}\times Q_m\times G}{N_{Layers}\times Q_m\times N_c}\right\rceil\times N_{Layers}\times Q_m - N_{L_m}\times N_c, & \text{if } x > \text{mod}(G, N_{Layers}\times Q_m\times N_c) \\
\left\lfloor\frac{N_{Layers}\times Q_m\times G}{N_{Layers}\times Q_m\times N_c}\right\rfloor\times N_{Layers}\times Q_m, & \text{otherwise}
\end{cases}

其中,(G)是输出速率匹配码字的长度,(N_{Layers})是PDSCH层数,(Q_m)是调制阶数,(N_c)是段数。

6.2.2 比特交织

对每个码字(E_x^a)进行比特交织,得到输出(F_x^a)。具体步骤如下:
1. 将码字(E_x^a)重塑为(\frac{N_{E_x^a}}{Q_m}\times Q_m)矩阵(M)。
2. 对矩阵(M)进行转置。
3. 按列顺序排列转置矩阵的元素,得到(F_x^a)。

6.3 数值示例

假设已知LDPC码字(D_x^a)、HARQ冗余版本、(N_{Layers})、(Q_m)和(N_c)等参数,按照上述步骤进行比特选择和比特交织。

6.4 MATLAB实现

在MATLAB中,可根据相应的公式和步骤编写代码实现速率匹配。

6.5 速率匹配流程示意图

graph LR
    A[输入LDPC码字Dx^a] --> B[比特选择]
    B --> C[去除填充比特]
    C --> D[计算输出码字长度NEx^a]
    D --> E[比特交织]
    E --> F[输出速率匹配后的码字Fx^a]

7. 总结

本文详细介绍了5G NR物理层处理的关键技术,包括HARQ、CRC附加、码块分段、LDPC编码和速率匹配。通过理论分析、数值示例和MATLAB实现,展示了这些技术的原理和应用。这些技术的协同工作确保了5G通信系统的高效、可靠数据传输。在实际应用中,可以根据具体需求选择合适的参数和算法,进一步优化系统性能。

8. 各技术之间的协同关系

8.1 整体流程概述

5G NR物理层处理的各个技术环节紧密相连,形成一个完整的流程,以确保数据的高效、可靠传输。从最初的HARQ机制保障数据重传的准确性,到CRC附加检测传输错误,再到码块分段、LDPC编码以及最后的速率匹配,每个步骤都为下一个步骤提供必要的输入,共同完成数据的物理层处理。

8.2 具体协同关系分析

  • HARQ与其他技术的协同 :HARQ机制贯穿整个数据传输过程,它根据接收端的反馈决定是否重传数据。在重传时,会结合后续的CRC、码块分段、LDPC编码和速率匹配等技术,确保重传的数据能够更准确地被接收。例如,在重传时,根据不同的冗余版本(RV)进行速率匹配,以提高传输效率。
  • CRC与码块分段的协同 :CRC附加为码块分段提供了错误检测的基础。在码块分段过程中,如果输入块长度超过最大码块大小,会分割成多个码块并附加额外的24位CRC,进一步增强数据的可靠性。
  • 码块分段与LDPC编码的协同 :码块分段的结果是LDPC编码的输入。分段后的码块长度和提升大小等参数会影响LDPC编码的性能。例如,选择合适的提升大小(Z_c)可以优化LDPC编码的效果。
  • LDPC编码与速率匹配的协同 :LDPC编码生成的码字是速率匹配的输入。速率匹配根据LDPC码字的长度和系统需求,选择合适的比特进行传输,并进行比特交织,以提高传输速率和可靠性。

8.3 协同关系示意图

graph LR
    A[HARQ] --> B[CRC附加]
    B --> C[码块分段]
    C --> D[LDPC编码]
    D --> E[速率匹配]
    E --> F[数据传输]
    F -- 反馈NACK --> A

9. 实际应用中的考虑因素

9.1 参数选择

在实际应用中,需要根据具体的通信场景和需求选择合适的参数。例如:
- HARQ进程数量 :5G支持最多16个HARQ进程,可根据网络负载和传输需求调整进程数量,以平衡传输效率和可靠性。
- CRC多项式 :根据消息块大小选择合适的CRC多项式,如(g_{CRC16}(D))或(g_{CRCA24}(D)),以确保错误检测的准确性。
- LDPC基础图 :根据输入码块大小和目标码率选择BG1或BG2,以优化编码性能。

9.2 性能优化

为了提高5G NR物理层处理的性能,可以采取以下优化措施:
- 自适应速率匹配 :根据信道条件和传输需求,动态调整速率匹配的参数,如比特选择和比特交织方式,以提高传输速率和可靠性。
- 并行处理 :利用多核处理器或专用硬件,对HARQ、CRC附加、码块分段、LDPC编码和速率匹配等过程进行并行处理,提高处理效率。

9.3 兼容性问题

在实际应用中,还需要考虑不同设备和系统之间的兼容性问题。例如,确保不同厂家的5G设备在HARQ、CRC、LDPC编码等方面的参数设置和处理方式一致,以保证数据的正确传输和接收。

10. 未来发展趋势

10.1 技术创新

随着5G技术的不断发展,物理层处理技术也将不断创新。例如,可能会出现更高效的LDPC编码算法,进一步提高编码效率和可靠性;或者采用新的HARQ机制,更好地适应复杂的通信环境。

10.2 与其他技术的融合

5G NR物理层处理技术将与其他技术如人工智能、物联网等深度融合。例如,利用人工智能算法优化物理层参数的选择和调整,提高通信系统的智能性和自适应性;或者将5G物理层技术应用于物联网设备,实现更高效、可靠的物联网通信。

10.3 对通信网络的影响

这些技术的发展将对未来的通信网络产生深远影响。例如,提高网络的容量和可靠性,支持更多的设备连接和高速数据传输;降低通信延迟,满足实时性要求较高的应用场景,如自动驾驶、工业自动化等。

11. 结论

11.1 技术总结

本文全面介绍了5G NR物理层处理的关键技术,包括HARQ、CRC附加、码块分段、LDPC编码和速率匹配。这些技术通过协同工作,确保了5G通信系统的高效、可靠数据传输。

11.2 应用建议

在实际应用中,应根据具体的通信场景和需求,合理选择参数和优化算法,以提高系统性能。同时,要关注技术的发展趋势,积极采用新的技术和方法,推动5G通信技术的不断进步。

11.3 展望未来

随着5G技术的广泛应用和不断发展,物理层处理技术将在未来的通信网络中发挥更加重要的作用。我们期待这些技术的进一步创新和发展,为人们带来更加便捷、高效的通信体验。

以下是一个汇总各技术MATLAB函数的表格:
| 技术环节 | MATLAB函数 | 语法 | 输入参数说明 | 输出说明 |
| ---- | ---- | ---- | ---- | ---- |
| HARQ初始化 | hNewHARQProcesses | [harqProcesses] = hNewHARQProcesses(numHARQProcesses,rvsequence,ncw) | numHARQProcesses :HARQ进程的数量; rvsequence :冗余版本序列; ncw :码字的数量 | 包含 RVSequence ncw blkerr RV RVIdx 等字段的结构数组 |
| HARQ更新 | hUpdateHARQProcesses | [harqProcess] = hUpdateHARQProcess(harqProcess,ncw) | harqProcess :需要更新的由 hNewHARQProcess 创建的数组; ncw :码字的数量 | 更新后的 harqProcess 结构数组 |
| CRC附加 | nrCRCEncode | Crced = nrCRCEncode(blk, poly) | blk :要附加CRC的输入传输块; poly :选择的CRC多项式(‘6’, ‘11’, ‘16’, ‘24A’, ‘24B’ 或 ‘24C’) | CRC编码后的数据 crced |
| 码块分段 | nrCodeblockSegmentLDPC | Segmented = nrCodeblockSegmentLDPC(crced,bgn) | crced :要分段的输入数据块; bgn :选择的LDPC基础图编号(1或2) | 矩阵 segmented ,每列对应一个码块段 |
| LDPC编码 | nrLDPCEncode | Encoded = nrLDPCEncode(segmented,bgn) | segmented :要进行LDPC编码的输入数据块; bgn :选择的LDPC基础图编号(1或2) | LDPC编码后的数据 encoded |

通过对这些技术的深入理解和应用,我们可以更好地把握5G NR物理层处理的核心,为5G通信系统的设计和优化提供有力支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值