专利名称:一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器的制作方法
技术领域:
本发明涉及一种译码器,特别涉及一种码率为1/2、信息位长度为1024bit的 AR4JA码的译码器。
背景技术:
在2007年CCSDS发布标准中定义了一种深空探测中适用的AR4JA码, (CCSDS131. 1-0-2. 2007. Low Density Parity Cheek Codes For Use In Near-Earth And Deep Space Applications. Washington, DC, USA, CCSDS, 2007.即是此标准)。AR4JA码的译码算法主要有概率域BPOelief Propagation)译码算法、对数域 BP译码算法、最小和译码算法、修正最小和译码算法等。概率域BP译码算法中有大量的乘法运算,运算时间很长;对数域BP译码算法把概率域放到了对数域运算,即把乘法运算变为加法运算,节省了运算时间,但由于需要对数运算,硬件实现复杂度很大,译码性能损失小;最小和译码是对数域BP译码的近一步改进,只需要加法运算和比较运算,但译码性能会有损失;修正最小和译码算法是对最小和译码算法的改进修正,使其性能更接近对数域 BP译码算法,而且其硬件实现复杂度也低,且不需要对信道估计,所以采用修正最小和译码算法实现作为AR4JA码译码器的硬件实现算法最切合实际。(Jinghu Chen, Fossorier, M.P. C. Near optimum universal belief propagation based decoding of LDPC codes, IEEE Trans, on Comm, 2002, 50 (3) :406-414.) —文即属于此例。目前AR4JA码译码器的硬件实现结构有串行结构,部分并行结构,全并行结构。串行结构的译码速度慢,全并行结构的硬件实现复杂度高,所以目前需要一种译码性损失小且复杂度相对低的AR4JA码译码器。
发明内容
本发明的目的在于为了解决目前需要一种译码性损失小且复杂度相对低的AR4JA 码译码器的问题,提供一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器。本发明的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器,它包括输入缓冲模块、迭代译码模块、输出缓冲模块和控制模块;输入缓冲模块的存储信号输出端与迭代译码模块的存储信号输入端连接,迭代译码模块的判决信号输出端与输出缓冲模块的存储信息输入端连接,控制模块的控制信号输出端分别与输入缓冲模块的控制信号输入端、迭代译码模块控制信号输入端和输出缓冲模块的控制信号输入端连接,输入缓冲模块的数据输入端用于接收待译码的数据信号,输出缓冲模块的数据输出端输出译码结果;迭代译码模块包括状态控制模块、3个校验节点处理单元CNU、5个变量节点处理单元VNU、译码判决模块和15个顺序读取交织存储器;第一校验节点处理单元CNU利用对第一顺序读取交织存储器和第二顺序读取交织存储器的读取进行更新校验节点信息;第二校验节点处理单元CNU利用对第四至第九顺序读取交织存储器的读取进行更新校验节点信息;第三校验节点处理单元CNU利用对第十至十五顺序读取交织存储器的读取进行更新校验节点信息;第一变量节点处理单元VNU利用对第四顺序读取交织存储器和第十顺序读取交织存储器的读取进行更新变量节点信息;第二变量节点处理单元VNU利用对第五顺序读取交织存储器、第十一顺序读取交织存储器和第十二顺序读取交织存储器的读取进行更新变量节点信息;第三变量节点处理单元VNU利用对第一顺序读取交织存储器的读取进行更新变量节点信息;第四变量节点处理单元VNU利用对第六顺序读取交织存储器和第十三至第十四顺序读取交织存储器的读取进行更新变量节点信息;第五变量节点处理单元利用对第二至第三顺序读取交织存储器、第七至第九顺序读取交织存储器和第十五顺序读取交织存储器的读取进行更新变量节点信息;状态控制模块的数据总线使能信号输出端与15个顺序读取交织存储器、3个校验节点处理单元CNU和5个变量节点处理单元VNU的信号输入端连接;状态控制模块通过数据总线与3个校验节点处理单元CNU、5个变量节点处理单元 VNU和15个顺序读取交织存储器连接,其中,状态控制模块通过数据总线发送初始化信号同时给15个顺序读取交织存储器;状态控制模块通过数据总线发送校验节点处理单元使能信号同时给3个校验节点处理单元CNU ;状态控制模块通过数据总线接收校验节点处理单元CNU的时钟周期信号和变量节点处理单元VNU的时钟周期信号;状态控制模块通过数据总线输出变量节点处理单元使能信号同时给5个变量节点处理单元VNU ;状态控制模块的耗时使能信号输出端与译码判决模块的判决信号输入端连接;状态控制模块的初始化信号输入端是迭代译码模块的存储信号输入端,译码判决模块的判决信息输出端是迭代译码模块的判决信号输出端。本发明的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器采用可编程逻辑器件FBGA实现。本发明的优点在于本发明采用修正最小和译码算法的译码器使其性能更接近对数域BP译码算法,译码性能损失小;又因为没有对数运算,使硬件实现复杂度降低;本发明在实际应用中,整个AR4JA码译码器硬件设计采用的是Xilinx的VIRTEX-II PRO XC2VP30 芯片,时钟频率为lOOMhz,输入输出的波特率采用19200bps。表I给出了芯片资源的使用情况。从资源的利用率可以看出此项发明大大节约了资源,实现复杂度相对较低。图8给出了采用BPSK调制体制,在信道假设为理想高斯信道的条件下,采用本发明的AR4JA码译码器和理论情况的信噪比-误码率对比图。从图8中可以看出,采用本发明的设计方法的 AR4JA码译码器的译码性能与理论值相比仅仅差了约O. 3dB。所以说此设计方法不仅硬件实现复杂度相对相低的同时,译码性能的损失也较小。这样有利于深空通信中接收机的小型化,节约一部分资源。
图I为本发明的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器的总体结构示意图。图2为本发明的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器的迭代译码模块总体结构示意图。图3为本发明的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器的状态控制模块状态转换图。图4为本发明的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器的迭代译码模块的状态控制模块的比较状态工作流程。图5为本发明的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器的输入缓冲模块结构示意图。图6为本发明的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器的输出缓冲模块结构示意图。图7为本发明的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器的控制模块状态转换图。图8为本发明的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器和理论情况的信噪比与误码率曲线示意图。a为采用本发明的信噪比与误码率曲线示意图,b 为理论情况的信噪比与误码率曲线示意图。
具体实施例方式具体实施方式
一结合图I和图2说明本实施方式,本实施方式的一种码率为 1/2、信息位长度为1024bit的AR4JA码的译码器,它包括输入缓冲模块I、迭代译码模块2、 输出缓冲模块3和控制模块4 ;输入缓冲模块I的存储信号输出端与迭代译码模块2的存储信号输入端连接,迭代译码模块2的判决信号输出端与输出缓冲模块3的存储信息输入端连接,控制模块4的控制信号输出端分别与输入缓冲模块I的控制信号输入端、迭代译码模块2控制信号输入端和输出缓冲模块3的控制信号输入端连接,输入缓冲模块I的数据输入端用于接收待译码的数据信号,输出缓冲模块3的数据输出端输出译码结果;迭代译码模块2包括状态控制模块2_1、3个校验节点处理单元CNU2-2、2-3、2_4、 5个变量节点处理单元VNU2-5、2-6、2-7、2-8、2-9、译码判决模块2_10和15个顺序读取交织存储器RAMl RAMl5 ;第一校验节点处理单元CNU2-2利用对第一顺序读取交织存储器RAMl和第二顺序读取交织存储器RAM2的读取进行更新校验节点信息;第二校验节点处理单元CNU2-3利用对第四至第九顺序读取交织存储器RAM4 RAM9的读取进行更新校验节点信息;第三校验节点处理单元CNU2-4利用对第十至十五顺序读取交织存储器RAMlO RAM15的读取进行更新校验节点信息;第一变量节点处理单元VNU2-5利用对第四顺序读取交织存储器RAM4和第十顺序读取交织存储器RAMlO的读取进行更新变量节点信息; 第二变量节点处理单元VNU2-6利用对第五顺序读取交织存储器RAM5、第i^一顺序读取交织存储器RAMl I和第十二顺序读取交织存储器RAM12的读取进行更新变量节点信第三变量节点处理单元VNU2-7利用对第一顺序读取交织存储器RAMl的读取进行更新变量节点信息;第四变量节点处理单元VNU2-8利用对第六顺序读取交织存储器RAM6和第十三至第十四顺序读取交织存储器RAM13 RAM14的读取进行更新变量节点信息;第五变量节点处理单元VNU2-9利用对第二至第三顺序读取交织存储器 RAM2RAM3、第七至第九顺序读取交织存储器RAM7 RAM9和第十五顺序读取交织存储器 RAMl5的读取进行更新变量节点信息;状态控制模块2-1的数据总线使能信号输出端与15个顺序读取交织存储器 RAMl RAM15、3个校验节点处理单元CNU2_2、2_3、2_4和5个变量节点处理单元VNU2-5、 2-6、2-7、2-8、2-9的信号输入端连接;状态控制模块2-1通过数据总线与3个校验节点处理单元CNU2-2、2-3、2_4、5个变量节点处理单元VNU2-5、2-6、2-7、2-8、2-9和15个顺序读取交织存储器RAMl RAM15 连接,其中状态控制模块2-1通过数据总线发送初始化信号同时给15个顺序读取交织存储器 RAMl RAM15 ;状态控制模块2-1通过数据总线发送校验节点处理单元使能信号同时给3个校验节点处理单元CNU2-2、2-3、2-4 ;状态控制模块2-1通过数据总线接收校验节点处理单元CNU的时钟周期信号和变量节点处理单元VNU的时钟周期信号;状态控制模块2-1通过数据总线输出变量节点处理单元使能信号同时给5个变量节点处理单元 VNU2-5、2-6、2-7、2-8、2-9 ;状态控制模块2-1的耗时使能信号输出端与译码判决模块2-10的判决信号输入端连接;状态控制模块2-1的初始化信号输入端是迭代译码模块2的存储信号输入端,译码判决模块2-10的判决信息输出端是迭代译码模块2的判决信号输出端。采用修正最小和译码算法的原理变量定义V(i)表示与变量节点i有连接关系的校验节点集合;C(j)表示与校验节点j有连接关系的变量节点集合;A为修改因子,取值O. 6 O. 9 ; <表示第k次迭代译码时变量节点j传给校验节点i的外部校验信息; <表示第k次迭代译码时校验节点i传给变量节点j的外部校验信息;p,k表示第k次迭代译码时变量节点i收到的所有外部信息;最大迭代次数max。该算法描述如下。(I)初始化。P0i ^yi(I)q] = yt⑵
权利要求
1.一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器,它包括输入缓冲模块 (I)、迭代译码模块(2)、输出缓冲模块(3)和控制模块⑷;输入缓冲模块(I)的存储信号输出端与迭代译码模块(2)的存储信号输入端连接,迭代译码模块(2)的判决信号输出端与输出缓冲模块(3)的存储信息输入端连接,控制模块 ⑷的控制信号输出端分别与输入缓冲模块⑴的控制信号输入端、迭代译码模块⑵控制信号输入端和输出缓冲模块(3)的控制信号输入端连接,输入缓冲模块(I)的数据输入端用于接收待译码的数据信号,输出缓冲模块(3)的数据输出端输出译码结果;其特征在于, 迭代译码模块(2)包括状态控制模块(2-1)、3个校验节点处理单元CNU(2-2、2-3、 2-4)、5个变量节点处理单元¥斯(2-5、2-6、2-7、2-8、2-9)、译码判决模块(2_10)和15个顺序读取交织存储器(RAM1 RAMl5);第一校验节点处理单元CNU (2-2)利用对第一顺序读取交织存储器(RAMl)和第二顺序读取交织存储器(RAM2)的读取进行更新校验节点信息;第二校验节点处理单元CNU(2-3) 利用对第四至第九顺序读取交织存储器(RAM4 RAM9)的读取进行更新校验节点信息;第三校验节点处理单元CNU(2-4)利用对第十至十五顺序读取交织存储器(RAM10 RAM15)的读取进行更新校验节点信息;第一变量节点处理单元VNU (2-5)利用对第四顺序读取交织存储器(RAM4)和第十顺序读取交织存储器(RAMlO)的读取进行更新变量节点信息;第二变量节点处理单元VNU (2-6)利用对第五顺序读取交织存储器(RAM5)、第i^一顺序读取交织存储器(RAMll)和第十二顺序读取交织存储器(RAM12)的读取进行更新变量节点信息;第三变量节点处理单元VNU (2-7)利用对第一顺序读取交织存储器(RAMl)的读取进行更新变量节点信息;第四变量节点处理单元VNU (2-8)利用对第六顺序读取交织存储器(RAM6)和第十三至第十四顺序读取交织存储器(RAM13 RAM14)的读取进行更新变量节点信息;第五变量节点处理单元VNU(2-9)利用对第二至第三顺序读取交织存储器(RAM2 RAM3)、第七至第九顺序读取交织存储器(RAM7 RAM9)和第十五顺序读取交织存储器 (RAM15)的读取进行更新变量节点信息;状态控制模块(2-1)的数据总线使能信号输出端与15个顺序读取交织存储器 (RAM1 RAMl5)、3个校验节点处理单元CNU (2-2、2-3、2-4)和5个变量节点处理单元 VNU (2-5、2-6、2-7、2-8、2-9)的信号输入端连接;状态控制模块(2-1)通过数据总线与3个校验节点处理单元CNU(2-2、2-3、2-4)、5 个变量节点处理单元VNU(2-5、2-6、2-7、2-8、2-9)和15个顺序读取交织存储器(RAM1 RAMl5)连接,其中状态控制模块(2-1)通过数据总线发送初始化信号同时给15个顺序读取交织存储器 (RAM1 RAMl5);状态控制模块(2-1)通过数据总线发送校验节点处理单元使能信号同时给3个校验节点处理单元 CNU(2-2、2-3、2-4);状态控制模块(2-1)通过数据总线接收校验节点处理单元CNU的时钟周期信号和变量节点处理单元VNU的时钟周期信号;状态控制模块(2-1)通过数据总线输出变量节点处理单元使能信号同时给5个变量节点处理单元 VNU (2-5、2-6、2-7、2-8、2-9);状态控制模块(2-1)的耗时使能信号输出端与译码判决模块(2-10)的判决信号输入端连接;状态控制模块(2-1)的初始化信号输入端是迭代译码模块(2)的存储信号输入端,译码判决模块(2-10)的判决信息输出端是迭代译码模块(2)的判决信号输出端。
2.根据权利要求I所述的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器,其特征在于,状态控制模块(2-1)采用状态机的方式实现,该状态控制模块(2-1)包括初始化状态、比较状态、校验节点更新状态、变量节点更新状态和译码判决状态,其中初始化状态,输出使能信号控制15个存储校验节点信息和变量节点信息的RAM清零, 当比较状态的使能信号compare_en = I时,跳转到比较状态;比较状态,比较出矩阵的每一行的变量节点信息的最小值和次小值,当比较状态的使能信号compare_en = O且校验节点更新状态的使能信号cnu_en = I时,跳转到校验节点更新状态;校验节点更新状态,更新个校验节点信息,当比较状态的使能信号compare_en = I且校验节点更新状态的使能信号cnu_en = O时,跳转到比较状态;当校验节点更新状态的使能信号cnu_en = O且变量节点更新状态的使能信号vnu_en = I,跳转到变量节点更新状态;在变量节点更新状态,更新15个变量节点的信息,当变量节点更新状态的使能信号 vnu_en = O且译码判决状态的使能信号check_en = I时,跳转到译码判决状态;译码判决状态,进行译码判决,当译码判决状态的使能信号check_en = O且比较状态的使能信号compare_en = I时,跳转到比较状态;当译码判决状态的使能信号check_en = I时,跳转到初始化状态。
3.根据权利要求2所述的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器,其特征在于,所述状态控制模块(2-1)的比较状态包括五个时钟周期,比较状态的工作过程如下在第一个时钟周期,第一校验节点单元CNU2-2将校验节点Vl和校验节点V2进行绝对值比较,较小的作为最小值minal,另一个作为次小值mina2 ;在第二个时钟周期,第一校验节点单元CNU将2-2将第一个时钟周期获得的最小值 minal与校验节点V3进行绝对值比较,第一个时钟周期获得的次小值mina2与校验节点V3 进行绝对值比较,较小的作为最小值minal,另一个作为次小值mina2 ;在第三个时钟周期,第二校验节点单元CNU 2-2和第三校验节点单元CNU 2-3将第二个时钟周期获得的最小值minal与校验节点V4进行绝对值比较,第二个时钟周期获得的次小值mina2与校验节点V4进行绝对值比较,较小的作为最小值minal,另一个作为次小值 mina2 ;在第四个时钟周期,第二校验节点单元CNU 2-2和第三校验节点单元CNU2-3将第三个时钟周期获得的最小值minal与校验节点V5进行绝对值比较,第三个时钟周期获得的次小值mina2与校验节点V5进行绝对值比较,较小的作为最小值minal,另一个作为次小值mina2 ;在第五个时钟周期,第二校验节点单元CNU 2-3和第三校验节点单元CNU2-3将第四个时钟周期获得的最小值minal与校验节点V6进行绝对值比较,第四个时钟周期获得的次小值mina2与校验节点V6进行绝对值比较,较小的作为最终获得的最小值minal,另一个作为最终获得的次小值mina2。
4.根据权利要求I所述的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器,其特征在于,所述的输入缓冲模块(I)包括串并转换模块(1-1),波特率产生模块 (1-2)、RAM分组控制及地址产生模块(1-3)、模拟开关和输入存储器,所述输入存储器由四个RAM组成;波特率产生模块(1-2)的时钟信号输出端与串并转换模块(1-1)的时钟信号输入端连接,RAM分组控制及地址产生模块(1-3)输出数据读取地址信号同时给存储器中的四个RAM 的地址信号输入端,RAM分组控制及地址产生模块(1-3)的分组控制信号输出端连接模拟开关的控制信号输入端,用于控制串并转换模块(1-1)的信号输出端分别与输入存储器中的某一个RAM的数据写入信号端连接,串并转换模块(1-1)的信号输入端为输入缓冲模块(I)的数据输入端。
5.根据权利要求I所述的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器,其特征在于,所述输出缓冲模块(3)包括并串转换模块(3-1)、波特率产生模块(3-2)、 RAM分组控制及地址产生模块(3-3)、模拟开关和输出存储器,所述输出存储器由四个RAM 组成;RAM分组控制及地址产生模块(3-3)输出数据读取地址信号同时给存储器中的四个 RAM的地址信号输入端,RAM分组控制及地址产生模块(3-3)的分组控制信号输出端连接模拟开关的控制信号输入端,用于控制输入存储器中的某一个RAM的数据读取信号端分别与并串转换模块(3-1)的信号输入端连接,波特率产生模块(3-2)的时钟信号输出端与并串转换模块(3-1)的时钟信号输入端连接,并串转换模块(3-1)的数据输出端为输出缓冲模块的数据输出端。
6.根据权利要求I所述的一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器,其特征在于,所述控制模块(4)的状态转换包括初始化状态,对所有的寄存器进行初始化,直到有数据帧信息到来,进入输入状态状态;输入状态,读取输入的信道数据信息,并存放到RAM中,然后进入译码状态状态,译码状态,进行迭代译码,当译码成功或者达到最大迭代次数时,进入输出状态状态;输出状态,把迭代完的软判决信息输出,进入停止状态状态;停止状态,一帧译码结束,RAM中的数据清零,进入初始化状态。
全文摘要
一种码率为1/2、信息位长度为1024bit的AR4JA码的译码器,涉及一种译码器,为了解决目前需要一种译码性损失小且复杂度相对低的AR4JA码译码器的问题。输入缓冲模块的存储信号发送给迭代译码模块,迭代译码模块的判决信号发送给输出缓冲模块,控制模块的控制信号分别发送给与输入缓冲模块、迭代译码模块和输出缓冲模块,输入缓冲模块的数据输入端用于接收待译码的数据信号,输出缓冲模块的数据输出端输出译码结果;迭代译码模块包括状态控制模块、3个校验节点处理单元CNU、5个变量节点处理单元VNU、译码判决模块和15个顺序读取交织存储器。它用于对码率为1/2、信息位长度为1024bit的AR4JA码译码。
文档编号H03M13/11GK102611461SQ20121008628
公开日2012年7月25日 申请日期2012年3月28日 优先权日2012年3月28日
发明者吕谷, 宁磊, 李慧, 李明, 杨明川, 蔡润南, 郭庆 申请人:哈尔滨工业大学