CN109831214A - 一种全并行ldpc译码器及fpga实现方法 - Google Patents
一种全并行ldpc译码器及fpga实现方法 Download PDFInfo
- Publication number
- CN109831214A CN109831214A CN201811646876.8A CN201811646876A CN109831214A CN 109831214 A CN109831214 A CN 109831214A CN 201811646876 A CN201811646876 A CN 201811646876A CN 109831214 A CN109831214 A CN 109831214A
- Authority
- CN
- China
- Prior art keywords
- module
- node
- check
- true form
- complement code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明提供了一种全并行LDPC译码器及FPGA实现方法,外信息节点更新模块接收并存储解调输出的软信息,补码转原码模块将外信息节点更新模块传送的码字进行补码转原码计算,并在迭代译码过程中并行的将变量节点更新模块输出的信息进行补码转原码计算,计算结果传送至校验节点更新模块;校验节点更新模块进行校验节点更新,变量节点更新模块进行变量节点更新,校验判决模块通过计算校验方程完成校验判决。本发明有效降低LDPC译码时延,在硬件资源消耗增加较少的前提下,极大提升了译码器的吞吐量。解决了高速通信系统接收机中译码器吞吐量不足的问题,从而为LDPC码在高速通信系统中的应用奠定了基础。
Description
技术领域
本发明属于无线通信和数字信号处理领域,具体涉及一种译码器。
背景技术
自Shannon提出信道编码以来,如何实现性能接近Shannon限的编码,是编码理论学者一直努力的方向。低密度校验(Low-Density Parity-Check)码作为迄今为止性能最好的纠错码之一,在无线通信、卫星通信和无线网络技术等领域获得了广泛的应用。
和积译码算法(sum-product algorithm,SPA)是一种基于置信度传播的迭代译码算法(iterative decoding algorithm based on belief propagation,IDBP),通过贝叶斯准则获得近似最大后验概率译码,该算法对于LDPC译码特别有效。但和积算法中存在着大量的概率乘法、双曲正切函数和它的反函数运算,计算复杂度偏高,其FPGA实现非常困难。因此,实现中一般采用和积算法的简化形式最小和算法(min-sum algorithm,MSA)。
虽然现有的译码方法对于LDPC具有较好的效能,但仍存在如下缺陷:
1.在对码长较长的LDPC进行译码时,由于和积算法和最小和算法需要大量迭代,从而导致译码时延较长,译码器的吞吐量降低。
2.在高速通信系统中,由于数据的大量连续传输,在接收机中采用传统的串行或部分并行迭代译码器无法满足速率需求,导致译码器前数据堆积,从而导致译码结果出错或丢包。
发明内容
为了克服现有技术的不足,本发明提供一种全并行LDPC译码器,根据校验矩阵结构将校验节点更新、变量节点更新、判决节点更新和校验判决过程均采取多路并行处理,即在译码器中采取全并行架构,以得到最大的译码并行度。相比于传统LDPC译码器采用串行和部分并行架构,本发明可以有效的降低译码时延,提高译码器的吞吐量。
本发明解决其技术问题所采用的技术方案是:一种全并行LDPC译码器,包括外信息节点更新模块、补码转原码模块、校验节点更新模块、原码转补码模块、变量节点更新模块、判决节点更新模块和校验判决模块。
所述的补码转原码模块、校验节点更新模块、变量节点更新模块、原码转补码模块、判决节点更新模块和校验判决模块并行运行;所述的外信息节点更新模块接收并存储解调输出的软信息,并在接收到完整一帧码字后,将码字分别传送至补码转原码模块和判决节点更新模块;所述的补码转原码模块将外信息节点更新模块传送的码字进行补码转原码计算,并在迭代译码过程中并行的将变量节点更新模块输出的信息进行补码转原码计算,计算结果传送至校验节点更新模块;所述的校验节点更新模块进行校验节点更新,并将计算结果传送至原码转补码模块;所述的原码转补码模块将校验节点更新模块输出的信息并行的进行原码转补码计算,将计算结果分别传送至变量节点更新模块和判决节点更新模块;所述的变量节点更新模块进行变量节点更新,并将计算结果传送至补码转原码模块;所述的判决节点更新模块进行判决节点更新,并将计算结果传送至校验判决模块;所述的校验判决模块通过计算校验方程完成校验判决,若计算结果满足所有校验方程或达到预设的最大迭代次数,则输出译码结果,译码结束;否则等待下一轮迭代过程输出的信息,进行下一轮判决。
本发明还提供上述全并行LDPC译码器的FPGA实现方法,包括以下步骤:
(1)确定译码器内的并行路数(p1,p2),其中p1为LDPC码的校验矩阵结构中每列具有的子矩阵的个数,p2为LDPC码的校验矩阵结构中每行具有的子矩阵的个数;根据接收的信道信息,初始化外信息节点Lc和变量节点Lg;接收到完整一帧码字后,开始迭代译码过程,迭代计数器设为1;
(2)在首次更新校验节点Lh时,将外信息进行p1路并行的补码转原码处理后,送入校验节点更新模块,之后的每次迭代中将变量节点更新后的信息进行p1路并行的补码转原码处理后,送入校验节点更新模块;校验节点更新采用p1路并行的最小和算法;
(3)对校验节点更新后的信息进行p2路并行的原码转补码处理,将处理后的信息送入变量节点更新模块进行p2路并行的变量节点更新,完成变量节点更新后迭代计数器加1;
(4)在进行变量节点更新的同时,根据外信息和原码转补码后的校验节点信息,进行p2路并行的判决节点更新;
(5)根据判决节点更新后的信息,进行p2路并行校验判决计算,如果满足所有校验方程或迭代计数器达到预设的最大迭代次数则跳至步骤(6),否则返回步骤(2);
(6)进行译码结果输出,译码结束。
本发明的有益效果是:通过对LDPC译码过程中可进行并行处理的校验节点更新、变量节点更新、判决节点更新和校验判决计算均采用并行处理,达到对LDPC译码过程的全并行处理,有效降低LDPC译码时延,在硬件资源消耗增加较少的前提下,极大提升了译码器的吞吐量。解决了高速通信系统接收机中译码器吞吐量不足的问题,从而为LDPC码在高速通信系统中的应用奠定了基础。
附图说明
图1为本发明全并行LDPC译码器工作流程图。
图2为本发明全并行LDPC译码器的FPGA实现流程图。
图3为本发明实施例采用(4064,3048)LDPC码的校验矩阵结构图。
图4为本发明对(4064,3048)LDPC码进行全并行译码与串行译码的FPGA实现硬件资源占用对比报告图。
具体实施方式
下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。
本发明采用的全并行LDPC译码器包括以下模块,且以下模块均可基于FPGA实现:
(1)外信息节点更新模块。本模块负责接收并存储解调输出的软信息,并在接收到完整一帧码字后,将码字分别传送至补码转原码模块和判决节点更新模块;
(2)补码转原码模块。本模块负责并行的将外信息节点更新模块传送的码字进行补码转原码计算,并在迭代译码过程中并行的将变量节点更新模块输出的信息进行补码转原码计算,本模块的输出信息传送至校验节点更新模块;
(3)校验节点更新模块。本模块负责并行的进行校验节点更新,并将计算结果传送至原码转补码模块;
(4)原码转补码模块。本模块负责将校验节点更新模块输出的信息并行的进行原码转补码计算,将计算结果分别传送至变量节点更新模块和判决节点更新模块;
(5)变量节点更新模块。本模块负责并行的进行变量节点更新,并将计算结果传送至补码转原码模块;
(6)判决节点更新模块。本模块负责并行的进行判决节点更新,并将计算结果传送至校验判决模块;
(7)校验判决模块。本模块负责通过并行的计算校验方程,完成校验判决。若计算结果满足所有校验方程或达到预设的最大迭代次数,则输出译码结果,译码结束;否则等待下一轮迭代过程输出的信息,进行下一轮判决。
2.本发明采用的全并行LDPC译码器的工作流程包括以下步骤:
(1)初始化。确定译码器内的并行路数(p1,p2),其中p1为LDPC码的校验矩阵结构中每列具有的子矩阵的个数,p2为LDPC码的校验矩阵结构中每行具有的子矩阵的个数;根据接收的信道信息,初始化外信息节点Lc和变量节点Lg。接收到完整一帧码字后,开始迭代译码过程,迭代计数器设为1;
(2)校验节点Lh更新。在首次更新校验节点Lh时,将外信息进行p1路并行的补码转原码处理后,送入校验节点更新模块,之后的每次迭代中将变量节点更新后的信息进行p1路并行的补码转原码处理后,送入校验节点更新模块;校验节点更新采用p1路并行的最小和算法;
(3)变量节点Lg更新。对校验节点更新后的信息进行p2路并行的原码转补码处理,将处理后的信息送入变量节点更新模块进行p2路并行的变量节点更新,完成变量节点更新后迭代计数器加1;
(4)判决节点LQ更新。在进行变量节点更新的同时,根据外信息和原码转补码后的校验节点信息,进行p2路并行的判决节点更新;
(5)校验判决。根据判决节点更新后的信息,进行p2路并行校验判决计算,如果满足所有校验方程或迭代计数器达到预设的最大迭代次数则跳至步骤(6),否则返回步骤(2);
(6)进行译码结果输出,译码结束。
本发明降低了LDPC译码器译码时延,大幅提升了译码器的吞吐量,解决了高速通信系统接收机中译码器吞吐量不足的问题,可直接应用于现有的高速通信系统,扩展LDPC码的应用范围。
本发明的实施例采用(4064,3048)LDPC码,码率为3/4,包括以下内容:
1.基于FPGA实现的全并行LDPC译码器包括以下模块:
(1)外信息节点更新模块。本模块负责接收并存储解调输出的软信息,并在接收到完整一帧码字后,将码字分别传送至补码转原码模块和判决节点更新模块;
(2)补码转原码模块。本模块负责并行的将外信息节点更新模块传送的码字进行补码转原码计算,并在迭代译码过程中并行的将变量节点更新模块输出的信息进行补码转原码计算,本模块的输出信息传送至校验节点更新模块;
(3)校验节点更新模块。本模块负责并行的进行校验节点更新,并将计算结果传送至原码转补码模块;
(4)原码转补码模块。本模块负责将校验节点更新模块输出的信息并行的进行原码转补码计算,将计算结果分别传送至变量节点更新模块和判决节点更新模块;
(5)变量节点更新模块。本模块负责并行的进行变量节点更新,并将计算结果传送至补码转原码模块;
(6)判决节点更新模块。本模块负责并行的进行判决节点更新,并将计算结果传送至校验判决模块;
(7)校验判决模块。本模块负责通过并行的计算校验方程,完成校验判决。若计算结果满足所有校验方程或达到预设的最大迭代次数,则输出译码结果,译码结束;否则等待下一轮迭代过程输出的信息,进行下一轮判决。
2.本发明采用的全并行LDPC译码器的工作流程包括以下步骤:
(1)初始化。实施例采用(4064,3048)LDPC码,码率为3/4,根据LDPC码的校验矩阵的结构中每列有8个子矩阵,每行有32个子矩阵确定译码器内的并行路数为(8,32)。根据接收的信道信息,初始化外信息节点Lc和变量节点Lg。接收到完整一帧码字后,开始迭代译码过程,迭代计数器设为1,最大迭代次数设为20;
(2)校验节点Lh更新。在首次更新校验节点Lh时,将外信息进行8路并行的补码转原码处理后,送入校验节点更新模块,之后的每次迭代中将变量节点更新后的信息进行8路并行的补码转原码处理后,送入校验节点更新模块;校验节点更新采用8路并行的最小和算法;
(3)变量节点Lg更新。对校验节点更新后的信息进行32路并行的原码转补码处理,将处理后的信息送入变量节点更新模块进行32路并行的变量节点更新,完成变量节点更新后迭代计数器加1;
(4)判决节点LQ更新。在进行变量节点更新的同时,根据外信息和原码转补码后的校验节点信息,进行32路并行的判决节点更新;
(5)校验判决。根据判决节点更新后的信息,进行32路并行校验判决计算,如果满足所有校验方程或迭代计数器达到预设的最大迭代次数20则跳至步骤(6),否则返回步骤(2);
(6)进行译码结果输出,译码结束。
由上述实施例步骤可知,采用本发明的译码方法,相比传统串行译码,可提高译码速度8×32=256倍,即译码时延降低为串行译码的1/256,译码器的吞吐量提升256倍。而在FPGA硬件实现中,根据Xilinx公司发布的Vivado开发平台给出的资源占用报告,本发明相比串行译码的资源占用率仅提升80%。由此可知,本发明提出全并行LDPC译码器可大幅度提升译码器的吞吐量,降低译码时延,并且在FPGA实现中对硬件资源消耗增加较少,具有很高的实用价值。
Claims (2)
1.一种全并行LDPC译码器,包括外信息节点更新模块、补码转原码模块、校验节点更新模块、原码转补码模块、变量节点更新模块、判决节点更新模块和校验判决模块,其特征在于:
所述的补码转原码模块、校验节点更新模块、变量节点更新模块、原码转补码模块、判决节点更新模块和校验判决模块并行运行;所述的外信息节点更新模块接收并存储解调输出的软信息,并在接收到完整一帧码字后,将码字分别传送至补码转原码模块和判决节点更新模块;所述的补码转原码模块将外信息节点更新模块传送的码字进行补码转原码计算,并在迭代译码过程中并行的将变量节点更新模块输出的信息进行补码转原码计算,计算结果传送至校验节点更新模块;所述的校验节点更新模块进行校验节点更新,并将计算结果传送至原码转补码模块;所述的原码转补码模块将校验节点更新模块输出的信息并行的进行原码转补码计算,将计算结果分别传送至变量节点更新模块和判决节点更新模块;所述的变量节点更新模块进行变量节点更新,并将计算结果传送至补码转原码模块;所述的判决节点更新模块进行判决节点更新,并将计算结果传送至校验判决模块;所述的校验判决模块通过计算校验方程完成校验判决,若计算结果满足所有校验方程或达到预设的最大迭代次数,则输出译码结果,译码结束;否则等待下一轮迭代过程输出的信息,进行下一轮判决。
2.一种利用权利要求1所述全并行LDPC译码器的FPGA实现方法,其特征在于包括下述步骤:
(1)确定译码器内的并行路数(p1,p2),其中p1为LDPC码的校验矩阵结构中每列具有的子矩阵的个数,p2为LDPC码的校验矩阵结构中每行具有的子矩阵的个数;根据接收的信道信息,初始化外信息节点Lc和变量节点Lg;接收到完整一帧码字后,开始迭代译码过程,迭代计数器设为1;
(2)在首次更新校验节点Lh时,将外信息进行p1路并行的补码转原码处理后,送入校验节点更新模块,之后的每次迭代中将变量节点更新后的信息进行p1路并行的补码转原码处理后,送入校验节点更新模块;校验节点更新采用p1路并行的最小和算法;
(3)对校验节点更新后的信息进行p2路并行的原码转补码处理,将处理后的信息送入变量节点更新模块进行p2路并行的变量节点更新,完成变量节点更新后迭代计数器加1;
(4)在进行变量节点更新的同时,根据外信息和原码转补码后的校验节点信息,进行p2路并行的判决节点更新;
(5)根据判决节点更新后的信息,进行p2路并行校验判决计算,如果满足所有校验方程或迭代计数器达到预设的最大迭代次数则跳至步骤(6),否则返回步骤(2);
(6)进行译码结果输出,译码结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811646876.8A CN109831214A (zh) | 2018-12-29 | 2018-12-29 | 一种全并行ldpc译码器及fpga实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811646876.8A CN109831214A (zh) | 2018-12-29 | 2018-12-29 | 一种全并行ldpc译码器及fpga实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109831214A true CN109831214A (zh) | 2019-05-31 |
Family
ID=66861507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811646876.8A Pending CN109831214A (zh) | 2018-12-29 | 2018-12-29 | 一种全并行ldpc译码器及fpga实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109831214A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111863088A (zh) * | 2020-08-04 | 2020-10-30 | 长江存储科技有限责任公司 | 一种信息译码方法、装置、电子设备及存储介质 |
CN113708829A (zh) * | 2021-10-28 | 2021-11-26 | 广东粤港澳大湾区硬科技创新研究院 | 卫星信号的处理方法、装置以及卫星基带设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102545913A (zh) * | 2012-02-07 | 2012-07-04 | 中兴通讯股份有限公司 | 一种迭代译码方法及系统 |
US20120221914A1 (en) * | 2011-02-28 | 2012-08-30 | Damian Alfonso Morero | Non-Concatenated FEC Codes for Ultra-High Speed Optical Transport Networks |
CN102664638A (zh) * | 2012-05-31 | 2012-09-12 | 中山大学 | 基于分层nms算法的多码长ldpc码译码器的fpga实现方法 |
CN106571829A (zh) * | 2016-10-27 | 2017-04-19 | 西安空间无线电技术研究所 | 一种基于fpga的高速自适应dvb‑s2 ldpc译码器及译码方法 |
US20170149446A1 (en) * | 2015-11-24 | 2017-05-25 | Texas Instruments Incorporated | Ldpc post-processor architecture and method for low error floor conditions |
CN107086871A (zh) * | 2017-06-16 | 2017-08-22 | 大连大学 | 一种码长自适应的llr‑bp译码器 |
-
2018
- 2018-12-29 CN CN201811646876.8A patent/CN109831214A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120221914A1 (en) * | 2011-02-28 | 2012-08-30 | Damian Alfonso Morero | Non-Concatenated FEC Codes for Ultra-High Speed Optical Transport Networks |
CN102545913A (zh) * | 2012-02-07 | 2012-07-04 | 中兴通讯股份有限公司 | 一种迭代译码方法及系统 |
CN102664638A (zh) * | 2012-05-31 | 2012-09-12 | 中山大学 | 基于分层nms算法的多码长ldpc码译码器的fpga实现方法 |
US20170149446A1 (en) * | 2015-11-24 | 2017-05-25 | Texas Instruments Incorporated | Ldpc post-processor architecture and method for low error floor conditions |
CN106571829A (zh) * | 2016-10-27 | 2017-04-19 | 西安空间无线电技术研究所 | 一种基于fpga的高速自适应dvb‑s2 ldpc译码器及译码方法 |
CN107086871A (zh) * | 2017-06-16 | 2017-08-22 | 大连大学 | 一种码长自适应的llr‑bp译码器 |
Non-Patent Citations (1)
Title |
---|
黄志成等: "1 Gbit/s QC-LDPC码译码结构的设计", 《桂林电子科技大学学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111863088A (zh) * | 2020-08-04 | 2020-10-30 | 长江存储科技有限责任公司 | 一种信息译码方法、装置、电子设备及存储介质 |
CN111863088B (zh) * | 2020-08-04 | 2021-05-04 | 长江存储科技有限责任公司 | 一种信息译码方法、装置、电子设备及存储介质 |
CN113708829A (zh) * | 2021-10-28 | 2021-11-26 | 广东粤港澳大湾区硬科技创新研究院 | 卫星信号的处理方法、装置以及卫星基带设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Shuffled belief propagation decoding | |
US20100325514A1 (en) | Decoding method and decoding device | |
CN103259545B (zh) | 基于振荡的准循环低密度奇偶校验码置信传播译码方法 | |
CN107968657B (zh) | 一种适用于低密度奇偶校验码的混合译码方法 | |
RU2369008C2 (ru) | Устройство и способ кодирования-декодирования блочного кода проверки на четность с низкой плотностью с переменной длиной блока | |
KR101895164B1 (ko) | 코드 디코딩 에러 정정 방법 및 장치 | |
CN1574650A (zh) | 在通信系统中解码低密度奇偶校验码的装置和方法 | |
CN108092673B (zh) | 一种基于动态调度的bp迭代译码方法及系统 | |
US20120173947A1 (en) | Method and device for encoding symbols with a code of the parity check type and corresponding decoding method and device | |
CN109831214A (zh) | 一种全并行ldpc译码器及fpga实现方法 | |
CN103199874B (zh) | 一种低密度奇偶校验码译码方法 | |
CN104218955A (zh) | 基于比特翻转的ldpc码局部搜索译码方法 | |
EP3659259B1 (en) | Enhanced information sequences for polar codes | |
CN104393877A (zh) | 基于加权的非规则ldpc码线性规划译码方法 | |
EP3659260B1 (en) | Enhanced information sequences for polar codes | |
CN104184480B (zh) | 一种降低复杂度的ldpc改进译码方法 | |
CN105556851A (zh) | 用于从值的集合中识别第一极值和第二极值的方法及装置 | |
CN101753150B (zh) | 低密度奇偶校验码的译码校验方法及装置 | |
CN107181567B (zh) | 一种基于门限的低复杂度mpa算法 | |
CN102270994B (zh) | 一种Turbo码译码器中状态度量溢出控制方法 | |
CN103944588A (zh) | 一种ldpc码加权比特翻转译码方法 | |
CN101867449B (zh) | 基于地面数字电视的高效ldpc译码器 | |
CN101707486A (zh) | 单向纠正的多状态置信传播迭代的ldpc译码方法 | |
CN102832954A (zh) | 一种基于软信息平均最小值的Turbo码译码迭代停止方法 | |
CN108028667A (zh) | 具有很短信息块的咬尾卷积码 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190531 |