版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于FPGA的规则(3,6)LDPC码译码器 李智明 王 琳 范 雷 时间:2008年07月29日 字 体: 大 中 小 关键词:<"cblue" " target='_blank'>译码器<"cblue" " targe
2、t='_blank'>最大<"cblue" " target='_blank'>传输速率<"cblue" " target='_blank'>纠错码<"cblue" " target='_blank'>输出数据 ? 摘?要: 基于软判决译码规则,采用完全并行的解
3、码结构,使用Verilog硬件描述语言,在Xilinx公司的FPGA(Virtex-2 xcv1000)上实现了码率为1/2、帧长为20bit的规则(3,6)LDPC码的<"cblue" " title="译码器">译码器,<"cblue" " title="最大">最大<"cblue" " title="传输速率">传输速率可达20Mbps。对LDPC码的实际应用具有重要的推动作用。? 关键词: LDPC码?
4、 变量节点? 校验检点? 因子图? 译码? 在通信系统中<"cblue" " title="纠错码">纠错码被用来提高信道传输的可靠性和功率利用率,低密度奇偶校验码(LDPC码)是目前最逼近香农限的一类纠错码。1962年,Gallager1首次提出了LDPC码的古典模型,即规则(regular)的LDPC码:(n,j,k),校验矩阵H具有恒定的列重量和行重量。LDPC码由于比Turbo码更接近香农限的误码率性能2和完全并行的迭代译码算法使其比Turbo码在部分场合具有更广泛的应用前景,从而使LDPC码成为当前纠错编码的一个研究热点。
5、基于良好的译码性能,LDPC码被认为是通信系统的下一代纠错码。1 规则LDPC码1.1 因子图描述? 因子图2有两类顶点,分别为变量节点(variable nodes,用空的圆点表示)和校验节点(check nodes,用方框表示)。Tanner图就是这两类顶点之间的二部图,即每条边的一端与变量节点相连,另一端与校验节点相连。变量节点代表实际的变量,校验节点代表这些变量节点之间的约束。对于(j,k)-LDPC码的每个变量(bit)都受j个校验(check)的约束,因此每个变量节点应该连接j个校验节点。每个校验方程有k个变量,因此每个校验节点应与k个变量节点相连。由于LDPC是一种线性码,使得它
6、的因子图一边为变量节点,一边为校验节点,故LDPC码的因子图表示有专用的定义:二部图(bipartite graphs)。? 图1表示了校验矩阵为H的规则(3,6)LDPC码的因子图,它是由10个变量定点和5个校验定点组成的二部图,边刚好对应于矩阵中1的位置,这种因子图是LDPC迭代译码算法的基础。?1.2 LDPC码的译码算法? LDPC码的译码采用信度传播(belief-propagation或BP)算法1,它与因子图相对应,如图1所示,利用BP算法获得好的译码性能,LDPC码的因子图中环的长度必须尽可能地长,长度为4的环会降低BP算法的性能,H矩阵设计时应避免出现。如果直接使用BP算法,
7、由于在迭代过程中存在大量的乘运算,将使硬件的复杂度大幅度上升,本论文采用改进的Log-BP算法14,把大量的乘运算转换成加运算,从而降低硬件复杂度及生产成本。? 首先定义可能用到的几个变量及符号的意义:H表示一个M×N的LDPC校验矩阵,Hi,j表示矩阵H中第i行第j列的元素。定义校验节点m上的第n个变量节点为N(m)n:Hm,n=1,关联在变量节点n上的第m个校验节点为M(n)=m:Hmn=1。定义校验节点m上关联的除了第n个变量节点以外的所有变量节点为N(M)n,变量节点n上关联的除了第m个校验节点外的所有校验节点为M(n)m。? LogBP算法的译码过程:? 输入数据:初始概率
8、n=1, , N;? <"cblue" " title="输出数据">输出数据:硬判决结果? 译码过程:? 初始化:对于接收到的每个变量节点n计算初始信道信息并对每个点计算初始信息,其中(m,n)(i,j)|Hi j=1。? ? 迭代译码:? (1)校验节点计算? ? ? 对于每个变量节点n,在完成变量节点计算后,对? (3)判决条件? ? 否则跳到第2步迭代译码部分,直至校验成功或者达到最大迭代次数。? 上面算法中的m,n和m,n都被称为外部信息,其中m,n是从变量节点向校验节点传递的信息,m,n是从变量节点向校验节点传递的信息。
9、通过logBP算法和BP算法的比较可以发现,logBP算法中除了f(x)=log剩下的都是加法运算,从而避免了BP算法中乘运算过多的弊病。在本文中函数f(x)利用FPGA中的查找表(Look-up Table, LUT)实现。2 H矩阵的生成? Gallager提出的LDPC码的H矩阵1必须满足以下两点:? (1)H矩阵的每一列有j个1,j>=3;? (2)H矩阵的每一行有k个1,k>j;? 本文中选择j=3,k=6,通过编程用matalab软件生成若干满足条件的H矩阵,选择其中一个性能最好的H矩阵进行LDPC码的fpga译码实现。当n=20时,最终选择H矩阵如图2所示。?3 LD
10、PC码完全平行译码结构? 由二部图可以直观地看出,变量节点计算需要的信息只需由校验节点来提供,校验节点计算需要的信息只需要由变量节点来提供,译码器在设计时可以给每个变量节点分配一个变量节点处理单元(Variable Node processing Unit,VNU),给每个校验节点分配一个校验节点处理单元(Check Node processing Unit,CNU),从而实现译码器的完全并行结构。? 译码器的核心模块是迭代译码部分,迭代译码的结构与算法是紧密相连的,译码结构的确定必须在仔细分析算法的基础上,迭代译码的过程是CNU和VNU模块计算结果的相互传递和更新。如果直接将CNU和VNU连
11、接,不但不容易控制迭代的过程并且可能出现不稳定状态,所以需要在CNU和VNU之间安插RAM以起到数据的缓冲和控制作用。输入、输出模块分别控制数据的输入和输出,当条件满足或者是迭代完成时,读入数据并把迭代结果输出。3.1 迭代译码结构? 图3表示平行迭代译码结构56。其中只画出两个节点之间一条数据通路的连接方式,因为是完全平行迭代译码结构,其他节点之间数据通路的连接方式与此相同。信道初始化数据送入VNU模块进行数据处理后,送入RAM模块,数据经过CNU模块,最后再送入VNU模块,这样就完成一次迭代。数据信息从VNU到CNU与数据信息从CNU到VNU分别在不同的数据线上传输(图1)。?3.2 变量
12、节点结构(VNU)? 变量节点的结构如图4所示。从中可以看出每个变量节点的度为3(j=3),四个5 bit输入信息包含一个信道信息和三个与之相连的校验节点的信息。由log-BP算法可以看到进行的是量化值的计算,没有牵扯到符号位,而m,n和n的计算都有包含符号位的相加,实际上其中还包含了减法运算,而本文采用的符号信息位的格式不能用于减法运算,需要将其转换为其他格式。在本文进行和运算时,首先将其转换为二进制补码形式,运算结束后再转换回符号量化位格式,查表(FX_LUT)进行f(x)运算。可由FPGA中的逻辑单元LUT来实现。Comb模块把1bit的判决结果x、4bit的查找表运算结果与符号位合在一
13、起作为外部信息送入校验节点(CNU)。图4上半部分为输出译码的结果,下半部分为三个数据输出通道中的一个,其余两个的结构与此完全相同,唯一不同的是加法器的输入, 根据log-BP算法,其中初始化数据经过S-to-T转换后的数据输入固定,另外两个输入数据为其他两个数据通道的输入经过S-to-T转换后的数据。?3.3 校验节点结构(CNU)? 校验节点(CNU)结构如图5所示,每个检验节点的度数为6(k=6),图5只画出数据的一个输出通道,其余5个输出通道的结构与此完全相同,加法器为检验节点首先对外部信息中的判决结果进行验证,看是否满足H·xT=0,满足则结束迭代。CNU模块中f(x)的x
14、计算是只计算量化值而不管正负的,而本译码器采用的符号量化位格式只需将符号位屏蔽即可得到相当于绝对值效果的量化位运算,也就是CNU模块中不需要将符号量化位转化为二进制补码形式。?3.4? 数据输入与输出? 完全平行译码结构可以分为三部分:迭代译码模块、数据输入模块和数据输出模块。因为是完全平行译码方式,输入数据经过串并转换后,同时读入VNU进行迭代计算。在数据输出模块,每一次迭代完成要进行条件判别,如果CNU所有的校验结果都为零,则输出数据。或者已经完成17次迭代,此时强制输出数据。数据的输入与输出分别用不同的时钟进行控制。图6为译码器其中一帧数据的测试结果,编码之前的信息为01010101,图
15、6中OutData为编码后数据的输出。?4? FPGA实现? 根据规则(3,6)LDPC码的完全平行译码结构,选择在Xilinx Virtex2 XC2V1000-fg256上对其进行物理实现,译码器采用Verilog硬件描述语言编写,用Xilinx的开发工具ISE6.1在XC2V1000上对译码器进行布局布线。硬件资源的占有率如表1所示。通过时序分析可以看出,译码器的最大时钟频率为20MHz,以输入时钟为基准,完成17次迭代最多需要20个时钟,完成一帧数据的输入需要20个时钟,可以得出译码器的最大译码速率为:V=20×20/20=20Mbps。图7为帧长为20bit的LDPC码的译
16、码性能,因为码长较短,性能没有达到最好。这为更高速 LDPC码译码器的设计打下坚实的基础,码长为1024bit,传输速率可进一步提高,甚至达到1Gbps,译码性能会更好67。? 本文基于软判决译码规则,采用完全平行译码结构,设计出帧长为20bit,码率为1/2的规则(3,6)LDPC码的译码器,在Xilinx virtex2 XC2V1000-fg256上对其进行物理实现,最大迭代次数为17次,传输速率达到20Mbps。LDPC码具有良好译码性能,与Turbo码相比更易于硬件实现,并能得到更高的译码速度。下一步将设计出码长为1024bit或码长更长的LDPC译码器,进一步提高传输速率,降低误码
17、率,为加速该技术在中国的商用奠定基础。参考文献1 R.G. Gallager.Low density parity check codes.IRE Trans. Inform. Theory,1962; IT-8(Jan):21282 R. M. Tanner. A recursive approach to low complexity?codes.IEEE Trans. Inform. Theory,1981; IT-42:5335473 M. Chiani, A. Conti, and A. Ventura.Evaluation of lowdensity parity-check co
18、des over block fading channels. in?2000 IEEE International Conference on Communications.?2000:11831187 4 S. Kim, G. E. Sobelman, J. Moon.Parallel VLSI Architectures for a Class of LDPC Codes. Circuits and Systems.IEEE International Symposium on, 2002;Volume:2 5 C. J. Howland and A. J. Blanksby.Parallel decoding architectures for lowdensity parity check codes. in Proc. IEEE?ISCAS,2001;4(5):7427456 A. J. Blanksby and C. J. Howland. A 690-mW 1-Gb/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沥青车道修补方案范本
- 园区树叶铺设方案范本
- 四川活性炭塔施工方案
- 展台改造处理方案范本
- 湿地升级保护方案范本
- 工地项目情管理方案范本
- 五华区美式装修施工方案
- 园艺布景考评方案范本
- 冬季知识小科普
- 危机公共关系管理
- HG/T 3811-2023 工业溴化物试验方法 (正式版)
- 数控车工中级工艺卡样例轴+盘
- 可口可乐乐购世界杯执行方案
- JB T 7689-2012悬挂式电磁除铁器
- 团队沟通与协作培训
- 财务管理现值及终值系数表
- 流体力学实验报告二
- 学校教师粉笔字培训课件(粉笔字教学课件)
- 《CPA长期股权投资》课件
- GB/T 8014.2-2005铝及铝合金阳极氧化氧化膜厚度的测量方法第2部分:质量损失法
- GB/T 31711-2015卫生杀虫剂现场药效测定与评价杀蚊幼剂
评论
0/150
提交评论