一种基于随机比特流更新的LDPC译码器的制作方法

文档序号:15281014发布日期:2018-08-28 23:32阅读:167来源:国知局

本发明属于数字通信技术领域,涉及一种基于随机比特流更新的ldpc译码器。



背景技术:

信息在信道传输尤其是无线信道中传输时会经历噪声干扰和衰落,由此造成在接收端接收到的信息错误较多。纠错控制编码是一项可以有效解决这类问题的技术。纠错控制编码通过在发送端按照一定规则向原始信息比特串中加入冗余校验比特,完成编码操作,在接收端通过对应的译码手段进行译码,起到降低误码率的作用。

低密度奇偶校验码(lowdensityparitycheckcode,ldpc)是一类纠错性能优良的纠错控制编码。它是由robertg.gallager于1962年首次提出。ldpc基于稀疏矩阵进行校验矩阵的构造,根据不同应用场景和构造方式可以分为多类,其主要有规则码和非规则码两类。802.11ad标准中定义的准循环码(quasicycliclowdensityparitycheckcode,qc-ldpc)属于非规则ldpc码,由于其编码简洁,所以便于实现。由于具有逼近香农限的优良性能,ldpc码已经被应用在计算机和数字通信等多个场合。

qc-ldpc的编码比较简单,基于spa算法形成的译码算法实现较为复杂,关于ldpc编解码硬件实现的研究点主要集中于其译码方面。spa算法利用根据校验矩阵得到的变量节点和校验节点之间传播更新后置信度信息来达到译码,由于其定义的校验节点更新公式中设计反双曲正切函数,所以其很难在硬件上直接实现。衍生出的最小和(min-sumalgorithm,msa)算法能够解决这一问题。但是在译码时,校验矩阵中有多少个1元素就有多少根连接两类节点的连线,随着码长规模和连线比特宽度的增加,msa涉及的硬件实现布线会非常困难,无法在较高的时钟频率下维持时序收敛,最终造成实现的译码器吞吐率无法得到提升,同时也造成芯片面积的大量占用,并且其变量节点和校验节点更新单元的实现仍然消耗很大资源,进而造成的功耗较较高。

基于随机比特流更新原理实现的ldpc译码器是一种基于spa算法但是区别于传统msa算法的架构。他不同于msa利用对数域信息而是直接在概率域内进行运算,在进行计算时,他通过随机比较手段将概率转化成伯努利序列,该伯努利序列中1元素的数量表征对应的概率,其后的运算都是基于该伯努利序列进行运算,它利用随机计算算理以及单比特运算的优势,使得在变量节点和校验节点之间连线宽度只需单比特,使得布线难度大大降低,芯片面积利用率得到有效提升。但是目前基于随机比特流更新的架构,存在着收敛速度慢,占用资源和架构设计存在冗余,变量节点更新模块设计不够优化,译码延时大等问题。



技术实现要素:

本发明的目的是针对上述问题,提出一种基于随机比特流更新的ldpc译码器,能够有效降低硬件设计冗余度,提高随机译码收敛速度,提高译码吞吐率。

本发明的技术方案为:

一种基于随机比特流更新的ldpc译码器;其特征在于译码的思想基于传统的和积译码(sum-productalgorithm,spa),但是实现架构和置信度的传播信息都在随机比特流的形式下进行设计和实现,其核心原理在于比特流的随机计算。该译码器架构中主要包括:译码控制单元,输入缓存单元,信息转化单元,变量节点更新单元,校验节点更新单元,码字校验单元,串行输出单元。

所述的译码控制单元,是在时钟信号的驱动下,采用有限状态机的方式产生各类控制信号并将其传递给输入缓存单元,信息转化单元,变量节点更新单元,校验节点更新单元,码字校验单元,串行输出单元,以产生如下效果:产生的控制信号使得输入缓存单元能够缓存必要的信道原始信息并给译码过程预留译码时间;产生的控制信号使得信息转化单元能够及时开始和停止转化信息;产生的控制信号使得变量节点更新单元能够完成内部寄存单元的初始化和译码更新以及与校验节点单元、码字校验单元、输出缓存单元的信息交互;产生的控制信号使得校验节点更新单元能够完成自身译码更新以及与变量节点单元的信息交互;产生的控制信号使得码字校验单元能够在译码正确以及在达到设定的最大译码迭代次数时刻产生和传递出终止译码信号;产生的控制信号使得串行输出单元能够及时的输出译得的码字。

