基于MATLAB的卷积码的分析与应用_第1页
基于MATLAB的卷积码的分析与应用_第2页
基于MATLAB的卷积码的分析与应用_第3页
基于MATLAB的卷积码的分析与应用_第4页
基于MATLAB的卷积码的分析与应用_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于MATLAB的卷积码的分析与应用东北大学本科毕业设计(论文) 毕业设计(论文)任务书毕业设计(论文)任务书毕业设计(论文)题目:基于MATLAB的卷积码的分析与应用设计(论文)的基本内容:(1) 介绍纠错控制编码的相关理论,重点分析卷积码的相关编码和解码理论。(2) 在MATLAB中编写卷积码的编码和解码程序,模拟通信系统,针对TD-SCDMA系统中的卷积码进行仿真。(3) 进行纠错译码验证,纠错比较及误码率相关因素分析。毕业设计(论文)专题部分:题目:设计或论文专题的基本内容:学生接受毕业设计(论文)题目日期第2周指导教师签字:2010年3月8日-IV-东北大学本科毕业设计(论文) 摘

2、要基于MATLAB的卷积码的分析与应用摘 要随着现代通信的发展,特别是在未来4G通信网络中,高速信息传输和高可靠性传输成为信息传输的两个主要方面,而可靠性尤其重要。因为信道状况的恶劣,信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途径:一种是增加发送信号的功率,提高接收端的信号噪声比;另一种是采用编码的方法对信道差错进行控制。前者常常受条件限制,不是所有情况都能采用。因此差错控制编码得到了广泛应用。介绍了多种信道编码方式,着重介绍了卷积码的编码方法和解码方式。介绍了MATLAB的使用方法、编程方法、语句、变量、函数、矩阵等。介绍了TD-SCDMA通信系统和该系统下的卷积码,搭建了系

3、统通信模型。编写卷积码的编码和解码程序。用MATLAB仿真软件对TD-SCDMA系统的卷积码编解码进行仿真。对其纠正错码性能进行验证,并且对误码率进行仿真和分析。卷积码的编码解码方式有很多,重点仿真Viterbi算法。Viterbi算法就是利用卷积码编码器的格图来计算路径度量,选择从起始时刻到终止时刻的惟一幸存路径作为最大似然路径。沿着最大似然路径回溯到开始时刻,所走过的路径对应的编码输出就是最大似然译码输出序列。它是一种最大似然译码方法,当编码约束长度不大、或者误码率要求不是很高的情况下,Viterbi译码器设备比较简单,计算速度快,因而Viterbi译码器被广泛应用于各种领域。关键词:卷积

4、码;信道编码;TD-SCDMA;MATLAB东北大学本科毕业设计(论文) 目 录目 录毕业设计(论文)任务书I摘 要IIABSTRACTIII第1章 绪 论11.1 课题研究的背景和来源11.2 主要内容2第2章 相关理论介绍32.1 信道编码32.1.1 信道编码的分类32.1.2 编码效率32.2 线性分组码32.3 循环码52.4 卷积码62.4.1 卷积码简介72.4.2 卷积码的编码72.4.3 卷积码的解码13第3章 MATLAB应用213.1 数和算术的表示方法213.2 向量与矩阵运算213.2.1 通过语句和函数产生213.2.2 矩阵操作223.3 矩阵的基本运算223.3

5、.1 矩阵乘法223.3.2 矩阵除法233.4 MATLAB编程233.4.1 关系运算233.4.2 控制流25第4章 卷积码的设计与仿真274.1 TD-SCDMA系统274.1.1 系统简介274.1.2 仿真通信系统模型274.2 卷积编码设计284.3 编解码程序实现294.3.1 卷积码编解码设计294.3.2 卷积码编解码程序设计324.4 卷积码实现344.4.1 (2,1)卷积码的仿真研究344.4.2 (3,1)卷积码的仿真研究364.5 卷积码误码率38第5章 结 论415.1 总结415.2 展望41参考文献43致 谢45东北大学本科毕业设计(论文) 第1章 绪 论第

