CN107086871A - 一种码长自适应的llr‑bp译码器 - Google Patents
一种码长自适应的llr‑bp译码器 Download PDFInfo
- Publication number
- CN107086871A CN107086871A CN201710456980.XA CN201710456980A CN107086871A CN 107086871 A CN107086871 A CN 107086871A CN 201710456980 A CN201710456980 A CN 201710456980A CN 107086871 A CN107086871 A CN 107086871A
- Authority
- CN
- China
- Prior art keywords
- module
- decoding
- processing module
- node processing
- check
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
- H03M13/3927—Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种码长自适应的LLR‑BP译码器,包括:初始数据缓冲模块、校验节点处理模块、中间信息存储模块、变量节点处理模块、控制模块、输出缓存模块、译码判决模块等。在Xilinx ISE14.7环境下,设计了部分并行LDPC译码器结构,该结构采用提前终止迭代译码策略,有效降低算法迭代次数;采用取极限方法实现LLR‑BP译码算法中复杂概率函数的运算,降低算法实现的复杂度。在保证误码率的前提下,本译码器有效提高了译码速度、降低了硬件逻辑资源占有率,并解决了多码长同时译码的问题。
Description
技术领域
本发明属于信道编码技术领域,具体说是一种码长自适应的LLR-BP译码器。
背景技术
LDPC码即低密度奇偶校验码(Low Density Parity Check Code),由RobertG.Gallager博士于1962年提出的一类具有稀疏校验矩阵的线性分组码。不仅有逼近香农极限的良好性能,且译码复杂度较低、结构灵活,仍是近年信道编码领域的研究热点,在移动通信中具有良好的应用前景。
随着码长增加,LDPC译码矩阵维数大幅增加,算法复杂度大大增加,译码实现的硬件逻辑资源占用多。针对软硬判决算法和FPGA实现等方面展开较为深入的研究,主要有以下几种算法。
(1)硬判决算法。主要算法有:比特翻转算法(BF)、基于软信息的加权比特翻转法(WBF)、KLF加权位翻转译码(KLF-WBF)算法、LP加权比特翻转(LP-WBF)算法、修正权重BF译码算法(IMWBF)、可靠性比特加权翻转算法(RRWBF)、基于BF算法的联合概率比特反转(JPWBF)算法。
(2)软判决算法。主要算法有:基于软判决的LDPC译码算法、置信传播(BP)算法、LLR-BP算法、改进LLR-BP译码算法、最小和译码算法(Min-Sum)、归一化最小和算法(Normalized Min-Sum)、BP改进算法、SBP(Shuffled-BP,SBP)算法、交叠的Shuffled-BP(Overlapped Shuffled-BP,OSBP)译码算法。
LDPC码性能优越性通常在码长较长时才能体现,但码率不变,校验矩阵H结构固定,难以同时实现多码长的译码工作。另一方面,译码算法皆基于BP算法基础上做出的改进,但LLR-BP具有最好的误码性能。
LDPC译码器的FPGA实现结构主要有三种:全并行结构、串行结构和部分并行结构。在全并行译码器中,所有校验节点或者变量节点同时进行更新,译码速度非常快,但是译码器中节点处理单元的数目和和各处理单元与存储单元之间连线的复杂度随着码长的增长快速增加,因此只适合于中短码长和对译码速率要求极高的场合。串行译码器中校验节点或变量节点的更新是单个依次进行的,资源消耗比较少,但由于其译码速率过低小适合高速应用。由于部分并行结构既能快速实现译码,又能节省硬件资源优点而被广泛采用。但现有的LDPC译码器结构适应能力差、扩展能力有限,仅能进行单一码长的译码工作。
发明内容
针对传统LDPC译码器适应能力差、扩展能力有限的缺点,本发明提出了一种码长自适应的LLR-BP译码器,该译码器提高了译码速度、降低了硬件逻辑资源占有率,并解决了多码长同时译码的问题。
为实现上述目的,本申请采用的技术方案是:一种码长自适应的LLR-BP译码器,包括:初始数据缓冲模块、校验节点处理模块、中间信息存储模块、变量节点处理模块、控制模块、输出缓存模块、译码判决模块;所述中间信息存储模块,包括:地址控制器和后验概率信息存储器;所述控制模块分别与初始数据缓冲模块、校验节点处理模块、中间信息存储模块、变量节点处理模块、输出缓存模块、译码判决模块相连。
进一步,初始数据缓冲模块是用来缓存信道的待译码数据,该模块用来存储量化后的初始数据,缓冲模块为12*24的存储矩阵,每个存储矩阵的大小z*z由码的长度n决定,z=n/24;鉴于这一特性,该模块根据码长自动调整存储矩阵中子方阵Pij(i表示行,j表示列)的大小;设待译码数据为[v1,v2,...vn-1,vn],n个待译码数按列方向将数据存入校验矩阵H数值为1的Pij,校验矩阵H数值为0的位置不存储数据,CNP的读写地址可以按照0~23的顺序进行;信道信息皆为浮点型,量化放大后存储,位宽为12bit,最高位为符号位,以16进制存储。例:0.52427,精确到2-11,为0.10000110001(二进制),然后按位左移得到12’h431,通过移位寄存器得到。缓冲模块如图2所示。
进一步的,校验节点处理模块完成校验节点信息更新功能,CNP的并行度为12,其中CNP的并行度是按IEEE802.16e标准中校验矩阵行数最多的1/2码率来设定的。从存储矩阵中子方阵Pij中读取数据进行校验节点更新,按照校验矩阵H每个比特节点所在的行进行更新。
更进一步的,将校验矩阵H划分为多个子块;在子块中,所有校验节点共用一个校验节点处理模块,所有变量节点共用一个变量节点处理模块;子块内进行串行译码,而子块与子块之间进行全并行译码;初始数据缓冲模块可以根据码长自动调整存储矩阵的大小。
更进一步的,控制模块给变量节点处理模块一个启动信号VNP_ON(高有效)开始,变量节点处理模块从中间信息存储模块中的地址控制器里面读取按列存储的信息,VNP的读写地址按照rem((p(i,j))+n,24),n=0,1,2…23的顺序输出,p(i,j)为Pij的子矩阵。rst=1’b0或VNP_ON=1’b0,开始进行变量节点的更新;从中间信息存储模块中的后验概率信息存储器里面读取rji,根据下面公式进行更新,VNP的并行度为24;
L(Pi)为初始概率似然比信息,i=1,2,…,n。
对每一个变量节点i和与其相邻的检验节点j∈C(i),设定变量节点传向校验节点的初始信息;
L(l)(rji)为变量节点传向校验节点的消息:
其中,设码字c=(c1,c2,…,cn),经过BPSK调制后,发送序列x=(x1,x2,…,xn),接收序列y=(y1,y2,…,yn),噪声为n0;译码序列则有y=x+n0;加性高斯白噪声信道中,N~(μ,σ2),均值为0,方差为σ2;rji表示检验点j向变量点i传送的外部概率信息,即在符合信息位同另外的信息位为独立概率分布前提下,校验节点j方程符合的概率;qij是变量节点i向校验点j传递的外部概率值,即在得到除j以外其他全部校验节点与信道的外部信息后,判断变量节点ci=a的概率。
进一步的,控制模块为该译码器的核心,既管理译码器所有模块,且为存储模块提供读写地址信号。控制模块完成系统控制的功能,包括迭代次数的控制:
根据变量节点处理模块的结束信号donea1发出CNP_ON=1’b0决定下一个状态工作的是校验节点处理模块;
根据校验节点处理模块的结束信号doneb0发出VNP_ON=1’b0决定下一个状态工作的是变量节点处理模块;
success=1’b0为译码成功标志,可提前结束迭代,输出译码结果;Last_Iter信号(高有效)为最后一个迭代周期,译码结束。用verilog硬件语言对Control模块进行描述,控制模块综合电路如图5所示。
更进一步的,译码判决模块接收来自输出缓存模块的信号Result_out,通过公式判决是否译码成功。H矩阵每行中对应的比特数都与迭代译出的相与,结果通过或逻辑;每行相或的结果再用或逻辑实现,若结果为1则译码失败,继续下一次迭代。
本发明由于采用以上技术方案,能够取得如下的技术效果:本申请采用提前终止迭代译码策略,有效降低了算法迭代次数;采用取极限方法实现LLR-BP译码算法中复杂概率函数的运算,降低算法实现的复杂度。在保证误码率的前提下,本译码器有效提高了译码速度、降低了硬件逻辑资源占有率,并解决了多码长同时译码的问题。
附图说明
为了更清楚的说明本发明的实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的部分并行译码器结构框图;
图2为本发明实施例提供的初始数据缓冲模块;
图3为本发明实施例提供的CNP模块综合电路图;
图4为本发明实施例提供的VNP模块框图;
图5为本发明实施例提供的控制模块综合电路图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本实施例公开了一种码长自适应的LLR-BP译码器,为实现不同码长的译码,本译码器以1/2码率为例,采用部分并行的结构。所述译码器,包括初始数据缓冲模块、校验节点处理模块(Check Node Processor,CNP)、中间信息存储模块(Mess_Mem)、变量节点处理模块(Variable Node Processor,VNP)、控制模块(Control)、输出缓存模块、译码判决模块等;所述中间信息存储模块,包括:地址控制器ROM和后验概率信息存储器RAM;部分并行译码器结构框图如图1所示。
将校验矩阵H划分为多个子块。在子块中,所有校验节点共用一个CNP模块,所有变量节点共用一个VNP模块。子块内进行串行译码,而子块与子块之间进行全并行译码。中间信息存储模块可以根据码长自动调整存储矩阵的大小。
信道信息经过量化之后存入初始数据缓冲模块,控制模块发出指令CNP_ON,译码开始。VNP模块和CNP模块在控制模块的控制下交替完成所有变量节点和校验节点的运算。VNP和CNP从中间信息存储模块中读取信息,并将节点更新结果重新写回中间信息存储模块。由于VNP和CNP是交替工作的,所以设计中可以通过地址控制模块合理安排访问,并且没有访问冲突问题。本译码器所有处理数据信息均采用12bit量化,最高位为符号位。
初始数据缓冲模块是用来缓存信道的待译码数据,该模块用来存储量化后的初始数据,缓冲模块为12*24的存储矩阵,每个存储矩阵的大小z*z由码的长度n决定,z=n/24。鉴于这一特性,该模块根据码长的自动调整存储矩阵中子方阵Pij(i表示行,j表示列)的大小。设待译码数据为[v1,v2,...vn-1,vn],n个待译码数按列方向将数据存入校验矩阵H数值为1的Pij,校验矩阵H数值为0的位置不存储数据,CNP的读写地址可以按照0~23的顺序进行。信道信息皆为浮点型,量化放大后存储,位宽为12bit,最高位为符号位,以16进制存储。例:0.52427,精确到2-11,为0.10000110001(二进制),然后按位左移得到12’h431,通过移位寄存器得到。缓冲模块如图2所示。
校验节点处理模块完成校验节点信息更新功能,CNP的并行度为12,其中CNP的并行度是按IEEE802.16e标准中校验矩阵行数最多的1/2码率来设定的。从Pij中读取数据进行校验节点更新运算,按照校验矩阵H每个比特节点所在的行进行更新。Pij中的数据按列存储,便于CNP的读写地址顺序输出。
VNP模块框图如图4所示。Control模块给VNP一个启动信号VNP_ON(高有效)开始,VNP模块从中间信息缓存模块ROM里面读取按列存储的信息,VNP的读写地址按照rem((p(i,j))+n,24),n=0,1,2…23的顺序输出,p(i,j)为Pij的子矩阵。rst=1’b0或VNP_ON=1’b0,开始进行变量节点的更新。
控制模块为该译码器的核心,既管理译码器所有模块,且为存储模块提供读写地址信号。控制模块完成系统控制的功能,包括迭代次数的控制,根据VNP(CNP)的结束信号donea1(doneb0)发出CNP_ON=1’b0(VNP_ON=1’b0)决定下一个状态工作的是CNP模块(VNP模块);success=1’b0为译码成功标志,可提前结束迭代,输出译码结果;Last_Iter信号(高有效)为最后一个迭代周期,译码结束。用verilog硬件语言对Control模块进行描述,控制模块综合电路如图5所示。
译码判决模块接收来自输出缓冲模块(Result_Mem)的信号Result_out,通过公式判决是否译码成功。H矩阵每行中对应的比特数都与迭代译出的相与,结果通过或逻辑;每行相或的结果再用或逻辑实现,若结果为1则译码失败,继续下一次迭代。
本发明提供了一种码长自适应的LLR-BP译码器,提高了译码速度、降低了硬件逻辑资源占有率,并解决了多码长同时译码的问题。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种码长自适应的LLR-BP译码器,其特征在于,包括:初始数据缓冲模块、校验节点处理模块、中间信息存储模块、变量节点处理模块、控制模块、输出缓存模块、译码判决模块;所述中间信息存储模块,包括:地址控制器和后验概率信息存储器;所述控制模块分别与初始数据缓冲模块、校验节点处理模块、中间信息存储模块、变量节点处理模块、输出缓存模块、译码判决模块相连。
2.根据权利1所述一种码长自适应的LLR-BP译码器,其特征在于,初始数据缓冲模块是用来缓存信道的待译码数据,该模块用来存储量化后的初始数据,本模块为12*24的存储矩阵,每个存储矩阵的大小z*z由码的长度决定,z=n/24;设待译码数据为[v1,v2,...vn-1,vn],n个待译码数按列方向将数据存入校验矩阵H数值为1的Pij,校验矩阵H数值为0的位置不存储数据,CNP的读写地址可以按照0~23的顺序进行;信道信息皆为浮点型,量化放大后存储,位宽为12bit,最高位为符号位,以16进制存储。
3.根据权利1所述一种码长自适应的LLR-BP译码器,其特征在于,该模块根据码长自动调整存储矩阵中子方阵Pij的大小。
4.根据权利1所述一种码长自适应的LLR-BP译码器,其特征在于,校验节点处理模块完成校验节点信息更新功能,校验节点处理模块的并行度为12,其中校验节点处理模块的并行度是按IEEE802.16e标准中校验矩阵行数最多的1/2码率来设定的;从存储矩阵中子方阵Pij中读取数据进行校验节点更新,按照校验矩阵H每个比特节点所在的行进行更新。
5.根据权利4所述一种码长自适应的LLR-BP译码器,其特征在于,将校验矩阵H划分为多个子块;在子块中,所有校验节点共用一个校验节点处理模块,所有变量节点共用一个变量节点处理模块;子块内进行串行译码,而子块与子块之间进行全并行译码。
6.根据权利1所述一种码长自适应的LLR-BP译码器,其特征在于,控制模块给变量节点处理模块一个启动信号VNP_ON开始,变量节点处理模块从中间信息存储模块中的地址控制器里面读取按列存储的信息;rst=1’b0或VNP_ON=1’b0,开始进行变量节点的更新;从中间信息存储模块中的后验概率信息存储器里面读取rji。
7.根据权利1所述一种码长自适应的LLR-BP译码器,其特征在于,控制模块完成系统控制的功能,包括迭代次数的控制:
根据变量节点处理模块的结束信号donea1发出CNP_ON=1’b0决定下一个状态工作的是校验节点处理模块;
根据校验节点处理模块的结束信号doneb0发出VNP_ON=1’b0决定下一个状态工作的是变量节点处理模块;
success=1’b0为译码成功标志,能提前结束迭代,输出译码结果;Last_Iter信号为最后一个迭代周期,译码结束。
8.根据权利1所述一种码长自适应的LLR-BP译码器,其特征在于,译码判决模块接收来自输出缓存模块的信号Result_out,通过公式判决是否译码成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710456980.XA CN107086871A (zh) | 2017-06-16 | 2017-06-16 | 一种码长自适应的llr‑bp译码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710456980.XA CN107086871A (zh) | 2017-06-16 | 2017-06-16 | 一种码长自适应的llr‑bp译码器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107086871A true CN107086871A (zh) | 2017-08-22 |
Family
ID=59606591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710456980.XA Pending CN107086871A (zh) | 2017-06-16 | 2017-06-16 | 一种码长自适应的llr‑bp译码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107086871A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109831214A (zh) * | 2018-12-29 | 2019-05-31 | 中国电子科技集团公司第二十研究所 | 一种全并行ldpc译码器及fpga实现方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539295A (zh) * | 2015-01-16 | 2015-04-22 | 北京邮电大学 | 一种基于特征位先验信息的新型ldpc迭代译码的初始化方法 |
-
2017
- 2017-06-16 CN CN201710456980.XA patent/CN107086871A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539295A (zh) * | 2015-01-16 | 2015-04-22 | 北京邮电大学 | 一种基于特征位先验信息的新型ldpc迭代译码的初始化方法 |
Non-Patent Citations (2)
Title |
---|
李加洪等: "一种可变码长QC_LDPC译码结构设计与实现", 《黑龙江科技信息》 * |
陈明阳: "基于FPGA的LDPC码的研究及译码器的设计", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109831214A (zh) * | 2018-12-29 | 2019-05-31 | 中国电子科技集团公司第二十研究所 | 一种全并行ldpc译码器及fpga实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4402699B2 (ja) | ノードメモリ基盤のldpcデコーダ及び復号方法 | |
US8291279B2 (en) | Memory-efficient LDPC decoder and method | |
CN102138282B (zh) | 减小复杂性的ldpc解码器 | |
US10367527B2 (en) | Method and apparatus for reducing idle cycles during LDPC decoding | |
CN109495115B (zh) | 一种基于fpga的ldpc译码器及译码方法 | |
US9258015B2 (en) | Decoder with selective iteration scheduling | |
CN108462496B (zh) | 一种基于随机比特流更新的ldpc译码器 | |
CN112332856B (zh) | 一种准循环ldpc码的层译码方法及装置 | |
US10892783B2 (en) | Apparatus and method for decoding polar codes | |
CN107395214A (zh) | 一种基于闪存页错误特性降低ldpc译码延迟的方法 | |
CN104579362B (zh) | 一种空间通信系统中部分并行结构ldpc码译码系统及其方法 | |
CN102064835B (zh) | 适用于准循环ldpc译码的译码器 | |
CN104158549A (zh) | 一种极性码译码方法及译码装置 | |
CN106856406A (zh) | 一种译码方法中校验节点的更新方法及译码器 | |
CN107086871A (zh) | 一种码长自适应的llr‑bp译码器 | |
CN105515588B (zh) | 一种ldpc‑cc高速译码器 | |
CN106788461A (zh) | 基于变量节点懒惰串行分层调度的ldpc译码算法 | |
CN103475378B (zh) | 一种适用于光通信的高吞吐率ldpc译码器 | |
WO2022089429A1 (zh) | 一种译码方法及装置 | |
Li et al. | Novel memory efficient LDPC decoders for beyond 5G | |
CN109921877B (zh) | 一种awgn信道下基于cuda架构的ldpc码并行译码方法 | |
CN109889209A (zh) | 一种适用于宇航通信的速率自适应型ldpc译码器 | |
CN101789794A (zh) | 低密度奇偶校验码的解码方法及其电路 | |
CN212210978U (zh) | 低码率译码器 | |
US8914710B2 (en) | Soft message-passing decoder with efficient message computation |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170822 |