所述的输入缓存单元使用一定长度的bram或者其他类似于fifo的内存单元来完成对未得到及时译码的信道信息进行缓存。该缓存内存单元的的深度或大小根据吞吐率和译码延时进行设定,可具体根据所用的ldpc协议标准进行仿真确定。采用时钟控制的方法进行对输入的信道符号进行顺序缓存。当其内部已经存满数据时,直接将输入进来的信息传递给信息转化单元进行相关处理,直到其内存单元有大于1个完整码字信息的存储空余量时才进一步进行缓存。

所述的信息转化单元完成如下功能:将信道的对数域信息(logarithmlikelihoodratio,llr)根据如下公式转化成概率信息;

上面公式中s代表的是接收的符号,p(s=1)代表的含义是,信道接收到的符号是比特1的先验概率,l′为采用独立噪声放缩算法(noisedependentscale,nds)得到中间llr信道值,α为放缩参数,y为接收到的信道符号的最大幅度值,n0为信道高斯白噪声的功率谱密度值,l为接收到的信道符号llr值,y为接收到个码字比特对应的信道符号接收幅度值。

所述的信息转化单元还将码块内各符号转化成的串行概率信息变成并行概率信息串便于同时钟内完成所有码字概率信息转化成随机比特流信息;完成对信道信息的直接硬判决。其内部由16个概率转化查找表(lut)构成,在同一个时钟内该查找表阵列完成对输入的16个信道llr信息转化成概率值,并将这些串行672的概率值转换成并行672个概率值;其内部还包括42个线性反馈移位寄存器(lfsr)产生伪随机数,以及672个比较器,用来产生各信道符号对应的随机比特流,并将其传递给变量节点更新单元进行相关处理。

所述的变量节点更新单元根据不同的度数,进行不同的配置。对于度数大于等于3的变量节点采用“组合检验”结构。度为2的变量节点使用普通计数器结构。度为1的变量节点则直接采用硬判决的方式进行更新和输出。以上所述结构输入都是从信息转化单元传递来的单比特随机比特流。变量节点单元根据spa算法(概率域,非llr域)中对变量节点更新处理过程的定义进行更新,将更新后的随机单比特形式的置信度信息传递给校验节点更新单元进行更新。同时变量节点更新单元硬判决产生本次迭代译码的码字,并将其传递给码字校验单元进行校验,以及串行输出单元。所述的变量节点更新单元输入端还包括异或预处理模块,以适应本发明所采用的半洪泛连线(half-floodwiringorrouting),以进一步降低连线复杂度,提高时钟最高运行频率。该预处理模块的输入和输出用于双校验中的第一次校验。变量节点更新单元内部还包括由lfsr构成的伪随机数发生器,用于在输入处于“锁存状态”时产生更可靠的输出。区别于现有随机计算结构,其内部寄存器在高度数时,

所述的校验节点更新单元只有简单的异或门操作。不同度数的校验节点使用和度数对应的输入端口数量的异或门,使用半洪泛技术,所有校验节点更新单元的输出只有单比特数据,该数据传递给变量节点更新单元用以进一步处理。

所述的码字校验单元由不同输入的或门阵列树构成,并采用一级流水的方式降低路径延时;这些或门阵列树完成对变量节点更新单元传递过来的判决码字进行校验,检测器是否是正确的合法码字,当或门阵列树的输出为0时,表示译得码字正确,否则错误,完成“双校验”的第二次校验;在译码正确的前提下,码字校验单元产生终止译码信号通知译码控制单元,译码器所有单元恢复初始状态;

所述的串行输出单元按大于等于输入缓存单元数据吞吐率的速率对译得的码字进行分时串行输出。其优点是可以省去输出缓存存储器的设置。