6、1章 绪 论1.1 课题研究的背景和来源纠错编码己有五十几年历史,早在1948年,香农(Shannon)在他的开创性论文“通信的数学理论”中,首次阐明了在有扰信道中实现可靠通信的方法,提出了著名的有扰信道编码定理,奠定了纠错码的基石。以后,纠错码受到了越来越多的通信和数学工作者,特别是数学家的重视,使纠错码无论在理论上还是在实际中都得到了飞速发展1。随着现代通信的发展,特别是在未来4G通信网络中,高速信息传输和高可靠性传输成为信息传输的两个主要方面,而可靠性尤其重要。因为信道状况的恶劣,信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途径:一种是增加发送信号的功率,提高接收端的信号噪

7、声比;另一种是采用编码的方法对信道差错进行控制。前者常常受条件限制,不是所有情况都能采用。例如卫星通信系统以很远的距离传送数据,由于衰落、噪声和干扰等的影响,信号在传输过程中将产生严重的畸变。如果要求信号具有尽可能大的能量,卫星体积和载重就会大大增加,使成本相对于原来大大增加,所以不可能给信号提供太大的能量,而建立在香农基础上的编码理论正可以解决这个问题,使得成本降低,实用性增强。前向纠错技术(FEC)特别是卷积编码是当今无线数字通信系统的一个十分重要的组成部分。它是一种有效的信道编码方法,在实际中广泛应用。目前无线数字通信系统都采用某一形式的卷积编码如在W-CDMA、DVB-S、DVB-T、

8、IEE802.11系统中都使用了卷积编码。由于其出色的纠错性能,一般在级联码中作为内码使用,从而保证外码有效地工作,大大提高了整个系统的纠错能力。而Viterbi译码器正是针对卷积码的一种最佳译码方法2。CDMA系统以其容量大、抗干扰能力强的特点成为第三代移动通信系统的标准。CDMA系统的信道编码大多采用卷积编码,这是因为卷积码的纠错能力强,不仅能纠随机差错,还可以纠突发差错。在CDMA系统中,对卷积码的译码采用Viterbi算法,它是一种最大似然译码方法,当编码约束长度不大、或者误码率要求不是很高的情况下,Viterbi译码器设备比较简单,计算速度快,因而Viterbi译码器被广泛应用于各种

9、领域。现代通信中,随着信号序列的传输速率的不断提高,要求卷积码译码的速度也要不断提高,Viterbi译码由于充分利用信号序列统计概率的特性而具有最佳性能。信道编码的应用领域主要包括深空通信、卫星通信、数据传输、移动通信、文件传输和数字音频/视频传输等。卷积编码作为信道编码方式中最重要一种,被广泛使用于卫星通信、无人机测控、深空通信、移动通信、水声通信等数字通信系统,甚至被采纳到某些无线通信的标准之中,如GSM、IS.95和CDMA2000的标准。在卫星通信中,码率为1/2和1/3的卷积码己经成为商业卫星通信系统中的标准编码方法。在无人机测控中,与传统的信道改善控制指令传输误码的方式比较,利用卷

10、积码对无人机遥控信道进行编码,在一定信道条件下,其控制指令传输误码有明显下降。在码速率不增加的条件下,无人机系统控制指令传输可靠性得到明显改善3。随着数字通信系统业务的不断拓展,随着卷积编码理论的不断发展和完善,卷积码的应用必将越来越广泛,卷积码在现在通信系统中的作用必将越来越大。1.2 主要内容论文框架:第一章介绍了卷积码的研究背景,第二章介绍了卷积码的相关理论,信道编码、线性分组码、循环码及卷积码的表示方式、编码方式、解码方式,第三章介绍了实现卷积码仿真所需要的软件方式,第四章进行卷积码设计与仿真,介绍了TD-SCDMA系统下的卷积码,对卷积码性能进行了研究。主要内容:介绍了信道编码方式。

