CN102664638A - 基于分层nms算法的多码长ldpc码译码器的fpga实现方法 - Google Patents
基于分层nms算法的多码长ldpc码译码器的fpga实现方法 Download PDFInfo
- Publication number
- CN102664638A CN102664638A CN2012101791608A CN201210179160A CN102664638A CN 102664638 A CN102664638 A CN 102664638A CN 2012101791608 A CN2012101791608 A CN 2012101791608A CN 201210179160 A CN201210179160 A CN 201210179160A CN 102664638 A CN102664638 A CN 102664638A
- Authority
- CN
- China
- Prior art keywords
- information
- node
- check
- code
- memory
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000015654 memory Effects 0.000 claims abstract description 73
- 239000011159 matrix material Substances 0.000 claims abstract description 53
- 238000012545 processing Methods 0.000 claims abstract description 34
- 230000008569 process Effects 0.000 claims abstract description 13
- 238000012795 verification Methods 0.000 claims description 19
- 239000000872 buffer Substances 0.000 claims description 12
- 238000012804 iterative process Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 230000010365 information processing Effects 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 7
- 238000003908 quality control method Methods 0.000 abstract 2
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 208000004350 Strabismus Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种基于分层NMS算法的多码长LDPC码译码器的FPGA实现方法,包括以下步骤:1)对WiMax协议中码率为1/2的校验矩阵进行置换,得到新的校验矩阵,且保持原矩阵的性能。2)将新校验矩阵应用于并行分层迭代译码结构中,由地址产生模块产生译码器中存储单元的读写地址,实现多码长译码器设计。3)根据本设计中QC-LDPC码的特点,设计了一种存储器结构,使得在每路并行处理单元能够同时读取和写入信息。本发明减少了译码过程中更新信息的存储容量,有效地提高了信息更新速度,减少了译码器迭代次数,存储器的设计结构使得译码延时大大降低,提高了译码效率;同时,存储单元与更新单元的固定连线使得布线简单,降低了硬件的实现难度。
Description
技术领域
本发明涉及一种多模式LDPC码译码器,具体地说,是涉及一种WiMax协议中码率为1/2,多码长的分层迭代译码器。
背景技术
低密度奇偶校验码(LDPC)是一种基于稀疏校验矩阵的线性分组码,具有逼近香农限的良好译码性能、良好的距离特性、译码复杂度小和低错误平层(error floor)等优点。是当今信道编码领域最受瞩目的研究热点之一,已被广泛应用于多个通信标准中,同时也是下一代宽带移动通信系统中纠错编码的优先选择方案。
WiMax是Worldwide Interoperability for Microwave Access的缩写,即全球微波互联接入,已经被国际电信联盟(ITU)批准成为继WCDMA、CDMA2000和TD-SCDMA之后的第四个全球3G标准。WiMax技术以IEEE802.16e系列宽带无线标准为基础,该标准中定义的LDPC码是一种结构化构造的非正则准循环码,码长最小长度为576bit,最大长度为2304bit,以96为间隔,共19种码长。支持的码率有1/2等六种码率。当码率为1/2时,其校验矩阵H行块为12,列块为24。
每一个基于GF(2)域上的LDPC码都可以用一个M×N稀疏校验矩阵进行描述,其中行数M表示校验节点数目,列数N表示变量节点数目。LDPC译码过程主要是通过对数似然信息在校验节点和变量节点之间传递更新而迭代译码。在目前的研究中,LDPC译码器的译码结构可以分为全并行结构、全串行结构和部分并行结构。其中,全并行结构中所有的变量节点和校验节点同时更新。译码速度快,但是并行处理单元太多,各处理单元与存储单元之间的连线复杂度随着码长增加而急剧增加,这给硬件设计造成了极大的困难;全串行结构每次只更新一行中的校验节点和变量节点,一次迭代需要m次校验节点更新和n次变量节点更新,译码延时大,不利于在实时通信系统中应用;而部分并行结构是复杂度和译码速度的折中,可根据需要调整并行度。
按照消息传递方式的不同,目前LDPC码的译码算法可分为两种,一种是TPMP(two-phasemessage passing)算法;另一种是将校验节点更新和变量节点更新结合在一起的TDMP(turbodecoding message passing)算法。下面对两种现有技术做简要介绍。在传统的TPMP算法中,校验节点更新阶段和变量节点更新阶段是相互独立的。也就是说一次迭代开始后,首先是对校验矩阵H进行所有行更新即校验节点的更新,只有等到该阶段所有的行更新完毕后,校验矩阵的列更新才可进行即变量节点的更新,该阶段根据上阶段更新好的校验节点传递来的信息进行所有列更新操作,直到所有的列更新完成以后,才算一次迭代更新完毕。而TDMP算法的一次迭代过程,它包括了mb(其中mb为校验矩阵H行块个数)个子迭代过程,且每个子迭代过程同时包括了变量节点更新和校验节点更新,具体的更新步骤为:第一步是利用码字比特后验似然比信息和上一次迭代生成的校验节点传给变量节点的外部信息进行求差,得到本次迭代校验节点更新所需的变量节点传给校验节点的先验信息,第二步马上利用该先验信息进行校验节点更新,得到本次迭代比特节点后验信息更新所需新的外信息,第三步利用本次迭代更新后的外部信息与先验信息求和运算,得到下一个子迭代需要的新的比特后验信息,如此反复进行,直到mb个子迭代完成才算一次完整的迭代过程。
TDMP算法打破了传统的独立机制,大大加快了迭代收敛的速度,同时也节约了部分存储单元,但它的并行实现需要有特定的校验矩阵,即该矩阵里的非零子矩阵的列重必须为1,且同一列中非零子矩阵的偏移差要足够的大,否则将会导致变量节点更新还没来得及使用就被新信息覆盖,使得译码器译码性能恶化。此外,LDPC码译码的迭代过程需要调度大量数据进行读写和计算,为实现高数据吞吐率,译码器应满足大量节点信息同时读写及计算更新的要求。
发明内容
本发明的目的在于提供一种基于分层NMS算法的多码长LDPC码译码器的FPGA实现方法,解决现有多码长LDPC码的译码过程中更新信息的存储量大、译码速度慢和节点更新单元与存储器连接复杂的问题,在实现对IEEE802.16e中码率为1/2,多码长LDPC码的正常译码的同时,减少更新信息的存储量、迭代次数和节点更新单元与存储器连接复杂度,使得译码速度加快且易于硬件设计实现。
为了实现上述发明目的,采用的技术方案如下:
1、一种适用于IEEE802.16e标准中码率为1/2的多码长LDPC码的高吞吐率译码结构,该译码器包括译码器中心逻辑控制模块、地址产生模块、缓存器模块、校验节点处理模块、码字判决模块和码字校验模块。
译码器中心逻辑控制模块:用来控制整个译码器的工作过程,包括各个模块的工作状态及时序的交互,信道信息的输入控制,迭代是否继续的控制、译码结果的输出控制。
地址产生模块:用来产生初始化存储器、校验节点信息更新、变量节点信息更新、码字判决、码字校验和码字输出所需要的地址,完成多种码长的LDPC码的译码。
缓存器模块:输入缓存用来存储信道传来的对数似然比信息,输出缓存用来存储译码器的输出判决码字。
校验节点处理模块:即整个译码器的迭代计算模块,分为12路并行处理,用来处理变量节点传给校验节点的先验信息的更新、校验节点传给变量的外部信息的更新和比特节点后验信息值的更新,这是最为复杂也是最为重要的单元。为了有效减小译码器的关键路径延迟,处理单元采用了逐级细化流水线的设计方法来实现,可以提高译码器电路的工作频率和吞吐量。其中CTVMem存储器模块用来存储分层信息处理模块产生的校验节点传给变量节点的外部信息,APPMem存储器模块用来存储码字比特的后验信息。
码字判决模块:分为24路并行处理,用来对一次译码迭代后的码字后验信息值进行硬判决。
码字校验模块:分为12路并行处理,用来对判决后的码字进行校验,进而确定是否输出码字。
所述的一种适用于IEEE802.16e标准中码率为1/2的多码长LDPC码的高吞吐率译码结构,其特征在于,所述的校验节点处理单元中,根据校验矩阵中非零矩阵块为76个,设计用于存储校验节点传给变量节点外部信息的存储单元CTVMem有76个,用于存储比特节点后验信息值的存储单元APPMem也有76个,以保证运算节点之间的布线连接是固定连接且可以同时完成信息的处理。所述的APPMem存储单元用于存储初始化时信道对数似然值和译码迭代更新时后比特节点的后验信息,包含有76个独立的双口子存储器,每个存储器的宽度为8,深度为96。所述的CTVMem存储用于存储译码迭代过程中校验节点传给变量节点的信息,包含有76个独立的双口子存储器,每个存储器的宽度为8,深度为96。所述的地址产生模块利用查找表方法来产生初始化存储器、校验节点更新、变量节点更新、码字判决、码字校验和码字输出所需要的地址,完成多种码长的LDPC码的译码。而且码字判决单元的信息可以从校验节点单元中的码字比特后验信息值APPMem存储单元中读出,节省了一部分存储容量。
2、一种适用于IEEE802.16e标准中码率为1/2的多码长LDPC码的高吞吐率译码结构,其特征在于,该方法包括以下步骤:
步骤1:初始化存储单元,APPMem存储单元存储输入的信道初始对数似然值,对应于校验矩阵的同一列矩阵块的存储单元存储的信息相同,而CTVMem存储单元存储的信息初始化为零。
步骤2:开始译码迭代。
步骤3:迭代从校验节点更新单元开始,每一层处理单元读取同一层中CTVMem和APPMem存储器中的信息同时对每层中一行对应的变量节点更新,得到本次迭代校验节点更新所要的变量节点先验信息,接着计算校验节点更新和比特节点后验信息,得到新的校验节点传给变量节点信息传回本层CTVMem存储器中。而得到新的变量节点后验信息值,传给立即需要利用该信息的其它层,即对应于校验矩阵同一列矩阵块的其它层APPMem存储器,直到所有层的所有行更新完毕,本次迭代更新才算完成。
步骤4:利用查找表方法找到一个码字最后一次更新的后验信息值,存在于同一列矩阵块对应的APPMem存储单元的哪一块,读出APPMem中的信息进行硬判决。
步骤5:对本次迭代获得的存于模块内的硬判决码字进行校验,当所有校验行满足校验方程或达到最大迭代次数时停止迭代,进入步骤6,否则重复步骤2~5的译码过程。
步骤6:输出端通过查找表法将比特硬判决信息输出。
具体的说所述的步骤1中,根据校验矩阵非零块矩阵的个数,对76个APPMem和CTVMem进行初始化,其中APPMem的地址大小是根据不同码长中子矩阵维数来确定,对应同一列的APPMem的初始化比特后验信息一样,而CTVMem的地址大小与APPMem一样,初始化数据置为零。
更具体的说所述步骤3中的信息迭代处理。具体方法为:校验节点处理单元分为4条流水线,首先第1条流水线处理单元同时读取本层中APPMem的后验信息和上一次迭代生成的CTVMem中的信息进行求差,得到本次迭代校验节点更新所需的变量节点先验信息VTC-new。针对每一个变量节点先验信息取出它们的符号,对应于本次校验节点更新所需的信息符号做异或运算,得到更新后的符号sign,同时对VTC-new取绝对值。其次,第2条和第3条流水线处理单元针对第1条流水线发送来的绝对值信息,通过比较器进行比较,求得最小值min和次小值min2。最后,第4条流水线处理单元首先将第一条流水线得到的绝对值与min进行比较。若相等,则它更新后的值为sign×min2,否则,它的更新后的值为sign×min。接着,将最小和信息再乘以归一化因子,这里采用了逻辑移位的方法来代替。同时,为了保持译码性能,进行了2个比特的位扩展,得到新的校验节点传给变量节点的信息CTV-new,将它(CTV-new)传给本层对应的CTVMem存储器中。最后,再将本次迭代得到的新的VTC-new和CTV-new进行求和,得到新的变量节点后验信息APP-new,而得到新的变量节点后验信息值,传给立即需要利用该信息的其它层,即对应于校验矩阵同一列矩阵块的其它层APPMem存储器。这样每次与一个校验节点相连的所有变量节点的更新可以同时进行,同时所有的变量节点传给该校验节点也可同时进行,最后同时更新对于变量节点的后验信息。
进一步的说步骤4中的信息读取可以从步骤3中的APPMem存储器中得到码字后验信息值进行硬判决。
本发明原理简单,结构巧妙,容易实现,有效地解决了现有多码长LDPC码的译码算法信息存储量大,速度慢等问题,在本发明中并行分层迭代译码结构中,信息迭代更新过程中只需存储校验节点传给变量节点的信息和比特节点后验信息,而不用存储变量节点传给校验节点的先验信息,因此存储单元大大减少,同时由于本设计设计中更新单元与存储单元的固定连接,大大减小了硬件的布线难度,使得信息的读写速度更快,硬件更加容易实现。
附图说明
图1是译码器的总体设计结构图;
图2是IEEE802.16e码长2304,码率为1/2LDPC码的矩阵的基本模型;
图3是码长为2304的偏移校验矩阵H;
图4是第1条流水线;
图5是第2和第3条流水线;
图6是第4条流水线;
图7是码长为2304第一列矩阵块后验信息传递;
图8是码长为1152的偏移校验矩阵H;
图9是码长为576的偏移校验矩阵H;
具体实施方式
本发明公开了一种基于分层NMS算法的多码长LDPC码译码器的FPGA实现方法,下面结合附图对本发明进一步说明。
首先对本发明中各个字母及函数代表的含义进行解释,具体如下:
R(j):指的是一个与校验节点j相连的所有变量节点的集合,即参与校验方程j的所有变量节点。
R(j)\i:是指一个与校验节点j相连的所有变量节点的集合,然后再减去集合中的变量节点i;即在参与校验方程j中除变量节点i外其余所有的变量节点。
Li:表示收到的第i个比特信道信息的对数似然值;
Λji:表示从校验节点j传递给变量节点i的外部置信信息;
qij:表示从变量节点i传递给校验节点j的先验置信信息;
γi:表示每次迭代后得到的变量节点i的后验置信信息;
k:表示第k次迭代译码。
如图1所示,本次译码器采用并行的分层迭代译码结构,行并行度为12,列并行度为24,该译码器包括译码器中心逻辑控制模块、地址产生模块、缓存器模块、校验节点处理模块、码字判决模块和码字校验模块。
译码器中心逻辑控制模块:用来控制整个译码器的工作过程,包括各个模块的工作状态及时序的交互,信道信息的输入控制,迭代是否继续的控制、译码结果的输出控制。
地址产生模块:用来产生初始化存储器、校验节点更新、变量节点更新、码字判决、码字校验和码字输出所需要的地址,完成多种码长的LDPC码译码。
缓存器模块:输入缓存用来存储信道传来的对数似然比信息,输出缓存用来存储译码器的输出判决码字。
校验节点处理模块:即整个译码器的迭代计算模块,分为12路并行处理,用来处理变量节点传给校验节点的先验信息的更新、校验节点传给变量的外部信息的更新和比特节点后验信息值的更新,这是最为复杂也是最为重要的单元。为了有效地减小译码器的关键路径延迟,处理单元采用了逐级细化流水线的设计方法来实现,可以提高译码器电路的工作频率和吞吐量。CTVMem存储器模块用来存储分层信息处理模块产生的校验节点传给变量节点的外部信息,APPMem存储器模块用来存储码字比特的后验信息。
码字判决模块:分为24路并行处理,用来对一次译码迭代后的码字后验信息值进行硬判决。
码字校验模块:分为12路并行处理,用来对判决后的码字进行校验,进而确定是否输出码字。
下面以1/2码率码长为2304的LDPC码为例,对本发明中并行分层迭代译码器的译码算法进行详细说明。
步骤1:对现有校验矩阵进行置换如图2所示,得到本发明中所需的新校验矩阵如图3所示,并将其偏移值存入查找表中。
步骤2:并行分层译码器初始化,γi=Li,其中i=1,……,N;
步骤3:校验节点更新单元,计算
步骤5:根据迭代译码过程硬判决后的码字对其进行码字校验,检查是否译码正确,若所有校验行校验正确或者译码次数达到预先设定的最大迭代次数,则迭代译码结束,输出码字。否则重复迭代过程。
为了更加容易理解上述步骤1~5,,让本发明更加容易实现,下面将对部分关键步骤进行详细解释。
具体的说所述的步骤1中,根据校验矩阵非零块矩阵的个数,对76个APPMem和CTVMem进行初始化,其中APPMem的地址大小是96,对应于校验矩阵同一列非零矩阵块的APPMem的初始化信道对数似然值相同,而CTVMem的地址大小与APPMem一样,初始数据为零。
更具体的说所述步骤3中的信息迭代处理具体方法为:校验节点处理单元分为4条流水线,如图4、5和6所示。首先第1条流水线处理单元同时读取本层中APPMem的后验信息值和上一次迭代生成的CTVMem中的信息进行求差,得到本次迭代校验节点更新所需的变量节点先验信息VTC-new。针对每一个变量节点先验信息取出它们的符号,对应于本次校验节点更新所需的信息符号做异或运算,得到更新后的符号sign,同时对VTC-new取绝对值。其次,第2条和第3条流水线处理单元针对第1条流水线发送来的绝对值信息,通过比较器进行比较,求得最小值min和次小值min2。最后,第4条流水线处理单元首先将第1条流水线得到的绝对值与min进行比较,若相等,则它更新后的值为sign×min2,否则,它的更新后的值为sign×min。接着将最小和信息再乘以归一化因子,这里采用了逻辑移位的方法来代替。同时,为了不影响译码性能,进行了2个比特的位扩展,得到新的校验节点传给变量节点的信息CTV-new,将它(CTV-new)传给本次的对应的CTVMem存储器中,最后,再将本次迭代得到的新的VTC-new和CTV-new进行求和,得到新的变量节点后验信息值,传给立即需要利用该信息的其它层,即对应于校验矩阵同一列矩阵块的其它层APPMem存储器,例如图3中矩阵的第2列的后验信息在层与层之间的传递如图7所示。这样每次与一个校验节点相连的所有变量节点的更新可以同时进行,同时所有的变量节点传给该校验节点也可同时进行,最后同时更新对于变量节点的后验信息,从而实现了高吞吐率译码。
进一步的说步骤4中的码字信息读取可以从步骤3中的APPMem存储器中得到码字后验信息值进行硬判决,可减少2304×8个存储单元。而每一个矩阵块里最新的比特后验信息,存在于不同层的APPMem中,也就是说要完成码字的判决,需要正确读取每一个矩阵块的比特后验信息,存在于同一列矩阵块对应的APPMem存储单元的哪一块,如图3偏移校验矩阵H的第一列的矩阵块,非零矩阵在第4、9和12,比特的后验信息也就是存储在这几个层的第一个存储器(APPMem1)中,通过对其分析可以得到:第0~11比特和第73~95比特最后更新的后验信息存储在第4层的APPMem1中,第12~26比特最后更新的后验信息存储在第9层的APPMem1中,第27~72比特最后更新的后验信息存储在第12层的APPMem1中。同理我们可以推得其他2~24列矩阵块中所有比特的后验信息,存在同一列矩阵块对应的APPMem存储单元的哪一块。
根据上述的实现方法,其它码长译码器的FPGA实现方法,只需要将偏移的校验矩阵里的偏移值存入查找表,如图8和9分别码长为1152和576的偏移校验矩阵H,,这样地址产生模块中利用查找表方法得到存储器所需要的地址,其它功能模块和存储器模块不变,从而完成多种码长的LDPC码的译码。
按照上述方法实施,便可很好地实现本发明。
Claims (8)
1.一种适用于IEEE802.16e标准中码率为1/2的多码长LDPC码的高吞吐率译码器结构,该译码器主要包括译码器中心逻辑控制模块、地址产生模块、缓存器模块、校验节点处理模块、码字判决模块和码字校验模块。
译码器中心逻辑控制模块:用来控制整个译码器的工作过程,包括各个模块的工作状态及时序的交互,信道信息的输入控制,迭代是否继续的控制、译码结果的输出控制。
地址产生模块:用来产生初始化存储器、校验节点信息更新、变量节点信息更新、码字判决、码字校验和码字输出所需要的地址,完成多种码长的LDPC码的译码。
缓存器模块:输入缓存用来存储信道传来的对数似然比信息,输出缓存用来存储译码器的输出判决码字。
校验节点处理模块:即整个译码器的迭代计算模块,分为12路并行处理,用来处理变量节点传给校验节点的先验信息的更新、校验节点传给变量节点的外部信息的更新和比特节点后验信息的更新,这是最为复杂也是最为重要的单元。为了有效地降低译码器的关键路径延迟,处理单元采用了逐级细化流水线的设计方法来实现,可以提高译码器电路的工作频率和吞吐量。其中CTVMem存储器模块用来存储分层信息处理模块产生的校验节点传给变量节点的外部信息,APPMem存储器模块用来存储码字比特的后验信息。
码字判决模块:分为24路并行处理,用来对一次译码迭代后的码字后验信息值进行硬判决。
码字校验模块:分为12路并行处理,用来对判决后的码字进行校验,进而确定是否输出码字。
2.根据权利要求1所述的一种适用于IEEE802.16e标准中码率为1/2的多码长LDPC码的高吞吐率译码结构,其特征在于,所述的校验节点处理单元中,根据校验矩阵中非零矩阵块为76个,设计用于存储校验节点传给变量节点信息的存储器模块CTVMem有76个,用于存储比特节点后验信息的存储器模块APPMem也有76个,以保证运算节点与存储器之间的布线连接是固定的且可以同时完成信息的处理。
所述的APPMem存储器用于存储初始化时信道对数似然值信息和译码迭代更新时比特节点的后验信息。APPMem存储器模块包含76个独立的双口子存储器,每个存储器的宽度为8,深度为96。
所述的CTVMem存储器用于存储译码迭代过程中校验节点传给变量节点的信息,初始化为零。CTVMem存储器模块包含76个独立双口子存储器,每个存储器的宽度为8,深度为96。
所述的地址产生模块利用查找表方法产生初始化存储器、校验节点更新、变量节点更新、码字判决、码字校验和码字输出所需要的地址,完成多种码长的LDPC码的译码。
3.根据权利要求2所述的一种适用于IEEE802.16e标准中码率为1/2的多种码长LDPC码的高吞吐率译码结构,其特征在于码字判决模块的信息可以从校验节点单元中的码字后验信息APPMem存储模块读出,节省了一部分存储容量。
4.一种适用于IEEE802.16e标准中码率为1/2的多种码长LDPC码的高吞吐率译码结构,其特征在于,该方法包括以下步骤:
步骤1:初始化存储单元,APPMem存储器模块储存输入的信道初始对数似然值信息,对应于校验矩阵的同一列矩阵块的存储器存储的信息相同,而CTVMem存储器模块存储的信息初始化为零。
步骤2:开始译码迭代。
步骤3:迭代从校验节点更新单元开始,每一层处理单元读取同一层中CTVMem和APPMem存储器中的信息,同时对每层中一行对应的变量节点更新,得到本次迭代校验节点更新所要的变量节点先验信息,接着计算校验节点更新和比特节点后验信息,得到新的校验节点传给变量节点信息,然后传回本层CTVMem存储器中;而得到新的变量节点后验信息值,传给立即需要利用该信息的其它层,即对应于校验矩阵同一列矩阵块的其它层APPMem存储器,直到所有层的所有行更新完,本次迭代更新才算完成。
步骤4:利用查找表方法找到一个码字最后一次更新的后验信息值,存在于同一列矩阵块对应的存储单元的哪一块,读出APPMem中的信息进行硬判决。
步骤5:对本次迭代获得的存于模块内的硬判决码字进行校验,当所有校验行满足校验方程或达到最大迭代次数时停止迭代,进入步骤6,否则重复步骤2~5的译码过程。
步骤6:输出端通过查找表法将码字硬判决信息输出。
5.根据权利要求4所述的一种适用于IEEE802.16e标准中码率为I/2的多码长LDPC码的高吞吐率译码结构,其特征在于,所述的步骤1中,根据校验矩阵中非零块矩阵的个数,对76个APPMem和CTVMem进行初始化,其中APPMem的地址大小是根据不同码长中的子矩阵维数来确定,对应同一列的APPMem的初始化比特后验信息一样;而CTVMem的地址大小与APPMem一样,初始化数据置为零。
6.根据权利5所述的一种适用于IEEE802.16e标准中码率为1/2的多码长LDPC码的高吞吐率译码结构,其特征在于所述步骤3中的信息迭代处理。具体方法为:
校验节点处理单元分为4条流水线,首先第1条流水线处理单元同时读取本层中APPMem的比特节点后验信息值和上一次迭代生成的CTVMem中校验节点传给变量节点的信息进行求差,得到本次迭代校验节点更新所需的变量节点先验信息VTC-new。针对每一个变量节点先验信息取出它们的符号,对应于本次校验节点更新所需的信息符号做异或运算,得到更新后的符号sign,同时对VTC-new取绝对值。其次,第2条和第3条流水线处理单元针对第1条流水线发过来的绝对值信息,通过比较器进行比较,求得最小值min和次小值min2。最后,第4条流水线处理单元首先将第一条流水线得到的绝对值与min进行比较。若相等,则它更新后的值为sign×min2,否则,它的更新后的值为sign×min。接着,将最小和信息再乘以归一化因子,这里采用了逻辑移位的方法来代替。同时,为了保持译码性能,进行了2个比特的位扩展,得到新的校验节点传给变量节点的信息CTV-new,将它(CTV-new)传给本层的对应的CTVMem存储器中。最后,再将本次迭代得到的新的VTC-new和CTV-new进行求和,得到新的变量节点后验信息APP-new,传给立即需要利用该信息的其它层,即对应于校验矩阵同一列矩阵块的其它层APPMem存储器。
7.根据权利6所述的一种适用于IEEE802.16e标准中码率为1/2的多码长LDPC码的高吞吐率译码结构,其特征在于每次与一个校验节点相连的所有变量节点的更新可以同时进行,同时所有的变量节点传给该校验节点也可同时进行,最后同时更新对于变量节点的后验信息。
8.根据权利7所述的一种适用于IEEE802.16e标准中码率为1/2的多码长LDPC码的高吞吐率译码结构,其特征在于步骤4中的信息读取可以从步骤3中的APPMem存储器中得到码字后验信息值进行硬判决。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101791608A CN102664638A (zh) | 2012-05-31 | 2012-05-31 | 基于分层nms算法的多码长ldpc码译码器的fpga实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101791608A CN102664638A (zh) | 2012-05-31 | 2012-05-31 | 基于分层nms算法的多码长ldpc码译码器的fpga实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102664638A true CN102664638A (zh) | 2012-09-12 |
Family
ID=46774068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101791608A Pending CN102664638A (zh) | 2012-05-31 | 2012-05-31 | 基于分层nms算法的多码长ldpc码译码器的fpga实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102664638A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107124187A (zh) * | 2017-05-05 | 2017-09-01 | 南京大学 | 一种应用于闪存的基于等差校验矩阵的ldpc码译码器 |
CN108183713A (zh) * | 2017-12-15 | 2018-06-19 | 南京大学 | 基于改进型最小和算法的ldpc译码器及其译码方法 |
CN108462496A (zh) * | 2018-04-24 | 2018-08-28 | 成都吉纬科技有限公司 | 一种基于随机比特流更新的ldpc译码器 |
CN108683423A (zh) * | 2018-05-16 | 2018-10-19 | 广东工业大学 | 一种多级闪存信道下的ldpc码动态串行调度译码算法及装置 |
CN109831214A (zh) * | 2018-12-29 | 2019-05-31 | 中国电子科技集团公司第二十研究所 | 一种全并行ldpc译码器及fpga实现方法 |
CN110518918A (zh) * | 2019-05-08 | 2019-11-29 | 深圳芯之联科技有限公司 | 译码方法及译码器 |
CN110661593A (zh) * | 2018-06-29 | 2020-01-07 | 中兴通讯股份有限公司 | 一种译码器、方法和计算机存储介质 |
CN111181570A (zh) * | 2018-11-12 | 2020-05-19 | 北京环佳通信技术有限公司 | 基于fpga的编译码方法和装置 |
CN111988136A (zh) * | 2020-07-03 | 2020-11-24 | 中国电子科技集团公司第三十研究所 | 一种用于连续变量量子密钥分发的多精度译码装置与方法 |
CN112187289A (zh) * | 2020-10-27 | 2021-01-05 | 南京理工大学智能计算成像研究院有限公司 | 基于硬件实现的ldpc译码器实现方法 |
CN113497629A (zh) * | 2020-04-07 | 2021-10-12 | 富华科精密工业(深圳)有限公司 | 基于ldpc的译码方法、装置及计算机可读存储介质 |
CN113612575A (zh) * | 2021-06-30 | 2021-11-05 | 南京大学 | 面向Wimax协议的QC-LDPC译码器译码方法及系统 |
CN113612582A (zh) * | 2021-08-12 | 2021-11-05 | 西安电子科技大学 | 类Turbo变序列消息传递高速并行的LDPC译码器 |
CN117375636A (zh) * | 2023-12-07 | 2024-01-09 | 成都星联芯通科技有限公司 | 提高qc-ldpc译码器吞吐率的方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119118A (zh) * | 2007-09-06 | 2008-02-06 | 上海交通大学 | 分层准循环扩展构造的ldpc码的编码器 |
CN102055484A (zh) * | 2010-12-21 | 2011-05-11 | 东南大学 | 基于最小均方差准则的ldpc分层bp译码算法及译码器结构 |
CN102347775A (zh) * | 2011-09-06 | 2012-02-08 | 复旦大学 | 一种基于并行分层译码算法的ldpc码译码器 |
-
2012
- 2012-05-31 CN CN2012101791608A patent/CN102664638A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119118A (zh) * | 2007-09-06 | 2008-02-06 | 上海交通大学 | 分层准循环扩展构造的ldpc码的编码器 |
CN102055484A (zh) * | 2010-12-21 | 2011-05-11 | 东南大学 | 基于最小均方差准则的ldpc分层bp译码算法及译码器结构 |
CN102347775A (zh) * | 2011-09-06 | 2012-02-08 | 复旦大学 | 一种基于并行分层译码算法的ldpc码译码器 |
Non-Patent Citations (1)
Title |
---|
ZHANG KAI 等: ""High-throughput layered decoder implementation for quasi-cyclic LDPC codes"", 《IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107124187B (zh) * | 2017-05-05 | 2020-08-11 | 南京大学 | 一种应用于闪存的基于等差校验矩阵的ldpc码译码器 |
CN107124187A (zh) * | 2017-05-05 | 2017-09-01 | 南京大学 | 一种应用于闪存的基于等差校验矩阵的ldpc码译码器 |
CN108183713B (zh) * | 2017-12-15 | 2021-04-13 | 南京大学 | 基于改进型最小和算法的ldpc译码器及其译码方法 |
CN108183713A (zh) * | 2017-12-15 | 2018-06-19 | 南京大学 | 基于改进型最小和算法的ldpc译码器及其译码方法 |
CN108462496A (zh) * | 2018-04-24 | 2018-08-28 | 成都吉纬科技有限公司 | 一种基于随机比特流更新的ldpc译码器 |
CN108462496B (zh) * | 2018-04-24 | 2021-04-02 | 成都吉纬科技有限公司 | 一种基于随机比特流更新的ldpc译码器 |
CN108683423A (zh) * | 2018-05-16 | 2018-10-19 | 广东工业大学 | 一种多级闪存信道下的ldpc码动态串行调度译码算法及装置 |
CN110661593A (zh) * | 2018-06-29 | 2020-01-07 | 中兴通讯股份有限公司 | 一种译码器、方法和计算机存储介质 |
CN111181570A (zh) * | 2018-11-12 | 2020-05-19 | 北京环佳通信技术有限公司 | 基于fpga的编译码方法和装置 |
CN109831214A (zh) * | 2018-12-29 | 2019-05-31 | 中国电子科技集团公司第二十研究所 | 一种全并行ldpc译码器及fpga实现方法 |
CN110518918A (zh) * | 2019-05-08 | 2019-11-29 | 深圳芯之联科技有限公司 | 译码方法及译码器 |
CN113497629A (zh) * | 2020-04-07 | 2021-10-12 | 富华科精密工业(深圳)有限公司 | 基于ldpc的译码方法、装置及计算机可读存储介质 |
CN111988136A (zh) * | 2020-07-03 | 2020-11-24 | 中国电子科技集团公司第三十研究所 | 一种用于连续变量量子密钥分发的多精度译码装置与方法 |
CN111988136B (zh) * | 2020-07-03 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 一种用于连续变量量子密钥分发的多精度译码装置与方法 |
CN112187289A (zh) * | 2020-10-27 | 2021-01-05 | 南京理工大学智能计算成像研究院有限公司 | 基于硬件实现的ldpc译码器实现方法 |
CN113612575A (zh) * | 2021-06-30 | 2021-11-05 | 南京大学 | 面向Wimax协议的QC-LDPC译码器译码方法及系统 |
CN113612582A (zh) * | 2021-08-12 | 2021-11-05 | 西安电子科技大学 | 类Turbo变序列消息传递高速并行的LDPC译码器 |
CN117375636A (zh) * | 2023-12-07 | 2024-01-09 | 成都星联芯通科技有限公司 | 提高qc-ldpc译码器吞吐率的方法、装置及设备 |
CN117375636B (zh) * | 2023-12-07 | 2024-04-12 | 成都星联芯通科技有限公司 | 提高qc-ldpc译码器吞吐率的方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102664638A (zh) | 基于分层nms算法的多码长ldpc码译码器的fpga实现方法 | |
CN102394661B (zh) | 基于层译码处理的ldpc译码器及译码方法 | |
CN101079639B (zh) | 基于节点存储器的低密度奇偶校验解码装置和方法 | |
CN101106381B (zh) | 分层的低密度校验码译码器及译码处理方法 | |
CN101232288B (zh) | 一种基于奇偶校验矩阵的ldpc码的译码方法及译码器 | |
US9825650B2 (en) | Decoder architecture for cyclically-coupled quasi-cyclic low-density parity-check codes | |
CN104868925A (zh) | 结构化ldpc码的编码方法、译码方法、编码装置和译码装置 | |
US10374633B2 (en) | Method and system for LDPC decoding | |
CN101499804B (zh) | 准循环低密度校验码的多码率译码器 | |
CN101471674A (zh) | 低密度奇偶校验码译码方法及装置 | |
CN106936446A (zh) | 一种基于多进制ldpc码的高速译码器及其译码方法 | |
CN1937413A (zh) | 双涡轮结构低密度奇偶校验码解码器 | |
CN105680879A (zh) | 兼容dvb-s2x标准的ldpc译码器设计方法 | |
Bhatt et al. | Pipelined block-serial decoder architecture for structured LDPC codes | |
US10128869B2 (en) | Efficient convergence in iterative decoding | |
CN101917249B (zh) | Qc-ldpc码译码器及其实现方法 | |
Schläfer et al. | Design space of flexible multigigabit LDPC decoders | |
CN102064835B (zh) | 适用于准循环ldpc译码的译码器 | |
Nimara et al. | FPGA architecture of multi-codeword LDPC decoder with efficient BRAM utilization | |
CN105337618A (zh) | 并行向下兼容的多模ira_ldpc译码器及其译码方法 | |
CN101478312A (zh) | 一种ldpc译码器及其实现译码的方法 | |
CN102594369B (zh) | 基于fpga的准循环低密度校验码译码器及译码方法 | |
Lv et al. | Mutual information-maximizing quantized layered min-sum decoding of QC-LDPC codes | |
Li et al. | Novel memory efficient LDPC decoders for beyond 5G | |
Wu et al. | Updating conflict solution for pipelined layered LDPC decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120912 |