所述的基于随机比特流更新的ldpc译码器使用“交替参数”和“重译码”的译码优化策略,可以提升译码性能和降低误码平层。本发明所设计的ldpc译码器中在不同的译码迭代阶段使用不同的连续松弛衰减参数,使得译码速度更快。译码阶段分为两个阶段,两个阶段的译码周期共100(可以针对所采用的的ldpc标准进行仿真确定),第一阶段采用衰减系数a,迭代20次,第二阶段采用衰减系数b(b<a),迭代80次.当在100次迭代后仍没有正确译码时,则除信息转化单元和变量节点更新单元中的伪随机数发生器维持现有状态不变,译码器中的其他各单元重新恢复初始状态,并继续译码,即“重译码”。利用随机数的的随机状态,可以将译码失败的码字译码在重译码时译码正确。

本发明的有益效果为,基于随机计算原理使得变量节点和校验节点单元结构简单,降低了布线难度;变量节点更新结构进行信号共享,使得该单元资源占用更少;针对不同度数的变量节点采用不同构造方式,使得译码器的资源更少,译码速度更快;采用“交替参数”和“重译码”的译码优化策略,可以提升译码性能;对两层节点之间的连线使用“半洪泛”技术,可以有效提高ldpc译码器的运行时钟频率和数据吞吐率;“双校验”技术使得译码收敛速度更快。

附图说明

图1是本发明的ldpc译码器的逻辑结示意图;

图2是本发明中输入fifo的控制示意图;

图3是本发明信息转化单元结构示意图;

图4是本发明度为4的变量节点更新单元结构示意图;

图5为本发明中所采用的概率跟踪器结构示意图;

图6为本发明所采用的变量节点更新单元内部硬判决结构示意图;

图7为带内部寄存器2_input_ecl_a的两输入等价判断结构示意图;

图8为不带内部寄存器2_input_ecl_b的两输入等价判断结构示意图;

图9是度为3的变量节点更新的实现结构示意图;

图10是度为2的变量节点更新的实现结构示意图;

图11是度为1的变量节点更新的实现结构示意图;

图12为采用“半洪泛”技术下的校验节点更新单元结构示意图;

图13为本发明中“双校验”码字校验单元单元的一种实现结构示意图;

图14为实现tfm衰减系数切换和“重译码”步骤的流程图。

具体实施方式

下面结合附图对本发明做进一步说明。

图1是本发明所阐述的一种基于随机比特流更新的ldpc译码器的实施例。每个方框代表一个单元,每个单元内部由不同实现部件构成。加粗的箭头表明数据流交互,箭头上面的数字表示了数据流的宽度。

图2为一种输入缓存单元使用异步fifo的实现方式,深度共为256,宽度5bit,输入输出不同位宽,该输入每个时钟进入40bit,共占用8个fifo单元。5bit代表一个接收到的信道符号幅值,亦即量化成5bit。fifo每个时钟输出80bit。这样对于802.11ad中定义的672长度的ldpc码,在84个时钟周期完成输入缓存,42个时钟周期完成一个码块输出,这种设计最大限度降低了fifo写满的可能性。将256个缓存单元采用16个深度为16,宽度为5bit的分布式fifo构成,写入时,按照时钟驱动,先写入第一个fifo块的一个内存单元,再写第二个fifo块单元的一个内存单元,以此类推,直到第16个fifo块也写入一个单元。然后再从第一个fifo块的下一个单元开始写。读出时,在一个时钟驱动下,16个fifo块同时读使能,输出80bit,对应16个信道符号,传递给信息转化单元。在写满时,新的数据将直接传递给信息转化单元进行相关处理,并同时通知信息转化单元写满。当fifo已经写满时,将直接向信息转化模块传递信道符号信息,此时80位宽的输出端口每时钟只输出40bit,并同样经过84个时钟周期完整的传递672个符号后,方可恢复正常的读写操作,防止出现码块错位的情况。在读空时,将读空信号传递给信息转化单元。图2旁边的表格列出了该内存单元的输入输出端口说明,斜划线后面的i表示输入端口,o表示输出端口。