11、着重研究列举了卷积码的编码方法和解码方式,介绍了MATLAB的使用方法和TD-SCDMA系统。编写卷积码的编码和解码程序。并且用MATLAB仿真软件对TD-SCDMA系统的卷积码编解码进行仿真,Viterbi算法就是利用卷积码编码器的格图来计算路径度量,选择从起始时刻到终止时刻的惟一幸存路径作为最大似然路径。沿着最大似然路径回溯到开始时刻,所走过的路径对应的编码输出就是最大似然译码输出序列。它是一种最大似然译码方法,当编码约束长度不大、或者误码率要求不是很高的情况下,Viterbi译码器设备比较简单,计算速度快,因而Viterbi译码器被广泛应用于各种领域。45- -东北大学本科毕业设计(论文

12、) 第2章 相关理论介绍第2章 相关理论介绍2.1 信道编码在数字通信中,根据不同的目的,编码可分为信源编码和信道编码。信源编码是为了提高数字信号的有效性以及为了使模拟信号数字化而采取的编码。信道编码是为了降低误码率,提高数字通信的可靠性而采取的编码。信道编码现在已经得到广泛的应用。2.1.1 信道编码的分类 信道编码有多种分类方式,主要有按照关系、范围及用途三种。(1)根据纠错码各码组信息元和监督元的函数关系,可分为线性码和非线性码。如果函数关系是线性的,即满足一组线性方程式,则称为线性码,否则为非线性码。(2)根据上述关系涉及的范围,可分为分组码和卷积码。分组码的各码元仅与本组的信息元有关

13、;卷积码中的码元不仅与本组的信息元有关,而且还与前面若干组的信息元有关。 (3)根据码的用途,可分为检错码和纠错码。检错码以检错为目的,不一定能纠错;而纠错码以纠错为目的,一定能检错4,5。2.1.2 编码效率 用差错控制编码提高通信系统的可靠性,是以降低有效性为代价换来的。定义编码效率尺来衡量有效性:R=k/n,其中,k是信息元的个数,n为码长。对纠错码的基本要求是:检错和纠错能力尽量强;编码效率尽量高;编码规律尽量简单。2.2 线性分组码线性分组码中的线性是指码组中码元间的约束关系是线性的,而分组则是对编码方法而言,即编码时将每k个信息位分为一组进行独立处理,变换成长度为n(n>k)

14、的二进制码组。线性分组码的编码过程可以简单描述成一个矢量和一个矩阵相乘的结果,即C=mG,其中C是经过编码后得到的n维编码输出c0,c1,cn-1,m是信息序列分组m0,m1,mk-1,G是由k个n维矢量g0,g1,gk-1构成的矩阵。 线性分组码编码问题的核心就是如何在n维线性空间Vn中找出满足一定要求的、由2k个矢量组成的k维线性子空间,也就是说,在满足给定码字最小距离或编码速率的前提下,如何根据已知的k个信息比特求得r=n-k个校验比特。 通过对码字生成矩阵G的初等变换,可以得到惟一的行简化梯形矩阵,再经过列交换可以得到如下形式的生成矩阵。 (2.1)其中P是k×(n-k)的矩

15、阵。 这种形式的生成矩阵G称为标准生成矩阵,按照标准矩阵生成的码字为 (2.2)其中前n-k-1个比特为校验比特,其值为 (2.3)后面k个比特就是信息比特。这种在生成码字中包含信息序列的编码码字称为线性系统分组码,简称为系统码。 系统码的编码结构相当简单,以系统(7,4)为例,其生成矩阵为: (2.4)系统码的编码结构非常简单,比如对系统(7,4)码,根据上面的生成矩阵G,只要在输入编码器的每组k个数字的后面,附加上(n-k)个监督码元就可得到所编出的n个码字。系统(7,4)码对应的监督矩阵为 (2.5)假如发送的码字为c=(1001011),而接收到的码字为Y=(1001001),信道传输

