基于MATLAB的Turbo码分析系统设计
2016-11-30陈美婕
许 娜,陈美婕
(1.山西大学电子信息工程系,山西 太原 030013;2.重庆工商大学继续教育学院,重庆 400067)
基于MATLAB的Turbo码分析系统设计
许 娜1,陈美婕2
(1.山西大学电子信息工程系,山西 太原 030013;2.重庆工商大学继续教育学院,重庆 400067)
在介绍了Turbo码的编译码原理之后,介绍了一个基于MATLAB的Turbo码编译码以及在信道中传输的仿真系统。本系统采用(GUI)图形界面设计,可自行设定带传输数据,得到Turbo码的编译码结果,给Turbo码的学习和教学都带来了较大方便。
Turbo码;迭代译码;MAP算法;GUI
自从香农提出信道编码定理以后,许多学者对信道码的研究与改进就未曾停止过。1993年,Turbo码在国际通信会议上首次被法国学者C.Berrou等提出[1]。在加性高斯白噪声的环境下,采用编码效率R=1/2、交织长度为65536的Turbo码,经过18次迭代译码后,在Eb/N0=0.7 dB时,其误码率已低于10-5,与香农极限只相差0.7 dB。世界各国研究学者被Turbo码的优越性能所深深吸引,将其作为热点研究课题[2]。虽然到目前为止Turbo码在数学上的机理还没有定论,但是,Turbo码的优越性能及其迭代译码算法的思想,很大程度上已经被人们所理解。
本文是基于MATLAB仿真平台,采用GUI图形界面设计,实现用户与计算机程序之间的交互,能够更直观地反映基于Turbo码数据传输,给Turbo码的教学与自学带来了方便。
1 系统设计
1.1 总体方案
Turbo码仿真系统按照Turbo码的基本结构进行设计,系统框图如图1所示。
图1 Turbo码的系统框图
1.2 Turbo码的编码原理
一种常用的Turbo码编码器如图2所示。一个交织器将两个分量编码器相连接,同一输入信息分两路进行传输,经分量编码器1和分量编码器2进行编码,这两路输出信息由交织器来实现尽量不相关。通常只需要从其中一路选取信息比特序列的输出即可,由于要从实现方面进行考虑,所以要选取未经交织处理的一路信息比特序列。同时,为了提高编码的速率,校验信息比特序列从2个分量编码器输出后,再经删余和复用,比特序列通常不采用删余处理。
图2 Turbo码的编码结构
1.3 Turbo码的译码器原理
图3为常用的Turbo码迭代译码结构,其中Turbo码编码器中的两个分量码编码器RSC1和RSC2分别与图3中的分量译码器1和分量译码器2相对应,编码器中的交织器则与交织器、解交织器相对应。
图3 Turbo码的译码结构
基本译码过程为:先验信息1,校验信息1及系统信息通过分量译码器1,分量译码器1选取某种译码算法来实现对分量编码器RSC1的译码,同时输出信息比特的外信息1。外信息1通过交织后,输出作为分量译码器2的信息比特的先验信息2;接收到的信息序列经过同样的交织,作为分量译码器2的接收信息。交织后得到的先验信息2、系统信息及校验信息2通过分量译码器2实现分量编码器RSC2的译码,生成外信息2。外信息2经解交织后生成分量译码器1的先验信息从而进入下一次迭代运算。当迭代结束或满足其它某种判决要求时,再经解交织、判决生成译码输出。为了确保译码器彼此之间能最大程度地使用彼此的译码信息,软判决译码信息应该由成员译码器输出,即采用二进制值0,1的概率。从以上的译码过程可以得出,Turbo码的外部信息来自其他译码器的反馈,结构如同涡轮发动机(turbo),这就是“Turbo码”名称的由来。
1.4 常见译码算法
软输入软输出(SISO)译码算法大致分两类:一类是MAP算法以及基于MAP算法的一些修正算法;另一类则是基于Viterbi算法的软输出Viterbi算法(SOVA)以及它的一些修正算法[3,4]。总体上讲,MAP类算法性能优于SOVA算法,但是实现复杂度要高于SOVA算法。
2 系统实现
本文主要是基于MATLAB的系统设计,采用GUI图形化界面,使原本枯燥难懂的Turbo码变得更易理解,能更加直观地对Turbo码中重要的参数形成感性认识。
2.1 界面设计
GUI界面如图4,本界面的主要参数包括迭代次数、删余选择、译码算法选择、RSC递归系统卷积编码生成矩阵设置。
图4 系统界面
另外本系统可以自行设置需要发送数据,并将发送过程中加入的噪声和译码之前及译码之后的信号显示在窗口,给出整个通信过程的大体过程。
2.2 参数说明
参数设置中,迭代次数是影响译码准确度的重要参数,理论上迭代次数越多,译码越准确,我们可以通过改变迭代次数,观察发送数据与接收数据的差异去验证这一结论;不同的算法也有不同的译码结果,算法的优劣也是决定译码准确度的重要因素,因此在本系统中也作为一个重要参数。
3 系统测试
基于MATLAB的Turbo码分析系统设计采用GUI图形界面设计,方便Turbo码的编译学习与实践。如图5,传输一组数据“1 0 1 1 1”,则其对应的Turbo码编码将为“1 1 -1 -1 1 -1 1 -1 1 -1 -1 1 1 1”,加入噪声“-0.088645 -0.090438 0.023337 0.17954 1.7577 1.0744 -0.063817 1.2625 -0.27937 -0.84734 -0.36192 -0.4822 -0.099039 -0.054559”,接收端收到的数据为“0.91136 0.90956 -0.97666 -0.82046 2.7577 0.07436 0.93618 0.26255 0.72063 -1.8473 -1.3619 0.5178 0.90096 0.94544”,译码之后的数据为“1 0 1 1 1”。可见,实现了数据的无差错传输。
图5 系统测试实验
4 不足与展望
本文基于MATLAB的Turbo码GUI界面系统设计,能够直观地反映基于Turbo码的数据传输过程,一方面有助于学生对数据传输形成初步的感性认识;另一方面,学生可将系统使用与理论学习相结合,从理论上对一组待传输数据进行编解码,再通过系统去验证,为Turbo码的学习提供了方便。
另外,基于MATLAB的GUI界面设计运行速度较慢,可以尝试基于C++、C#之类的语言进行仿真。
[1] 孙小东,于全与.Turbo码技术最新进展[J].电信科学,2003,19(1):5-9.
[2] 谢玉明,曹素华,肖扬.Turbo编解码结构及基于LOG-MAP算法的性能仿真研究[J].中国铁道科学,2005,26(1):83-89.
[3] 王学东,杨华.Turbo码MAP译码器硬件实现的研究[J].哈尔滨工业大学学报,2002,34(2):173-176.
[4] 楼喜中,毛志刚.Turbo码Log-MAP译码算法简化实现的研究[J].航空学报,2005,26(5):581-586.
An Analysis System for Turbo Code Technology Based on MATLAB
Xu Na1,Chen Meijie2
(1.ElectronicandInformationEngineeringDept.,ShanxiUniversity,TaiyuanShanxi030013,China; 2.ContinuingEducationSchool,ChongqingTechnologyandBusinessUniversity,Chongqing400067,China)
Turbo code is a rather complicated code technology method.An analysis system for turbo code technology is designed and introduced in this paper.The graphics user interfaces (GUI) is developed to show the coding and decoding process of turbo code technology.On the other hand,the transmitting data can be set manually,which can provide convenience for teaching and studying.
Turbo code technology; iterative decoding; map algorithm; GUI
2016-09-06
许 娜(1986-),女,河南周口人,助教,硕士,研究方向:视频图像处理及信息编码。
1674-4578(2016)05-0064-02
TN914
A