PDSCH物理层处理过程(四):信道编码(基于LDPC码)

下文为对3GPP TS38.212 Clause5.3部分的学习。

LDPC编码

针对每一个码块进行编码,给定一个码块,其比特序列输入为 c 0 , c 1 , c 2 , . . . , c K − 1 c_0,c_1,c_2,...,c_{K-1} c0,c1,c2,...,cK1,码块分割部分见PDSCH物理层处理过程第三部分。信道编码后的输出可以表示为 d 0 , d 1 , d 2 , . . . , d N − 1 d_0,d_1,d_2,...,d_{N-1} d0,d1,d2,...,dN1,其中对于LDPC基图1, N = 66 Z c N=66Z_c N=66Zc;对于LDPC基图2, N = 50 Z c N=50Z_c N=50Zc Z c Z_c Zc的确定见PDSCH物理层处理过程第三部分。

编码流程

  1. 根据 Z c Z_c Zc确定索引 i L S i_{LS} iLS(下表为 TS 38.212中表格5.3.2-1);
    举例:若根据码块分割部分计算得到 Z c = 384 Z_c = 384 Zc=384,则根据表格得到 i L S i_{LS} iLS为1。
    :表格中每一行的值分别为2,3,5,7,9,11,13的倍数。
    Sets of LDPC lifting size

  2. 信息比特映射

    for k = 2Zc : K-1
    	if c[k] != <NULL>
    		d[k-2Zc] = c[k];
    	else
    		c[k] = 0;
    		d[k-2Zc] = <NULL>;
    	end
    end
    
  3. 生成校验比特。校验比特长度为 N + 2 Z c − K N+2Z_c-K N+2ZcK,可以表示为 w = [ w 0 , w 1 , w 2 , . . . , w N + 2 Z c − K − 1 ] T \boldsymbol {w} = [w_0,w_1,w_2,...,w_{N+2Z_c-K-1}]^{T} w=[w0,w1,w2,...,wN+2ZcK1]T,使得 H × [ c w ] = 0 , \boldsymbol{H}\times \begin{bmatrix}\boldsymbol{c}\\\boldsymbol{w}\end{bmatrix}=\boldsymbol{0}, H×[cw]=0,其中 c = [ c 0 , c 1 , . . . , c K − 1 ] T \boldsymbol{c}=[c_0,c_1,...,c_{K-1}]^{T} c=[c0,c1,...,cK1]T 0 \boldsymbol{0} 0为全为0的列向量。编码在GF(2)中进行。
    :GF(2)为素数 p = 2 p=2 p=2的有限域,只有0、1二元以及异或、与运算

    对于LDPC基图1,基矩阵 H B G \boldsymbol{H}_{BG} HBG 的大小为 46 × 68 46\times68 46×68 (行数*列数);对于LDPC基图2,基矩阵 H B G \boldsymbol{H}_{BG} HBG 的大小为 42 × 52 42\times52 42×52 H B G \boldsymbol{H}_{BG} HBG 中的元素在TS38.212的表格5.3.2-2(LDPC基图1)及表格5.3.2-3(LDPC基图2)中给出,即表格中包括的行列索引处的元素值为1,其余没有包括在表格内的行列索引处的元素值为0。

    H B G \boldsymbol{H}_{BG} HBG中的每个元素按以下方式替换为 Z c × Z c Z_c\times Z_c Zc×Zc 矩阵从而得到矩阵 H H H

    • H B G \boldsymbol{H}_{BG} HBG 中元素值为0的位置替换成大小为 Z c × Z c Z_c\times Z_c Zc×Zc元素值全为0的矩阵;

    • H B G \boldsymbol{H}_{BG} HBG 中元素值为1的位置替换成大小为 Z c × Z c Z_c\times Z_c Zc×Zc 的循环置换矩阵 I ( P i , j ) \boldsymbol{I}(P_{i,j}) I(Pi,j),其中 i i i j j j H B G \boldsymbol{H}_{BG} HBG 矩阵中元素的行列索引值, I ( P i , j ) \boldsymbol{I}(P_{i,j}) I(Pi,j)通过大小为 Z c × Z c Z_c\times Z_c Zc×Zc 的单位矩阵向右循环移位 P i , j P_{i,j} Pi,j 得到,其中 P i , j = m o d ( V i , j , Z c ) P_{i,j} = mod(V_{i,j},Z_c) Pi,j=mod(Vi,j,Zc) V i , j V_{i,j} Vi,j 的值在TS38.212的表格5.3.2-2(LDPC基图1)及表格5.3.2-3(LDPC基图2)中给出,根据对应的LDPC基图及 i L S i_{LS} iLS 找到 V i , j V_{i,j} Vi,j 的值。

      下图为LDPC基图1的部分内容。
      举例 H B G \boldsymbol{H}_{BG} HBG 中行索引为0,列索引为0的元素值为1,参照编码步骤1例子中 i L S = 1 i_{LS} = 1 iLS=1得到 V i , j V_{i,j} Vi,j 的值为307,且 Z c = 384 Z_c = 384 Zc=384,则 P i , j = m o d ( V i , j , Z c ) = 307 P_{i,j} = mod(V_{i,j},Z_c)=307 Pi,j=mod(Vi,j,Zc)=307,因此将该位置的元素替换为单位矩阵向右循环移位 P i , j = 307 P_{i,j} = 307 Pi,j=307的大小为 Z c × Z c Z_c\times Z_c Zc×Zc的矩阵; H B G \boldsymbol{H}_{BG} HBG 中行索引为0,列索引为4没有包含在表格中,表示该位置元素值为0,因此将该位置的元素替换为大小为 Z c × Z c Z_c\times Z_c Zc×Zc的全为0的矩阵。
      在这里插入图片描述

  4. 校验比特映射

    for k = K : N+2Zc-1
    	d[k-2Zc] = w[k-K];
    end
    