16、中产生的错误为e=(0000010)。由S=y·HT可求出S=(1,1,1)。2.3 循环码 循环码是线性分组码中最重要的一类,循环码是指码集合中的任一码字经过循环移位后得到的码字仍然是码集合中的码字。循环码的码字可以用矢量的形式表示,即: (2.6)也可用码多项式表示,即: (2.7)循环码c向右移一位的码字可由下式得出 (2.8)循环码可由它的生成多项式 (2.9)唯一确定。信息序列也可以表示成多项式 (2.10)那么生成码字可表示成 (2.11)由于多项式乘法等价于多项式系数的卷积,故 (2.12)循环码编码则可以通过移位寄存器组成的乘法电路结构实现。由数论知识可知, (n,k

17、)循环码的生成多项式g(x)一定是xn-1的n-k次因式: (2.13)反之,若g(x)为n-k次多项式,且xn-1能被g(x)整除,则g(x)一定能生成一个(n,k)循环码。以g(x)为生成多项式所构成的(n,k)循环码中g(x),x g(x),xk-1 g(x) (2.14)等七个多项式必定是线性无关,则循环码的生成矩阵G为 (2.15) 循环码的编码也可以通过移位寄存器组成的除法电路结构实现。以(7,4)循环码为例,选(7,4)码生成矩阵g(x)= g3(x)=1+x+x3 (2.16)它除尽1+x7,若输入信息码元为m(x)=1+x3则由 (2.17)因此,码多项式为 (2.18)对应

18、的码字为C=(0 1 1 1 0 0 1) 其中最右边的4位是信息元,详细的编码过程如下: (1) 三级移位寄存器初始状态为000,此时门打开,信息组以 (2.19)即1001次序分两路进入编码器:一路直接输出;另一路送入g(x)除法电路。 (2) 经4次移位后,信息组1001全部输出,它就是系统码的4个信息元;另一路则将全部信息元送入g(x)除法电路,并完成除法运算,这时移位寄存器中的状态就是余式r(x)系数,即为码的监督元(c0 c1 c2)。 (3) 输出开关倒向上面2,经3次移位,移位器由监督元(c0 c1 c2),跟在信息元 (c3 c4 c5 c6)后面依次输出为C=( c0 c1

19、 c2 c3 c4 c5 c6) =(0111001)。 (4) 送入第二组信息元,重复上述过程。 该码最小距离为3,它能纠正7个码元一组中任何单个错误,这7种错误图样和全零矢量一起组成译码表的陪集首,它组成了所有可能纠正的图样。现假设接收的多项式为 (2.20)即Y=(1 1 1 1 0 0 1)。译码器工作步骤如下:(1) 将移位寄存器清零。 (2) 输入Y分两路进入译码器:一路进入缓存器;另一路经门1进入伴随式计算电路与寄存器,并分别计算S0、S1、S2值。 (3) 在输出Y的同时,S0、S1、S2依次循环移位。无错误时,错误检测电路无输出,最后输出的码字C的码元与Y相对应码元一致,有错

20、误时,S0= S2=1,S1=0,错误检测电路输出为“1”,它正好与Y中错误位在输出端的模2加中相遇,并予以纠正后再输出。 2.4 卷积码相对于分组码而言,分组码的编码和译码都是各分组独立的进行,彼此不相关联。而卷积码的每一组不仅与本组的k位信息位有关,还和这以前各组的信息位有关。卷积码的结构比较复杂,但n和k的值相对于分组码来说比较小。译码也相对比较容易些。2.4.1 卷积码简介非分组码的卷积码的编码器是在任一段规定时间内产生n个码元,但它不仅取决于这段时间中的k个信息位,还取决于前(K-1)段规定时间内的信息位,这K段时间内的码元数目为K·k,称参数K为卷积码的约束长度,每k个比

21、特输入,得到n比特输出,编码效率为k/n,约束长度为K。在k=1的条件下,移位寄存器级数m=K-1。 卷积码一般可用(n,k,K)来表示,其中k为输入码元数,n为输出码元数,而K则为编码器的约束长度。典型的卷积码一般选n和k ( k< n ) 值较小,但约束长度K可取较大值(K<10),以获得既简单又高性能的信道编码6。卷积码是1955年Elias最早提出,1957年Wozencraft提出了序列译码。1963年Massey提出了一种性能稍差,但比较实用的门限译码方法。1967年维特比(Viterbi)提出了最大似然译码。它对存储器级数较小的卷积码的译码很容易实现,称为维特比算法或

