The invention provides a multi code rate and multi code long LDPC decoding method based on the SIMD instruction set. Combining the characteristics of the LDPC code matrix of the quasi cyclic structure, it realizes the online statistics of the check matrix information through the external configuration document, and uses the fixed point layered decoding scheme, and the decoder constructs a specific checkpoint calculation without the peer weight. The unit selects the check node calculation unit according to different row weights, and the loop expansion method is adopted in the check node calculation unit. The invention realizes the online statistics of the check matrix information and reduces the storage of the LDPC code decoder with the multibit code length. Compared with the existing algorithms, it eliminates the dependence on the statistical information of the matrix, reduces the complexity of the decoder, and has no speed loss compared with the existing algorithms, and can also carry out the online computing module. It is revised and versatile.
【技术实现步骤摘要】
基于SIMD指令集的多码率多码长LDPC码解码方法
本专利技术属于信道编码
,具体涉及一种解码方法,更为具体的说,是涉及一种基于SIMD指令集的多码率多码长LDPC码解码方法。
技术介绍
LDPC码即低密度奇偶校验(Low-DensityParity-Check,LDPC)码,它是由RobertG.Gallager博士于1963年首次提出的一类具有稀疏校验矩阵的线性分组码并在1995被D.J.C.Mackay和R.W.Neal重新提出。LDPC码具有逼近Shannon限的良好性能,而且译码复杂度较低、结构灵活、低延时,可实现高速并行译码,近二十年来一直是信道编码领域的研究热点。目前LDPC码已广泛应用于无线通信(WiFi,WiMAX)、深空通信、光纤通信、卫星数字视频和音频广播等领域。现在LDPC码已经成为5G信道编码中数据信道的编码方案,eMMB场景已经确定使用LDPC码的编码方案。3GPP为LDPC码定义了两大类基矩阵,分别为BG1和BG2,其中BG1和BG2中各包括8个不同的基矩阵(参考文献2:3GPPTS38.212,“Multiplexingandchannelcoding,”v.1.0.0,Sep.2017;http://www.3gpp.org.)。BG_1中的基矩阵HBG_1的参数为Mb=46,Nb=68。BG2中的基矩阵的参数为Mb=42,Nb=52。BG1和BG2中各个基矩阵分别支持一组给定的扩展因子Zc。标准规定,编码后的码字前2Zc个信息比特打孔不传输,详细速率匹配方案参考文献2。图1给出了集合BG1中的LDPC码的矩阵结构示 ...
【技术保护点】
1.基于SIMD指令集的多码率多码长LDPC码解码方法,其特征在于,包括如下步骤:S101:统计校验矩阵信息首先读取分块结构LDPC码的参数Mb、Nb和Zc以及基矩阵Hb,Mb为基矩阵的行数,Nb为基矩阵的列数,Zc为扩展因子;将Hb按照行重dc从大到小重新排序,结合Zc统计扩展后的H中行重和对应行重的数目,并将其存储到数组degs和degsComputation中,统计不同行重的数目NoDegs以及H中1的数目NoOnes,H表示LDPC码的校验矩阵,H的行、列数分别为M、N,M=Mb*Zc,N=Nb*Zc;根据Zc对Hb中非负元素hij进行取模,hij'=mod(hij,Zc),并用Zc*Zc的单位循环移位阵替换对应的非负元素,移位参数取hij',使用Zc*Zc的全零矩阵替换‑1元素,得到校验矩阵H;创建以SIMD数据类型为基本类型的长度为N的数组var_nodes,存储变量节点的对数似然比En;使用一个指针数组p_vn_adr存储排序后H阵中每行中1对应的var_nodes的地址;创建一个大小为NoOnes的数组var_mesg,存储信息Lmn,Lmn为校验节点cm传递给变量节点 ...
【技术特征摘要】
1.基于SIMD指令集的多码率多码长LDPC码解码方法,其特征在于,包括如下步骤:S101:统计校验矩阵信息首先读取分块结构LDPC码的参数Mb、Nb和Zc以及基矩阵Hb,Mb为基矩阵的行数,Nb为基矩阵的列数,Zc为扩展因子;将Hb按照行重dc从大到小重新排序,结合Zc统计扩展后的H中行重和对应行重的数目,并将其存储到数组degs和degsComputation中,统计不同行重的数目NoDegs以及H中1的数目NoOnes,H表示LDPC码的校验矩阵,H的行、列数分别为M、N,M=Mb*Zc,N=Nb*Zc;根据Zc对Hb中非负元素hij进行取模,hij'=mod(hij,Zc),并用Zc*Zc的单位循环移位阵替换对应的非负元素,移位参数取hij',使用Zc*Zc的全零矩阵替换-1元素,得到校验矩阵H;创建以SIMD数据类型为基本类型的长度为N的数组var_nodes,存储变量节点的对数似然比En;使用一个指针数组p_vn_adr存储排序后H阵中每行中1对应的var_nodes的地址;创建一个大小为NoOnes的数组var_mesg,存储信息Lmn,Lmn为校验节点cm传递给变量节点vn的信息;S102:迭代初始化根据SIMD数据类型的特点,对输入的对数似然比[E1,1,…,E1,N,E2,1,…,E2,N,…,ET,1,…,ET,N]重新排序,[E1,1,…,E1,N,E2,1,…,E2,N,…,ET,1,…,ET,N]是串行送入解码器,经过Q比特量化采用P比特存储;将T个码字第j位的对数似然比依次排列成如[E1,j,E2,j,…,ET,j]所示格式,1≤j≤N,构成P*T比特的数据,存储到数组var_nodes中第j个位置,位宽为P*T比特;初始化迭代次数k=0;规定最大迭代次数为K;初始化各个校验节点传递给相邻变量节点的信息S103:迭代次数更新,k=k+1;S104:循环初始化初始化行度数索引j=0;初始化分别用于顺序读取和写入En地址的指针数组,p_indice...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。