CN110661593B - 一种译码器、方法和计算机存储介质 - Google Patents
一种译码器、方法和计算机存储介质 Download PDFInfo
- Publication number
- CN110661593B CN110661593B CN201810717244.XA CN201810717244A CN110661593B CN 110661593 B CN110661593 B CN 110661593B CN 201810717244 A CN201810717244 A CN 201810717244A CN 110661593 B CN110661593 B CN 110661593B
- Authority
- CN
- China
- Prior art keywords
- soft bit
- bit information
- variable node
- layer
- decoding
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 239000011159 matrix material Substances 0.000 claims abstract description 189
- 238000006243 chemical reaction Methods 0.000 claims description 17
- 238000007781 pre-processing Methods 0.000 claims description 17
- 125000004122 cyclic group Chemical group 0.000 claims description 15
- 108010003272 Hyaluronate lyase Proteins 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims description 2
- 238000000638 solvent extraction Methods 0.000 claims 1
- 239000010410 layer Substances 0.000 description 188
- 238000004364 calculation method Methods 0.000 description 80
- 230000008569 process Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 21
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 description 1
- 102100031584 Cell division cycle-associated 7-like protein Human genes 0.000 description 1
- 101000777638 Homo sapiens Cell division cycle-associated 7-like protein Proteins 0.000 description 1
- 101150046378 RAM1 gene Proteins 0.000 description 1
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
-
- 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/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/1131—Scheduling of bit node or check node processing
- H03M13/114—Shuffled, staggered, layered or turbo decoding schedules
-
- 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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明实施例公开了一种译码器,译码器的至少一个以上计算单元用于:获取基础矩阵中变量节点n的待译码的软比特信息;判断译码迭代次数i是否小于译码迭代阈值;确定i小于译码迭代阈值时,判断译码层数k是否小于基础矩阵的行数a;确定k小于a时,根据第k‑1层变量节点n的软比特信息,确定第k层变量节点n的软比特信息,且根据第k‑1层变量节点n的软比特信息,确定第k+1层变量节点信息;根据第k+1层变量节点信息,确定第k+1层校验节点信息;将k更新为k+1,重新执行判断k是否小于a;确定k大于等于a时,将i更新为i+1,重新执行判断i是否小于译码迭代阈值,直至i等于译码迭代阈值。本发明实施例还同时公开了一种译码方法和计算机存储介质。
Description
技术领域
本发明涉及无线通信中的准循环低密度奇偶校验(QC-LDPC,QuasiCyclic Low-Density Parity-Check)码的译码器技术领域,尤其涉及一种译码器、方法和计算机存储介质。
背景技术
随着多媒体广播、无线通信、超大规模集成电路(VLSI,Very Large ScaleIntegration)技术的不断发展,LDPC码作为最接近香农极限的前向纠错码(FEC,ForwardError Correction),被选为未来第五代移动通信技术(5G,5th-Generation)中增强移动宽带(eMBB,Enhance Mobile Broadband)业务的数据信道编码方案。
LDPC已经被广泛应用在数字视频广播(DVB,Digital Video Broadcasting)、无线局域网(WLAN,Wireless Local Area Networks)、全球微波互联接入(WiMAX,WorldwideInteroperability for Microwave Access)等通信系统中,面临着未来5G移动通信系统中大容量、低时延、高可靠的业务需求,以及各种不同的应用场景需求,设计高性能、低成本、灵活的LDPC译码器成为该领域主要的技术挑战。
为了满足LDPC译码器有较高的误码率性能和吞吐率性能,要求块差错率(BLER,BlockErrorRatio)性能至少达到1E-3以下,吞吐率达10Gbps~20Gbps,误码率性能的保证需要可靠、复杂的译码算法,吞吐率性能的提高需要很低的译码延时;业界目前的LDPC译码器大多采用标准分层译码(Standard Layered-decoding)方法,采用该方法的译码器在迭代译码过程中存在存储器访问冲突问题,导致译码时延增加,吞吐率较低,难以满足低时延需求;由此可以看出,现有的LDPC译码方法中采用标准分层译码方法时存在译码效率低下的技术问题。
发明内容
有鉴于此,本发明实施例期望提供一种译码器、方法和计算机存储介质,能够避免现有的LDPC译码方法中采用标准分层译码方法时存在译码效率低下的技术问题,旨在提高LDPC译码的译码效率。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种译码器,所述译码器至少包括一个以上计算单元,其中,所述计算单元用于:获取低密度奇偶校验LDPC码的基础矩阵中变量节点n的待译码的软比特信息;其中,n为大于等于0且小于所述基础矩阵的列数b的整数;判断所述LDPC码的译码迭代次数i是否小于预设的译码迭代阈值;确定译码迭代次数i小于所述译码迭代阈值时,判断所述LDPC码的译码层数k是否小于所述基础矩阵的行数a;确定译码层数k小于所述基础矩阵的行数a时,根据所述基础矩阵第k-1层变量节点n的软比特信息,确定所述基础矩阵第k层变量节点n的软比特信息,且根据所述基础矩阵第k-1层变量节点n的软比特信息,确定所述基础矩阵第k+1层变量节点n到校验节点m的变量节点信息;根据所述基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,确定所述基础矩阵第k+1层校验节点m到变量节点n的校验节点信息;将译码层数k更新为k+1,重新执行判断所述LDPC码的译码层数k是否小于所述基础矩阵的行数a;确定译码层数k大于等于所述基础矩阵的行数a时,将迭代次数i更新为i+1,重新执行判断所述LDPC码的译码迭代次数i是否小于预设的译码迭代阈值,直至译码迭代次数i等于所述译码迭代阈值,将所述第k层变量节点n的软比特信息确定为所述变量节点n的待译码的软比特信息的译码结果;其中,当i的初始值为0,k的初始值为0,且当k=0或者1时,第k-1层的变量节点n的软比特信息为所述变量节点n的待译码的软比特信息。
第二方面,本发明实施例还提供一种译码方法,所述方法应用于一译码器的一个以上计算单元中,所述方法包括:获取低密度奇偶校验LDPC码的基础矩阵中变量节点n的待译码的软比特信息;其中,n为大于等于0且小于所述基础矩阵的列数b的整数;判断所述LDPC码的译码迭代次数i是否小于预设的译码迭代阈值;确定译码迭代次数i小于所述译码迭代阈值时,判断所述LDPC码的译码层数k是否小于所述基础矩阵的行数a;确定译码层数k小于所述基础矩阵的行数a时,根据所述基础矩阵第k-1层变量节点n的软比特信息,确定所述基础矩阵第k层变量节点n的软比特信息,且根据所述基础矩阵第k-1层变量节点n的软比特信息,确定所述基础矩阵第k+1层变量节点n到校验节点m的变量节点信息;根据所述基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,确定所述基础矩阵第k+1层校验节点m到变量节点n的校验节点信息;将译码层数k更新为k+1,重新执行判断所述LDPC码的译码层数k是否小于所述基础矩阵的行数a;确定译码层数k大于等于所述基础矩阵的行数a时,将迭代次数i更新为i+1,重新执行判断所述LDPC码的译码迭代次数i是否小于预设的译码迭代阈值,直至译码迭代次数i等于所述译码迭代阈值,将所述第k层变量节点n的软比特信息确定为所述变量节点n的待译码的软比特信息的译码结果;其中,当i的初始值为0,k的初始值为0,且当k=0或者1时,第k-1层的变量节点n的软比特信息为所述变量节点n的待译码的软比特信息。
第三方面,本发明实施例中还提供一种计算机存储介质,所述计算机介质存储有译码程序,所述译码程序被处理器执行时实现如上述一个或多个实施例中所述的译码方法的步骤。
本发明实施例所提供的译码器、方法和计算机存储介质,首先,该译码器至少包括一个以上计算单元,该计算单元用于:获取LDPC码的基础矩阵中变量节点n的待译码的软比特信息,然后判断LDPC码的译码迭代次数i是否小于预设的译码迭代次数,若小于,再判断LDPC码的译码层数k是否小于基础矩阵的行数a,若小于,根据基础矩阵第k-1层变量节点n的软比特信息,确定基础矩阵第k层变量节点n的软比特信息,且根据基础矩阵第k-1层变量节点n的软比特信息确定基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,再根据基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,确定基础矩阵第k+1层校验节点m到变量节点n的校验节点信息,这样,在得到第k层变量节点n的软比特信息的同时,就生成下一层的变量节点信息,进而生成下一层的检验节点信息,与现有技术相比,提前生成下一层的变量节点信息和校验节点信息,为生成下一层变量节点n的软比特信息做好准备,从而可以加快译码速度,在得到第k层变量节点n的软比特信息,将k更新为k+1,进行下一层译码,直至完成a层译码,将迭代次数i更新为i+1,进行迭代,直至迭代次数等于预设的迭代次数,从而得到软比特信息,也就是说,在本发明实施例中,基础矩阵第k层变量节点n软比特信息生成的同时,就启动并生成下一层的变量节点信息,进而生成下一层的检验节点信息,那么,在此基础上,在进行第k+1层译码时,就可以直接根据第k层变量节点n的软比特信息,确定基础矩阵第k+1层变量节点n的软比特信息,与现有技术相比,不需要等待第k层的变量节点n的软比特信息生成之后,就可以启动第k+1层的变量节点信息和第k+1层的检验节点信息的计算,加快了译码的速度,进而提高LDPC译码的译码效率。
附图说明
图1为本发明实施例中译码器的一种可选的结构示意图;
图2为本发明实施例中计算单元的一种可选的结构示意图;
图3为本发明实施例中基础矩阵的一种可选的排布示意图;
图4为本发明实施例中存储单元的一种可选的存储格式示意图;
图5为本发明实施例中存储单元的一种可选的结构示意图;
图6为本发明实施例中移位单元的一种可选的结构示意图;
图7为本发明实施例中路由单元的一种可选的结构示意图;
图8为本发明实施例中分层译码的一种可选的流水线示意图;
图9为本发明实施例中层交叠译码的一种可选的流水线示意图;
图10为本发明实施例中译码方法的流程示意图;
图11为本发明实施例中计算机存储介质的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
相关标准分层译码方法在每次迭代计算时需要先完成当前层的软比特信息更新,然后才能进行下一层的变量节点信息的计算,这样会影响LDPC译码的译码速度;本发明实施例提供一种译码器,图1为本发明实施例中译码器的一种可选的结构示意图,参考图1所示,该译码器可以包括:格式转换单元、存储单元、正移位单元、逆移位单元、路由单元、流水线控制单元和P个计算单元,P个计算单元的编号依次为0至P-1;其中,P为该译码器的并行度,正移位单元的个数等于存储单元的个数,逆移位单元的个数等于存储单元的个数;并且存储单元的个数为大于等于2的正整数;其中,上述计算单元用于:
获取LDPC码的基础矩阵中变量节点n的待译码的软比特信息;其中,n为大于等于0且小于基础矩阵的列数b的整数;判断LDPC码的译码迭代次数i是否小于预设的译码迭代阈值;确定译码迭代次数i小于译码迭代阈值时,判断LDPC码的译码层数k是否小于基础矩阵的行数a;确定译码层数k小于基础矩阵的行数a时,根据基础矩阵第k-1层变量节点n的软比特信息,确定基础矩阵第k层变量节点n的软比特信息,且根据基础矩阵第k-1层变量节点n的软比特信息,确定基础矩阵第k+1层变量节点n到校验节点m的变量节点信息;根据基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,确定基础矩阵第k+1层校验节点m到变量节点n的校验节点信息;将译码层数k更新为k+1,重新执行判断LDPC码的译码层数k是否小于基础矩阵的行数a;确定译码层数k大于等于基础矩阵的行数a时,将迭代次数i更新为i+1,重新执行判断LDPC码的译码迭代次数i是否小于预设的译码迭代阈值,直至译码迭代次数i等于译码迭代阈值,将第k层变量节点n的软比特信息确定为变量节点n的待译码的软比特信息的译码结果;其中,当i的初始值为0,k的初始值为0,且当k=0或者1时,第k-1层的变量节点n的软比特信息为所述变量节点n的待译码的软比特信息。
这里,准循环QC-LDPC码一般用一个基础矩阵H(a×b)和Z维的单位阵及其循环移位矩阵来表示,将基础矩阵H(a×b)和Z维的单位阵及其循环移位矩阵或者零阵来表示得到扩展后的矩阵H(Z*a×Z*b),为QC-LDPC码的稀疏奇偶校验矩阵。该矩阵包括Z*a个校验节点,Z*b个变量节点,Z也称为基础矩阵的扩展因子,且Z为正整数。
为了便于描述,定义i为迭代次数索引,可表示从第1次迭代到最大第Max_iter次迭代;定义k为基础矩阵H(a×b)的层索引,可表示从第0层到第a-1层;定义m为基础矩阵一层内的校验行索引,可表示从第1行到第Z行;定义n为第k层的变量节点索引,n'为第k+1层的变量节点索引,n∈N(m)表示所有与校验节点m相连的变量节点索引n的集合,同理n'∈N(m),其中0≤n≤b-1,0≤n′≤b-1;定义为第k层变量节点n的先验信息;定义为第k层的从变量节点n到校验节点m的变量节点信息;定义为第k层的从校验节点m到变量节点n的旧校验节点信息,同理,定义为第k层的从校验节点m到变量节点n的新校验节点信息。
具体来说,计算单元可以从译码器的预处理单元获取LDPC码的基础矩阵中变量节点n的待译码的软比特信息,那么在获取之前,预处理单元先要确定出生成变量节点n的待译码的软比特信息,为了生成变量节点n的待译码的软比特信息,在一种可选的实施例中,该译码器还包括预处理单元,该预处理单元与该计算单元相连接,在计算单元获取变量节点n的待译码的软比特信息之前,对应地,预处理单元确定变量节点n的待译码的软比特信息,可以包括:获取待译码的软比特信息;对待译码的软比特信息进行预处理,得到变量节点n的待译码的软比特信息。
其中,上述预处理可以包括对待译码的软比特信息进行格式转换、存储、移位和路由,从而使得计算单元可以获取到变量节点n的待译码的软比特信息。为了实现对待译码的软比特信息的预处理,在一种可选的实施例中,预处理单元可以包括格式转换单元、路由单元、一个以上正移位单元和一个以上存储单元;其中,上述格式转换单元连接至上述一个以上存储单元,上述一个以上存储单元连接至上述一个以上正移位单元,上述一个以上正移位单元连接至上述路由单元,上述路由单元连接至上述一个以上计算单元,上述流水线控制单元分别连接至上述一个以上正移位单元和上述一个以上计算单元,正移位单元与存储单元一一对应;相应地,预处理单元对待译码的软比特信息进行预处理,得到变量节点n的待译码的软比特信息,可以包括:
格式转换单元对待译码的软比特信息进行分块,得到一个以上待译码的软比特信息块,将一个以上待译码的软比特信息块发送至对应的存储单元进行存储;存储单元接收对应的待译码的软比特信息块,进行分组存储;流水线控制单元确定正移位单元接收到待译码的软比特信息,触发正移位单元,正移位单元对待译码的软比特信息进行正循环移位,得到移位后的待译码的软比特信息;路由单元按照预设的路由方式,将移位后的待译码的软比特信息输出至一个以上计算单元,使得计算单元获取到变量节点n的待译码的软比特信息。
具体来说,格式转换单元,用于将输入的长度为Z*b的待译码码字的软比特信息分为b个软比特信息块,每个软比特信息块包含Z个软比特信息,对应一个Z维的扩展子矩阵,同时,格式转换单元根据并行度P和Z值,将每个软比特信息块以预设格式进行存储,将完成格式转换后的软比特信息块输入到存储单元,其中,格式转换过程可以通过乒乓方式对软比特信息块进行处理。
存储单元,用于存储待译码的软比特信息块,每个存储单元存储一个或多个软比特信息块,并且能够同时提供P个软比特信息,进行P个校验行的并行计算,存储单元的个数nv根据基础矩阵列的正交特性,可以小于或等于基础矩阵列数b。
流水线控制单元用于确定正移位单元接收到待译码的软比特信息,触发正移位单元,正移位单元,用于将存储单元输出的软比特信息进行移位旋转并输出,正移位单元包含nv个移位单元,每个移位单元接收对应存储单元输出的P个软比特信息,并根据预设的移位值完成对P个软比特信息的正循环移位输出。
路由单元,主要用于将每个移位单元输出的P个软比特信息按照固定的路由连接方式传送到计算单元中变量节点计算单元(VNU,Variable Node Unit)的数据接收端口,或者用于将变量节点软比特信息更新单元(UPD,Updata)各个数据端口输出的软比特信息,按照固定的路由连接方式传送到每个逆移位单元,每个逆移位单元接收P个软比特信息。
其中,为了节省存储单元的个数,减少硬件资源的消耗,在一种可选的实施例中,格式转换单元对待译码的软比特信息进行分块,得到一个以上待译码的软比特信息,将一个以上待译码的软比特信息块发送至对应的存储单元进行存储,可以包括:
根据基础矩阵的列数b,将待译码的软比特信息分成b个待译码的软比特信息块;其中,每个待译码的软比特信息块与基础矩阵的第n列的元素值相对应;从b个待译码的软比特信息块中,将基础矩阵中具有正交性的列对应的待译码的软比特信息块,存储至同一存储单元中。
也就是说,在得到b个待译码的软比特信息块之后,每个待译码的软比特信息块与基础矩阵每列的元素值相对应,判断基础矩阵中哪些列之间具有正交性,其中,具有正交性的列指的是任意两列之间不同时为非“-1”元素,那么,将两列之间不同时为非“-1”元素对应的待译码的软比特信息块存储至同一个存储单元中。
每一个存储单元可以将待译码的软比特信息块进行分组,然后再存储,在一种可选的实施例中,存储单元接收对应的待译码的软比特信息块,进行分组存储,可以包括:
将待译码的软比特信息块分成Z个待译码的软比特信息,按照每组的个数为预设的译码并行度P,将Z个待译码的软比特信息进行分组,并存储至存储单元中;
其中,Z为基础矩阵的扩展因子,且Z为正整数。
也就是说,上述将每个待译码的软比特信息块分成Z个待译码的软比特信息,然后按照每组P个可以将每个待译码的软比特信息块分成Z/P组,存储至存储单元中。
其中,上述译码并行度P为译码器中计算单元的个数。
为了实现各个计算单元的计算过程,在一种可选的实施例中,正移位单元对待译码的软比特信息进行正循环移位,得到移位后的待译码的软比特信息,包括:
根据基础矩阵第k行的元素值,确定对应的存储单元的移位值;根据移位值,对接收到的待译码的软比特信息进行正循环移位,得到移位后的待译码的软比特信息。
其中,上述第k行的元素值确定对应存储单元的移位值可以通过预设的算法公式在实现,这样可以灵活地设置每个存储单元的移位值,正移位单元按照对应存储单元的移位值对接收到的对应的存储单元的待译码的软比特信息进行正循环移位,然后按照预设的路由方式,将移位后的待译码的软比特信息输出至一个以上计算单元,从而将每个移位单元输出的软比特信息置换到对应的校验节点进行计算。
在获取到LDPC码的基础矩阵中变量节点n的待译码的软比特信息之后,由于本发明实施例中采用迭代的方法进行计算,所以,首先计算单元判断LDPC码的译码迭代次数i是否小于预设的译码迭代阈值,若小于,说明迭代还未完成,若等于,说明迭代结束。
计算单元若在确定译码迭代次数i小于译码迭代阈值,说明迭代还未完成,由于在本发明实施例中是按层进行译码的,所以还需要判断LDPC码的译码层数k是否小于基础矩阵的行数a。
计算单元在确定译码层数k小于基础矩阵的行数a时,根据基础矩阵第k-1层变量节点n的软比特信息,确定基础矩阵第k层变量节点n的软比特信息,且根据基础矩阵第k-1层变量节点n的软比特信息,确定基础矩阵第k+1层变量节点n到校验节点m的变量节点信息中,具体来说,若确定译码层数k小于基础矩阵的行数a时,说明译码还未完成,在具体实施过程中,在确定基础矩阵第k层变量节点n的软比特信息时,可以同时根据已经知晓的基础矩阵第k-1层变量节点n的软比特信息,确定基础矩阵第k+1层变量节点n到校验节点m的变量节点信息。
在一种可选的实施例中,计算单元确定译码层数k小于基础矩阵的行数a时,根据基础矩阵第k-1层变量节点n的软比特信息,确定基础矩阵第k层变量节点n的软比特信息,且根据基础矩阵第k-1层变量节点n的软比特信息,确定基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,可以包括:将基础矩阵第k-1层变量节点n的软比特信息,减去上一次迭代中基础矩阵第k层变量节点n到校验节点m的检验节点信息,加上基础矩阵第k层变量节点n到校验节点m的检验节点信息,得到的值确定为基础矩阵第k层变量节点n的软比特信息。
具体来说,基础矩阵第k层变量节点n的软比特信息可以通过以下公式计算:
其中,表示第k层变量节点n的软比特信息,表示第k-1层变量节点n的软比特信息,表示上一次迭代中基础矩阵第k层变量节点n到校验节点m的检验节点信息,表示基础矩阵第k层变量节点n到校验节点m的检验节点信息,这里,n∈N(m)。
基础矩阵第k+1层变量节点n到校验节点m的变量节点信息可以通过以下公式计算:
在根据基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,确定基础矩阵第k+1层校验节点m到变量节点n的校验节点信息中,在计算得到第k+1层变量节点n到校验节点m的变量节点信息之后,基础矩阵第k+1层校验节点m到变量节点n的校验节点信息可以通过以下公式计算:
其中,表示基础矩阵第k+1层校验节点m到变量节点n的校验节点信息,函数f可以采用最小和(MS,Min-Sum)算法、归一化最小和(NMS,Normalised Offset)算法、偏移量最小和(OMS,Offset Min-Sum)算法中的一种,函数f的输入信息为除去变量节点n以外的所有与第k+1层校验节点m相连的变量节点信息其中j∈N(m),j≠n。
计算单元将译码层数k更新为k+1,重新执行判断LDPC码的译码层数k是否小于基础矩阵的行数a,确定译码层数k大于等于基础矩阵的行数a时,将迭代次数i更新为i+1,重新执行判断LDPC码的译码迭代次数i是否小于预设的译码迭代阈值;
在完成第k层译码之后,将译码层数k更新为k+1,返回判断LDPC码的译码层数k是否小于基础矩阵的行数a,若k大于等于基础矩阵的行数a,完成本次迭代,迭代次数i更新为i+1,返回执行S102,直至译码迭代次数i等于译码迭代阈值。
计算单元译码迭代次数i等于译码迭代阈值,将第k层变量节点n的软比特信息确定为变量节点n的待译码的软比特信息的译码结果。
这里,译码迭代次数i等于译码迭代阈值时,说明完成了整个迭代过程,那么,将迭代结果记为译码结果,即,将第k层变量节点n的软比特信息确定为变量节点n的待译码的软比特信息的译码结果。
其中,k的初始值为0,且当k=0、1或者2时,第k-2层的变量节点n到校验节点m的变量节点信息为变量节点n的待译码的软比特信息。
另外,在计算单元在完成译码之后,得到变量节点n的软比特信息后,需要将变量节点n的软比特信息存储起来,在一种可选的实施例中,译码器还包括一个以上逆移位单元,一个以上逆移位单元与存储单元一一对应;在直至译码迭代次数i等于译码迭代阈值之后,该方法还包括:
路由单元接收来自一个以上计算单元的译码结果,按照预设的路由方式,将译码结果输出至一个以上逆移位单元;流水线控制单元确定逆移位单元接收到译码结果,触发逆移位单元,逆移位单元按照移位值,将译码结果逆循环移位输出至对应的存储单元。
其中,上述灵活地设置每个存储单元的移位值,逆移位单元按照对应存储单元的移位值对接收到的变量节点n的软比特信息按照对应存储单元的移位值,逆循环移位输出至对应的存储单元存储起来。
下面举实例来对上述一个或多个实施例中译码器进行说明。
图2为本发明实施例中计算单元的一种可选的结构示意图,如图2所示,计算单元用于完成一个校验行的变量节点信息的计算,校验节点信息的计算,校验节点信息的存储以及变量节点软比特信息的更新计算,P个计算单元并行完成P个校验行的并行计算。每个计算单元包括VNU,校验节点计算单元(CNU,Check Node Unit)、UPD和校验节点信息存储单元(CRAM,Check Random-Access Memory)。
VNU,用于完成变量节点信息的计算,每个VNU同时接收到CRAM输出的与该校验节点相连的所有变量节点的校验节点信息,并同时完成与该校验节点相连的所有变量节点信息的计算,即同一校验行的变量节点信息全并行计算。
CNU,用于完成校验节点信息的计算,每个CNU同时接收到VNU输出的变量节点信息,完成该检验节点到与其相连的所有变量节点的校验节点信息的计算,即同一校验行的所有校验节点信息全并行计算,CNU将计算得到的校验节点信息输出到CRAM进行更新存储,同时输出到软比特信息更新单元UPD用于更新计算。
CRAM,用于完成校验节点信息的更新和存储,输出前一次迭代计算得到的校验节点信息用于变量节点计算单元VNU完成变量节点信息的计算,接收当前迭代过程中的校验节点计算单元CNU输出的校验节点信息并更新存储。
UPD,用于完成变量节点软比特信息的更新计算。接收CNU输出的新的校验节点信息,从CRAM中读取旧的校验节点信息,全并行完成该校验行的所有变量节点软比特信息的更新计算。
基于上述译码器,图3为本发明实施例中基础矩阵的一种可选的排布示意图,在本实例中的基础矩阵H如图3所示,该基础矩阵为H(5×9),扩展因子Z=16,即,基础矩阵H由5×9个16×16的循环移位子矩阵构成,矩阵中的非“-1”元素表示该循环移位子矩阵的移位值,“-1”元素位置的子矩阵为零阵;该基础矩阵包括5层,即layer0、layer1、layer2、layer3和layer4,每层有16个校验行,每层中的16个校验行采用部分并行计算方式,该实例中采用的部分并行度P=4,本发明对部分并行度P不做具体限制,每一层中的16个校验节点c0~c15被分成Z/P=4组,第一组包括:c0、c4、c8、c12;第二组包括:c1、c5、c9、c13;第三组包括:c2、c6、c10、c14;第四组包括:c3、c7、c11、c15。每组内的四个校验节点并行处理,每组串行处理。
图4为本发明实施例中存储单元的一种可选的存储格式示意图,如图4所示,将每个软比特信息块根据并行度P和扩展因子Z进行相应的存储格式转换,本实例将每个软比特信息块的16个软比特信息:LLR0~LLR15,分为4组,每组分别存储在RAM0、RAM1、RAM2、RAM3的地址Addr0、Addr1、Addr2、Addr3,其中,第一组包括:LLR0、LLR4、LLR8、LLR12;第二组包括:LLR1、LLR5、LLR9、LLR13;第三组包括:LLR2、LLR6、LLR10、LLR14;第四组包括:LLR3、LLR7、LLR11、LLR15。
为了能够以较快的速度将串行或并行输入的软比特信息块写入RAM0~3中,每组的软比特信息之间可以采用类似“螺旋”的方式进行存储,每个软比特信息的写地址可以采用“查找表”或者计算的方式得到。本实例的待译码码字中共包含9个软比特信息块,软比特信息存储单元接收格式转换单元输出的软比特信息块,并将每个软比特信息块根据基础矩阵H的列正交特性,单独或共同存储在存储单元中。
本实例中基础矩阵H的变量节点VN0、VN1、VN2、VN3所对应的列互不正交,所对应的软比特信息块分别存储在不同的存储单元中,变量节点VN4、VN5、VN6、VN7、VN8所对应的列相互正交,所对应的软比特信息块共同存储在同一个存储单元中。
其中,列的正交性指的是任意两列之间相同位置不同时为非“-1”元素。
图5为本发明实施例中存储单元的一种可选的结构示意图,如图5所示,每个存储单元的存储位宽等于4倍软比特信息位宽,存储单元0,存储变量节点VN0的软比特信息块;存储单元1,存储变量节点VN1的软比特信息块;存储单元2,存储变量节点VN2的软比特信息块;存储单元3,存储变量节点VN3的软比特信息块;存储单元4,存储变量节点VN4、VN5、VN6、VN7、VN8的软比特信息块,每个软比特信息块的起始存储地址分别为Addr0、Addr4、Addr8、Addr12、Addr16,由于对列正交的变量节点信息采用共同的存储单元,这种存储方式降低了译码器的存储资源消耗。
每个存储单元每次输出一个地址上存储的4个软比特信息,5个存储单元同时输出20个软比特信息,并行参加4个校验行的计算,共需要Z/P=4次完成一层共16个校验的计算。
Layer0的第1次计算对应第一组校验行c0、c4、c8和c12,存储单元0的初始读地址根据下式可以得到:
Init_addr0=mod(H0,0,P) (4)
计算为Init_addr=mod(4,4)=0;因此输出地址Addr0存储的软比特信息{VN0LLR0,VN0LLR4,VN0LLR8,VN0LLR12}。
以此类推:
存储单元1输出地址Addr2存储的软比特信息{VN1LLR10,VN1LLR14,VN1LLR2,VN1LLR6};
存储单元2输出地址Addr1存储的软比特信息{VN2LLR13,VN2LLR1,VN2LLR5,VN2LLR9};
存储单元3输出地址Addr3存储的软比特信息{VN3LLR7,VN3LLR11,VN3LLR15,VN3LLR3};
存储单元4输出地址Addr0存储的软比特信息{VN4LLR0,VN4LLR4,VN4LLR8,VN4LLR12}。
通过正移位单元和路由单元完成每个校验节点软比特信息到对应校验行的信息置换。图6为本发明实施例中移位单元的一种可选的结构示意图,如图6所示,包含5个正移位单元(移位单元0,移位单元1,移位单元2,移位单元3,移位单元4),每个正移位单元对应一个存储单元,并行接收存储单元每次计算输出的4个软比特信息,并根据预设移位值完成4个软比特信息的循环移位操作。
图7为本发明实施例中路由单元的一种可选的结构示意图,如图7所示,采用固定连接的方式,将每个正移位单元输出的软比特信息置换到对应的校验节点进行计算。
由于对列正交的变量节点信息采用共同的存储单元,存储单元个数减少,因为正移位单元的个数等于存储单元的个数,随之移位单元个数的减少,降低了移位单元的硬件资源消耗,移位网络的连接复杂度也大大降低。
具体来说,变量节点和校验节点在Layer0的第1次计算过程中的信息置换方式如下:
软比特信息VN0LLR4、VN1LLR6、VN2LLR5、VN3LLR11和VN4LLR0参与校验行c0的计算;
软比特信息VN0LLR8、VN1LLR10、VN2LLR9、VN3LLR15和VN4LLR4参与校验行c4的计算;
软比特信息VN0LLR12、VN1LLR14、VN2LLR13、VN3LLR3和VN4LLR8参与校验行c8的计算;
软比特信息VN0LLR0、VN1LLR2、VN2LLR1、VN3LLR7和VN4LLR12参与校验行c12的计算;
这样就完成了一次译码计算过程中的软比特信息的读取,以及变量节点和校验节点间的信息置换,以此类推:
Layer0的第2次计算对应第2组校验行c1、c5、c9和c13,软比特信息读取方式如下:
存储单元0输出地址Addr1存储的软比特信息{VN1LLR13,VN1LLR1,VN1LLR5,VN1LLR9};
存储单元1输出地址Addr3存储的软比特信息{VN1LLR7,VN1LLR11,VN1LLR15,VN1LLR3};
存储单元2输出地址Addr2存储的软比特信息{VN2LLR10,VN2LLR14,VN2LLR2,VN2LLR6};
存储单元3输出地址Addr0存储的软比特信息{VN3LLR0,VN3LLR4,VN3LLR8,VN3LLR12};
存储单元4输出地址Addr1存储的软比特信息{VN4LLR13,VN4LLR1,VN4LLR5,VN4LLR9}。
Layer0的第2次计算的变量节点和校验节点的信息置换方式如下:
软比特信息VN0LLR5、VN1LLR7、VN2LLR6、VN3LLR12和VN4LLR1参与校验行c1的计算;
软比特信息VN0LLR9、VN1LLR11、VN2LLR10、VN3LLR0和VN4LLR5参与校验行c5的计算;
软比特信息VN0LLR13、VN1LLR15、VN2LLR14、VN3LLR4和VN4LLR9参与校验行c9的计算;
软比特信息VN0LLR1、VN1LLR3、VN2LLR2、VN3LLR8和VN4LLR13参与校验行c13的计算;
Layer0的第3次计算对应第3组校验行c2、c6、c10和c14,软比特信息读取方式如下:
存储单元0输出地址Addr2存储的软比特信息{VN1LLR10,VN1LLR14,VN1LLR2,VN1LLR6};
存储单元1输出地址Addr0存储的软比特信息{VN1LLR0,VN1LLR4,VN1LLR8,VN1LLR12};
存储单元2输出地址Addr3存储的软比特信息{VN2LLR7,VN2LLR11,VN2LLR15,VN2LLR3};
存储单元3输出地址Addr1存储的软比特信息{VN3LLR13,VN3LLR1,VN3LLR5,VN3LLR9};
存储单元4输出地址Addr2存储的软比特信息{VN4LLR10,VN4LLR14,VN4LLR2,VN4LLR6}。
Layer0的第3次计算的变量节点和校验节点的信息置换方式如下:
软比特信息VN0LLR6、VN1LLR8、VN2LLR7、VN3LLR13和VN4LLR2参与校验行c2的计算;
软比特信息VN0LLR10、VN1LLR12、VN2LLR11、VN3LLR1和VN4LLR6参与校验行c6的计算;
软比特信息VN0LLR14、VN1LLR0、VN2LLR15、VN3LLR5和VN4LLR10参与校验行c10的计算;
软比特信息VN0LLR2、VN1LLR4、VN2LLR3、VN3LLR9和VN4LLR14参与校验行c14的计算;
Layer0的第4次计算对应第3组校验行c3、c7、c11和c15,软比特信息读取方式如下:
存储单元0输出地址Addr3存储的软比特信息{VN1LLR7,VN1LLR11,VN1LLR15,VN1LLR3};
存储单元1输出地址Addr1存储的软比特信息{VN1LLR13,VN1LLR1,VN1LLR5,VN1LLR9};
存储单元2输出地址Addr0存储的软比特信息{VN2LLR0,VN2LLR4,VN2LLR8,VN2LLR12};
存储单元3输出地址Addr2存储的软比特信息{VN3LLR10,VN3LLR14,VN3LLR2,VN3LLR6};
存储单元4输出地址Addr3存储的软比特信息{VN4LLR7,VN4LLR11,VN4LLR15,VN4LLR3}。
Layer0的第4次计算的变量节点和校验节点的信息置换方式如下:
软比特信息VN0LLR7、VN1LLR9、VN2LLR8、VN3LLR14和VN4LLR3参与校验行c3的计算;
软比特信息VN0LLR11、VN1LLR13、VN2LLR12、VN3LLR2和VN4LLR7参与校验行c7的计算;
软比特信息VN0LLR15、VN1LLR1、VN2LLR0、VN3LLR6和VN4LLR11参与校验行c11的计算;
软比特信息VN0LLR3、VN1LLR5、VN2LLR4、VN3LLR10和VN4LLR15参与校验行c15的计算;
一个计算单元完成一个校验行的计算,本实例的译码器需要4个并行的计算单元每次计算并行完成4个校验行的计算,分4次完成一层内16个校验行的计算。其中,每个计算单元中的VNU、CNU以及UPD,采用流水线方式完成一层内的所有校验行的计算,层与层之间采用分层流水方式,图8为本发明实施例中分层译码的一种可选的流水线示意图,如图8所示,第k层的计算基于第k-1层的计算结果进行,每一层第一次计算的4个校验行数据首先并行输入到各自对应的计算单元进行计算,第一次VNU计算过程,记为VNU0;第一次CNU计算过程,记为CNU0;第一次UPD计算过程,记为UPD0;以此类推,当第四次计算的VNU4过程、CNU4过程和UPD4过程全部完成后,结束该层流水计算,并启动下一层流水。
采用分层流水方式可以保证每一层的计算都是基于前一层的最新结果来进行,即标准分层译码方法。在层与层之间的流水计算过程中,VNU、CNU和UPD计算单元都存在较长的流水空闲时间,导致流水线效率降低;具体来说,一次VNU流水计算时延为Tvnu,一次CNU流水计算时延为Tcnu,一次UPD流水计算时延为Tupd,单层内每次计算间隔时间为单位时间1,那么,在本实施例中一次迭代共需要5层流水,一次迭代译码时延为:
Titer=(Tvnu+Tcnu+Tupd+4)×5 (5)
流水线控制单元输出使能信号,控制正移位单元从存储单元读取软比特信息进行移位置换的流水过程,控制VNU计算单元进行变量节点信息计算的流水过程,控制CNU计算单元进行校验节点信息计算的流水过程,控制UPD计算单元进行软比特信息更新的流水过程,控制逆移位单元对新软比特信息进行移位置换并更新存储单元的流水过程。
本实例中的译码器采用了分层流水线模式实现QC-LDPC码的标准分层译码过程,整个译码器的并行度为4,即需要4个计算单元同时完成4个校验行的并行计算,对正交列的变量节点软比特信息共用存储单元,将存储单元个数从9个减少到5个,同时正/逆移位单元个数也从9个减少到5个,由于移位单元个数减少,移位单元与计算单元之间的路由单元复杂度也大大降低,由此可见,采用本发明译码器的存储方式,可以降低译码器的存储资源消耗及硬件实现复杂度,另外,本发明的译码器采用固定并行度P的部分并行译码方式,对软比特信息块采用“螺旋”方式进行存储,在不增加译码器复杂度的前提前,能够对不同扩展因子Z的QC-LDPC码进行译码,译码灵活度高。
图9为本发明实施例中层交叠译码的一种可选的流水线示意图,该译码方法同样可以应用于上述译码器中,在本实例中,采用与上述分层译码方法相同的基础矩阵H,相同的扩展因子Z,相同的并行度P,因此本实例与分层译码方法只有在译码模式上不同,本实例采用了快速分层译码模式,为简单起见,本实例只描述与分层译码方法不同的内容。
一个计算单元完成一个校验行的计算,本实例的译码器需要4个并行的计算单元每次计算并行完成4个校验行的计算,分4次完成一层内16个校验行的计算,每个计算单元中的VNU、CNU以及UPD,采用流水线方式完成一层内的所有校验行的计算,层与层之间采用层交叠流水方式,层交叠流水示意图如图9所示。
根据快速分层译码方法,相邻两层之间的计算不存在依赖关系,即,第k层的VNU计算、CNU计算以及UPD计算都依赖于第k-2层的软比特信息计算结果,因此不需要等待第k-1层的最后一次UPD流水计算完成,可以提前启动第k层的VNU流水计算;本实例中,第0层的VNU3流水计算开始后,即可启动第1层的VNU0流水计算;同理,第1层的VNU3流水计算开始后,即可启动第2层的VNU0流水计算;以此类推,第3层的VNU3流水计算开始后,即可启动第4层的VNU0流水计算;直至第4层UPD3流水计算完成,结束本次迭代计算。
采用层交叠流水方式,层与层之间的流水计算连续进行,可以保证VNU、CNU和UPD计算单元在整个迭代计算过程中不存在空闲等待时间,流水线效率高,若一次VNU流水计算时延为Tvnu,一次CNU流水计算时延为Tcnu,一次UPD流水计算时延为Tupd,单层内每次计算间隔时间为单位时间1,那么,
在本实施例中一次迭代共需要5层每层4次流水,一次迭代译码时延为:
Titer=Tvnu+Tcnu+Tupd+4×5 (6)
流水线控制单元输出使能信号,控制正移位单元从存储单元读取软比特信息进行移位置换的流水过程,控制VNU计算单元进行变量节点信息计算的流水过程,控制CNU计算单元进行校验节点信息计算的流水过程,控制UPD计算单元进行软比特信息更新的流水过程,控制逆移位单元对新软比特信息进行移位置换并更新软比特信息存储单元的流水过程,可见,流水线控制单元,用于完成译码迭代过程中的流水线控制,在标准分层译码模式下采用分层流水线,在快速分层译码模式下采用层交叠流水线,通过生成流水线各级使能信号,来实现流水线模式的切换功能。
本实例中的译码器采用了层交叠流水线模式实现QC-LDPC码的快速分层译码过程,整个译码器的并行度为4,即需要4个计算单元同时完成4个校验行的并行计算,对正交列的变量节点软比特信息共用存储单元,将变量节点软比特信息存储单元个数从9个减少到5个,同时正/逆移位单元个数也从9个减少到5个,由于移位单元个数减少,移位单元与计算单元之间的路由单元复杂度也大大降低,由此可见,采用本发明译码器的存储方式,可以降低译码器的存储资源消耗及硬件实现复杂度,另外,本发明实施例的译码器采用固定并行度P的部分并行译码方式,对软比特信息块采用“螺旋”方式进行存储,在不增加译码器复杂度的前提下,能够对不同扩展因子Z的QC-LDPC码进行译码,译码灵活度高。
本发明实施例所提供的译码器,首先,该译码器包括一个以上计算单元中,该计算单元用于获取LDPC码的基础矩阵中变量节点n的待译码的软比特信息,然后判断LDPC码的译码迭代次数i是否小于预设的译码迭代次数,若小于,再判断LDPC码的译码层数k是否小于基础矩阵的行数a,若小于,根据基础矩阵第k-1层变量节点n的软比特信息,确定基础矩阵第k层变量节点n的软比特信息,且根据基础矩阵第k-1层变量节点n的软比特信息确定基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,再根据基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,确定基础矩阵第k+1层校验节点m到变量节点n的校验节点信息,这样,在得到第k层变量节点n的软比特信息的同时,就生成下一层的变量节点信息,进而生成下一层的检验节点信息,与现有技术相比,提前生成下一层的变量节点信息和校验节点信息,为生成下一层变量节点n的软比特信息做好准备,从而可以加快译码速度,在得到第k层变量节点n的软比特信息,将k更新为k+1,进行下一层译码,直至完成a层译码,将迭代次数i更新为i+1,进行迭代,直至迭代次数等于预设的迭代次数,从而得到软比特信息,也就是说,在本发明实施例中,基础矩阵第k层变量节点n软比特信息生成的同时,就启动并生成下一层的变量节点信息,进而生成下一层的检验节点信息,那么,在此基础上,在进行第k+1层译码时,就可以直接根据第k层变量节点n的软比特信息,确定基础矩阵第k+1层变量节点n的软比特信息,与现有技术相比,不需要等待第k层的变量节点n的软比特信息生成之后,就可以启动第k+1层的变量节点信息和第k+1层的检验节点信息的计算,加快了译码的速度,进而提高LDPC译码器的译码效率。
基于同一发明构思,本发明实施例还提供一种译码方法,图10为本发明实施例中译码方法的流程示意图,如图10所示,该方法应用于一译码器的一个以上计算单元中,其中,上述译码方法可以包括:
S1001:获取LDPC码的基础矩阵中变量节点n的待译码的软比特信息;
S1002:判断LDPC码的译码迭代次数i是否小于预设的译码迭代阈值;
S1003:确定译码迭代次数i小于译码迭代阈值时,判断LDPC码的译码层数k是否小于基础矩阵的行数a;
S1004:确定译码层数k小于基础矩阵的行数a时,根据基础矩阵第k-1层变量节点n的软比特信息,确定基础矩阵第k层变量节点n的软比特信息,且根据基础矩阵第k-1层变量节点n的软比特信息,确定基础矩阵第k+1层变量节点n到校验节点m的变量节点信息;
S1005:根据基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,确定基础矩阵第k+1层校验节点m到变量节点n的校验节点信息;
S1006:将译码层数k更新为k+1,重新执行判断LDPC码的译码层数k是否小于基础矩阵的行数a;
S1007:确定译码层数k大于等于基础矩阵的行数a时,将迭代次数i更新为i+1,重新执行判断LDPC码的译码迭代次数i是否小于预设的译码迭代阈值,
S1008:译码迭代次数i等于译码迭代阈值,将第k层变量节点n的软比特信息确定为变量节点n的待译码的软比特信息的译码结果;
其中,当i的初始值为0,k的初始值为0,且当k=0或者1时,第k-1层的变量节点n的软比特信息为变量节点n的待译码的软比特信息;其中,n为大于等于0且小于基础矩阵的列数b的整数。
在一种可选的实施例中,计算单元根据基础矩阵第k-1层的变量节点n的软比特信息,确定基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,包括:
将基础矩阵第k-1层变量节点n的软比特信息,减去上一次迭代中基础矩阵第k+1层变量节点n到校验节点m的检验节点信息,得到的差值确定为基础矩阵第k层变量节点n的软比特信息。
基于前述实施例,本实施例提供一种计算机存储介质,图11为本发明实施例中的计算机存储介质的结构示意图,如图11所示,该计算机存储介质110存储有译码程序,上述译码程序被处理器执行时实现如上述一个或多个实施例中所述的译码方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (11)
1.一种译码器,其特征在于,所述译码器至少包括一个以上计算单元,其中,所述计算单元用于:
获取低密度奇偶校验LDPC码的基础矩阵中变量节点n的待译码的软比特信息;其中,n为大于等于0且小于所述基础矩阵的列数b的整数;
判断所述LDPC码的译码迭代次数i是否小于预设的译码迭代阈值;
确定译码迭代次数i小于所述译码迭代阈值时,判断所述LDPC码的译码层数k是否小于所述基础矩阵的行数a;
确定译码层数k小于所述基础矩阵的行数a时,根据所述基础矩阵第k-1层变量节点n的软比特信息、上一次迭代中所述基础矩阵第k层变量节点n到校验节点m的检验节点信息和所述基础矩阵第k层变量节点n到校验节点m的检验节点信息,确定所述基础矩阵第k层变量节点n的软比特信息,且根据所述基础矩阵第k-1层变量节点n的软比特信息和上一次迭代中所述基础矩阵第k+1层变量节点n到校验节点m的检验节点信息,确定所述基础矩阵第k+1层变量节点n到校验节点m的变量节点信息;
基于函数,根据所述基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,确定所述基础矩阵第k+1层校验节点m到变量节点n的校验节点信息;
将译码层数k更新为k+1,重新执行判断所述LDPC码的译码层数k是否小于所述基础矩阵的行数a;
确定译码层数k大于等于所述基础矩阵的行数a时,将迭代次数i更新为i+1,重新执行判断所述LDPC码的译码迭代次数i是否小于预设的译码迭代阈值,直至译码迭代次数i等于所述译码迭代阈值,将所述第k层变量节点n的软比特信息确定为所述变量节点n的待译码的软比特信息的译码结果;
其中,当i的初始值为0,k的初始值为0,且当k=0或者1时,第k-1层的变量节点n的软比特信息为所述变量节点n的待译码的软比特信息。
2.根据权利要求1所述的译码器,其特征在于,所述计算单元根据所述基础矩阵第k-1层的变量节点n的软比特信息和上一次迭代中所述基础矩阵第k+1层变量节点n到校验节点m的检验节点信息,确定所述基础矩阵第k+1层变量节点n到校验节点m的变量节点信息中,所述计算单元具体用于:
将所述基础矩阵第k-1层变量节点n的软比特信息,减去上一次迭代中所述基础矩阵第k+1层变量节点n到校验节点m的检验节点信息,得到的差值确定为所述基础矩阵第k+1层变量节点n到校验节点m的变量节点信息。
3.根据权利要求1所述的译码器,其特征在于,所述译码器还包括预处理单元,所述预处理单元与所述计算单元相连接,在所述计算单元获取变量节点n的待译码的软比特信息之前,对应地,所述预处理单元用于确定变量节点n的待译码的软比特信息中,所述预处理单元具体用于:
获取待译码的软比特信息;
对所述待译码的软比特信息进行预处理,得到变量节点n的待译码的软比特信息。
4.根据权利要求3所述的译码器,其特征在于,所述预处理单元包括格式转换单元、路由单元、流水线控制单元、一个以上正移位单元和一个以上存储单元;其中,所述格式转换单元连接至所述一个以上存储单元,所述一个以上存储单元连接至所述一个以上正移位单元,所述一个以上正移位单元连接至所述路由单元,所述路由单元连接至所述一个以上计算单元,所述流水线控制单元分别连接至所述一个以上正移位单元和所述一个以上计算单元,所述正移位单元与所述存储单元一一对应;
所述格式转换单元用于:对所述待译码的软比特信息进行分块,得到一个以上待译码的软比特信息块,将一个以上待译码的软比特信息块发送至对应的存储单元进行存储;
所述存储单元用于:接收待译码的软比特信息块,进行分组存储;
所述流水线控制单元用于确定所述正移位单元接收到待译码的软比特信息,触发所述正移位单元,所述正移位单元具体用于对待译码的软比特信息进行正循环移位,得到移位后的待译码的软比特信息;
所述路由单元用于:按照预设的路由方式,将移位后的待译码的软比特信息输出至所述一个以上计算单元,使得所述计算单元获取到变量节点n的待译码的软比特信息。
5.根据权利要求4所述的译码器,其特征在于,所述格式转换单元对所述待译码的软比特信息进行分块,得到一个以上待译码的软比特信息,将一个以上待译码的软比特信息块发送至对应的存储单元进行存储中,所述格式转换单元具体用于:
根据所述基础矩阵的列数b,将所述待译码的软比特信息分成b个待译码的软比特信息块;其中,每个待译码的软比特信息块与所述基础矩阵的第n列的元素值相对应;
从b个待译码的软比特信息块中,将所述基础矩阵中具有正交性的列对应的待译码的软比特信息块,存储至同一存储单元中。
6.根据权利要求4所述的译码器,其特征在于,所述存储单元接收对应的待译码的软比特信息块,进行分组存储中,所述存储单元具体用于:
将待译码的软比特信息块分成Z个待译码的软比特信息,按照每组的个数为预设的译码并行度P,将Z个待译码的软比特信息进行分组,并存储至所述存储单元中;
其中,Z为所述基础矩阵的扩展因子,且Z为正整数。
7.根据权利要求4所述的译码器,其特征在于,所述正移位单元对待译码的软比特信息进行正循环移位,得到移位后的待译码的软比特信息中,所述正移位单元具体用于:
所述正移位单元根据所述基础矩阵第k行的元素值,确定对应的移位值;
根据所述移位值,对接收到的待译码的软比特信息进行正循环移位,得到移位后的待译码的软比特信息。
8.根据权利要求4所述的译码器,其特征在于,所述译码器还包括一个以上逆移位单元,所述一个以上逆移位单元分别连接至所述一个以上存储单元、所述路由单元和所述流水线控制单元,所述一个以上逆移位单元与所述一个以上存储单元一一对应;
所述路由单元具体用于:在直至译码迭代次数i等于所述译码迭代阈值之后,接收来自所述一个以上计算单元的所述译码结果,按照预设的路由方式,将所述译码结果输出至所述一个以上逆移位单元;
所述流水线控制单元具体用于:确定所述逆移位单元接收到所述译码结果,触发所述逆移位单元,所述逆移位单元具体用于:按照对应存储单元的移位值,将所述译码结果逆循环移位输出至与所述对应的存储单元。
9.一种译码方法,其特征在于,所述方法应用于一译码器的一个以上计算单元中,所述方法包括:
获取低密度奇偶校验LDPC码的基础矩阵中变量节点n的待译码的软比特信息;其中,n为大于等于0且小于所述基础矩阵的列数b的整数;
判断所述LDPC码的译码迭代次数i是否小于预设的译码迭代阈值;
确定译码迭代次数i小于所述译码迭代阈值时,判断所述LDPC码的译码层数k是否小于所述基础矩阵的行数a;
确定译码层数k小于所述基础矩阵的行数a时,根据所述基础矩阵第k-1层变量节点n的软比特信息、上一次迭代中所述基础矩阵第k层变量节点n到校验节点m的检验节点信息和所述基础矩阵第k层变量节点n到校验节点m的检验节点信息,确定所述基础矩阵第k层变量节点n的软比特信息,且根据所述基础矩阵第k-1层变量节点n的软比特信息和上一次迭代中所述基础矩阵第k+1层变量节点n到校验节点m的检验节点信息,确定所述基础矩阵第k+1层变量节点n到校验节点m的变量节点信息;
基于函数,根据所述基础矩阵第k+1层变量节点n到校验节点m的变量节点信息,确定所述基础矩阵第k+1层校验节点m到变量节点n的校验节点信息;
将译码层数k更新为k+1,重新执行判断所述LDPC码的译码层数k是否小于所述基础矩阵的行数a;
确定译码层数k大于等于所述基础矩阵的行数a时,将迭代次数i更新为i+1,重新执行判断所述LDPC码的译码迭代次数i是否小于预设的译码迭代阈值,直至译码迭代次数i等于所述译码迭代阈值,将所述第k层变量节点n的软比特信息确定为所述变量节点n的待译码的软比特信息的译码结果;
其中,当i的初始值为0,k的初始值为0,且当k=0或者1时,第k-1层的变量节点n的软比特信息为所述变量节点n的待译码的软比特信息。
10.根据权利要求9所述的方法,其特征在于,所述根据所述基础矩阵第k-1层的变量节点n的软比特信息、上一次迭代中所述基础矩阵第k层变量节点n到校验节点m的检验节点信息和所述基础矩阵第k层变量节点n到校验节点m的检验节点信息,确定所述基础矩阵第k层变量节点n的软比特信息,包括:
将所述基础矩阵第k-1层变量节点n的软比特信息,减去上一次迭代中所述基础矩阵第k层变量节点n到校验节点m的检验节点信息,加上所述基础矩阵第k层变量节点n到校验节点m的检验节点信息,得到的值确定为所述基础矩阵第k层变量节点n的软比特信息。
11.一种计算机存储介质,其特征在于,所述计算机介质存储有译码程序,所述译码程序被处理器执行时实现如权利要求9至10中任一项所述的译码方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810717244.XA CN110661593B (zh) | 2018-06-29 | 2018-06-29 | 一种译码器、方法和计算机存储介质 |
EP19824821.3A EP3829088B1 (en) | 2018-06-29 | 2019-05-24 | Decoder, decoding method, and computer storage medium |
PCT/CN2019/088398 WO2020001212A1 (zh) | 2018-06-29 | 2019-05-24 | 译码器、译码方法和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810717244.XA CN110661593B (zh) | 2018-06-29 | 2018-06-29 | 一种译码器、方法和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110661593A CN110661593A (zh) | 2020-01-07 |
CN110661593B true CN110661593B (zh) | 2022-04-22 |
Family
ID=68985419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810717244.XA Active CN110661593B (zh) | 2018-06-29 | 2018-06-29 | 一种译码器、方法和计算机存储介质 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3829088B1 (zh) |
CN (1) | CN110661593B (zh) |
WO (1) | WO2020001212A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826283A (zh) * | 2021-01-27 | 2022-07-29 | 华为技术有限公司 | 译码方法、装置、设备以及计算机可读存储介质 |
CN114520661B (zh) * | 2022-02-16 | 2024-05-31 | 上海思朗科技有限公司 | Ldpc修正最小和译码方法和ldpc译码器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958718A (zh) * | 2009-07-14 | 2011-01-26 | 国民技术股份有限公司 | 用于ldpc码的改进型半并行译码器和译码方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100566182C (zh) * | 2005-02-26 | 2009-12-02 | 美国博通公司 | 解码ldpc编码信号的加速消息传递解码器和方法 |
CN100589357C (zh) * | 2005-10-26 | 2010-02-10 | 中兴通讯股份有限公司 | 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法 |
US20100037121A1 (en) * | 2008-08-05 | 2010-02-11 | The Hong Kong University Of Science And Technology | Low power layered decoding for low density parity check decoders |
CN101615913B (zh) * | 2009-07-17 | 2011-04-27 | 清华大学 | Ldpc码的快速收敛译码方法 |
CN101867449B (zh) * | 2010-06-04 | 2013-05-08 | 深圳国微技术有限公司 | 基于地面数字电视的高效ldpc译码器 |
US8826096B2 (en) * | 2011-12-29 | 2014-09-02 | Korea Advanced Institute Of Science And Technology | Method of decoding LDPC code for producing several different decoders using parity-check matrix of LDPC code and LDPC code system including the same |
CN102664638A (zh) * | 2012-05-31 | 2012-09-12 | 中山大学 | 基于分层nms算法的多码长ldpc码译码器的fpga实现方法 |
CN103973315B (zh) * | 2013-01-25 | 2019-01-18 | 中兴通讯股份有限公司 | 一种低密度奇偶校验码译码装置及其译码方法 |
CN104868925B (zh) * | 2014-02-21 | 2019-01-22 | 中兴通讯股份有限公司 | 结构化ldpc码的编码方法、译码方法、编码装置和译码装置 |
CN106849959B (zh) * | 2016-12-30 | 2020-08-11 | 深圳忆联信息系统有限公司 | 数据处理方法及译码器 |
-
2018
- 2018-06-29 CN CN201810717244.XA patent/CN110661593B/zh active Active
-
2019
- 2019-05-24 EP EP19824821.3A patent/EP3829088B1/en active Active
- 2019-05-24 WO PCT/CN2019/088398 patent/WO2020001212A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958718A (zh) * | 2009-07-14 | 2011-01-26 | 国民技术股份有限公司 | 用于ldpc码的改进型半并行译码器和译码方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3829088A1 (en) | 2021-06-02 |
EP3829088B1 (en) | 2024-01-17 |
CN110661593A (zh) | 2020-01-07 |
WO2020001212A1 (zh) | 2020-01-02 |
EP3829088A4 (en) | 2021-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104868925B (zh) | 结构化ldpc码的编码方法、译码方法、编码装置和译码装置 | |
US7181676B2 (en) | Layered decoding approach for low density parity check (LDPC) codes | |
US7941737B2 (en) | Low density parity check code decoder | |
US8392789B2 (en) | Method and system for decoding low density parity check codes | |
CN107370490B (zh) | 结构化ldpc的编码、译码方法及装置 | |
US7343548B2 (en) | Method and apparatus for encoding and decoding data | |
US20070089018A1 (en) | Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including reconfigurable permuting/de-permuting of data values | |
US20070089019A1 (en) | Error correction decoder, method and computer program product for block serial pipelined layered decoding of structured low-density parity-check (LDPC) codes, including calculating check-to-variable messages | |
CN107404321B (zh) | 用于纠错码解码的方法和设备 | |
CN107919874B (zh) | 校验子计算基本校验节点处理单元、方法及其计算机程序 | |
CN107852176A (zh) | Ldpc码编码器和译码器 | |
CN107979445B (zh) | 使用预先排序的输入的基于基本校验节点的校正子解码 | |
Marchand et al. | Architecture and finite precision optimization for layered LDPC decoders | |
CN103208995B (zh) | 一种低密度奇偶校验码译码的提前终止方法 | |
CN113612486B (zh) | 一种构建pbrl ldpc码的基矩阵方法、系统、装置及存储介质 | |
CN101154948A (zh) | 利用共享硬件及顺序和-积体系结构进行低密度奇偶校验解码的方法和设备 | |
CN110661593B (zh) | 一种译码器、方法和计算机存储介质 | |
Zhang et al. | Partial-parallel decoder architecture for quasi-cyclic non-binary LDPC codes | |
CN112332856A (zh) | 一种准循环ldpc码的层译码方法及装置 | |
CN111130563A (zh) | 处理信息的方法和装置 | |
Shen et al. | Low-latency software successive cancellation list polar decoder using stage-located copy | |
CN111034055A (zh) | 在非二进制ldpc解码器中简化的校验节点处理 | |
CN111224673A (zh) | 译码方法、装置及译码器 | |
Roberts et al. | A Power-and area-efficient multirate quasi-cyclic LDPC decoder | |
US11575390B2 (en) | Low-latency segmented quasi-cyclic low-density parity-check (QC-LDPC) decoder |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |