CN102064835B - 适用于准循环ldpc译码的译码器 - Google Patents
适用于准循环ldpc译码的译码器 Download PDFInfo
- Publication number
- CN102064835B CN102064835B CN200910237834.3A CN200910237834A CN102064835B CN 102064835 B CN102064835 B CN 102064835B CN 200910237834 A CN200910237834 A CN 200910237834A CN 102064835 B CN102064835 B CN 102064835B
- Authority
- CN
- China
- Prior art keywords
- memory cell
- decoder
- cnu
- vnu
- processing unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种适用于准循环LDPC译码的译码器,包含:控制单元、地址产生单元、信道值存储单元、交互信息存储单元、矩阵值存储单元、变量节点处理单元、校验节点处理单元、选择单元和输出单元。控制单元根据输入的状态和参数产生合适的控制信号,来协调译码器各个模块的迭代译码处理。本发明提供的译码器采用了交互信息存储单元的最小化设计策略,交互信息存储单元与基矩阵非空值一一对应原则,最大程度减少了存储器的开销。校验节点处理单元采用了一种偏置最小项算法降低实现复杂度,通过合适的偏置量来提高译码性能,同时可利用层次化的方法来构造出任何度数的校验节点处理单元,适用于规则和非规则的LDPC码。
Description
技术领域
本发明涉及通信领域信道编码技术领域,尤其涉及一种适用于准循环LDPC译码的译码器。
背景技术
在无线通信***中,由于传输信道存在噪声、衰落、多径,必然会对传输数据引入失真和信号判决错误。信道编码技术通过在信息序列中加入冗余码元,来发现、纠正传输中发生的信号错误,从而提高***的可靠性。
低密度奇偶校验码(LDPC)码是一种能够逼近香农(Shannon)限的性能优异的信道编解码方法。LDPC码的标准软判决译码采用一种置信传播算法,称之为和积算法(SPA)。和积算法使LDPC码得到最优的解码性能,但校验节点计算中的双曲余切函数算法的硬件实现复杂度很高。最小项算法(MS)用最小值函数代替了复杂的双曲余切函数,大大降低了解码算法复杂度,但性能有较大的损失。偏置最小项算法在MS算法的基础上,在校验节点计算中引入偏置值补偿了MS算法的性能损失。
目前,在实际通信***中使用的大部分LDPC码是准循环的LDPC码,而这些准循环的LDPC码分为规则类型和非规则类型的,规则类型的LDPC码是指校验矩阵的所有的校验节点度数相同,所有的变量节点的度数也相同,非规则类型的LDPC码则有不同的度数,这种非规则的引入会带来LDPC码性能上的提高。
针对准循环LDPC码的广泛应用,提出一种适合于准循环LDPC码中非规则和规则类型的译码器是亟待解决的问题。
发明内容
(一)要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种适用于准循环LDPC码中非规则和规则类型的译码器。
(二)技术方案
为达到上述目的,本发明提供了一种适用于准循环LDPC译码的译码器,包括:
控制单元:根据输入的控制信号和状态信号产生针对译码器中其他功能单元的控制信号,协调译码器的迭代译码过程;
地址产生单元:用来产生信道值存储单元和交互信息存储单元的读写地址及相应的读写使能信号和片选信号;
信道值存储单元:用于存储解映射后的M比特量化信道信息值,若准循环码对应的基矩阵的列数为NCOL,扩展因子为Z,则对应的信道值存储单元由NCOL组单端口RAM组成,每组单端口RAM的大小为Z×M比特,根据单端口存储器实际的应用大小,可能需要的每组单端口RAM大小比Z×M稍大;
交互信息存储单元:用于存储变量节点处理单元和校验节点处理单元传递的信息,若准循环码基矩阵中非空值的个数为W,则对应的交互信息存储单元由W组双端口RAM组成,每组双端口RAM的大小为Z×M比特,这里需根据实际存储器的大小需要将实际的存储器大小稍微扩大;
矩阵值存储单元:用于存储基矩阵中非空值的数值大小;
变量节点处理单元:由NCOL个并行的变量节点处理(VNU)组成,完成变量节点的处理;
校验节点处理单元:若基矩阵的行数为NROW,则校验节点单元由NROW个校验节点处理(CNU)单元组成,完成校验节点的处理;
选择单元:选择存入交互信息存储单元的信息是来自变量节点处理单元还是校验节点处理单元;
输出单元:译码器的输出译码单元。
上述方案中,所述控制单元是一个9状态的有限状态机,包含:空闲状态、信道值存储状态、VNU第一次计算状态、VNU第一次向CNU过渡状态、CNU计算状态、VNU计算状态、VNU向CNU过渡状态、CNU向VNU过渡状态和输出译码状态。
上述方案中,所述地址产生单元产生信道信息存储单元和交互信息存储单元的读写地址及读写使能和片选信号,其中交互信息存储单元的读写地址采用同址写回的方法,从交互信息存储单元取得信息,将取得的信息经过CNU和VNU计算后写回到与读时相同的地址中。
上述方案中,所述信道信息存储单元在检测到码字开始后就开始存入有效的信道信息值,存储的原则按扩展因子为一组存入到对应的单端口RAM中,直到将一个码字的信道信息值存完后就开始迭代译码过程,译码迭代过程中只在变量节点处理时才从其中取值。
上述方案中,所述交互信息存储单元在初始的CNU计算时需要对交互信息存储器进行初始化的操作,在迭代运算过程中从交互信息存储器中读取信息值经过VNU或CNU计算后采用同址写回的方法写回到交互信息存储器中。
上述方案中,所述矩阵值存储单元用于存储基矩阵中的非空值数值大小,来产生CNU计算时读取交互信息存储器的初始地址。
上述方案中,所述变量节点处理单元由NCOL个并行的VNU组成,VNU采用了与变量节点连接关系对应的加法器树及位宽调整电路组成。
上述方案中,所述变量节点完成的运算表示如下:
变量节点处理计算从变量节点i传到校验节点j的信息,通过如下式计算
其中Ci\j表示与变量节点i相连的除了校验节点j的其他校验节点的集合;同时译码器在此处对变量节点i作一次硬判决,通过如下式来计算:
若 否则 当达到最大迭代次数时,则结束运算,否则继续迭代运算。
上述方案中,所述校验节点处理单元由NROW个并行的CNU组成,CNU采用了带偏置最小项算法的层次化结构,该方法包括:
其中Vj\i表示与校验节点j相连的除了变量节点i的其他校验节点的集合,β表示偏置值;这里,将其表达式进行变形为可采用层次化硬件设计的表达式,如下:
其中x和y表示输入校验节点处理单元的两个数值,采用位宽为6比特的有符号数,β的大小可根据仿真得到,得到的±3是位宽6比特时性能最好的选择;
基于这种两值比较的层次化扩展可以得到任意度数的偶数个输入的CNU,如果校验节点度数为奇数,则以6比特表示的最大数值31作为一个输入来构造成偶数个的输入的CNU。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
1、本发明提供的适用于准循环LDPC译码的译码器,交互信息存储单元与基矩阵非空值一一对应原则,最大程度减少了存储器的开销。
2、本发明提供的适用于准循环LDPC译码的译码器,偏置最小项算法来降低复杂度,并选出合适的偏置量来提高译码器性能,同时可利用层次化的结构来构造适合任何准循环LDPC译码器,包含规则和非规则的。
附图说明
下面结合附图和实施例对本发明进一步说明:
图1是本发明提供的适用于准循环LDPC译码的译码器的结构示意图;
图2是译码器控制单元的有限状态机的状态转换图;
图3是交互信息存储器的同址写回方法说明图;
图4是VNU的结构图;
图5是4输入的VNU电路结构图;
图6是不同偏移值下的误码率曲线图;
图7是2输入的CNU结构图;
图8是4输入的CNU结构图;
图9是8输入的CNU结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本实例以IEEE 802.11n的LDPC码为例。IEEE 802.11n中的码率为1/2码长为1944的LDPC码的基础矩阵如下:
其矩阵是非规则的LDPC码,码长为1944,扩展因子是81,基础矩阵中是“-”的地方表示81×81的全零矩阵,是“0”的地方表示的是81×81单位阵,其他地方的有数值值表示了对81×81的单位阵的循环右移得到的矩阵。
本发明提供的适用于准循环LDPC译码的译码器,使用了交互信息存储器最小化设计策略,交互信息存储单元与基矩阵非空值一一对应原则,最大程度减少了存储器的开销。校验节点处理采用了偏置最小项算法来降低复杂度,并选出合适的偏置量来提高译码器性能,同时可利用层次化的结构来构造适合任何准循环LDPC译码器,包含规则和非规则的。
本发明提供的适用于准循环LDPC译码的译码器如图1所示:包括控制单元、地址产生单元、信道值存储单元、交互信息存储单元、矩阵值存储单元、变量节点处理单元、校验节点处理单元、选择单元和输出单元。
其中,控制单元是根据输入的控制信号和状态信号产生译码器其余模块的控制信号,协调译码器的迭代译码过程,其状态的转换图如图2所示,其中:
idle:译码器空闲状态,译码器不工作,idle状态的译码器检测“码字开始标志”信号,如检测到为1时则表示码字开始了,进入cram状态;
cram:信道值的存储状态,根据“输入有效”信号控制地址产生单元产生信道值存储单元的片选信号、读写使能和地址信号,当信道值存储单元完成一个码字的存储后,信道值存储单元反馈给控制单元一个“信道值存完”信号,这时开始迭代译码过程,进入vnu_first状态;
vnu_first:交互信息存储器初始化状态,由于交互信息存储器中的信息需要出示化,在此状态时变量节点从交互信息存储器中读取的数值应为0,与从信道值信息存储单元中读取的相应信道值进行变量节点处理,同时按照同址写回的方法把变量节点处理得到的信息写回到交互信息存储器中完成了交互信息存储器的初始化过程,然后进入vnu_first2cnu状态;
vnu_first2cnu:由于变量节点处理单元的流水线的级数决定的延时时钟数,这里设计的变量节点处理单元的级数为3级,所以此状态需要3个时钟,主要等待变量节点处理的数据完全写回交互信息存储器,然后进入cnu状态;
cnu:主要是校验节点处理过程,从交互信息存储器中取得数据送入到校验节点处理单元进行处理得到的信息在按照同址写回的方法写入到交互信息存储器中,然后进入cnu2vnu状态;
cnu2vnu:由于校验节点处理单元的流水线的级数决定的延时时钟数,这里设计的校验节点处理单元的级数为3级,所以此状态需要3个时钟,主要等待校验节点处理的数据完全写回交互信息存储器,然后进入vnu状态;
vnu:变量节点处理过程,需要利用信道值存储单元和交互信息中的数据一起来完成变量节点处理过程,而vnu_first中进入变量节点处理单元的是信道值存储单元中的数据和全零,即用全零替代了交互信息存储器中的数据,其余过程与vnu_first相同,在此过程中检测迭代译码的次数是否达到了最大的迭代译码次数,若达到了,则进入译码输出状态out,否则继续如图2中的循环的迭代过程;
out:译码输出状态,通过一个缓冲器来完成译码器的译码比特串行输出,缓冲器采用寄存器来实现。
地址产生单元用来产生信道值存储单元和交互信息存储单元的读写地址及相应的读写使能信号和片选信号,在信道值存储的状态时,需要产生信道值存储单元的读写地址、片选信号和读写使能信号;在变量节点处理时,需要产生信道值存储单元的读写地址、片选信号和读写使能信号,还需要产生交互信息存储单元的读写地址、片选信号和读写使能信号;在校验节点处理时,需要产生交互信息存储单元的读写地址、片选信号和读写使能信号;
信道值存储单元用于存储解映射后的M比特宽量化信道信息值;
交互信息存储单元用于存储变量节点处理单元和校验节点处理单元传递的信息,信息的读写方式是同址写回的方法,其与地址产生单元的连接图如图3所示,地址产生单元产生交互信息存储单元的读地址后,直接利用几级寄存器串联的方法来缓存读地址得到写地址,这种同址写回的方法简单,但是需要较多的寄存器;
矩阵值存储单元用于存储基矩阵中非空值数值大小,在地址产生单元中产生交互信息存储单元的读地址时需要;
变量节点处理单元完成变量节点的处理,根据码长为1944,码率为1/2的矩阵的变量节点的度数如下:度数为2(12个)、度数为3(8个)、度数为4(1个)、度数为11(3个)。这样,需要四种大小的VNU,即2输入VNU、3输入VNU、4输入VNU、11输入VNU。VNU的结构图如图4,是由一个加法器树和减法及位宽调整模块组成的。对于不同度数的VNU都是在其基础上对其进行扩展得到的。图5是4输入的VNU的电路结构图,是在图4的基础上进行扩展得到,其他任何度数的VNU都可参照图4和图5来进行构造得到。
校验节点处理单元完成校验节点的处理,通过对带偏置的最小项的等价变换,可将带偏置最小项的校验节点处理表示的任何数目输入的CNU转换为2输入CNU的组合,2输入的CNU处理等价于如下式,
其中β表示的是带符号的偏移值。实际***开发中的β值的选取对译码性能有直接影响,通过RTL定点仿真,得到如图6所示的不同β取值的误码率曲线,当β的绝对值取3时,硬件性能是最好的,所以β取值为3。
对应在CNU设计中采用了一种层次化的设计,对于不同度数的CNU都可通过2输入的CNU和寄存器来构造,这种层次化的方法不仅结构上简单,而且可方便不同度数的CNU单元的构造,特别适合非规则码的应用。(1944,972)校验矩阵的校验节点的度数有两种:7和8,共需要12个CNU单元。这里校验节点处理单元采用的都是8输入CNU,当度数为7是,空闲的位设置为正的最大值31(如果信息采用的是6比特有符号数表示)。8输入的CNU可用多个2输入的CNU和寄存器组成。图7为所设计的2输入的CNU,图8表示的是4输入的CNU结构图,它由多个寄存器和7个2输入CNU组成。图9为8输入CNU的结构图,由2个4输入的CNU和9个2输入CNU组成。
实际上可在最小单元2输入CNU的基础上构造出偶数个输入的CNU,当实际的度数为奇数时,选取比此奇数大1的偶数数值个输入的CNU,把少的一个输入赋为有符号的最大值(如信息采用的是6比特有符号数表示,则此数值为31),通过这种层次化的方法可以构造出任何度数的CNU,从而可得到任何准循环码的校验节点处理单元。
选择单元选择存入交互信息存储单元的信息是来自变量节点处理单元还是校验节点处理单元。
输出单元完成译码器的缓冲输出,当译码器达到最大迭代次数时,控制单元产生输出单元使能端来控制输入译码比特,输出单元采用的是寄存器组成的缓冲器,将在变量节点处理单元中得到的信息值和信道值信息相加结果的最高为存入输出单元中,通过寄存器缓冲器的作用来串行输出译码比特。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种适用于准循环LDPC译码的译码器,其特征在于,包括:
控制单元:根据输入的控制信号和状态信号产生针对译码器中其他功能单元的控制信号,协调译码器的迭代译码过程;
地址产生单元:用来产生信道值存储单元和交互信息存储单元的读写地址及相应的读写使能信号和片选信号;
信道值存储单元:用于存储解映射后的M比特量化信道信息值,若准循环码对应的基矩阵的列数为NCOL,扩展因子为Z,则对应的信道值存储单元由NCOL组单端口RAM组成,每组单端口RAM的大小为Z×M比特;
交互信息存储单元:用于存储变量节点处理单元和校验节点处理单元传递的信息,若准循环码基矩阵中非空值的个数为W,则对应的交互信息存储单元由W组双端口RAM组成,每组双端口RAM的大小为Z×M比特;
矩阵值存储单元:用于存储基矩阵中非空值的数值大小;
变量节点处理单元:由NCOL个并行的变量节点处理(VNU)模块组成,完成变量节点的处理;
校验节点处理单元:若基矩阵的行数为NROW,则校验节点处理单元由NROW个校验节点处理(CNU)模块组成,完成校验节点的处理;
选择单元:选择存入交互信息存储单元的信息是来自变量节点处理单元还是校验节点处理单元;
输出单元:译码器的输出译码单元;
其中,所述控制单元是一个9状态的有限状态机,包含:空闲状态、信道值存储状态、VNU第一次计算状态、VNU第一次向CNU过渡状态、CNU计算状态、VNU计算状态、VNU向CNU过渡状态、CNU向VNU过渡状态和输出译码状态。
2.根据权利要求1所述的适用于准循环LDPC译码的译码器,其特征在于,所述地址产生单元产生信道值存储单元和交互信息存储单元的读写地址及读写使能和片选信号,其中交互信息存储单元的读写地址采用同址写回的方法,从交互信息存储单元取得信息,将取得的信息经过CNU和VNU计算后写回到与读时相同的地址中。
3.根据权利要求1所述的适用于准循环LDPC译码的译码器,其特征在于,所述信道值存储单元在检测到码字开始后就开始存入有效的信道信息值,存储的原则是将扩展因子作为一组存入到对应的单端口RAM中,直到将一个码字的信道信息值存完后就开始迭代译码过程,迭代译码过程中只在变量节点处理时才从单端口RAM中取值。
4.根据权利要求1所述的适用于准循环LDPC译码的译码器,其特征在于,所述交互信息存储单元在初始的CNU计算时需要对交互信息存储单元进行初始化的操作,在迭代运算过程中从交互信息存储单元中读取信息值经过VNU或CNU计算后采用同址写回的方法写回到交互信息存储单元中。
5.根据权利要求1所述的适用于准循环LDPC译码的译码器,其特征在于,所述矩阵值存储单元用于存储基矩阵中的非空值数值大小,来产生CNU计算时读取交互信息存储单元的初始地址。
6.根据权利要求1所述的适用于准循环LDPC译码的译码器,其特征在于,所述变量节点处理单元由NCOL个并行的VNU组成,VNU采用了与变量节点连接关系对应的加法器树及位宽调整电路组成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910237834.3A CN102064835B (zh) | 2009-11-11 | 2009-11-11 | 适用于准循环ldpc译码的译码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910237834.3A CN102064835B (zh) | 2009-11-11 | 2009-11-11 | 适用于准循环ldpc译码的译码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102064835A CN102064835A (zh) | 2011-05-18 |
CN102064835B true CN102064835B (zh) | 2014-01-29 |
Family
ID=43999963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910237834.3A Expired - Fee Related CN102064835B (zh) | 2009-11-11 | 2009-11-11 | 适用于准循环ldpc译码的译码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102064835B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102394661B (zh) * | 2011-11-08 | 2015-05-06 | 北京邮电大学 | 基于层译码处理的ldpc译码器及译码方法 |
RU2608958C2 (ru) * | 2012-07-09 | 2017-01-27 | ЗетТиИ Корпорейшн | Способ и устройство сохранения данных |
CN104714754B (zh) * | 2013-12-16 | 2018-08-31 | 联想(北京)有限公司 | 一种电子设备及信息处理的方法 |
CN107888198B (zh) | 2016-09-30 | 2023-05-26 | 中兴通讯股份有限公司 | 准循环ldpc编译码方法、装置及ldpc编译码器 |
CN107888201B (zh) * | 2017-12-05 | 2020-11-03 | 上海神添实业有限公司 | 一种全并行高吞吐量ldpc译码方法 |
CN113014270B (zh) * | 2021-02-22 | 2022-08-05 | 上海大学 | 码长可配置的部分折叠极化码译码器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961888B2 (en) * | 2002-08-20 | 2005-11-01 | Flarion Technologies, Inc. | Methods and apparatus for encoding LDPC codes |
CN101499804A (zh) * | 2009-03-12 | 2009-08-05 | 上海交通大学 | 准循环低密度校验码的多码率译码器 |
-
2009
- 2009-11-11 CN CN200910237834.3A patent/CN102064835B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961888B2 (en) * | 2002-08-20 | 2005-11-01 | Flarion Technologies, Inc. | Methods and apparatus for encoding LDPC codes |
CN101499804A (zh) * | 2009-03-12 | 2009-08-05 | 上海交通大学 | 准循环低密度校验码的多码率译码器 |
Also Published As
Publication number | Publication date |
---|---|
CN102064835A (zh) | 2011-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102064835B (zh) | 适用于准循环ldpc译码的译码器 | |
CN100425000C (zh) | 双涡轮结构低密度奇偶校验码解码器及解码方法 | |
CN101499804B (zh) | 准循环低密度校验码的多码率译码器 | |
US9461671B1 (en) | Method and apparatus for power conservation in LDPC decoding | |
CN106330203B (zh) | 一种ldpc的解码方法 | |
CN105049061A (zh) | 基于超前计算的高维基极化码译码器和极化码译码方法 | |
CN108462496B (zh) | 一种基于随机比特流更新的ldpc译码器 | |
CN101800559B (zh) | 一种基于tdmp的高速可配置qc-ldpc码解码器 | |
CN102664638A (zh) | 基于分层nms算法的多码长ldpc码译码器的fpga实现方法 | |
CN106936446A (zh) | 一种基于多进制ldpc码的高速译码器及其译码方法 | |
CN101777921B (zh) | 用于显式存储片上***的结构化ldpc码译码方法及装置 | |
CN103325425B (zh) | 存储器控制器 | |
CN101335592B (zh) | 基于矩阵分块的高速ldpc译码器实现方法 | |
US20220255560A1 (en) | Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes built from clusters of circulant permutation matrices | |
CN100546207C (zh) | 一种基于DVB-RCS标准的双二元Turbo码译码方法 | |
CN110868225B (zh) | Ldpc码译码器 | |
CN115664899A (zh) | 一种基于图神经网络的信道解码方法及*** | |
CN100544212C (zh) | 高速的减少存储需求的低密度校验码解码器 | |
CN104158549A (zh) | 一种极性码译码方法及译码装置 | |
CN101478312A (zh) | 一种ldpc译码器及其实现译码的方法 | |
CN102201817B (zh) | 基于存储器折叠架构优化的低功耗ldpc译码器 | |
CN103166648A (zh) | 一种ldpc解码器及其实现方法 | |
US20100185913A1 (en) | Method for decoding ldpc code and the circuit thereof | |
US20230037965A1 (en) | Layered semi parallel ldpc decoder system having single permutation network | |
CN101777920B (zh) | 低密度奇偶校验码的编码方法和编码译码装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140129 Termination date: 20211111 |
|
CF01 | Termination of patent right due to non-payment of annual fee |