文章快速检索     高级检索
  重庆邮电大学学报(自然科学版)  2020, Vol. 32 Issue (3): 419-425  DOI: 10.3979/j.issn.1673-825X.2020.03.011
0

引用本文 

刘振, 黎勇. 基于QR码构造的QC-LDPC码译码器设计与实现[J]. 重庆邮电大学学报(自然科学版), 2020, 32(3): 419-425.   DOI: 10.3979/j.issn.1673-825X.2020.03.011.
LIU Zhen, LI Yong. Design and implementation of QC-LDPC decoder based on QR code[J]. Journal of Chongqing University of Posts and Telecommunications (Natural Science Edition), 2020, 32(3): 419-425.   DOI: 10.3979/j.issn.1673-825X.2020.03.011.

基金项目

国家自然科学基金(61771081)

Foundation item

The National Natural Science Foundation of China (61771081)

作者简介

刘振(1994-),男,湖南株洲人,硕士研究生,主要研究方向为信道编码、FPGA硬件设计实现。E-mail:995336991@qq.com; 黎勇(1982-),男,重庆人,副教授,博士,主要研究方向为信息论与编码,无线移动通信。E-mail: yongli@cqu.edu.cn

通讯作者

黎勇 yongli@cqu.edu.cn.

文章历史

收稿日期: 2018-12-14
修订日期: 2020-02-22
基于QR码构造的QC-LDPC码译码器设计与实现
刘振1, 黎勇1,2     
1. 重庆邮电大学 通信与信息工程学院,重庆 400065;
2. 重庆大学 计算机学院,重庆 400044
摘要: 基于平方剩余(quadratic residue,QR)码构造的准循环低密度奇偶校验(quasi cyclic low-density parity check,QC-LDPC)码的行重通常比较大,硬件实现时译码器消耗的资源也就较多。设计了一种在资源占用率和吞吐率方面较为平衡的部分并行结构的分层译码器。该译码器采用分层修正最小和算法(layered normalized min-sun algorithm, LNMSA)实现,利用部分并行结构同时处理层内连续n行;在变量节点后验概率信息的存储结构上,将连续的n个信息合并为1组,连续的2组采用2个随机存取存储器(random access memory, RAM)进行交替存储;在求取最小值和次小值时,将输入信息分为4组,再从4组中分别获取最小值比较出全局最小值和次小值,从而有效地降低了最小值和次小值比较运算的复杂度。在码长为2 040、码率为0.83的码字和Xilinx Virtex-6开发板的测试环境下,译码器最大时钟频率可达166.7 MHz,吞吐量可达447.5 Mbit/s。
关键词: 准循环低密度奇偶校验码    分层最小和译码算法    译码器    
Design and implementation of QC-LDPC decoder based on QR code
LIU Zhen1 , LI Yong1,2     
1. School of Communication and Information Engineering, Chongqing University of Posts and Telecommunications, Chongqing 400065, P.R. China;
2. School of Computer Science, Chongqing University, Chongqing 400044, P.R. China
Abstract: The row weight of quasi cyclic low-density parity check (QC-LDPC) codes based on quadratic residue (QR) codes is usually large, which causes that the decoder will consume more resources on hardware implementation. Therefore, this paper designed a layered decoder based on partial-parallel structure compromised between resource occupancy and throughput. The decoder is implemented by the Layered Normalized Min-Sun Algorithm (LNMSA), which simultaneously processes consecutive n rows of a layer using a partial-parallel structure. On the storage structure of variable node posterior probability information, the continuous n information is combined into one group and the consecutive two groups are alternately stored by two random access memories(RAM). When obtaining the minimum value and the second small value, the input message is divided into 4 groups. Then, 4 minimum value are respectively computed from 4 groups and the global minimum value and second small value are obtained from them, which can effectively reduce the complexity of the comparison operation. In the test environment with code length of 2 040, code rate of 0.83 and Xilinx Virtex-6 development board, the throughput of the decoder can reach 447.5 Mbit/s when working on 166.7 MHz.
Keywords: quasi cyclic low-density parity check code    layered min-sum decoding algorithm    decoder    
0 引言

