参考文档:
目录
1: 数据流程
2: 打孔原因
3: 例子
一 数据流程
最后传的数据codeword 是去除打孔后的数据
二 打孔原因
主要为了得到不同的code rate
这里面我们以BG1 为例,默认矩阵大小为【46,68] , 根据扩频因子Z
信息bit为:22Z
奇偶校验bit为:46z(就是行数)
打孔:
信息部分1: 2z, 信息bits punctured的bits,为固定值(列重最高的部分)
方案1: 一种2z 默认为0,通过H得到奇偶校验部分,形成码字
但是发送的时候,将编码之后的前2Z比特去掉,在接收端对接收信号的llr在前补2Z个0.
另一种: 传输时不传输,
这个部分直接敲掉,不参于编码,接收方也不参于解码.
具体哪种效果好,可以模拟一下,以及通过Tanner 图 或者
密度演进算法法推演。
信息部分2: 20z, 信息bits
奇偶校验部分1: kz, 奇偶校验bits
奇偶校验部分2: (46-k)z, 奇偶校验打孔bits
github上面的代码是将编码之后的前2Z比特去掉,
传输时不传输,在接收端对接收信号的llr在前补2Z个0
1: code rate
三 打孔例子
3.1 码率1/3(最小值)
其中:
奇偶校验部分用了46z bits
奇偶校验部分打孔0z bits
Decoder 时候奇偶校验矩阵 H
[46,68]
3.2 码率 1/2
其中:
奇偶校验部分用了 24z bit
奇偶校验部分打孔 22z bit4
Decoder
[24,46]
3.3 码率 2/3
奇偶校验部分用了 13z bit
奇偶校验部分打孔 35z bit
Decoder
[13,35]