5G-NR LDPC 码的编码
当采用QC-LDPC码进行编码时,选定了基矩阵后,在进行基矩阵的更新扩展后即可进行编码。将源信息序列输入到编码器中进行编码得到编码序列,并将编码后的结果表示为 c = [ S P ] c =[S P] c=[SP]。其中 S = S = S= ( s 1 s_1 s1 , s 2 s_{2} s2 ,…, s k s_k sk)表示长度为 k k k的信息比特序列, P = P = P= ( p 1 p_1 p1 , p 2 p_2 p2 ,…, p m p_m pm )表示长度为 m 的校验比特序列,它们之间服从 n = m + k n = m + k n=m+k, n n n是码字长度,基矩阵 H b H_b Hb是一个 m b × n b m_b × n_b mb×nb的矩阵,核心矩阵是一个 m c × n c m_c × n_c mc×nc的矩阵。
对信息比特序列 S S S 按照每 Z Z Z个比特分为一组,总共可以分为 k b = n b - m b k_b = n_b - m_b kb=nb-mb组,将分组后的比特序列记为 s = [ s ( 0 ) , s ( 1 ) , … , s s =[s(0),s(1),…,s s=[s(0),s(1),…,s( k b - 1 k_b -1 kb-1)];同理,对校验比特序列 P 进行同样的操作,总共可分为 m b m_b mb组,记为 p = [ p ( 0 ) , p ( 1 ) , … , p p=[p(0),p(1),…,p p=[p(0),p(1),…,p( m b - 1 m_b - 1 mb-1)],将校验比特分为2个部分 P = P = P=[ P 1 P_1 P1 \quad P 2 P_2 P2 ],其中 P 1 = [ p ( 0 ) T , p ( 1 ) T , … , p ( m c - 1 ) T ] P _1 =[p (0)^ T ,p (1)^ T ,…,p(m_c -1)^T ] P1=[p(0)T,p(1)T,…,p(mc-1)T],记为 m c m_c mc 组, P 2 = [ p ( m c ) T , p ( m c + 1 ) T , … , p ( m b - 1 ) T ] P_2 = [p (m_c )^T ,p (m_c +1 )^T ,…,p (m_b -1)^T ] P2=[p(mc)T,p(mc+1)T,…,p(mb-1)T],记为 m b - m c m_b - m_c mb-mc组。
下图为一个5G NR BG2基矩阵的示例:
通过基矩阵扩展得到的校验矩阵为
H
H
H,利用
H
∗
c
T
(
C
矩
阵
的
转
置
)
=
0
H * c^T(C矩阵的转置)=0
H∗cT(C矩阵的转置)=0,展开得到下式式:
其中,
H
i
H_i
Hi
(
i
=
A
,
D
,
O
,
E
,
F
,
I
)
(i = A,D,O,E,F,I)
(i=A,D,O,E,F,I)表示校验矩阵的子矩阵,
H
A
H_A
HA和
H
D
H_ D
HD组成核心矩阵,其中
H
D
H_D
HD是准双对角矩阵,
H
O
H_O
HO 表示全 0 矩阵,
H
I
H_I
HI是单位矩阵,那么可得到:
要得到校验比特,需要计算
P
1
P_1
P1和
P
2
P_2
P2两个部分:
1)通过使用准双对角矩阵
H
D
H_D
HD的特殊结构,迭代计算出
P
1
P_1
P1 ;
2)通过
P
1
P_1
P1和单位矩阵
H
I
H_I
HI算出
P
2
P_2
P2。
对P1的求值过程如下:
(1) 初始化。将上边公式展开后进行累加,得到:
i
d
x
(
0
<
i
d
x
<
m
c
-
1
)
idx(0 < idx < m_c -1)
idx(0<idx<mc-1)表示子矩阵
H
D
H_D
HD 中的第一列除去首尾 2 行后,剩余元素中为非负数的元素位置所在的行数坐标,那么 p(0)如下所示:
(2) 迭代。根据
H
D
H_D
HD 结构可得到以下表达式:
得到
P
1
P_1
P1 后,展开前式可得
P
2
P_2
P2部分:
求出校验比特序列
P
=
[
P
1
P
2
]
P =[P_1 \quad P_2 ]
P=[P1P2],将其与信息比特合并,得到
c
=
[
S
P
]
c =[S \quad P]
c=[SP]。
5G-NR LDPC 码打孔、缩短和扩展
为了保证任意码长和码率的实现,5G-NR LDPC 码采用信息位打孔、信息位缩短和校验位打孔技术。
当得到码字 c 后,对其进行打孔和缩短,打孔和缩短的比特个数如下表所示。