低密度奇偶校验码(low density parity check, LDPC)由R. Gallager博士于1962年提出[1],但受限于当时的软硬件发展水平并未得到广泛应用。直到1996年,D. Mackay和R. M. Neal等重新发现了LDPC码,并论证了其性能接近香农极限。LDPC码的构造主要分为两大类:随机构造和结构化构造。其中,随机构造的LDPC码性能较好,但是,无规律可循的校验矩阵会大大增加硬件资源的开销。因此,结构化的LDPC码得到更广泛应用,例如,准循环LDPC (quasi-cyclic LDPC, QC-LDPC)码[2]

当QC-LDPC码应用于带宽资源紧缺的通信场景时,需要使用高码率码。传统方式构造的QC-LDPC码,其瀑布区误码性能和错误地板通常不能得到很好的折中,即瀑布区性能较好而错误地板较高或者错误地板低而瀑布区性能不好。平方剩余(quadratic residue, QR)[3]码作为BCH(Bose, Ray, Hocquenghem)码的子类,其码率略大于0.5,具有完美的代数结构、较大的最小汉明距离和较强的纠错能力。目前,基于QR码的广义LDPC码性能优于同码率下的LDPC码[4],因此,基于QR码有望构造出性能优异的高码率QC-LDPC码。

在以往的研究中,文献[5]实现了适用于不可分层LDPC码的分层译码器;文献[6]实现了面向磁记录信道的原模图LDPC码分层译码器;文献[7]实现了面向802.11ad的高速率LDPC码的编译码器;文献[8]提出了参数化的译码器设计方案,可以设计支持一个或多个码字的译码器;文献[9]实现了适用于802.16e的分层译码器;文献[10]实现了适用于802.11n/ac的LDPC码译码器,通过一种可重配置的循环移位网络来匹配不同码字。在这些译码器中,由于所实现的码字的码率、行重和扩展因子等参数的不同,实现复杂度也不一样,但对于高码率、行重大的码字,实现复杂度往往比较高。而QR码构造的QC-LDPC码就是一类行重大的码字,即校验矩阵中每行1的数量较多,导致FPGA实现时会消耗很多的硬件资源,在低资源消耗的场景下,很有可能无法实现。因此,本文设计了一种在并行度上选取较为灵活的译码器结构,并且提出了相应的变量节点后验概率信息的存储结构和低复杂度的数据移位网络,使得译码器能够在资源占用率和吞吐量之间取得良好的折中。

1 QC-LDPC码译码算法

LDPC码一般采用置信传播迭代(belief propagation, BP)算法进行译码,但是BP算法有大量的乘法和指数运算。为了降低复杂度,有学者提出了对数域BP算法[11]。然而,对数域BP算法存在一个非线性函数,FPGA实现时会导致性能极大地下降。因此,后来又有学者提出了适合硬件实现的最小和算法(min-sum algorithm, MSA)及其改进算法。

分层译码算法不同于传统的BP算法,它是将校验矩阵划分为不同的层,每层的列重为1,层与层之间的运算依次进行。层内运算依然使用的是传统算法,但是只需要传统算法的一半迭代次数就可以达到同等的效果。而且,采用分层译码算法实现的译码器复杂度很低[12]。本文采用的译码算法为分层修正最小和算法(layered normalized min-sun algorithm, LNMSA)[13],其流程如下。

1) 初始化

$ L\left( {{Q_i}} \right) = L\left( {{C_i}} \right) $ (1)

(1) 式中:L(Qi)表示第i个变量节点的初始后验概率信息;L(Ci)表示第i个信道软信息。

2) 变量节点更新

$ {L^{(n,m)}}\left( {{q_{ij}}} \right) = {L^{(n,m - 1)}}\left( {{Q_i}} \right) - {L^{(n - 1,m)}}\left( {{r_{ji}}} \right) $ (2)