22、维特比译码。2.4.2 卷积码的编码卷积码的编码器是由一个有k个输入位(端)、n个输出位(端),且具有m级移位寄存器所构成的有限状态的有记忆系统,通常称它为时序网络。2.4.2.1 卷积码的解析表示法一个二元(2,1,4)卷积码的编码器,它是由k=1,即一个输入位(端),n=2,即两个输出位(端),K=4,m=3即三级移位寄存器所组成的有限状态的有记忆系统。(1) 离散卷积若输入信息序列为(这里的卷积码是u0首先输入) (2.21)则对应输出为两个码字序列 (2.22)其相应编码方程可写为 (2.23)其中“”表示卷积运算,g g表示编码器的两个脉冲冲击响应,即编码可由输入信息序列u和编码器的

23、两个冲击响应的卷积得到,故称为卷积码7。这里的脉冲冲击响应是指,当输入信息为u=(100)时,所观察到的两个输出序列值。由于编码器有m=3级寄存器,故冲激响应至多可持续到K=m+1=3+1=4位,且可写成: (2.24)在一般情况下有: (2.25)经编码器后,两个输出序列合并为一个输出码字序列为: (2.26)若输入信息序列为: (2.27)则有: (2.28) (2.29)最后输出的码字为: (2.30)(2) 生成矩阵上述冲激响应g g又称为生成序列,若将该生成序列g g按如下方法排列,构成如下生成矩阵(当K=4,m=3时): (2.31)上述矩阵中,其中空白部分均为0。则上述编码方程可

24、改为矩阵形式 (2.32)G为卷积码的生成矩阵,若输入信息序列为一无限序列时,即u=(10111),生成矩阵则为一个半无限矩阵,即有起点无终点,因此称它为半无限。若: (2.33)则: (2.34)(3) 码多项式若将生成序列表达成多项式形式,有 (2.35)输入信息序列也可表达为多项式形式 (2.36)则卷积码可以用下列码多项式形式表达 (2.37) (2.38)2.4.2.2 卷积码的图形表示法卷积码的图形表示法有很多种,在此介绍最常用的三种,状态图表示法、树图表示法、网格图表示法。(1) 状态图表示法卷积编码器在下一时刻的输出取决于编码器当前的状态及下一时刻的输入。当前状态取决于编码器在

25、当时各移位寄存器所存储的内容,称编码器的各移位寄存器在任一时刻的存数(0或1)为编码器在该时刻的一个状态。编码器的总可能状态数是2mk个。对于n=2,k=1,K=3,m=2的(2,1,3)卷积编码器,则其总的可能状态数是4个。设以Si表示某状态,i =0,1,2,3,在某tj时刻,此 (2,1,3)卷积编码器的输出表述为 (2.39)它取决于uj,uj-1及uj-2三个值,其中uj是当前的输入值,uj-1及uj-2是以前输入的两个值。若要求出下一个tj+1时刻的输出值,则要知道当前的uj及uj-1值。当输入下一时刻的uj+1值时,就可以求出下一个tj+1时刻的cj+1及cj+1值。所以,为决定

26、下一个tj+1时刻编码器的输出,此(2,1,3)卷积编码器在当前tj时刻的状态用Si=(uj,uj-1) (i=0,1,2,3)表示即可。如表2.1所示。表2.1 状态转移表ujuj-1Si00S0=a 10S0=b 01S0=c 11S0=d设输入信息序列为: (2.40)1) 首先,对移位寄存器清洗、复0,移存器状态为00;2) 输入:u0=1,输出,故,移位寄存器状态改为10;3) 输入:u1=0,则根据(010),可算出:,故,移位寄存器状态改为01;4) 输入:u2=1,则根据(101),可算出:,故,移位寄存器状态改为10;5) 输入:u3=1,则根据(110),可算出:,故,移位