图3为一种信息转化单元的实现方式。将信道幅值转化成概率值,采用16个分布式查找表实现,这些查找表在同一个时钟周期内将输入缓存单元传递进来的16个信道幅值信息转化成16个7bit概率信息。经过42个周期完成对672个符号的转化。伪随机数发生器10位lsfr构成,采用42个分布式伪随机发生器,将672个概率值在一个时钟周期内通过和产生的随机数比较转化成672个随机比特。不同于传统的随机计算架构,这里所有分布式伪随机发生器反馈系数和种子均相同,实验证明,这种设计可以有效加快译码收敛速度,采用分布式可以降低路延时,提高时钟最高运行频率。图3中的硬判决模块用于当fifo写满时直接取出输入缓存单元传递过来的40bit信息,取出各信道信息的最高符号位作为直接硬判决结果输出。译码器每时钟输出8bit。如果此时迭代译码也有输出,那么由译码控制单元统一协调控制整个译码器的输出。

图4是本发明一种实施例中的变量节点为4的更新单元结构。4个置信度信息加上1个信道先验信息。区别于传统随机计算的变量节点实现方式,它实现了一种基于tfm(trackingmajoritymemory)共享信号的计数器结构。在计算各输出信号时,共享中间计算而得的再生比特(regerativebit)和锁存状态(holdstateornon-holdstate)信号,这区别于传统随机计算架构,并且不会带来任何性能损失。这种共享结构是根据下面表1得出的。矩形框内的是可以共享的信号,这样可以节省子节点结构。度为4和3的变量节点的概率跟踪器设计采用基于tfm的7比特宽的计数器方式实现,计数步长为设定的指数衰减系数β,图5为本发明中所采用的概率跟踪计数器结构。硬判决的输出采用的是一种记忆反馈的方式,其输出略去了信道信息,而只使用各校验节点传递过来的信息,实验证明,这种做法在本发明所采用的的技术之上没有过多的译码性能损失,图6为本发明所采用的硬判决结构。图7为2_input_ecl_a(2-inputsequalitychecklogic)模块结构,内部寄存器(internalmem)由简单的2比特寄存器实现;图8为2_input_ecl_b模块结构。输入端的各异或门是应用“半洪泛”技术的一种方式。

表1度为4变量节点输入与输出

图9是度为3的变量节点的实现结构,它采用与度为4的变量节点相同的原理进行构造,共享更新比特输出信号。图10是度为2的变量节点的一种实现方式,其结构实现与传统基于随机计算架构一致。图11是度为1的变量节点的实现方式,因与其相连的变量节点只有1个,所以其更新比特输出就是信道先验信息,判决输出即为由邻近校验节点传递来的信息比特决定。由于采用“半洪泛”技术,所有的变量节点输入端都有匹配异或门。根据度数的大小来差异化设计各变量节点对应的实现结构。

图12为采用多输入异或门实现的校验节点更新单元,每个校验节点只输出一个异或结果,传递给邻近的变量节点后再进行异或操作完成各自的置信度匹配。

图13为本发明中码字校验单元的一种实现方式,校验模块a的输入来自各变量节点更新单元的第一输出,完成第一次校验,校验模块b的输入来自每次迭代变量节点的硬判决输出,完成第二次校验。采用或门完成最后标志校验成功与否的信号输出。

图14实现tfm衰减系数切换和“重译码”的流程图,利用信道幅值转化的概率初始化各变量节点内部的tfm计数器,初始化完成后开始进行迭代译码,然后对每次判决后的码字进行“双校验”,如果成功则直接输出,否则检查是否达到了第一阶段第一β1参数译码的次数,这里设定的是20次,如果已经达到第一阶段第一β(0.025)参数,那么切换到第一阶段第二β(0.0625)参数,在到达第一阶段第二β(0.0625)参数的最大迭代次数(这里设定80次)之前,如果译码成功则输出,否则结束第一阶段(共100次)进行第二阶段译码,亦即“重译码”,第二阶段开始时,伪随机数的状态不改变,变量节点内部的寄存器重新初始化,然后重复第一阶段的译码过程,直到译码成功或者到达第二阶段的总迭代次数。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1