一种基于fpga实现的ra码运算电路及设计方法

文档序号:7514431阅读:247来源:国知局
专利名称:一种基于fpga实现的ra码运算电路及设计方法
技术领域
本发明属于数字通信技术的信道编码和大规模集成电路设计的技术领域,特别涉及一种基于现场可编程门阵列(FPGA)实现的RA码运算电路及设计方法。

背景技术
信道编码是数字通信系统尤其是无线数字通信系统实现信号可靠传输的必要手段,在损失一定数据传输率和增加一定带宽需求的前提下,可以有效降低系统的误码率。
1993年,Berrou等人首次提出了一种性能接近Shannon理论极限的可实现的信道编码方案——Turbo码,掀起了信道编码界的一场革命。Turbo码的主要贡献在于采用了伪随机交织器交织编码,使其具有足够的随机性接近Shannon限;发现了迭代译码和置信传输的关系,提出了置信传输迭代译码的思想;导致了LDPC码的“再发现”,LDPC码具有良好的距离特性、小的译码错误概率和更低的译码复杂度。目前,Turbo码已经成为第三代移动通信的标准,LDPC码已经被纳入下一代卫星数字视频广播标准DVB-S2。
随着对Turbo码和LDPC码研究的深入,研究人员认为评价信道编码性能的标准是对于给定的信道,(1)线性时间编码,(2)线性时间译码,(3)具有任意接近信道容量的码率。对于Turbo码,满足线性时间编码的标准;对于LDPC码,其编码算法与码长呈二次关系,非规则的LDPC码在二进制抹去道(Binary ErasureChannel)上可满足条件(3);但对于二进制对称信道(Binary Symmetric Channnel)和加性高斯白噪声(AWGN)信道,Turbo码和LDPC码的信道容量与迭代译码的阈值之间具有一定的距离。1998年,Divsalar、Jin和McEliece提出了RA码,RA码具有线性时间编码和线性时间译码的特点,是一种简单的TLC(Turbo Like Codes)码,具有Turbo码和LDPC码同样优越的性能,受到信道编码界的广泛关注。
RA码的经典译码算法为信息传递译码算法,又称置信传输(Belief Propagation,BP)算法,BP算法具有复杂的非线性运算,不适合硬件电路实现,运算效率较低,影响了其在实际通信系统中的应用。最小和算法是RA码的一种简化译码算法,其在损失一定性能的前提下,可大大简化译码过程的复杂度,与BP算法相比,最小和算法产生了同样的硬判决,但对信息的可靠性进行了过估计。最小和算法是以降低性能为代价的,为了提高性能又不过多地增加算法复杂度,研究人员在最小和算法的基础上,进一步提出了归一化算法和偏移算法,取得了性能和复杂度的一种平衡。