LDPC编码实现

参考原文:https://zhuanlan.zhihu.com/p/455310565
5G标准下有两种分别对应于LDPC基图1和LDPC基图2的基矩阵,
在这里插入图片描述
其中, I I I 区域表示该部分整体是一个单位阵,且对角线上元素1对应的子矩阵的循环移位系数全为0 0 0 0 区域表示该区域在 H H H 矩阵中对应的部分全是零,两种基矩阵下 B \boldsymbol B B 区域均是 4 × 4 4\times4 4×4矩阵且对应的循环移位系数分布情况只有 4 4 4 种:
在这里插入图片描述
注:编码实现中矩阵中的元素,其中 1 表示单位矩阵向左移一位, 0 表示不偏移, -1 表示 0 矩阵。

由于生成校验位时需要满足 H × [ c w ] = 0 , \boldsymbol{H}\times \begin{bmatrix}\boldsymbol{c}\\\boldsymbol{w}\end{bmatrix}=\boldsymbol{0}, H×[cw]=0,,且及由于LDPC基图1及LDPC基图2均具有特殊结构,即矩阵 H \boldsymbol H H可以表示为 H = [ A B 0 C D I ] , \boldsymbol H = \begin{bmatrix}A&B&0\\C&D&I\end{bmatrix}, H=[ACBD0I], w = [ p 1 T p 2 T ] \boldsymbol{w}=\begin{bmatrix}\boldsymbol{p_1}^T\\\boldsymbol{p_2}^T\end{bmatrix} w=[p1Tp2T],其中 p 1 \boldsymbol{p_1} p1长度为4, p 1 \boldsymbol{p_1} p1长度为 N + 2 Z c − K − 4 N+2Z_c-K-4 N+2ZcK4,可以得到 [ A B 0 C D I ] × [ c T p 1 T p 2 T ] = 0 , \begin{bmatrix}A&B&0\\C&D&I\end{bmatrix}\times\begin{bmatrix}\boldsymbol{c}^T\\\boldsymbol{p_1}^T\\\boldsymbol{p_2}^T\end{bmatrix}=0, [ACBD0I]× cTp1Tp2T =0, ⟹ { A c T + B p 1 T = 0 C c T + D p 1 T + p 2 T = 0 \Longrightarrow \left\{\begin{matrix}A\boldsymbol{c}^T+B\boldsymbol{p_1}^T=\boldsymbol0\\C\boldsymbol{c}^T+D\boldsymbol{p_1}^T+\boldsymbol{p_2}^T=\boldsymbol0\end{matrix}\right. {AcT+Bp1T=0CcT+Dp1T+p2T=0 ⟹ { p 1 T = B − 1 A c T p 2 T = C c T + D p 1 T \Longrightarrow \left\{\begin{matrix}\boldsymbol{p_1}^T=B^{-1}A\boldsymbol{c}^T\\\boldsymbol{p_2}^T=C\boldsymbol{c}^T+D\boldsymbol{p_1}^T\end{matrix}\right. {p1T=B1AcTp2T=CcT+Dp1T
直接通过上述式子计算得到校验位 p 1 \boldsymbol{p1} p1较难,其中涉及到矩阵求逆,这对软件或者硬件的消耗很大,为了尽量减小这种消耗,5G标准在 H H H矩阵的结构上做了特殊处理,基图中矩阵 B B B较小且内容简单,可以通过式子 A c T + B p 1 T = 0 A\boldsymbol{c}^T+B\boldsymbol{p1}^T =0 AcT+Bp1T=0计算(由于其中均为模二计算,则 A c T = B p 1 T A\boldsymbol{c}^T=B\boldsymbol{p_1}^T AcT=Bp1T),通过该方法可以降低编码硬件实现的复杂度,实现快速编码。

以LDPC基图1为例,计算 p 1 T \boldsymbol{p_1}^T p1T方法如下(下图中的 s \boldsymbol{s} s为上述式子中的 c \boldsymbol{c} c):
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值