基于MATLAB的卷积码的分析与应用Word文档下载推荐.doc
- 文档编号:1345862
- 上传时间:2023-04-30
- 格式:DOC
- 页数:50
- 大小:993KB
基于MATLAB的卷积码的分析与应用Word文档下载推荐.doc
《基于MATLAB的卷积码的分析与应用Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《基于MATLAB的卷积码的分析与应用Word文档下载推荐.doc(50页珍藏版)》请在冰点文库上搜索。
它是一种最大似然译码方法,当编码约束长度不大、或者误码率要求不是很高的情况下,Viterbi译码器设备比较简单,计算速度快,因而Viterbi译码器被广泛应用于各种领域。
关键词:
卷积码;
信道编码;
TD-SCDMA;
MATLAB
东北大学本科毕业设计(论文)目录
目录
毕业设计(论文)任务书 I
摘要 II
ABSTRACT III
第1章绪论 1
1.1课题研究的背景和来源 1
1.2主要内容 2
第2章相关理论介绍 3
2.1信道编码 3
2.1.1信道编码的分类 3
2.1.2编码效率 3
2.2线性分组码 3
2.3循环码 5
2.4卷积码 6
2.4.1卷积码简介 7
2.4.2卷积码的编码 7
2.4.3卷积码的解码 13
第3章MATLAB应用 21
3.1数和算术的表示方法 21
3.2向量与矩阵运算 21
3.2.1通过语句和函数产生 21
3.2.2矩阵操作 22
3.3矩阵的基本运算 22
3.3.1矩阵乘法 22
3.3.2矩阵除法 23
3.4MATLAB编程 23
3.4.1关系运算 23
3.4.2控制流 25
第4章卷积码的设计与仿真 27
4.1TD-SCDMA系统 27
4.1.1系统简介 27
4.1.2仿真通信系统模型 27
4.2卷积编码设计 28
4.3编解码程序实现 29
4.3.1卷积码编解码设计 29
4.3.2卷积码编解码程序设计 32
4.4卷积码实现 34
4.4.1(2,1)卷积码的仿真研究 34
4.4.2(3,1)卷积码的仿真研究 36
4.5卷积码误码率 38
第5章结论 41
5.1总结 41
5.2展望 41
参考文献 43
致谢 45
东北大学本科毕业设计(论文)第1章绪论
第1章绪论
1.1课题研究的背景和来源
纠错编码己有五十几年历史,早在1948年,香农(Shannon)在他的开创性论文“通信的数学理论”中,首次阐明了在有扰信道中实现可靠通信的方法,提出了著名的有扰信道编码定理,奠定了纠错码的基石。
以后,纠错码受到了越来越多的通信和数学工作者,特别是数学家的重视,使纠错码无论在理论上还是在实际中都得到了飞速发展[1]。
例如卫星通信系统以很远的距离传送数据,由于衰落、噪声和干扰等的影响,信号在传输过程中将产生严重的畸变。
如果要求信号具有尽可能大的能量,卫星体积和载重就会大大增加,使成本相对于原来大大增加,所以不可能给信号提供太大的能量,而建立在香农基础上的编码理论正可以解决这个问题,使得成本降低,实用性增强。
前向纠错技术(FEC)特别是卷积编码是当今无线数字通信系统的一个十分重要的组成部分。
它是一种有效的信道编码方法,在实际中广泛应用。
目前无线数字通信系统都采用某一形式的卷积编码如在W-CDMA、DVB-S、DVB-T、IEE802.11系统中都使用了卷积编码。
由于其出色的纠错性能,一般在级联码中作为内码使用,从而保证外码有效地工作,大大提高了整个系统的纠错能力。
而Viterbi译码器正是针对卷积码的一种最佳译码方法[2]。
CDMA系统以其容量大、抗干扰能力强的特点成为第三代移动通信系统的标准。
CDMA系统的信道编码大多采用卷积编码,这是因为卷积码的纠错能力强,不仅能纠随机差错,还可以纠突发差错。
在CDMA系统中,对卷积码的译码采用Viterbi算法,它是一种最大似然译码方法,当编码约束长度不大、或者误码率要求不是很高的情况下,Viterbi译码器设备比较简单,计算速度快,因而Viterbi译码器被广泛应用于各种领域。
现代通信中,随着信号序列的传输速率的不断提高,要求卷积码译码的速度也要不断提高,Viterbi译码由于充分利用信号序列统计概率的特性而具有最佳性能。
信道编码的应用领域主要包括深空通信、卫星通信、数据传输、移动通信、文件传输和数字音频/视频传输等。
卷积编码作为信道编码方式中最重要一种,被广泛使用于卫星通信、无人机测控、深空通信、移动通信、水声通信等数字通信系统,甚至被采纳到某些无线通信的标准之中,如GSM、IS.95和CDMA2000的标准。
在卫星通信中,码率为1/2和1/3的卷积码己经成为商业卫星通信系统中的标准编码方法。
在无人机测控中,与传统的信道改善控制指令传输误码的方式比较,利用卷积码对无人机遥控信道进行编码,在一定信道条件下,其控制指令传输误码有明显下降。
在码速率不增加的条件下,无人机系统控制指令传输可靠性得到明显改善[3]。
随着数字通信系统业务的不断拓展,随着卷积编码理论的不断发展和完善,卷积码的应用必将越来越广泛,卷积码在现在通信系统中的作用必将越来越大。
1.2主要内容
论文框架:
第一章介绍了卷积码的研究背景,第二章介绍了卷积码的相关理论,信道编码、线性分组码、循环码及卷积码的表示方式、编码方式、解码方式,第三章介绍了实现卷积码仿真所需要的软件方式,第四章进行卷积码设计与仿真,介绍了TD-SCDMA系统下的卷积码,对卷积码性能进行了研究。
主要内容:
介绍了信道编码方式。
着重研究列举了卷积码的编码方法和解码方式,介绍了MATLAB的使用方法和TD-SCDMA系统。
并且用MATLAB仿真软件对TD-SCDMA系统的卷积码编解码进行仿真,Viterbi算法就是利用卷积码编码器的格图来计算路径度量,选择从起始时刻到终止时刻的惟一幸存路径作为最大似然路径。
45
--
东北大学本科毕业设计(论文)第2章相关理论介绍
第2章相关理论介绍
2.1信道编码
在数字通信中,根据不同的目的,编码可分为信源编码和信道编码。
信源编码是为了提高数字信号的有效性以及为了使模拟信号数字化而采取的编码。
信道编码是为了降低误码率,提高数字通信的可靠性而采取的编码。
信道编码现在已经得到广泛的应用。
2.1.1信道编码的分类
信道编码有多种分类方式,主要有按照关系、范围及用途三种。
(1)根据纠错码各码组信息元和监督元的函数关系,可分为线性码和非线性码。
如果函数关系是线性的,即满足一组线性方程式,则称为线性码,否则为非线性码。
(2)根据上述关系涉及的范围,可分为分组码和卷积码。
分组码的各码元仅与本组的信息元有关;
卷积码中的码元不仅与本组的信息元有关,而且还与前面若干组的信息元有关。
(3)根据码的用途,可分为检错码和纠错码。
检错码以检错为目的,不一定能纠错;
而纠错码以纠错为目的,一定能检错[4,5]。
2.1.2编码效率
用差错控制编码提高通信系统的可靠性,是以降低有效性为代价换来的。
定义编码效率尺来衡量有效性:
R=k/n,其中,k是信息元的个数,n为码长。
对纠错码的基本要求是:
检错和纠错能力尽量强;
编码效率尽量高;
编码规律尽量简单。
2.2线性分组码
线性分组码中的线性是指码组中码元间的约束关系是线性的,而分组则是对编码方法而言,即编码时将每k个信息位分为一组进行独立处理,变换成长度为n(n>
k)的二进制码组。
线性分组码的编码过程可以简单描述成一个矢量和一个矩阵相乘的结果,即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)的矩阵。
这种形式的生成矩阵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),信道传输中产生的错误为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)循环码的生成多项式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),xg(x),…,xk-1g(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)
对应的码字为C=(0111001)其中最右边的4位是信息元,详细的编码过程如下:
(1)三级移位寄存器初始状态为000,此时门打开,信息组以
(2.19)
即1001次序分两路进入编码器:
一路直接输出;
另一路送入g(x)除法电路。
(2)经4次移位后,信息组1001全部输出,它就是系统码的4个信息元;
另一路则将全部信息元送入g(x)除法电路,并完成除法运算,这时移位寄存器中的状态就是余式r(x)系数,即为码的监督元(c0c1c2)。
(3)输出开关倒向上面2,经3次移位,移位器由监督元(c0c1c2),跟在信息元(c3c4c5c6)后面依次输出为C=(c0c1c2c3c4c5c6)=(0111001)。
(4)送入第二组信息元,重复上述过程。
该码最小距离为3,它能纠正7个码元一组中任何单个错误,这7种错误图样和全零矢量一起组成译码表的陪集首,它组成了所有可能纠正的图样。
现假设接收的多项式为
(2.20)
即Y=(1111001)。
译码器工作步骤如下:
(1)将移位寄存器清零。
(2)输入Y分两路进入译码器:
一路进入缓存器;
另一路经门1进入伴随式计算电路与寄存器,并分别计算S0、S1、S2值。
(3)在输出Y的同时,S0、S1、S2依次循环移位。
无错误时,错误检测电路无输出,最后输出的码字C的码元与Y相对应码元一致,有错误时,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个比特输入,得到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)提出了最大似然译码。
它对存储器级数较小的卷积码的译码很容易实现,称为维特比算法或维特比译码。
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和编码器的两个冲击响应的卷积得到,故称为卷积码[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。
则上述编码方程可改为矩阵形式
(2.32)
G为卷积码的生成矩阵,若输入信息序列为一无限序列时,即u=(10111…),生成矩阵则为一个半无限矩阵,即有起点无终点,因此称它为半无限。
若:
(2.33)
则:
(2.34)
(3)码多项式
若将生成序列表达成多项式形式,有
(2.35)
输入信息序列也可表达为多项式形式
(2.36)
则卷积码可以用下列码多项式形式表达
(2.37)
(2.38)
2.4.2.2卷积码的图形表示法
卷积码的图形表示法有很多种,在此介绍最常用的三种,状态图表示法、树图表示法、网格图表示法。
(1)状态图表示法
卷积编码器在下一时刻的输出取决于编码器当前的状态及下一时刻的输入。
当前状态取决于编码器在当时各移位寄存器所存储的内容,称编码器的各移位寄存器在任一时刻的存数(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时刻的c①j+1及c②j+1值。
所以,为决定下一个tj+1时刻编码器的输出,此(2,1,3)卷积编码器在当前tj时刻的状态用Si=(uj,uj-1)(i=0,1,2,3)表示即可。
如表2.1所示。
表2.1状态转移表
uj
uj-1
Si
S0=a
1
S0=b
S0=c
S0=d
设输入信息序列为:
(2.40)
1)首先,对移位寄存器清洗、复0,移存器状态为00;
2)输入:
u0=1,输出,,故,移位寄存器状态改为10;
3)输入:
u1=0,则根据(010),可算出:
,故,移位寄存器状态改为01;
4)输入:
u2=1,则根据(101),可算出:
,故,移位寄存器状态改为10;
5)输入:
u3=1,则根据(110),可算出:
,故,移位寄存器状态改为11;
6)输入:
u4=1,则根据(111),可算出:
7)输入:
u5=0,则根据(011),可算出:
8)输入:
u6=0,则根据(001),可算出:
,故,移位寄存器状态改为00;
9)输入:
u7=0,则根据(000),可算出:
a
00(0)00
S0
d
1110
(1)
S3
11
(1)01
(1)
b
10
S1
cS2
01
00
(1)10(0)
11(0)01(0)
按照上述步骤,可画出状态图如图2.1所示。
图2.1(2,1,3)卷积码状态图
图2.1中,4个圆圈中的数字表示状态,状态之间的连线与箭头表示转移方向,称作分支,分支上的数字表示由一个状态到另一个状态转移时的输出码字,而括号中数字表示相应的输入信息数字。
例如若当前状态为11,即S3=11,则当下一时刻的输入信息位为u1=0时,输出码字c1=01,下一刻的状态为S2=01。
若输入信息位u1=1,则输出码字为c1=10,下一时刻的状态仍为S3=11。
(2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 卷积码 分析 应用