发明内容
本发明要解决的技术问题是提供一种RA码编解码的快速运算电路实现方案,加快RA码编解码的运算过程,提高通信系统的信道编码效率;提供一种RA码编解码的硬件逻辑电路实现方案,可以方便地集成到数字通信系统的设计中,为信道编码基于RA码的数字通信专用芯片的设计提供基础。
为解决上述技术问题,基于RA码的最小和算法及其改进的归一化算法、偏移算法,本发明提出了一种基于FPGA实现的RA码快速运算电路及其设计方法。给出了编码电路和解码电路的系统结构。为保证快速运算,提出的方法包括(1)针对电路实现,设计了一种简化的RA码编码结构;(2)根据编码交织图样设计了一个编码交织映射表MAP_ENC,编码控制逻辑根据MAP_ENC通过简单运算直接从信息节点得到码节点,简化了运算过程,加快了编码速率;(3)根据编码交织图样设计了一个更新m[u,c]映射表MAP_UPD,更新m[u,c]控制逻辑根据MAP_UPD通过简单运算从m[c,u]的信息得到m[u,c],简化了运算过程,加快了更新速率;(4)根据编码交织图样设计了一个判决输出交织映射表MAP_DEC,判决输出控制逻辑根据MAP_DEC通过简单运算从m[u,c]的信息得到解码信息。
如前所述,本发明基于RA码的最小和算法、归一化算法和偏移算法实现,各个算法原理描述如下。
附图1所示为RA码编译码过程的示意图(信息分组长度为2,重复次数为3,交织图样为π=(1,2,5,3,4,6)),虚线为编码过程,实线为译码过程。
RA码的编码过程是一个单向过程,设信息位为ui(ui∈U,i=1,2,Λ,N),N为信息分组长度,设重复次数为Q,则校验位和码位的长度均为QN,校验位表示为cj(cj∈C,j=1,2,Λ,QN),码位表示为yj(yj∈Y,j=1,2,Λ,QN),则RA码编码过程可描述为cj是ui按照交织图样π的映射;cj和yj的关系由(1)式确定。
RA码的译码过程是一个循环迭代过程,译码过程需要传递两类信息信息节点与校验节点之间的信息m[u,c]、m[c,u],校验节点与码节点之间的信息m[c,y]、m[y,c]。译码算法采用最小和算法的译码过程如下,其中E为所有边的集合。
①初始化将m[u,c]、m[c,u]、m[c,y]、m[y,c]都置为0; ②根据译码输入的信息yR计算信息的概率B(y)=-2yR/σ2,σ为与信道特性相适应的一个参数; ③更新m[y,c], ④更新m[c,u], ⑤更新m[u,c], m[u,c]=∑c′m[c′,u] c′≠c,(c′,u)∈E(4) ⑥更新m[c,y], ⑦判决输出,将上述步骤③到⑥重复执行K次后,计算s(u)=∑cm[u,c],u∈U,如果s(u)≥0,则比特u判决为1,否则判决为0。
归一化算法和偏移算法都是对最小和算法的一种修正算法。最小和算法在步骤④更新m[c,u]和步骤⑥更新m[c,y]中输出结果跟经典的BP算法相比进行了可靠性的过估计,要提高系统的性能,需要对最小和算法的步骤④和步骤⑥的输出进行修正,使其接近BP算法的输出。
归一化算法采用的措施是引进一个非零因子α,α为最小和算法输出的绝对值的均值跟BP算法输出的绝对值的均值的比值,将最小和算法的输出跟非零因子α相乘,使最小和算法的输出接近BP算法的输出。
偏移算法采用的措施是引进一个非零常数β,β为BP算法输出的绝对值的均值跟最小和算法输出的绝对值的均值的差值,将最小和算法的输出跟非零常数β相加,使最小和算法的输出接近BP算法的输出。
根据RA码编码算法原理,本发明提出的RA码编码电路包括发送信息缓存控制逻辑、编码控制逻辑、并/串转换逻辑、原始信息缓冲区、编码信息缓冲区、编码交织映射表MAP_ENC等模块。所述的发送信息缓存控制逻辑负责将发送信息写入到原始信息缓冲区和启动编码控制逻辑;所述的并/串转换逻辑负责将编码信息缓冲区的数据进行并/串转换后发送给后续处理电路;所述的编码控制逻辑是RA编码电路的核心,其根据编码交织映射表MAP_ENC的内容读取原始信息缓冲区的数据,通过相应运算,得到编码信息,写入到编码信息缓冲区。
所述的RA编码电路的电路结构是一种根据RA编码原理的简化结构,该结构省略了校验节点的存储,简化了运算过程,加快了运算速度,简化结构码节点直接由信息节点获得,关系式如(6)所示,其中MAP_ENC为编码交织映射表。
所述的RA编码电路的编码交织映射表MAP_ENC是一个反映编码信息和原始信息映射关系的地址索引表,其内容是按照校验节点的顺序,根据编码交织图样获得的与校验节点对应的信息节点的下标,对应到电路实现中,就是原始信息在缓冲区存储的位地址。
根据RA码译码算法原理,本发明提出的RA码解码电路包括信息采集/处理/存储控制逻辑、更新m[y,c]控制逻辑、更新m[c,u]控制逻辑、更新m[u,c]控制逻辑、更新m[c,y]控制逻辑、迭代次数控制逻辑、B(y)缓存、m[c,y]缓存、m[y,c]缓存、m[c,u]缓存、m[u,c]缓存、数据判决输出逻辑、更新m[u,c]交织映射表MAP_UPD、判决输出交织映射表MAP_DEC等模块。所述的信息采集/处理/存储控制逻辑负责接收信息的预处理、计算B(y)并将B(y)写入到B(y)缓存、启动解码迭代过程;所述的更新m[y,c]控制逻辑负责在每次迭代运算中按照算法原理更新m[y,c]的值并将更新的值写入到m[y,c]缓存;所述的更新m[c,u]控制逻辑负责在每次迭代运算中按照算法原理更新m[c,u]的值并将更新的值写入到m[c,u]缓存;所述的更新m[u,c]控制逻辑负责在每次迭代运算中按照算法原理更新m[u,c]的值并将更新的值写入到m[u,c]缓存,如算法所述,更新m[u,c]的过程中需要根据交织图样搜索m[c,u]缓存,为了减少搜索时间,加快运算速度,本发明设计了更新m[u,c]交织映射表MAP_UPD,更新m[u,c]控制逻辑根据映射表MAP_UPD读取m[c,u]的值,经过简单运算,得到m[u,c]的更新值;所述的更新m[c,y]控制逻辑负责在每次迭代运算中按照算法原理更新m[c,y]的值并将更新的值写入到m[c,y]缓存;所述的迭代次数控制逻辑负责对迭代运算过程的控制,若达到了预设的迭代次数,结束解码过程,启动判决输出逻辑,若没有达到预设的迭代次数,解码过程继续;所述的数据判决输出逻辑负责解码信息的判决,根据判决输出交织映射表MAP_DEC的内容,读取相应的m[u,c]的值,经过运算,判决输出解码信息。
所述的更新m[u,c]交织映射表MAP_UPD是一个反映解码过程中m[u,c]跟m[c,u]映射关系的地址索引表,其内容计算过程是按照校验节点的顺序,根据交织图样,首先找到与之对应的信息节点,然后根据信息节点,找到与该信息节点对应的所有的校验节点,去除本校验节点,将其他校验节点的下标(即位地址)按照递增顺序依次排列即可。
所述的判决输出交织映射表MAP_DEC是一个反映解码信息跟m[u,c]映射关系的地址索引表,其内容即编码交织图样。
本发明提供了一种基于FPGA实现的RA码快速运算硬件电路及其设计方法,实现了RA码编解码的快速运算,提高了通信效率;提供了一种RA码编解码硬件实现方案,为信道编码基于RA码的数字通信专用芯片的设计提供了基础,可以应用到一种水声直接序列扩频通信系统中。



