- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于硬件加速NIOSIITurbo解码器实现外文翻译
基于硬件加速的NIOS-IITurbo解码器实现
摘 要关键词:Turbo编码的概念(TC)是在相同的符号序列使用两个或两个以上的码元,然后通过解码其中一个码元获得的相关性来提升第二个码元的解码,以这种迭代的方式,反之亦然。这意味着,两个完全不同的代码,其中原码元数据的所有信息都被保留,TC是能够迭代解码直到在已解码符号序列中没有错误存在。因此TC的纠错性能依赖于两个码元之间的差异。为确保两个代码之间的高差异特性,一种常用的方法是交错地输入序列到其中的一个编码器,以便它以不同的顺序编码相同的位。因此一个典型的TC单元包括四个要素:编码器,解码器,交织器和去交织。
TC有很多的用途,因为它接近Shannon极限[1]。例如,TC被应用在磁性/光学数据存储系统,ADSL调制解调器和卫星通信[2]。然而,由于解码过程中的迭代操作,纠错性能依赖于实现TC的平台的计算能力和精度。因此,在嵌入式平台实现TC编解码并且充分发挥其潜力是一个巨大的挑战,因为这样的平台往往计算能力和精确度是有限的。
这项工作的目的是研究是否能通过硬件加速的方法来改善TC的嵌入式软件实现性能。这是通过在FPGA上合成软核处理器,为这颗处理器定制TC软件实现方法,以及设计和实施一个硬件加速器来减少软件执行时间该软件的执行时间的解决方案。
本文的其余部分安排如下:第二章介绍了编码/解码链的MATLAB原型。第三章详细介绍了软件和硬件加速器的实现方法。第四章陈述实验结果,第五章作一个本文的最后总结。
图1 Turbo编码的MATLAB原型结构方案
Turbo编码/解码器流程如图1所示。编码器采用两个由反馈多项式g1(D)= D2 + D +1和输出多项式g2(D)= D2 +1和g3(D)= D +1构成的递归系统卷积码。然后将噪音和编码序列添加到AWGN仿真信道中。
B.测试方法
测试包括编码长序列串数据,然后以不同的信噪比增加噪声。然后带噪声的数据传递到在输出数据之前多次执行迭代的解码器。解码完成后,将对解码后的数据与原始的数据进行比较,并且计算出误码率。选择从-8到2dB之间以1dB的步进信噪比来测试该原型,以突显在较低的信噪比情况下渐进的趋势和在较高的信噪比情况下仍呈现指数衰减的形状。测试从1到8次的迭代多个方面执行迭代,因为执行更多的迭代的好处可忽略不计。此外每个信噪比重复测试了1000次,计算所产生的一组数据的平均值以增加结果的可靠性。
C. Matlab仿真结果
吻合的测试结果如图2所示。从结果可以看出,更多的迭代次数减少了BER,这和预期是吻合的。此外可见,如果信噪比低于-5 dB,这时解码器不能提高多少接收到的数据的质量。
图2 Matlab仿真结果。每条曲线显示了一个描述中所述的特定迭代次数
第三章 FPGA实现
本章详细介绍了软件和硬件加速解码器的FPGA实现。选择的平台是在Altera DE2开发板,其中包括Cyclone II系列 EP2C35F672C6 FPGA芯片和软核处理器Nios II。软核处理器被设计成算术运算单元只有整数计算能力。这意味着一个必须使用一个定点表达式,或设计使用一个可执行可用的浮点算术单元。这样的实现可能为TC的实施提供了一个更好的数值稳定性,并且肯定减轻了它的设计。然而,一个浮点实施增加了所需的数值计算,相比简单的操作,因此,该算法的执行时间显著地增加了。因此,选择使用一个定点实施,其中所有的数字都以32位整形表示,放置在216位点。这意味着所有的数字都乘以216 = 65536,并四舍五入至低于由此产生的数值最接近的整数。然而,Nios处理器,是不具有将两个32位数字以全精度和范围相乘或者相除的能力。一个后果是,人们必须在所有的乘法运算中对范围或者精度做出一个选择。其一每个数除以28(或其中之一除以216),然后再将数字相乘,或者先将数字相乘,然后结果除以216。第一种方法是在乘以数字之前扔掉扔掉每个数字的8位精度,而第二种方法可能导致多达32位溢出位由于(231-1)2 = 262-232+1,这已经不符合一个32位寄存器了。因此嵌入式软件系统也常被设计成使用最佳这两种方法,即一个操作数除以28,结果也除以28。整个系统如图3所示。
在Nios II软核处理器的嵌入式软件由5个功能组成:接收数据的main,放置在正确的数据结构,并调用解码功能。当完成解码功能后,main将解码后的数据传送到PC。它还衡量测试其他功能的执行时间,并把这个信息传送到PC。decode负责解码过程中的迭代一部分,它调用interleave,deinterleave和sova功能模块。Interleave和deinterleave负责La,SYS或LLR的序列的交织解交织。它被选定为实施二次交织和使用查找表,而不是实施置换比矩阵向量乘
文档评论(0)