(2) 式中,(n, m)表示第n次迭代第m层。

3) 校验节点更新

$ {L^{(n,m)}}\left( {{r_{ji}}} \right) = \alpha \cdot {\lambda _{i'j}} \cdot {\varphi _{i'j}} $ (3)
$ {\lambda _{i'j}} = \prod\limits_{{i^\prime } \in {R_j}\backslash i} {{\mathop{\rm sign}\nolimits} } \left( {L\left( {{q_{{i^\prime }j}}} \right)} \right) $ (4)
$ {\varphi _{i'j}} = \prod\limits_{{i^\prime } \in {R_j}\backslash i} {\min } \left( {L\left( {{q_{{i^\prime }j}}} \right)} \right) $ (5)

(3)—(5)式中,α为修正因子,取值为(0, 1)。

4) 变量节点后验概率更新

$ {L^{(n,m)}}\left( {{Q_i}} \right) = {L^{(n,m)}}\left( {{q_{ij}}} \right) + {L^{(n,m)}}\left( {{r_{ji}}} \right) $ (6)

(6) 式中:L(n, m)(Qi)表示第n次迭代第m层的后验概率信息;L(n, m)(qij)表示第n次迭代第m层的第i个变量节点传递给第j个校验节点的信息;L(n, m)(rji)表示第n次迭代第m层的第j个校验节点传递给第i个变量节点的信息。

5) 译码判决

$ {\hat c_i} = \left\{ {\begin{array}{*{20}{l}} {1,}&{L\left( {{Q_i}} \right) < 0}\\ {0,}&{L\left( {{Q_i}} \right) \ge 0} \end{array}} \right. $ (7)

(7) 式中,${\hat c_i}$表示第i个译码信息。如果$\left( {{{\hat c}_0}\quad {{\hat c}_1}\quad \cdots \;\;\;\;{{\hat c}_i}\;\quad \cdots } \right)$与校验矩阵的转置矩阵的乘积为零向量或者迭代次数达到最大迭代次数则停止迭代,反之返回步骤2)进行迭代。

2 译码器设计

本文采用码长为113的QR码构造QC-LDPC码,码长为2 040,行重为17,列重为3,扩展因子为120。因此,校验矩阵可分为3层。

2.1 译码器整体结构

译码器整体结构可分为信道信息接收模块、译码控制模块、地址生成模块、算法模块、校验模块和输出模块,整体结构框图如图 1

图 1 译码器结构框图 Fig.1 Structure diagram of decoder
2.2 信息接收模块及存储结构

信息接收模块主要功能是接收信道软信息并按照一定的存储结构存储到RAM中。

为了能够快速读取变量节点信息和满足灵活的并行度划分方案,本文设计了变量节点的存储结构如图 2。将2 040个变量节点分为17个块,每块120个信息按照每5个连续的信息分为1组,再把得到的24组信息交替存储到2个RAM中。由于采用8比特量化,因此,变量节点信息存储总共需要34个RAM,每一个RAM的位宽都为40比特,深度为12。

图 2 变量节点存储结构 Fig.2 Storage structure of variable node

每一个块中的变量节点信息的读取需要按照地址生成模块产生的地址同时向2个RAM读取。再将读取的数据进行拼接,形成一组包含10个变量节点信息的组合。然后将这组数据送入右移位网络进行右移位操作。这一操作类似于用大小为5个变量节点信息比特的窗口放置在一组数据的最右边,再按照校验矩阵元素大小数据向右移动若干个位置,操作过后位于窗口中的元素即为需要处理的变量节点信息。右移1个位置的处理过程如图 3

图 3 变量节点信息的选取 Fig.3 Chosen of variable node information

窗口2边的元素需要缓存到先入先出(first input first output, FIFO)队列,在变量节点更新存储时,需要恢复成正确的存储格式。这样做的好处在于无论并行度为多大,变量节点信息的读取都能在一个时钟周期内加载到算法模块中,而且简单的位移操作相比于QC-LDPC移位网络(QC-LDPC shift network, QSN)复杂度大大降低。

校验节点信息存储需要的RAM数量和并行度保持一致,本文译码器并行度为5,因此,需要5个RAM。每一个RAM对应处理的一行校验节点,并且每一行都采用压缩存储的方式进行存储,即5比特最小值索引、17比特符号位、8比特最小值和8比特次小值组成,所以,每一个RAM的位宽都为38比特,深度为72。

2.3 算法模块

算法模块主要是实现(2)、(3)和(6)式的功能。在本译码器中主要由变量节点更新模块、校验节点更新模块和校验节点后验概率更新模块组成,这3个模块实际上是一个整体,采用流水线设计。流水线结构如图 4

图 4 算法模块流水线结构 Fig.4 Pipeline structure of algorithm module

图 4中,比较器是对减法阵列计算后的数据进行绝对值的比较。比较器内部分为5组具有相同功能的子结构,对应5个校验节点的更新运算。每一组比较器的输入数据都为17,对应17个变量节点。然后将输入的17个数据分为4组,其中一组为5个,其余都为4个。每一组数据内部分别进行比较得出最小值,再从这4个分组的最小值中得到整体的最小值和次小值。比较器电路结构如图 5

图 5 比较器结构 Fig.5 Comparator structure

最小值求取的难点在于次小值的求取,当行重较大时,消耗的资源也会很大。按照传统计算方式,从17个数据中求取最小值和实际的次小值时,需要进行31次比较,也就是需要31个2输入比较器。而本文采用的分组比较简化了次小值的计算,但得到的次小值可能不是实际的次小值,这样计算的结果称为概率次小值[14]图 5中的4输入比较器是由3个2输入比较器构成。因此,一组比较器需要18个2输入比较器,而求全局的最小值和次小值电路需要31个二输入比较器,相比之下减少了13个2输入比较器。

由于在最小和算法中,校验节点信息的更新运算是对对数域BP算法的非线性函数的近似拟合,计算的结果精度损失大,因此,需要乘以一个修正因子来提高结果的精确度。本文修正因子设定为0.75,即将8比特数据分别右移1位和2位再相加。为了进一步提高精度,本文先将8比特数据尾部添加2个0扩展成10比特数据,再进行右移,相加后再去掉尾部2个比特。

在变量节点后验概率信息的更新中,由于特殊的存储结构的设计,若直接对信息进行存储,会导致译码器数据流错误,因此,需要制定正确的存储规则。例如,校验矩阵中一个元素为1的循环置换矩阵,则算法模块的一次迭代运算的第1次数据更新的值为RAM1和RAM2中地址0中的值,将其合并为(9,8,7,6,5;4,3,2,1,0),并在右边拼接5个全零数据,右移1个数据将(5,4,3,2,1)送入流水线,(0,9,8,7,6;0,0,0,0,0)存入FIFO;第2次更新的值为(14,13,12,11,10;9,8,7,6,5),右移1个数据将(10,9,8,7,6)送入流水线,(0,14,13,12,11;5,0,0,0,0)存入FIFO;最后一次更新的值为(4,3,2,1,0;119,118,117,116,115),右移1个数据将(0,119,118,117,116)送入流水线,(0,4,3,2,1;115,0,0,0,0,0)存入FIFO。变量节点后验概率信息更新后,从流水线中第1次出来的值为更新后的(5+,4+,3+,2+,1+)(+号表示已更新,用以区别未更新数据),再从FIFO中取出第一个值合并成(0,9,8,7,6;5,4,3,2,1;0,0,0,0,0),左移1个数据,将左边10个数据存入RAM;第2次出来的值为更新后的(10,9,8,7,6),再从FIFO中取出第2个值合并成(0,14,13,12,11;10,9,8,7,6;5,0,0,0,0),但由于数据5已经在上一次更新完毕,所以右边5个数据需要用上一次更新的数据进行替换,成为(0,14,13,12,11;10+,9+,8+,7+,6+;5+,4+,3+,2+,1+),左移1个数据取左边10个数据存储;最后一次出来的值,由于其他所有值都得到更新,所以拼接的数据不是从FIFO中得到,而是取第1次和倒数第2次出来的值,拼接成(5+,4+,3+,2+,1+;0+,119+,118+,117+,116+;115+,114+,113+,112+,111+),左移1个数据再取左边10个数据存储;至此,所有数据都更新完毕并正确存储。具体的存储规则如图 6

图 6 变量节点后验概率信息存储规则 Fig.6 Storage rule of variable node posterior probability

图 6中,(qij_L, qij_R)表示从FIFO中取出的数据,qijt表示第t(1 < t < n)次的数据更新。n表示最后一次数据更新。x表示数据整体向左移位x个数据且虚线框位置保持不变,左移位后仍位于虚线框内的数据为需要存储的数据。

2.4 校验模块

校验模块的功能是对一次迭代运算完成的变量节点后验概率信息进行校验。当$\mathit{\boldsymbol{\widehat c}} \cdot {\mathit{\boldsymbol{H}}^{\rm{T}}} = 0$或达到预设最大迭代次数则停止,并输出译码结果。校验模块的实现是将HT没有扩展前的列作为并行度,本文并行度为3,将这3列元素同时从上到下与译码判决信息进行计算。

2.5 校验矩阵重排

由于校验矩阵层与层之间的同列元素的差值关系,流水线需要等待上一层数据完全处理完毕才能处理下一层数据,因此,导致流水线的空闲时间比较多。为了减少流水线的空闲时间,需要对校验矩阵的每一层元素进行调整。

调整的规则是使每相邻两行的下一行元素减去上一行元素的差值小于等于某个常数,由于读取和存储数据的个数都与并行度有关系,因此,这个常数需要等于并行度的倍数。

对本文使用的校验矩阵进行调整,计算可得常数为105,为并行度的21倍。调整后的矩阵如图 7

图 7 校验矩阵重排 Fig.7 Reordering of parity check matrix
3 译码器的硬件实现

本文是以Xilinx公司的Virtex-6 FPGA ML605 Evaluation Kit为硬件平台,在ISE14.7下进行设计。采用的码字是码长为113的QR码构造的QC-LDPC码,码字参数为(2 040, 1 682),行重为17,列重为3,扩展因子为120,量化比特数为8比特。经ISE14.7综合后的资源消耗如表 1

表 1 译码器资源消耗 Tab.1 Resource consumption of decoder

对译码器用modelsim进行功能仿真,以及利用PC端Visual Studio 2017产生数据通过开发板上的以太网接口进行板级调试,验证了译码器的功能正确性。译码器时序图如图 8

图 8 译码器时序图 Fig.8 Decoder timing diagram

由ISE14.7的时序分析报告可知,译码器的关键路径延时为5.996 ns,因此,最大频率为166.7 MHz。完整的1次迭代需要95个时钟周期。

$ T = \frac{{f \cdot L}}{{N \cdot I}} $ (8)

(8) 式中:T表示吞吐量;f表示时钟频率;L表示码长;N表示单次迭代所需的时钟周期数;I表示迭代次数。因此,在8次迭代下,由(8)式可知译码器的吞吐量可达447.5 Mbit/s。

图 9是码长为113的QR码构造的参数为(2 040, 1 682)的QC-LDPC码与渐进边增长(progressive edge growth, PEG)算法[15]构造的参数为(2 040, 1 680)的码字的性能对比,译码算法为BP算法。在相近参数的码字下,基于QR码构造的QC-LDPC码的性能在低信噪比下和PEG算法构造的码字性能相近,在高信噪比下略逊于PEG算法构造的码字。

图 9 基于QR码构造的QC-LDPC码与PEG算法构造的码字性能对比 Fig.9 Performance comparison of QC-LDPC code based on QR code and LDPC code constructed by PEGalgorithm

图 10为FPGA上实现的译码器与C语言编写的浮点BP译码程序的性能对比,码字依然是码长为113的QR码构造的QC-LDPC码,其参数为(2 040, 1 682),最大迭代次数为8次。由图 10可知,在低信噪比时,译码器由于定点量化的原因,性能要略逊于浮点BP算法的性能,当信噪比升高时,译码器的性能开始超越浮点BP算法的译码性能。因此,采用8比特量化和LNMSA算法实现的译码器能够保证良好的纠错性能(在同等迭代次数下,LNMSA本身能够取得比BP算法更好的译码性能[16])。

图 10 译码器性能对比 Fig.10 Performance comparison of decoder

表 2为本文与文献[16-17]中实现的译码器性能对比。本文与文献[16]相比,查找表(Look-up table, LUT)使用率只有其一半;与文献[17]相比本文资源使用率是文献[17]的2倍左右;这是由于本文的译码器使用了大量的移位网络和较高的量化比特数,移位网络使数据可以在一个时钟周期内被加载到流水线中,较高的量化比特数使得译码器的译码精度较高;在吞吐量方面,本文要比文献[16-17]高出许多。

表 2 译码器性能对比 Tab.2 Decoder performance comparison
4 结论

本文针对基于QR码构造的高码率和行重较大的QC-LDPC码,提出了一种层内部分并行结构的分层译码器。该译码器在并行度上的选取比较灵活,可以根据具体的矩阵而定,减少了实现复杂度,本文设计的变量节点信息存储结构可以使译码器在一个时钟周期内读取所需的数据,在校验节点更新运算中有效地简化了比较运算且性能损失不大。另外,本文的译码器设计方案支持参数化设计,因此,可以重新配置成不同参数的译码器。本文针对码长为2 040,码率为0.83,行重为17的码字,在Xilinx Virtex-6开发板的环境下,译码器最大时钟频率可达166.7 MHz,迭代次数为8的情况下,吞吐量可达447.5 Mbit/s。对比传统的高码率、大行重的分层译码器,本文提出的译码器设计方案能够在资源占用率和吞吐量之间取得良好的折中。

参考文献
[1]
GALLAGERR. Low-density parity-check codes[J]. IRE Transactions on Information Theory, 1962, 1(8): 21-28.
[2]
KOU Y, LIN S, FOSSORIER M P C. Low-density parity-check codes based on finite geometries: a rediscovery and new results[J]. IEEE Trans.on Inform.theory, 2001, 47(7): 2711-2736. DOI:10.1109/18.959255
[3]
陈高明, 黎勇, 董灿, 等. 一种(71, 36, 11)QR码的快速代数译码算法[J]. 重庆邮电大学学报(自然科学版), 2015, 27(6): 781-785.
CHEN G M, LI Y, DONG C, et al. A fast algebraic decoding algorithm of the (71, 36, 11) quadratic residue code[J]. Journal of Chongqing University of Posts and Telecommunications (Natural Science Edition), 2015, 27(6): 781-785.
[4]
李西亚, 黎勇. 基于(17, 9)平方剩余码的广义LDPC码构造及性能研究[J]. 重庆邮电大学学报(自然科学版), 2018, 30(06): 797-802.
LI X Y, LI Y. Research on design and performance of GLDPC codes base on (17, 9) quadratic residue codes[J]. Journal of Chongqing University of Posts and Telecommunications (Natural Science Edition), 2018, 30(06): 797-802.
[5]
江涛.QC-LDPC码设计和分层译码器的FPGA实现[D].南京: 南京航空航天大学, 2012.
JIANG T. Design and implementation of QC-LDPC layered decoder on FPGA[D]. Nanjing: Nanjing University of Aeronautics and Astronautics, 2012.
[6]
周健, 吕毅博, 洪少华, 等. 面向磁记录信道的原模图LDPC码译码器的FPGA设计[J]. 重庆邮电大学学报(自然科学版), 2013, 25(6): 788-794.
ZHOU J, LV Y B, HONG S H, et al. Protograph-based LDPC decoder applied to magnetic recording channel[J]. Journal of Chongqing University of Posts and Telecommunications (Natural Science Edition), 2013, 25(6): 788-794.
[7]
XIANG J. Design and implementation of the high speed LDPC code for 802[J]. 11ad: University of Electronic Science and Technology, 2015.
[8]
HAILES P, XU L, MAUNDER R G, et al. A flexible FPGA-based Quasi-Cyclic LDPC decoder[J]. IEEE Access, 2017(5): 20965-20984.
[9]
NIDAGUNDI J C and PATIL S R. High throughput structured LDPC layered decoder[C]//2017 International Conference on Wireless Communications, Signal Processing and Networking (WiSPNET). Chennai: IEEE, 2017: 1559-1563.
[10]
TSATSARAGKOS I, PALIOURAS V. A reconfigurable LDPC decoder optimized for 802.11n/ac applications[J]. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 2018, 26(1): 182-195. DOI:10.1109/TVLSI.2017.2752086
[11]
袁建国, 汪哲, 何昌伟, 等. 光通信系统中一种改进的LLR-BP译码算法[J]. 半导体光电, 2016, 37(4): 532-535.
YUAN J G, WANG Z, HE C W, et al. An improved LLR-BP decoding algorithm for optical communication systems[J]. Semiconductor Optoelectronics, 2016, 37(4): 532-535.
[12]
吴淼, 邱丽鹏, 周林, 等. 高效低复杂度的QC-LDPC码全并行分层结构译码器[J]. 重庆邮电大学学报(自然科学版), 2018, 30(3): 354-361.
WU M, QIU L P, ZHOU L, et al. Efficient low-complexity full-parallel-layered decoder for QC-LDPC codes[J]. Journal of Chongqing University of Posts and Telecommunications (Natural Science Edition), 2018, 30(3): 354-361.
[13]
ZHANG W C, CHEN S, BAI X F, et al. A full layer parallel QC-LDPC decoder for WiMAX and Wi-Fi[C].//2015 IEEE 11th International Conference on ASIC (ASICON). Chengdu: IEEE, 2015: 1-4.
[14]
LEE H C, CHENG C C, UENG Y G. Hardware-friendly Probabilistic Min-Sum algorithm for fully-parallel LDPC decoders[C]//2014 8th International Symposium on Turbo Codes and Iterative Information Processing (ISTC). Bremen: IEEE, 2014: 102-106.
[15]
KHAZRAIE S, ASVADI R, BANIHASHEMI A H. A PEG Construction of Finite-Length LDPC Codes with Low Error Floor[J]. IEEE Communications Letters, 2012, 16(8): 1288-1291. DOI:10.1109/LCOMM.2012.060112.120844
[16]
HUNG S Y, YEN S W, CHEN C H, et al. A 5.7Gbps row-based layered scheduling LDPC decoder for IEEE 802.15.3c applications[C]//2010 IEEE Asian Solid-State Circuits Conference. Beijing: IEEE, 2010: 1-4.
[17]
唐兴国.多码率LDPC码编译码器的FPGA实现[D].大连: 大连理工大学, 2013.
TANG X G. Implementation of encoder and decoder for multi-rate LDPC codes based on FPGA[D]. Dalian: Dalian University of Technology, 2013. http://cdmd.cnki.com.cn/Article/CDMD-10141-1013199478.htm
[18]
彭阳阳, 仰枫帆. 基于FPGA的QC-LDPC码分层译码器设计[J]. 无线电工程, 2014, 44(2): 17-20.
PENG Y Y, YANG F F. Design on QC-LDPC layered decoder based on FPGA[J]. Radio Communications Technology, 2014, 44(2): 17-20. DOI:10.3969/j.issn.1003-3106.2014.02.005