卷积码编译码算法研究与实现.docx
- 文档编号:4573036
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:44
- 大小:357.22KB
卷积码编译码算法研究与实现.docx
《卷积码编译码算法研究与实现.docx》由会员分享,可在线阅读,更多相关《卷积码编译码算法研究与实现.docx(44页珍藏版)》请在冰豆网上搜索。
卷积码编译码算法研究与实现
毕业论文(设计)
题目卷积码编译码算法研究与实现
学院信息学院
系别电子与通信工程
专业信息工程
年级2007
学号XXXXX
姓名XXXX
导师XXXXX
定稿日期:
2011年6月24日
摘要
在数字通信系统中,通常采用差错控制编码来提高系统的可靠性。
自P.Elias首次提出卷积码编码以来,这一编码技术至今仍显示出强大的生命力。
目前,卷积码已广泛应用在无线通信标准中,如GSM,CDMA2000和IS-95等无线通信标准中。
本文简单介绍了纠错码的基本原理,论述了卷积码编译码原理和算法,并通过matlab仿真对卷积码性能进行研究,重点比较分析了不同码率、不同约束长度、不同回溯长度以及不同译码判决方式对Viterbi译码性能的影响,并得出相关结论。
关键词:
卷积码,Viterbi,Matlab,误码率,数字通信系统
Abstract
Indigitalcommunicationsystems,errorcontrolcodingisusuallyusedtoimprovesystemreliability.SinceP.Eliasputforwardtheconvolutionalcodingthefirsttime,thecodingisstillshowingstrongvitality.,hasbecomewidelyusedinsatellitecommunications,wirelesscommunicationsandmanyothercommunicationsystemsasakindofchannelcodingmethod.suchasGSM,CDMA2000andhasbeenawirelesscommunicationstandardsofIS-95.
Thisarticleintroducesthebasicprinciplesoferror-correctingcodes,mainlyreasearchtheprincipleoftheconvolutionalcodeencodinganddecodingandthealgorithms.Throughthematlabsimulation,westudytheperformanceofconvolutionalcode,especillytheperformanceoftheviterbidecodingwithdifferentbitrates,differentConstraintlength,differenttracebackdeptheanddifferentdecisiontypes,compareandmakeconclusions.
Keywords:
convolutionalcodes,Viterbi,Matlab,biterrorrate,thedigitalcommunicationsystem
1绪论
1.1选题背景和研究意义
信道编码是数字通信系统的重要组成部分,随着通信技术的不断发展,信道编码技术也在不断地发展。
在通信系统中,信道传输特性不理想以及噪声的存在,会导致接收端出现接收信号的错误,因此用于信道纠错的信道编码是数字通信系统中极为重要的一个环节。
二十世纪40年代香农定理的出现为人们指出了纠错码的研究方向。
根据香农的有噪信道编码定理[1],可以推导出一个码率为R的编码通信系统达到无误码传输状态所必须的最小信噪比的理论极限。
这个理论极限通常称为香农限,它说明对一个码率为R的编码通信系统,只有当SNR超过这个极限值时才能获得无误码传输。
只要SNR高于这个极限值,香农的编码定理保证了能够获得无误码传输的(可能相当复杂)编码通信系统的存在性。
另外,香农证明了在采用无限长的随机编码时,数据可以以接近信道容量的速率几乎无误码的传输,从而为信道编码的研究奠定了基础。
1.2信道编码的发展
1948年,信息论的奠基人Shannon在他的开创性论文“通信的数学理论”中,首次阐明了在有扰信道中实现可靠通信的方法,提出了著名的有扰信道编码定理[2],指出了实现最佳编码的三个基本条件:
(1)采用随机编码方式;
(2)编码长度L→∞,即码元序列长度无限;(3)译码采用最大似然译码算法。
在满足这三个条件的前提下,香农认为在有噪信道中可以实现无差错传输。
自20世纪50年代以来,编码理论研究与技术应用是长期围绕数字通信业务的特点和需要而发展的,即以伽罗华域上的代数编码方法为主体,研究适合串行信道中使用的码率尽可能高、检错纠错能力尽可能强的码型及其译码算法。
从结构上看,码型可划分为分组码和卷积码两大类;译码算法主要分为基于代数的译码算法和基于概率的译码算法两大类。
在分组码研究中,各种好的循环码、能纠正多重差错的BCH码、RS码[3]等码型都从理论推导到计算机模拟、搜索中找到。
分组码的译码方法可分为代数和非代数两类。
代数方法是以求解一组用以确定差错位置与数值的联立方程为基础的,而非代数方法以更为直接的方式确定差错模式。
非代数方法主要有梅吉特(Meggitt)于1961年首先提出的纠突发差错的梅吉特译码器、1963年梅茜(Massey)所给出的门限译码器和1962年由布拉格(Prange)首先介绍的信息组译码法。
此外,为了充分利用解调器所能提供的软信息,后来又陆续推出了一系列分组码软判决译码算法,如梅茜的后验概率(APP)译码算法、哈特曼(Hartmann)-鲁道夫(Rudolph)最优逐符号译码算法和威尔顿算法等。
在卷积码研究方面,随着Viterbi算法的提出及序列译码算法Fano算法的提出,也出现了以译码算法优化、减少译码复杂度为突破口的一批好的研究成果。
为了在译码复杂性不高的同时获得更好的纠错性能,范尼(Forney)于1966年首先提出级联码的概念。
20世纪70~80年代,以Goppa为首的学者从理论上构造了一类Goppa码[4],其中的一个子类的性能达到了香农信道编码定理中提出的“好码”的标准,具有理论上的重大意义。
这个时期由于大规模集成电路的迅速发展,为信道编码的大规模使用打下了坚实的基础,如美国在20世纪70年代发射的“旅行者”号宇宙飞船中就成功地运用了信道编码技术,使宇宙飞船能从遥远的太空传回清晰的照片。
同时,由于数字信号处理技术的发展,信道编码在通信系统中的应用也得到关注,并广泛用于实际的通信系统中。
另外,近几十年来,许多研究学者致力于寻找低编译码复杂度的实用化编码,先后提出了非规则重复累加码(IRA),以及多维并行级联单奇偶校验码(M-PC-SPC)等结构。
在1993年IC国际会议上,法国不列颠通信大学的C.Berrou、A.Glavieux[5]等人,首先提出了一种称之为Turbo码的编译码方案。
Turbo码的出现,是首次对第一章绪论3香农提出的非构造性问题的构造性回答,引起了研究人员对随机编码方法迭代译码[6]的热情关注,完善了香农信道编码理论。
LDPC码由Gallager[7]于19世纪60年代初期首次提出,然而不幸的是,他的重大发现被编码研究人员忽视了大约20年;1996年,两位LDPC码的追踪研究者MacKay和Neal[8]重新发现了LDPC码的优越性能。
总之,Turbo码和LDPC码[9]的出现,加深了人们对随机编码方式和迭代译码的全面理解,掀开了信道编码理论的新篇章,开创了数字通信领域的新纪元。
1.3主要内容
论文框架:
第一部分介绍了卷积码的研究背景;第二部分介绍了纠错码的基本理论,并介绍了几种常用的纠错码;第三部分介绍卷积码的编码译码原理;第四部分分析了实现卷积码编译码的算法,通过matlab仿真,对卷积码的性能进行了研究;第五部分主要是对本课题的研究进行总结.
本文主要介绍了信道编码的基本理论,着重研究了卷积码的编码方法和viterbi译码,介绍了MATLAB的使用方法,并编写卷积码的编码和解码程序,通过MATLAB仿真软件对卷积码编解码进行仿真。
重点对viterbi译码进行了研究,该算法就是利用卷积码编码器的格图来计算路径度量,选择从起始时刻到终止时刻的惟一幸存路径作为最大似然路径,沿着最大似然路径回溯到开始时刻,所走过的路径对应的编码输出就是最大似然译码输出序列。
它是一种最大似然译码方法,当编码约束长度不大、或者误码率要求不是很高的情况下,Viterbi译码器设备比较简单,计算速度快,因而Viterbi译码器被广泛应用于各种领域。
2纠错码基本理论
2.1纠错码基本理论
2.1.1纠错码概念
纠错码(errorcorrectingcode),在传输过程中发生错误后能在收端自行发现或纠正的码。
仅用来发现错误的码一般常称为检错码。
为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。
关系的建立称为编码。
码字到达收端后,可以根据编码规则是否满足以判定有无错误。
当不能满足时,按一定规则确定错误所在位置并予以纠正。
纠错并恢复原码字的过程称为译码。
检错码与其他手段结合使用,可以纠错[10]。
2.1.2基本原理和性能参数
纠错码编码的基本思想是在被传输的信息码元中附加一些监督码元,并且使它们之间确定某一种关系,根据传输过程中这种关系是否被破坏来发现或纠正错误。
可见这种差错控制能力是用增加信息量的冗余度来换取的[11]。
设编码后的码组长度、码组中所含信息码元以及监督码元的个数分别为n、k和r,三者间满足n=k+r,定义编码效率为R=k/n=1-r/n。
可见码组长度一定时,所加入的监督码元个数越多,编码效率越低。
香农的信道编码定理[12]指出:
对于一个给定的有扰信道,若信道容量为C,只要发送端以低于C的速率R发送信息,其中R为编码器的输入二进制码元速率,则一定存在一种编码方法,使编码错误概率P随着码长n的增加,按指数下降到任意小的值。
可以表示为
(2-1)
其中E(R)称为误差指数,它与R和C的关系如图2-1所示。
图2-1误差指数曲线
由定理有如下结论:
1.在码长及发送信息速率一定的情况下,为减小P可以增大信道容量。
由图2-1可知,E(R)随信道容量的增加而增大。
由式(2-1)可知,错误概率随E(R)的增大而指数下降。
2.在信道容量及发送信息速率一定的条件下,增加码长,可以使错误概率指数下降。
对于实际应用来说,此时的设备复杂性和译码延时也随之增加。
香农的信道编码定理为信道编码奠定了理论基础,虽然定理本身并没有给出具体的差错控制编码方法和纠错码的结构[13],但它从理论上为信道编码的发展指出了努力方向。
我们用3位二进制码组来说明检错纠错的基本原理。
3位二进制码元共有8种可能的组合:
000、001、010、011、100、101、110、111。
如果这8种码组都可传递消息,若在传输过程中发生一个误码,则一种码组会错误地变成另一种码组。
由于每一种码组都可能出现,没有多余的信息量,因此接收端不可能发现错误,认为发送的就是另一种码组。
如果选其中000、011、101、110来传送消息,这相当于只传递00、01、10、11四种信息,而第3位是附加的。
这位附加的监督码元与前面两位码元一起,保证码组中“1”码的个数为偶数。
这4种码组称为许用码组。
另外4种码组不满足这种校验关系,称为禁用码组,它们在编码后的发送码元中不会出现。
接收时一旦发现有禁用码组,就表明传输过程中发生了错误。
用这种简单的校验关系可以发现1个或3个错误,但不能纠正错误。
因为当接收到的码组为禁用码组时,比如为010,无法判断发送的是哪个码组。
虽然原发送码组为101的可能性很小(因为3个误码的概率一般很小),但不能绝对排除,即使传输过程中只发生一个误码,也有三种可能的发送码组即000、011和110。
假如我们进一步将许用码组限制为二种即000和111,显然这样可以发现所有2位以下的误码,若用来纠错,可以用最大似然准则纠正1位错误。
可以用一个三维立方体来表示上述3位二进制码组的例子,如图2-2所示。
图中立方体各顶点分别表示8位码组,3位码元依次表示x、y、z轴的坐标。
图2-2码距的几何解释
这里定义码组中非零码元的数目为码组的重量,简称码重。
比如100码组的码重为1,101码组的码重为2。
定义两个码组中对应码位上具有不同二进制码元的位数为两码组的距离,称为汉明(Hamming)距,简称码距[14]。
在前面3位二进制码组的例子中,当8种码组均为许用码组时,两码组间的最小距离为1,称这种编码的最小码距为1,一般记为dmin=l;当选4种码组为许用码组时,最小码距dmin=2;当用2种码组作为许用码组时,dmin=3。
从图2-2所示的立方体可以看出,码距就是从一个顶点沿立方体各边移到另一个顶点所经过的最少边数。
图中粗线表示000与111之间的一条最短路径。
很容易得出前例中各种情况下的码距。
根据以上分析可知,编码的最小码距直接关系到这种码的检错和纠错能力,所以最小码距是差错控制编码的一个重要参数。
对于分组码一般有以下结论[15]:
1.在一个码组内检测e个误码,要求最小码距
dmin>=e+1
(2-2)
2.在一个码组内纠正t个误码,要求最小码距
dmin>=2t+1
(2-3)
3.在一个码组内纠正t个误码,同时检测e(e
t)个误码,要求最小码距
dmin>=t+e+1
(2-4)
这些结论可以用图2-3所示的几何图形简单的给予证明。
图2-3码距与检错和纠错能力的关系
图2-3(a)中C表示某码组,当误码不超过e个时,该码组的位置移动将不超出以它为圆心以e为半径的圆。
只要其它任何许用码组都不落入此圆内,则C发生e个误码时就不可能与其它许用码组混淆。
这意味着其它许用码组必须位于以C为圆心,以e+1为半径的圆上或圆外。
因此该码的最小码距dmin为e+1。
图2-3(b)中C1、C2分别表示任意两个许用码组,当各自误码不超过t个时,发生误码后两码组的位置移动将各自不超出以C1、C2为圆心,t为半径的圆。
只要这两个圆不相交,当误码小于t个时,根据它们落在哪个圆内可以正确地判断为C1或C2,就是说可以纠正错误。
以C1、C2为圆心的两圆不相交的最近圆心距离为2t+l,即为纠正t个误码的最小码距。
式(2-1)所述情形中纠正t个误码同时检测e个误码,是指当误码不超过t个时,能自动纠正误码,而当误码超过t个时,则不可能纠正错误但仍可检测e个误码。
图2-3(c)中C1、C2分别为两个许用码组,在最坏情况下C1发生e个误码而C2发生t个误码,为了保证此时两码组仍不发生混淆,则要求以C1为圆心e为半径的圆必须与以C2为圆心t为半径的圆不发生交叠,即要求最小码距dmin>=t+e+1。
可见dmin体现了码组的纠、检错能力。
码组间最小距离越大,说明码字间最小差别越大,抗干扰能力就越强。
由于编码系统具有纠错能力,因此在达到同样误码率要求时,编码系统会使所要求的输入信噪比低于非编码系统,为此引入了编码增益的概念。
其定义为,在给定误码率下,非编码系统与编码系统之间所需信噪比Eb/N0之差(用dB表示)。
采用不同的编码会得到不同的编码增益,但编码增益的提高要以增加系统带宽或复杂度来换取。
(2.1.3)纠错码实现纠错码实现中最复杂的部分是译码。
它是纠错码能否应用的关键。
根据式
(1),采用的码长n越大,则误码率越小。
但n越大,编译码设备也越复杂,且延迟也越大。
人们希望找到的译码方法是:
误码率随码长n的增加按指数规律下降;译码的复杂程度随码长n的增加接近线性地增加;译码的计算量则与码长n基本无关。
可惜,已经找到的码能满足这样要求的很少。
不过由于大规模集成电路的发展,既使应用比较复杂的但性能良好的码,成本也并不太高。
因此,纠错码的应用越来越广泛。
纠错码传输的都是数字信号。
这既可用硬件实现,也可用软件实现。
前者主要用各种数字电路,主要是采用大规模集成电路。
软件实现特别适合计算机通信网等场合。
因为这时可以直接利用网中的计算机进行编码和译码,不需要另加专用设备。
硬件实现的速度较高,比软件可快几个数量级。
在传信率一定的情况下,如果采用纠错码提高可靠性,要求信道的传输率增加,带宽加大。
因此,纠错码主要用于功率受限制而带宽较大的信道,如卫星、散射等系统中。
纠错码还用在一些可靠性要求较高,但设备或器件的可靠性较差,而余量较大的场合,如磁带、磁盘和半导体存储器等。
在分组码的研究中,谱分析的方法受到人们的重视。
纠同步错误码、算术码、不对称码、不等错误纠正码等,也得到较多的研究.
2.2几种常用的纠错码
(1)RS编码
RS码即里德-所罗门码,它是能够纠正多个错误的纠错码,RS码为(204,188,t=8),其中t是可抗长度字节数,对应的188符号,监督段为16字节(开销字节段)。
实际中实施(255,239,t=8)的RS编码,即在204字节(包括同步字节)前添加51个全“0”字节,产生RS码后丢弃前面51个空字节,形成截短的(204,188)RS码。
RS的编码效率是:
188/204。
(2)卷积码
卷积码非常适用于纠正随机错误,但是,解码算法本身的特性却是:
如果在解码过程中发生错误,解码器可能会导致突发性错误。
为此在卷积码的上部采用RS码块,RS码适用于检测和校正那些由解码器产生的突发性错误。
所以卷积码和RS码结合在一起可以起到相互补偿的作用。
卷积码分为两种:
①基本卷积码:
基本卷积码编码效率为,η=1/2,编码效率较低,优点是纠错能力强。
②收缩卷积码:
如果传输信道质量较好,为提高编码效率,可以采样收缩截短卷积码。
有编码效率为:
η=1/2、2/3、3/4、5/6、7/8这几种编码效率的收缩卷积码。
编码效率高,一定带宽内可传输的有效比特率增大,但纠错能力越减弱。
(3)Turbo码
1993年诞生的Turbo码,单片Turbo码的编码/解码器,运行速率达40Mb/s。
该芯片集成了一个32×32交织器,其性能和传统的RS外码和卷积内码的级联一样好。
所以Turbo码是一种先进的信道编码技术,由于其不需要进行两次编码,所以其编码效率比传统的RS+卷积码要好。
(4)交织
在实际应用中,比特差错经常成串发生,这是由于持续时间较长的衰落谷点会影响到几个连续的比特,而信道编码仅在检测和校正单个差错和不太长的差错串时才最有效(如RS只能纠正8个字节的错误)。
为了纠正这些成串发生的比特差错及一些突发错误,可以运用交织技术来分散这些误差,使长串的比特差错变成短串差错,从而可以用前向码对其纠错,例如:
在DVB-C系统中,RS(204,188)的纠错能力是8个字节,交织深度为12,那么纠可抗长度为8×12=96个字节的突发错误。
实现交织和解交织一般使用卷积方式。
交织技术对已编码的信号按一定规则重新排列,解交织后突发性错误在时间上被分散,使其类似于独立发生的随机错误,从而前向纠错编码可以有效的进行纠错,前向纠错码加交积的作用可以理解为扩展了前向纠错的可抗长度字节。
纠错能力强的编码一般要求的交织深度相对较低。
纠错能力弱的则要求更深的交织深度。
一般来说,对数据进行传输时,在发端先对数据进行FEC编码,然后再进行交积处理。
在收端次序和发端相反,先做去交积处理完成误差分散,再FEC解码实现数据纠错。
交积不会增加信道的数据码元。
(5)伪随机序列扰码
进行基带信号传输的缺点是其频谱会因数据出现连“1”和连“0”而包含大的低频成分,不适应信道的传输特性,也不利于从中提取出时钟信息。
解决办法之一是采用扰码技术,使信号受到随机化处理,变为伪随机序列,又称为“数据随机化”和“能量扩散”处理。
扰码不但能改善位定时的恢复质量,还可以使信号频谱平滑,使帧同步和自适应同步和自适应时域均衡等系统的性能得到改善。
扰码虽然“扰乱”了原有数据的本来规律,但因为是人为的“扰乱”,在接收端很容易去加扰,恢复成原数据流。
实现加扰和解码,需要产生伪随机二进制序列(PRBS)再与输入数据逐个比特作运算。
PRBS也称为m序列,这种m序列与TS的数据码流进行模2加运算后,数据流中的“1”和“0”的连续游程都很短,且出现的概率基本相同。
利用伪随机序列进行扰码也是实现数字信号高保密性传输的重要手段之一。
一般将信源产生的二进制数字信息和一个周期很长的伪随即序列模2相加,就可将原信息变成不可理解的另一序列。
这种信号在信道中传输自然具有高度保密性。
在接收端将接收信号再加上(模2和)同样的伪随机序列,就恢复为原来发送的信息。
3卷积码的基本理论
3.1卷积码介绍
卷积码最早于1955年由Elias提出,稍后,1957年Wozencraft提出了一种有效地译码方法即序列译码。
1963年Massey提出了一种性能稍差但是比较实用的门限译码方法,使得卷积码开始走向实用化。
而后1967年Viterbi提出了最大似然译码算法,它对存储级数较小的卷积码很容易实现,被称作Viterbi译码算法,广泛的应用于现代通信中。
3.1.2卷积码的差错控制原理
卷积码是一种性能优越的信道编码,它的编码器和解码器都比较易于实现,同时还具有较强的纠错能力,这使得它的使用越来越广泛。
我们在一些资料上可以找到关于分组码的一些介绍,分组码的实现是将编码信息分组单独进行编码,因此无论是在编码还是译码的过程中不同码组之间的码元无关。
卷积码和分组码的根本区别在于,它不是把信息序列分组后再进行单独编码,而是由连续输入的信息序列得到连续输出的已编码序列。
即进行分组编码时,其本组中的n-k个校验元仅与本组的k个信息元有关,而与其它各组信息无关;但在卷积码中,其编码器将k个信息码元编为n个码元时,这n个码元不仅与当前段的k个信息有关,而且与前面的(N-1)段信息有关(N为编码的约束长度)。
同样,在卷积码译码过程中,不仅从此时刻收到的码组中提取译码信息,而且还要利用以前或以后各时刻收到的码组中提取有关信息。
而且卷积码的纠错能力随约束长度的增加而增强,差错率则随着约束长度增加而呈指数下降。
卷积码(n,k,N)主要用来纠随机错误,它的码元与前后码元有一定的约束关系,编码复杂度可用编码约束长度N*n来表示。
一般地,最小距离d表明了卷积码在连续N段以内的距离特性,该码可以在N个连续码流内纠正(d-1)/2个错误。
卷积码的纠错能力不仅与约束长度有关,还与采用的译码方式有关。
总之,由于n,k较小,且利用了各组之间的相关性,在同样的码率和设备的复杂性条件下,无论理论上还是实践上都证明:
卷积码的性能至少不比分组码差。
以二元码为例,输入信息序列为u=(u0,u1,…),其多项式表示为u(x)=u0+u1x+…+ulxl+…。
编码器的连接可用多项式表示为g(1,1)(x)=1+x+x2和g(1,2)(x)=1+x2,称为码的子生成多项式。
它们的系数矢量g(1,1)=(111)和g(1,2)=(101)称作码的子生成元。
以子生成多项式为阵元构成的多项式矩阵G(x)=[g(1,1)(x),g(1,2)(x)],称为码的生成多项式矩阵[16]。
由生成元构成的半无限矩阵称为码的生成矩阵。
其中(11,10,11)是由g(1,1)和g(1,2)交叉连接构成。
编码器输出序列为c=u·G,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 卷积码 译码 算法 研究 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)