您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > -2-1-7-卷积码编译码器的FPGA实现
222011年第01期,第44卷通信技术Vol.44,No.01,2011总第229期CommunicationsTechnologyNo.229,Totally(2,1,7)卷积码编译码器的FPGA实现郭勇,杨欢(南京北方信息产业集团有限公司产品研发中心,江苏南京211153)【摘要】卷积码是一种重要的前向纠错信道编码方式,其纠错性能常常优于分组码,且(2,1,7)卷积码已应用于现代卫星通信系统中。Viterbi译码算法能最大限度地发挥卷积码的优异性能。这里采用VerilogHDL语言设计出(2,1,7)卷积码的编码器模块和基于Viterbi算法的译码器模块,译码器采用全并行结构,译码速度快。阐述了编译码器各模块的设计原理,并在ModelSim给出各模块的仿真测试结果。同时对译码器进行纠错性能测试,测试结果表明该Viterbi译码器有良好的纠错性能。【关键词】Viterbi;ACS;ModelSim;BMU;FPGA【中图分类号】TN911.22【文献标识码】A【文章编号】1002-0802(2011)01-0022-02Implementationof(2,1,7)ConvolutionalCoder/DecoderinFPGAGUOYong,YANGHuan(ResearchDepartmentofNorthInformationIndustrializationGroupCO.,LTD,NanjingJiangsu211153,China)【Abstract】ConvolutionalcodingisanimportanttypeofFECchannelcoding,anditserror-correctionabilityisusuallysuperiortothegroupcoding.(2,1,7)convolutionalcodingisimplementedinmodernsatellitecommunicationssystems.Viterbialgorithmcouldachievethebestdecodingperformanceofconvolutionalcoding.Thispaperdescribesthedesignof(2,1,7)convolutionalcodingmoduleanddecodingmodulewithverilogHDL.Thedecoderisall-parallelarchitecture,andfairlyhighindecodingspeed.Thepaperalsoexplainstheprinciplefordesigningvariousmodulesofthecoder/decoder,andinModelsim,givesthesimulationtestresultofvariousmodules.Theerror-correctiontestofthedecoderisdone,andthetestresultindicatesthattheviterbidecoderhasfairlygooderror-correctionability.【Keywords】Viterbi;ACS;ModelSim;BMU;FPGA0引言在无线通信中,由于信道的噪声和畸变,必然会对其中传输的信息引入失真和信号判决错误,因此需要使用纠错编码来降低误码率。卷积码的纠错性能优于分组码。在译码算法中,Viterbi译码算法性能最优[1]。其中(2,1,7)卷积码应用非常广泛。现采用Xilinx的FPGA设计(2,1,7)卷积码和Viterbi译码器,并对设计的译码器进行纠错能力测试,测试结果表明,该译码器纠错性能良好。1编码器的设计(2,1,7)卷积码编码器的10=k,20=n,7=N。码生成多项式为:08(171)G=,81)133(=G。63211)(xxxxxg++++=,(1)653221)(xxxxxxg+++++=。(2)设输入为1101001001000,编码后的输出为1101011101101001101110100000011100。用Verilog语言设计编码器模块,并编写仿真测试文件,在ModelSimSE6.4a中得到编码器的仿真波形,如图1所示[2]。图1(2,1,7)卷积码编码器的仿真波形2Viterbi译码器的设计Viterbi译码算法是1967年由维特比提出的基于最大似收稿日期:2010-05-27。作者简介:郭勇(1978-),男,工程师,硕士,主要从事无线通信及移动通信的研究及产品的研制工作;杨欢(1979-),男,工程师,硕士,主要从事无线通信产品研制及硬件电路的设计工作。23然概率的译码算法。相比于序列译码和门限译码,Viterbi译码算法有更好的纠错性能。2.1分支度量单元(BMU)的设计分支度量单元是计算译码输入与各状态分支间的距离度量值,并作为加-比-选(ACS)模块的输入。对BMU模块进行设计,仿真结果如图2所示[3]。图2BMU模块仿真波形2.2ACS(加-比-选模块)的设计ACS模块的功能是在每个状态节点上分别对两个前一状态输入支路的路径度量值和相应分支度量值相加并进行比较,并将其中较小的值作为该节点新的路径度量值。如果相加以后的值相同,则任意选择一条路径。这里采用全并行结构,因此需要64个ACS单元[4]。在每个时钟的上升沿对64个状态并行地进行一次加-比-选运算。对ACS模块进行设计,仿真结果如图3所示。图3ACS模块仿真波形2.3路径量度迭代更新计算模块对译码器来说,每送入2位译码输入,64个ACS模块并行地进行一次加-比-选运算,并储存运算的结果。这里需要计算42次,即回溯的译码深度。回溯深度要求是约束长度的5~10倍。这里选择6倍。为防止累加的过程中发生溢出,在编程中设定,如果经过ACS模块计算后,S0~S63的64个状态的路径度量值都大于4,则所有的值都减去4,实际的纠错性能满足要求。EN00~EN63是每个状态比较的结果,需要并行的输出,作为回溯模块找到正确路径的判据[5]。在经过42次计算后,所有可能的路径汇聚到一起,形成唯一一条最大似然路径,这条路径回溯后得到的输出序列为正确的译码序列,仿真结果如图4所示。图4路径量度迭代更新模块仿真波形2.4回溯操作模块设计与功能验证当迭代运算进行完42步以后,唯一的一条幸存路径已经生成,回溯操作的目的就是找到这条幸存路径。当所有的状态回溯完成后,下一步送到译码输出模块输出正确的译码序列,结果如图5所示。图5状态回溯模块仿真波形2.5译码输出模块的设计与功能验证把回溯的状态转移路径输入到译码输出模块,得到正确的译码输出结果[6]。输入编码器的比特为1101001001000,送入译码器的是有误码的编码序列1101011101111001101110101100011100,加粗为误码,译码器输出的是正确的1101001001000。译码器实现了预先的纠错功能,图6的仿真结果表明该译码器实现了预期的纠错功能。图6译码输出模块的仿真波形3纠错性能测试设进入编码器的比特序列为:11011001110110100111。(伪随机序列用Matlab中的randint函数产生)。正确的编码输出为:110101111000101100000111111101101010101101001010101100000000,仿真波形如图7所示。送入译码器的有误码的编码为:11010100100010110100011111110010111010110100101010110100000000000000。加粗表示误码。经过译码器纠错,输出正确的未编码序列。仿真波形如图8所示。图7编码输入仿真波形图8译码输出仿真波形4结语给出了(2,1,7)卷积码编码器和采用Viterbi算法的译码器各功能模块的设计方法,并对译码器纠错性能进行了测试,测试结果表明该译码器有良好的纠错性能。该译码器适用于对运算速度要求高、对资源占用较敏感的高速数字通信系统中。(下转第26页)26基带Miller码编码成功,当M=2(2个副载波周期)时,将基带Miller码与二倍周期于基带Miller码的时钟信号进行逻辑异或运算,即可得到包含两个副载波周期的Miller码。如图5为包含2个副载波周期的Miller码的形成仿真模型。图6为图5所示的仿真模型的Scope扫描图。图4FM0码编码模型仿真波形图5包含2个副载波周期的Miller码形成模型图6Miller码的编码仿真波形从图6可知该方案实现了包含两个副载波周期的Miller码的编码。该编码方案存在一个码元周期的延迟。3结语符合EPCC1G2协议的UHFRFID系统的数据编码直接决定着整个系统的性能、效率、系统复杂程度、成本和应用普及程度。对于读写器端而言,由于有较好电源供应且一般的读写器都有MPU,其编码较易实现,前向链路PIE码可采用软件编码后再调制发送信号。反向链路中的FM0码可用触发器和逻辑器件实现,其编码时在得到分开的两路信号后,利用时钟信号分别和两路信号进行逻辑与运算,再叠加得到编码信号。由于RFID系统中发送的Miller码序列每个信号中都含有多个副载波周期,基带Miller编码可以参照处理FM0码的处理方式进行编码,再与时钟信号进行异或运算即可得到多载波周期Miller码序列。这里提出了该系统的编码解决方案,且进行了反向链路的仿真实现,有助于新系统的实现。参考文献[1]EPCglobal.EPCTMRadio-FrequencyIdentityProtocolsClass1Generation2UHFRFIDProtocolforCommunicationsat860~960MHzVersion1.2.0[S].USA:[s.n.],2008:24-36.[2]单承赣,梁华东,焦宗东.IS018000_6中的FMO编码和PIE编码的编码技术[J].中国电子商情,2007(01):47-48.[3]周晓光,王晓华,王伟.射频识别(RFID)系统设计、仿真与应用[M].北京:人民邮电出版社,2008:217.[4]张予帅,蒋泰,苏平,等.ISO18000_6TypeB与TypeC标准的分析与比较[J].广西科学院学报,2009,25(04):336-339.[5]赵鸿,彭碧玉,王宏卓.基于VHDL的CRC校验及其在测控通信中的应用[J].通信技术,2010,43(02):29-30.[6]黄银龙,张辉,徐旭,等.车辆管理RFID电子标签内存规划研究[J].通信技术,2010,43(02):141-142.(上接第23页)参考文献[1]王新梅,肖国镇.纠错码—原理与方法[M].西安:西安电子科技大学出版社,2001:74-80.[2]西瑞克斯.无线通信的Matlab和FPGA实现[M].北京:人民邮电出版社,2009:46-52.[3]安乐,李实秋.Viterbi译码器的应用及其硬件设计与实现[J].通信技术,2008,41(05):26-28.[4]傅民仓,冯立杰,李立波,等.基于FPGA的高速Viterbi译码器的优化设计和实现[J].现代电子技术,2006,29(07):52-54.[5]周冲,胡剑浩,张忠培,等.CDMA系统通用高速Viterbi译码器的设计与实现[J].通信技术,2009,42(12):10-13.[6]张传达,李小文.卷积码编码及其Viterbi译码的实现[J].无线电工程,2006,36(07):45-48.输出1时钟信号密勒码编码In1Out1逻辑器件XOR输入1-505(a)输入信号-505(b)Miller码前半周期相位波形-505(c)Miller码后半周期相位波形-505(d)Miller码波形012345678910-505振幅(e)含两个载波周期的Miller码波形振幅振幅振幅振幅5-5-50(a)输入数据波形-505(b)输出每个数据的前半周期的相位波形-505(c)输出每个数据的后半周期
本文标题:-2-1-7-卷积码编译码器的FPGA实现
链接地址:https://www.777doc.com/doc-2074159 .html