27、寄存器状态改为11;6) 输入:u4=1,则根据(111),可算出:,故,移位寄存器状态改为11;7) 输入:u5=0,则根据(011),可算出:,故,移位寄存器状态改为01;8) 输入:u6=0,则根据(001),可算出:,故,移位寄存器状态改为00;9) 输入:u7=0,则根据(000),可算出:,故,移位寄存器状态改为00; a00(0) 00 S0 d11 10(1) S311(1) 01(1) b 10 S1 c S2 01 00(1) 10(0)11(0) 01(0)按照上述步骤,可画出状态图如图2.1所示。图2.1 (2,1,3)卷积码状态图图2.1中,4个圆圈中的数字表示状态,

28、状态之间的连线与箭头表示转移方向,称作分支,分支上的数字表示由一个状态到另一个状态转移时的输出码字,而括号中数字表示相应的输入信息数字。例如若当前状态为11,即S3=11,则当下一时刻的输入信息位为u1=0时,输出码字c1=01,下一刻的状态为S2=01。若输入信息位u1=1,则输出码字为c1=10,下一时刻的状态仍为S3=11。(2) 树图表示法如果要展示出编码器的输入、输出所有可能情况,则可采用树图来描述,它是将上述编码器的状态图按时间展开而成的,如图2.2所示。由图2.2可见,若设初始状态S0=00作为树根,对每个时刻可能的输入进行分支,若分支的节点级数用表示,则当时,有两个可能分支。若

29、u0=0,则向上,即0分支向上,若u0=1则向下,即1分支向下,它们都达到下一个一级节点()。当时,对每个一级节点根据u1的取值也将产生上、下两个分支,并推进到相应的二级节点()。依此类推,就可以得到一个无限延伸的树状结构图。图2.2中各分支上的数字表示相应输出的码字。字段表示编码器所处的状态。对于特定输入信息序列:u=(10111000) (2.41)相应的输出:c=(11 10 00 01 10 01 11 00) (2.42)0011100111000110abcd00a1110b0111c0001d10100a1100a 110分支树根1分支0011100111000110abcd10

30、b01图2.2 (2,1,3)卷积码树图表示(3) 网格图表示法网格图的纵坐标表示所有状态,横坐标表示时间。这类网格图描述法在卷积码的概率译码中,特别在维特比译码中特别有用,它综合了状态图与树图的优点,即网格图既具有状态图结构简单,又具有树图的时序关系清晰特点。以(2,1,3)卷积码为例,当节点级数大于时,状态呈现重复。利用这种重复,即如果将图2.2中以后,码树上处于同一状态的同一节点折叠起来加以合并,就可以得到纵深宽度(或称高度)为2km=22=4的网格图,如图2.3所示。图2.3中实线表示输入为0时所走的分支,虚线表示输入为1时所走的分支。由图2.3可见这个图实质上是将图2.2的树图重复部

31、分合并而成的。它自即第二级节点开始,从同一状态出发所延伸的树结构完全一样。因此网格图能更为简洁地表示卷积码8。如果任意给定一个输入信息序列,则它在网格图中就必将存在一条特定的路径,比如u=(1011100),其输出编码为c=(11 10 00 01 10 01 11),即为上述网格图2.3中粗黑线所表示的路径。网格图是研究卷积码最大似然译码维特比算法的重要工具。a=00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 b=10 10 11 00 11 00 11 00 10 10 10c=01 01 01 01 01 01 01 01 01d=11 10 1

32、0 10l=0 l=1 l=2 l=3 l=4 l=5 l=6 l=7 l=0 1 2 3 4 5 6 7 图2.3 (2,1,3)卷积码网格图表示法2.4.3 卷积码的解码卷积码的解码方式可以分为两类:代数解码和概率解码。代数解码是利用编码本身的代数结构进行解码,不考虑信道的统计特性。大数逻辑解码,又称门限解码,是卷积码代数解码的最主要一种方法,也可以应用于循环码的解码。大数逻辑解码对于约束长度较短的卷积码最为有效,而且设备较简单。概率解码(又称最大似然解码)则是基于信道的统计特性和卷积码的特点进行计算。首先由沃曾克拉夫特针对无记忆信道提出的序贯解码就是概率解码方法之一;另一种概率解码方法是

33、维特比(Viterbi)算法。当码的约束长度较短时,它比序贯解码算法的效率更高、速度更快,目前得到广泛的应用9,10。2.4.3.1 大数逻辑解码卷积码的大数逻辑解码是基于卷积码的代数表述运算的,其一般工作原理如图2.4所示。首先将接受信息位暂存于移存器中,并从接收码元的信息位和监督位计算校正子。然后,将计算得出的校正子暂存,并用它来检测错码的位置。在信息位移存器输出端,接有一个模2加电路;当检测到输出的信息位有错时,在输出的信息为上加“1”,从而纠正之11。在图2.5中画出了一个(2,1,6)卷积码编码器。输入输出监督位信息位错码检测校正子移存器校正子计算信息位移存器图2.4 大数逻辑解码一

34、般工作原理b1b2b3b4b5b6ci输出bibici输入图2.5 (2,1,6)卷积码编码器原理方框图图2.5中编码器的监督位和信息位的关系如下,当输入序列为b1b2b3b4时,监督位为: (2.43)其监督关系式如下: (2.44)Si (i=16) 称为校正子,经过简单线性变换,可以得出如下正交校验方程组: (2.45)只有信息位b1出现在每个方程中,监督位和其他信息位均最多只出现一次。因此,在接收端解码时,考察b1 c1至b6 c6等12个码元,仅当b1出错时,才可能有3个或3个以上方程等于“1”。从而能够纠正b1的错误。按照这一原理画出的此(2,1,6)卷积码解码器原理方框图示于图2

35、.6中。由图2.6可见,当信息位出现一个错码时,仅当它位于信息位移存器的第6、3、2和1级时,才使校正子等于“1”。因此,这时的校正子序列为100111;反之,当监督位出现一个错码时,校正子序列将为100000。由此可见,当校正子序列中出现第一个“1”时,表示已经检出一个错码。后面的几位校正子则指出是信息位错了,还是监督位错了。门限电路将这4个电压(非模2)相加。当相加结果大于或等于3时,门限电路输出“1”,它除了送到输出端的模2加法器纠正输出码元b1的错码外,还送到校正子移存器纠正其中错误19,21。b1b2b3b4b5b6输出输入s6s2s1s3s4s5门限电路,“1”的个数大于等于3?图

36、2.6 (2,1,6)卷积码解码器原理方框图此卷积码除了能够纠正两位在约束长度中的随机错误外,还能纠正部分多于两位的错误。为了克服突发错误,可以采用更长的约束长度和在约束长度中能纠正更多错误的码。2.4.3.2 维特比解码算法维特比解码算法是维特比于1967年提出的。这种算法的基本原理是将接收到的信号序列和所有可能的发送信号序列比较,选择其中汉明距离最小的序列认为是当前发送信号序列。若发送一个k位序列,则有2k种可能的发送序列。当K较大时,存储量太大,使实用受到限制。维特比算法对此作了简化,使之能够实用。一种(3,1,3)卷积码编码器方框图如图2.7。输入biM2M3M1bi-2bi-1bi编

37、码输出图2.7 一种(3,1,3)卷积码编码器方框图该(3,1,3)卷积码的状态图如图2.8。111(1)110(1)b001(0)d000(0)a100(1)101(1)010(0)011(0)c 图2.8 (3,1,3)卷积码状态图设发送信息位为:1101,为了使图2.7中移存器的信息位全部移出,需要在信息位后面加入三个“0”,故经过编码后的发送序列为111 110 010 100 001 011 000,并且假设接收序列为111 010 010 110 001 011 000,其中第4和第11个码元为错码。由于这是一个(n,k,N)=(3,1,3)卷积码,发送序列的约束度N=3,所以首先

38、需要考察nN=9。000 000 000 000 000 该(3,1,3)卷积码网格图如图2.9。aa111 111 111 111 111 011 011 011 bb100 100 100 001 001 001 001 cc110 110 110 110 010 010 010 dd101 101 101 图2.9 (3,1,3)卷积码网格图该(3,1,3)卷积码编码举例如图2.10。a111 001 100 b110 c010 d 图2.10 (3,1,3)卷积码编码路径举例第一步考察接收序列前9位“111 010 010”。由此码的网格图2.10可见,沿路径每一级有4种状态a,b,c

39、,d。每种状态只有两条路径可以到达。故4种状态有8条到达路径。现在比较网格图中的这8条路径和接收序列之间的汉明距离。例如,由出发点状态a经过三级路径后到达状态a的两条路径中上面一条为“000 000 000”。它和接收序列“111 010 010”的汉明距离等于5;下面一条为“111 001 011”,它和接收序列的汉明距离等于3。同样,由出发点状态a经过三级路径后到达状态b,c,d的路径分别都有两条,故总共有8条路径。在表2.2中列出了这8条路径和汉明距离。表2.2 维特比算法解码第一步计算结果序号路径对应序列汉明距离幸存否1aaaa000 000 0005否2abca111 001 011

40、3是3aaab000 000 1116否4abcb111 001 1004是5aabc000 111 0017否6abdc111 110 0101是7aabd000 111 1106否8abdd111 110 1014是000111001110011100010101abcd000a111001b110011c100010d1011000a111000a1110分支树根1分支000111001110011100010101abcd001b110该(3,1,3)卷积码的树图如图2.11所示。图2.11 (3,1,3)卷积码编码树图现在将到达每个状态的两条路径的汉明距离作比较,将距离小的一条路径保

41、留,称为幸存路径。若两条路径的汉明距离相同,则可以任意保存一条。这样就剩下4条路径了,即表中第2,4,6和8条路径。第二步将继续考察接收序列中的后继3位“110”。现在计算4条幸存路径上增加一级后的8条可能路径的汉明距离。计算结果列于表2.3中。表2.3 维特比算法解码第二步计算结果序号路径原幸存路径的距离新增路径段新增距离总距离幸存否1abca+a3aa25否2abdc+a1ca23是3abca+b3ab14否4abdc+b1cb12是5abcb+c4bc37否6abdd+c4dc15是7abcb+d4bd04是8abdd+d4dd26否表2.3中最小的总距离等于2,其路径是abdc+b,相

42、应序列为111 110 010 100。它和发送序列相同,故对应发送信息位1101。按照表2.3中的幸存路径画出的网格图示于图2.12中。图中粗线路径是汉明距离最小(等于2)的路径。a111 b100 011 100 001 c110 010 110 d010 101 010 图2.12 对应信息位“1101”的幸存路径网格图为了使输入的信息位全部通过编码器的移存器,使移存器回到初始状态,在信息位1101后面加了三个“0”。若把这三个“0”仍看作是信息位,则可以按照上述算法继续解码。这样得到的幸存路径网格图示于图2.13中,图中的粗线仍然是汉明距离最小的路径,但是,若已知这三个码元是(为结尾而

43、补充的)“0”。则在解码计算时就预先知道在接收这三个“0”码元后,路径必然应该回到状态a。而由图可见,只有两条路径可以回到a状态。所以,这时图2.13可以简化成图2.14。 000 000111 011 011 011 001 100 100 001 001 110 010 010 101 101 101 abcd图2.13 对应信息位“1101000”的幸存路径网格图 000 000 111 011 011 011 001 100 100 001 001 110 010 010 101 101 abcd图2.14 对应信息位“1101”及以“000”结束的幸存路径网格图东北大学本科毕业设计(

44、论文) 第3章 卷积码实现第3章 MATLAB应用3.1 数和算术的表示方法Matlab中数的表示方法和一般的编程语言没有区别。如:3-990.00019.639721.6021E-206.02252e23数学运算符有:+加-减*乘/右除左除幂这里1/4和41有相同的值都等于0.25(注意比较:14=4)。只有在矩阵的除法时左除和右除才有区别。3.2 向量与矩阵运算3.2.1 通过语句和函数产生(1) 向量的产生除了直接列出向量元素(即所谓的“穷举法”)外,最常用的用来产生相同增量的向量的方法是利用“:”算符(即所谓的“描述法”)。在Matlab中,它是一个很重要的字符。如:z=1:5 z = 1 2 3 4 5即产生一个15的单位增量是1的行向量,此为默认情况。用“:”号也可以产生单位增

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论