图1是RA码编解码过程示意图; 图2是本发明的基于FPGA实现的RA码编码电路结构图; 图3是本发明的RA码编码过程结构简化示意图; 图4是本发明的编码交织映射表MAP_ENC内容计算过程示意图; 图5是本发明的基于FPGA实现的RA码解码电路结构图; 图6是本发明的更新m[u,c]交织映射表MAP_UPD内容计算过程示意图; 图7是本发明的判决输出交织映射表MAP_DEC内容计算过程示意图; 图8是本发明的基于FPGA实现的RA码编解码电路在一种水声扩频通信系统的实施例。

具体实施例方式 下面结合附图与具体实施方式
对本发明的技术细节作进一步详细说明。
图1是Tanner图表示的RA码编解码过程示意图,用于说明RA码编解码过程的算法原理。
图2是本发明提出的基于FPGA实现的RA码编码电路的结构图。如图所示,编码电路包括发送信息缓存控制逻辑、编码控制逻辑、并/串转换逻辑、原始信息缓冲区、编码信息缓冲区、编码交织映射表MAP_ENC等模块。所述的发送信息缓存控制逻辑负责将发送信息写入到原始信息缓冲区和启动编码控制逻辑;所述的并/串转换逻辑负责将编码信息缓冲区的数据进行并/串转换后发送给后续处理电路;所述的编码控制逻辑是RA编码电路的核心,其根据编码交织映射表MAP_ENC的内容读取原始信息缓冲区的数据,通过相应运算,得到编码信息,写入到编码信息缓冲区。编码电路的工作流程是 (1)信息写入原始信息缓冲区。发送信息在发送信息缓存控制逻辑的控制下写入到原始信息缓冲区,同时,发送信息缓存控制逻辑对发送信息进行计数,实时判断发送信息是否完成; (2)启动编码过程。发送信息缓存控制逻辑判断到发送信息完成后,给出编码启动信号,启动编码过程; (3)进行编码,并将编码信息写入编码信息缓冲区。编码控制逻辑接收到编码启动信号后,根据编码交织映射表MAP_ENC读取原始信息缓冲区的数据,经过相应的逻辑运算,得到编码信息,写入到编码信息缓冲区; (4)编码完成,启动并/串转换逻辑。编码完成后,编码控制逻辑给出编码完成信号,启动并/串转换逻辑,将编码信息串行发送给后续处理逻辑。
图3是本发明提出的RA码编码过程结构简化示意图。如图所示,经典RA码编码过程包括信息节点、校验节点和码节点,信息节点经过重复、交织得到校验节点,校验节点经过累加得到码节点。本发明对编码过程进行了简化,简化后的编码过程只有信息节点和码节点,信息节点直接经过重复、交织、累加得到码节点,省去了校验节点,减少了电路存储,简化了运算过程,加快了运算速度。
图4是本发明提出的编码交织映射表MAP_ENC的内容计算过程示意图。如图所示,是一个反映编码过程中码节点和信息节点映射关系的地址索引表,而码节点和校验节点是一一对应的,因此,反映的也是校验节点和信息节点的映射关系。其内容的计算过程是按照校验节点的顺序,根据编码交织图样获得与校验节点对应的信息节点,该信息节点的下标就是其内容,对应到编码电路中,就是原始信息在原始信息缓冲区存储的位地址。
图5是本发明提出的基于FPGA实现的RA码解码电路的结构图。如图所示,RA码解码电路包括信息采集/处理/存储控制逻辑、更新m[y,c]控制逻辑、更新m[c,u]控制逻辑、更新m[u,c]控制逻辑、更新m[c,y]控制逻辑、迭代次数控制逻辑、B(y)缓存、m[c,y]缓存、m[y,c]缓存、m[c,u]缓存、m[u,c]缓存、数据判决输出逻辑、更新m[u,c]交织映射表MAP_UPD、判决输出交织映射表MAP_DEC等模块。所述的信息采集/处理/存储控制逻辑负责接收信息的预处理、计算B(y)并将B(y)写入到B(y)缓存、启动解码迭代过程;所述的更新m[y,c]控制逻辑负责在每次迭代运算中按照算法原理更新m[y,c]的值并将更新的值写入到m[y,c]缓存;所述的更新m[c,u]控制逻辑负责在每次迭代运算中按照算法原理更新m[c,u]的值并将更新的值写入到m[c,u]缓存;所述的更新m[u,c]控制逻辑负责在每次迭代运算中按照算法原理更新m[u,c]的值并将更新的值写入到m[u,c]缓存,更新m[u,c]控制逻辑根据映射表MAP_UPD读取m[c,u]的值,经过简单运算,得到m[u,c]的更新值;所述的更新m[c,y]控制逻辑负责在每次迭代运算中按照算法原理更新m[c,y]的值并将更新的值写入到m[c,y]缓存;所述的迭代次数控制逻辑负责对迭代运算过程的控制,若达到了预设的迭代次数,结束解码过程,启动判决输出逻辑,若没有达到预设的迭代次数,解码过程继续;所述的数据判决输出逻辑负责解码信息的判决,根据判决输出交织映射表MAP_DEC的内容,读取相应的m[u,c]的值,经过运算,判决输出解码信息。解码电路的工作流程是 (1)计算B(y)并写入B(y)缓存。接收信息在信息采集/处理/存储控制逻辑的控制下,计算得到信息B(y)并写入到B(y)缓存,并对接收信息进行计数,实时判断信息是否接收完成; (2)启动解码过程。信息采集/处理/存储控制逻辑判断到信息接收完成后,发出清零m[c,y]信号和解码启动信号,前者用于清零m[c,y]缓存,后者用于启动解码过程; (3)更新m[y,c]。更新m[y,c]控制逻辑检测到解码启动信号或者更新m[c,y]完成信号后,读取B(y)缓存和m[c,y]缓存的信息,经过相应的逻辑运算,得到m[y,c]的信息并写入m[y,c]缓存,更新完成给出更新完成信号; (4)更新m[c,u]。更新m[c,u]控制逻辑检测到更新m[y,c]完成信号后,读取m[y,c]缓存的信息,经过相应的逻辑运算,得到m[c,u]的信息并写入m[c,u]缓存,更新完成给出更新完成信号; (5)更新m[u,c]。更新m[u,c]控制逻辑检测到更新m[c,u]完成信号后,根据更新m[u,c]交织映射表读取m[c,u]缓存的信息,经过相应的逻辑运算,得到m[u,c]的信息并写入m[u,c]缓存,更新完成给出更新完成信号; (6)判断解码过程完成与否。迭代次数控制逻辑检测到更新m[u,c]完成信号后,判断解码迭代过程是否完成,若没完成,给出继续迭代的信号,否则,给出迭代完成信号; (7)更新m[c,y]。更新m[c,y]控制逻辑检测到继续迭代信号后,读取m[u,c]缓存的信息,经过相应的逻辑运算,得到m[c,y]的信息并写入m[c,y]缓存,更新完成给出更新完成信号; (8)判决输出。数据判决输出逻辑检测到迭代完成信号后,根据判决输出交织映射表的信息读取m[u,c]缓存的信息,经过相应的逻辑运算,得到解码信息并输出。
图6是本发明提出的更新m[u,c]交织映射表MAP_UPD的内容计算过程示意图。如图所示,MAP_UPD是一个反映解码过程中m[u,c]跟m[c,u]映射关系的地址索引表,其内容计算过程是按照校验节点的顺序,根据交织图样,首先找到与之对应的信息节点,然后根据信息节点,找到与该信息节点对应的全部校验节点,去除本校验节点,其他校验节点的下标(即位地址)即是MAP_UPD的内容,对应到解码电路中,就是m[c,u]在m[c,u]缓存的位地址。
图7是本发明提出的判决输出交织映射表MAP_DEC的内容计算过程示意图。如图所示,MAP_DEC是一个反映解码过程中信息节点跟m[u,c]映射关系的地址索引表,而m[u,c]与校验节点存在一一对应的关系,因此MAP_DEC反映的也是信息节点跟校验节点的映射关系,而RA编码的编码交织图样反映的就是信息节点跟校验节点的映射关系,因此,MAP_DEC的内容同编码交织图样,对应到解码电路中,就是m[u,c]在m[u,c]缓存的位地址。
图8是本发明提出的基于FPGA实现的RA码编解码电路在一种水声直接序列扩频通信系统的实施例。如图所示,这是一个半双工通信系统,包括发射机电路和接收机电路。在发射机电路中,RA编码电路读取发送缓冲区的数据并进行编码,编码后的数据加上前导码与同步码后统一进行后续处理;在接收机电路中,接收到的信息经过去前导码和同步码后传送给RA解码电路,RA解码电路负责对接收的信息进行解码,解码后的数据发送到接收数据缓冲区。
权利要求
1、一种基于FPGA实现的RA码运算电路,其特征在于,编码电路包括发送信息缓存控制逻辑模块、原始信息缓冲区模块、编码控制逻辑模块、编码信息缓冲区模块、并/串转换逻辑模块、编码交织映射表MAP_ENC;解码电路包括信息采集/处理/存储控制逻辑、更新m[y,c]控制逻辑模块、更新m[c,u]控制逻辑模块、更新m[u,c]控制逻辑模块、更新m[c,y]控制逻辑模块、迭代次数控制逻辑模块、B(y)缓存模块、m[c,y]缓存模块、m[y,c]缓存模块、m[c,u]缓存模块、m[u,c]缓存模块、数据判决输出逻辑模块、更新m[u,c]交织映射表模块MAP_UPD、判决输出交织映射表MAP_DEC;所述的发送信息缓存控制逻辑负责将发送信息写入到原始信息缓冲区和启动编码控制逻辑;所述的并/串转换逻辑负责将编码信息缓冲区的数据进行并/串转换后发送给后续处理电路;所述的编码控制逻辑是RA编码电路的核心,其根据编码交织映射表MAP_ENC的内容读取原始信息缓冲区的数据,通过相应运算,得到编码信息,写入到编码信息缓冲区;所述的信息采集/处理/存储控制逻辑负责接收信息的预处理、计算B(y)并将B(y)写入到B(y)缓存、启动解码迭代过程;所述的更新m[y,c]控制逻辑负责在每次迭代运算中按照算法原理更新m[y,c]的值并将更新的值写入到m[y,c]缓存;所述的更新m[c,u]控制逻辑负责在每次迭代运算中按照算法原理更新m[c,u]的值并将更新的值写入到m[c,u]缓存;所述的更新m[u,c]控制逻辑负责在每次迭代运算中按照算法原理更新m[u,c]的值并将更新的值写入到m[u,c]缓存,更新m[u,c]控制逻辑根据映射表MAP_UPD读取m[c,u]的值,经过简单运算,得到m[u,c]的更新值;所述的更新m[c,y]控制逻辑负责在每次迭代运算中按照算法原理更新m[c,y]的值并将更新的值写入到m[c,y]缓存;所述的迭代次数控制逻辑负责对迭代运算过程的控制,若达到了预设的迭代次数,结束解码过程,启动判决输出逻辑,若没有达到预设的迭代次数,解码过程继续;所述的数据判决输出逻辑负责解码信息的判决,根据判决输出交织映射表MAP_DEC的内容,读取相应的m[u,c]的值,经过运算,判决输出解码信息。
2、权利要求1所述基于FPGA实现的RA码运算电路的设计方法,其特征在于,采用查找表的方法,通过三个地址索引表编码交织映射表MAP_ENC、更新m[u,c]交织映射表MAP_UPD、判决输出交织映射表MAP_DEC简化算法的数据搜索过程,提高运算速度。
3、如权利要求2所述的基于FPGA实现的RA码运算电路的设计方法,其特征在于,编码交织映射表MAP_ENC是一个反映编码信息和原始信息映射关系的地址索引表,其内容计算过程是按照校验节点的顺序,根据编码交织图样获得的与校验节点对应的信息节点的下标,对应到电路实现中,就是原始信息在缓冲区存储的位地址。
4、如权利要求2所述的基于FPGA实现的RA码运算电路的设计方法,其特征在于,更新m[u,c]交织映射表MAP_UPD是一个反映解码过程中m[u,c]跟m[c,u]映射关系的地址索引表,其内容计算过程是按照校验节点的顺序,根据交织图样,首先找到与之对应的信息节点,然后根据信息节点,找到与该信息节点对应的所有的校验节点,去除本校验节点,将其他校验节点的下标(即位地址)按照递增顺序依次排列即可。
5、如权利要求2所述的基于FPGA实现的RA码运算电路的设计方法,其特征在于,判决输出交织映射表MAP_DEC是一个反映解码信息跟m[u,c]映射关系的地址索引表,其内容同编码交织图样。
全文摘要
本发明涉及一种基于FPGA实现的RA码运算电路及设计方法,属于数字通信技术的信道编码和大规模集成电路设计的技术领域。本发明包括编码电路和解码电路,根据编码交织图样设计一个编码交织映射表MAP_ENC,编码控制逻辑根据MAP_ENC通过简单运算直接从信息节点得到码节点;设计一个更新m[u,c]交织映射表MAP_UPD,更新m[u,c]控制逻辑根据MAP_UPD通过简单运算从m[c,u]的信息得到m[u,c];设计一个判决输出交织映射表MAP_DEC,判决输出控制逻辑根据MAP_DEC通过简单运算从m[u,c]的信息得到解码信息。本发明减少了RA码编解码的运算时间,提高了通信系统的信道编解码效率,可以方便地集成到数字通信系统的设计中,为信道编码基于RA码的通信专用芯片的设计提供了基础。
文档编号H03M13/00GK101404506SQ200810224590
公开日2009年4月8日 申请日期2008年10月21日 优先权日2008年10月21日
发明者沁 王, 刘兰军, 王建国, 张晓彤, 明 黎, 刘金龙, 王有华 申请人:北京科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1