![[工程科技]基于MATLAB的卷积码的分析与应用.doc_第1页](http://file.renrendoc.com/FileRoot1/2019-1/12/31998859-6287-48f4-8a2f-a4ae0f99c975/31998859-6287-48f4-8a2f-a4ae0f99c9751.gif)
![[工程科技]基于MATLAB的卷积码的分析与应用.doc_第2页](http://file.renrendoc.com/FileRoot1/2019-1/12/31998859-6287-48f4-8a2f-a4ae0f99c975/31998859-6287-48f4-8a2f-a4ae0f99c9752.gif)
![[工程科技]基于MATLAB的卷积码的分析与应用.doc_第3页](http://file.renrendoc.com/FileRoot1/2019-1/12/31998859-6287-48f4-8a2f-a4ae0f99c975/31998859-6287-48f4-8a2f-a4ae0f99c9753.gif)
![[工程科技]基于MATLAB的卷积码的分析与应用.doc_第4页](http://file.renrendoc.com/FileRoot1/2019-1/12/31998859-6287-48f4-8a2f-a4ae0f99c975/31998859-6287-48f4-8a2f-a4ae0f99c9754.gif)
![[工程科技]基于MATLAB的卷积码的分析与应用.doc_第5页](http://file.renrendoc.com/FileRoot1/2019-1/12/31998859-6287-48f4-8a2f-a4ae0f99c975/31998859-6287-48f4-8a2f-a4ae0f99c9755.gif)
已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于 MATLAB 的卷积码的分析与应用 东北大学本科毕业设计(论文) 毕业设计(论文)任务书 -I- 毕业设计(论文)任务书毕业设计(论文)任务书 毕业设计(论文)题目:毕业设计(论文)题目: 基于基于 MATLAB 的卷积码的分析与应用的卷积码的分析与应用 设计设计(论文论文)的基本内容:的基本内容: (1) 介绍纠错控制编码的相关理论,重点分析卷积码的相关编码和解码理 论。 (2) 在 MATLAB 中编写卷积码的编码和解码程序,模拟通信系统,针对 TD-SCDMA 系统中的卷积码进行仿真。 (3) 进行纠错译码验证,纠错比较及误码率相关因素分析。 毕业设计(论文)专题部分:毕业设计(论文)专题部分: 题目:题目: 设计或论文专题的基本内容:设计或论文专题的基本内容: 学生接受毕业设计(论文)题目日期学生接受毕业设计(论文)题目日期 第第 2 周周 指导教师签字:指导教师签字: 2010 年年 3 月月 8 日日 东北大学本科毕业设计(论文) 摘 要 -II- 基于 MATLAB 的卷积码的分析与应用 摘 要 随着现代通信的发展,特别是在未来 4G 通信网络中,高速信息传输和高 可靠性传输成为信息传输的两个主要方面,而可靠性尤其重要。因为信道状况 的恶劣,信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途 径:一种是增加发送信号的功率,提高接收端的信号噪声比;另一种是采用编 码的方法对信道差错进行控制。前者常常受条件限制,不是所有情况都能采用。 因此差错控制编码得到了广泛应用。 介绍了多种信道编码方式,着重介绍了卷积码的编码方法和解码方式。介 绍了 MATLAB 的使用方法、编程方法、语句、变量、函数、矩阵等。介绍了 TD-SCDMA 通信系统和该系统下的卷积码,搭建了系统通信模型。编写卷积码 的编码和解码程序。用 MATLAB 仿真软件对 TD-SCDMA 系统的卷积码编解码 进行仿真。对其纠正错码性能进行验证,并且对误码率进行仿真和分析。卷积 码的编码解码方式有很多,重点仿真 Viterbi 算法。Viterbi 算法就是利用卷积码 编码器的格图来计算路径度量,选择从起始时刻到终止时刻的惟一幸存路径作 为最大似然路径。沿着最大似然路径回溯到开始时刻,所走过的路径对应的编 码输出就是最大似然译码输出序列。它是一种最大似然译码方法,当编码约束 长度不大、或者误码率要求不是很高的情况下,Viterbi 译码器设备比较简单, 计算速度快,因而 Viterbi 译码器被广泛应用于各种领域。 关键词:卷积码;信道编码;TD-SCDMA;MATLAB 东北大学本科毕业设计(论文) 目 录 -III- 目 录 毕业设计(论文)任务书毕业设计(论文)任务书.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.4 MATLAB 编程23 3.4.1 关系运算23 3.4.2 控制流25 第第 4 章章 卷积码的设计与仿真卷积码的设计与仿真27 4.1 TD-SCDMA 系统27 4.1.1 系统简介27 4.1.2 仿真通信系统模型27 东北大学本科毕业设计(论文) 目 录 -IV- 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.1 课题研究的背景和来源 纠错编码己有五十几年历史,早在 1948 年,香农(Shannon)在他的开创性 论文“通信的数学理论”中,首次阐明了在有扰信道中实现可靠通信的方法,提 出了著名的有扰信道编码定理,奠定了纠错码的基石。以后,纠错码受到了越 来越多的通信和数学工作者,特别是数学家的重视,使纠错码无论在理论上还 是在实际中都得到了飞速发展1。 随着现代通信的发展,特别是在未来 4G 通信网络中,高速信息传输和高 可靠性传输成为信息传输的两个主要方面,而可靠性尤其重要。因为信道状况 的恶劣,信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途 径:一种是增加发送信号的功率,提高接收端的信号噪声比;另一种是采用编 码的方法对信道差错进行控制。前者常常受条件限制,不是所有情况都能采用。 例如卫星通信系统以很远的距离传送数据,由于衰落、噪声和干扰等的影响, 信号在传输过程中将产生严重的畸变。如果要求信号具有尽可能大的能量,卫 星体积和载重就会大大增加,使成本相对于原来大大增加,所以不可能给信号 提供太大的能量,而建立在香农基础上的编码理论正可以解决这个问题,使得 成本降低,实用性增强。前向纠错技术(FEC)特别是卷积编码是当今无线数字通 信系统的一个十分重要的组成部分。它是一种有效的信道编码方法,在实际中 广泛应用。目前无线数字通信系统都采用某一形式的卷积编码如在 W- CDMA、DVB-S、DVB-T、IEE802.11 系统中都使用了卷积编码。由于其出色的 纠错性能,一般在级联码中作为内码使用,从而保证外码有效地工作,大大提 高了整个系统的纠错能力。而 Viterbi 译码器正是针对卷积码的一种最佳译码方 法2。 CDMA 系统以其容量大、抗干扰能力强的特点成为第三代移动通信系统的 标准。CDMA 系统的信道编码大多采用卷积编码,这是因为卷积码的纠错能力 强,不仅能纠随机差错,还可以纠突发差错。在 CDMA 系统中,对卷积码的译 码采用 Viterbi 算法,它是一种最大似然译码方法,当编码约束长度不大、或者 误码率要求不是很高的情况下,Viterbi 译码器设备比较简单,计算速度快,因 而 Viterbi 译码器被广泛应用于各种领域。 现代通信中,随着信号序列的传输速率的不断提高,要求卷积码译码的速 度也要不断提高,Viterbi 译码由于充分利用信号序列统计概率的特性而具有最 东北大学本科毕业设计(论文) 第 1 章 绪 论 - - 2 佳性能。信道编码的应用领域主要包括深空通信、卫星通信、数据传输、移动 通信、文件传输和数字音频/视频传输等。卷积编码作为信道编码方式中最重要 一种,被广泛使用于卫星通信、无人机测控、深空通信、移动通信、水声通信 等数字通信系统,甚至被采纳到某些无线通信的标准之中,如 GSM、IS.95 和 CDMA2000 的标准。在卫星通信中,码率为 1/2 和 1/3 的卷积码己经成为商业 卫星通信系统中的标准编码方法。在无人机测控中,与传统的信道改善控制指 令传输误码的方式比较,利用卷积码对无人机遥控信道进行编码,在一定信道 条件下,其控制指令传输误码有明显下降。在码速率不增加的条件下,无人机 系统控制指令传输可靠性得到明显改善3。 随着数字通信系统业务的不断拓展,随着卷积编码理论的不断发展和完善, 卷积码的应用必将越来越广泛,卷积码在现在通信系统中的作用必将越来越大。 1.2 主要内容 论文框架:第一章介绍了卷积码的研究背景,第二章介绍了卷积码的相关 理论,信道编码、线性分组码、循环码及卷积码的表示方式、编码方式、解码 方式,第三章介绍了实现卷积码仿真所需要的软件方式,第四章进行卷积码设 计与仿真,介绍了 TD-SCDMA 系统下的卷积码,对卷积码性能进行了研究。 主要内容:介绍了信道编码方式。着重研究列举了卷积码的编码方法和解 码方式,介绍了 MATLAB 的使用方法和 TD-SCDMA 系统。编写卷积码的编码 和解码程序。并且用 MATLAB 仿真软件对 TD-SCDMA 系统的卷积码编解码进 行仿真,Viterbi 算法就是利用卷积码编码器的格图来计算路径度量,选择从起 始时刻到终止时刻的惟一幸存路径作为最大似然路径。沿着最大似然路径回溯 到开始时刻,所走过的路径对应的编码输出就是最大似然译码输出序列。它是 一种最大似然译码方法,当编码约束长度不大、或者误码率要求不是很高的情 况下,Viterbi 译码器设备比较简单,计算速度快,因而 Viterbi 译码器被广泛应 用于各种领域。 东北大学本科毕业设计(论文) 第 2 章 相关理论介绍 - - 3 第 2 章 相关理论介绍 2.1 信道编码 在数字通信中,根据不同的目的,编码可分为信源编码和信道编码。信源 编码是为了提高数字信号的有效性以及为了使模拟信号数字化而采取的编码。 信道编码是为了降低误码率,提高数字通信的可靠性而采取的编码。信道编码 现在已经得到广泛的应用。 2.1.1 信道编码的分类 信道编码有多种分类方式,主要有按照关系、范围及用途三种。 (1)根据纠错码各码组信息元和监督元的函数关系,可分为线性码和非线性 码。如果函数关系是线性的,即满足一组线性方程式,则称为线性码,否则为 非线性码。 (2)根据上述关系涉及的范围,可分为分组码和卷积码。分组码的各码元仅 与本组的信息元有关;卷积码中的码元不仅与本组的信息元有关,而且还与前 面若干组的信息元有关。 (3)根据码的用途,可分为检错码和纠错码。检错码以检错为目的,不一定 能纠错;而纠错码以纠错为目的,一定能检错4,5。 2.1.2 编码效率 用差错控制编码提高通信系统的可靠性,是以降低有效性为代价换来的。 定义编码效率尺来衡量有效性:R=k/n,其中,k 是信息元的个数,n 为码长。 对纠错码的基本要求是:检错和纠错能力尽量强;编码效率尽量高;编码规律 尽量简单。 2.2 线性分组码 线性分组码中的线性是指码组中码元间的约束关系是线性的,而分组则是 对编码方法而言,即编码时将每 k 个信息位分为一组进行独立处理,变换成长 度为 n(nk)的二进制码组。 线性分组码的编码过程可以简单描述成一个矢量和一个矩阵相乘的结果, 即 C=mG,其中 C 是经过编码后得到的 n 维编码输出c0,c1,cn-1,m 是信息序 列分组m0,m1,mk-1,G 是由 k 个 n 维矢量g0,g1,gk-1构成的矩阵。 线性分组码编码问题的核心就是如何在 n 维线性空间 Vn中找出满足一定要 东北大学本科毕业设计(论文) 第 2 章 相关理论介绍 - - 4 求的、由 2k个矢量组成的 k 维线性子空间,也就是说,在满足给定码字最小距 离或编码速率的前提下,如何根据已知的 k 个信息比特求得 r=n-k 个校验比特。 通过对码字生成矩阵 G 的初等变换,可以得到惟一的行简化梯形矩阵,再 经过列交换可以得到如下形式的生成矩阵。 (2.1) I p ppp ppp ppp ggg ggg ggg g g g kk knk knkkk kn kn nkkk n n k G * )(* 1, 11 , 10, 1 1, 11 , 10, 1 1, 01 , 00, 0 1, 11 , 10, 1 1, 11 , 10, 1 1, 01 , 00, 0 1 1 0 100 010 001 其中 P 是 k(n-k)的矩阵。 这种形式的生成矩阵 G 称为标准生成矩阵,按照标准矩阵生成的码字为 (2.2) mmm ppp k kn IPmmGc 110 110 , 其中前 n-k-1 个比特为校验比特,其值为 (2.3) 10, , 1 1 , 1 1 , 0 0 kni p m p m p m p ik k iii 后面 k 个比特就是信息比特。这种在生成码字中包含信息序列的编码码字 称为线性系统分组码,简称为系统码。 系统码的编码结构相当简单,以系统(7,4)为例,其生成矩阵为: (2.4) 1000110 0100011 0010111 0001101 G 系统码的编码结构非常简单,比如对系统(7,4)码,根据上面的生成矩阵 G,只要在输入编码器的每组 k 个数字的后面,附加上(n-k)个监督码元就可得到 所编出的 n 个码字。 系统(7,4)码对应的监督矩阵为 (2.5) 1011100 1110010 0111001 H 假如发送的码字为 c=(1001011),而接收到的码字为 Y=(1001001),信道传 输中产生的错误为 e=(0000010)。 由 S=yHT可求出 S=(1,1,1)。 东北大学本科毕业设计(论文) 第 2 章 相关理论介绍 - - 5 2.3 循环码 循环码是线性分组码中最重要的一类,循环码是指码集合中的任一码字经 过循环移位后得到的码字仍然是码集合中的码字。循环码的码字可以用矢量的 形式表示,即: (2.6) ),( 110cccn c 也可用码多项式表示,即: (2.7) xccc n n xxc 1 110 )( 循环码 c 向右移一位的码字可由下式得出 (2.8) ) 1mod()( 1 2 2 1011 2 10 xxcxcxccxcxcxc nn nn n n xxc 循环码可由它的生成多项式 (2.9) x g x gg kn kn xg )( 10 唯一确定。信息序列也可以表示成多项式 (2.10) xmxmm k k xm 1 110 )( 那么生成码字可表示成 (2.11) ) 1mod()()()( x n xgxmxc 由于多项式乘法等价于多项式系数的卷积,故 (2.12) g mc j kn j jii 0 循环码编码则可以通过移位寄存器组成的乘法电路结构实现。由数论知识可知, (n,k)循环码的生成多项式 g(x)一定是 xn-1 的 n-k 次因式: (2.13) )()()(1 10 10 xhxhhxgxggx k k kn kn n xhxg 反之,若 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) ggg ggg ggg kn kn kn G 00 000 000 10 10 10 循环码的编码也可以通过移位寄存器组成的除法电路结构实现。以(7,4) 循 环码为例,选(7,4)码生成矩阵 g(x)= g3(x)=1+x+x3 (2.16) 东北大学本科毕业设计(论文) 第 2 章 相关理论介绍 - - 6 它除尽 1+x7,若输入信息码元为 m(x)=1+x3 则由 (2.17)1mod(,)1 ()( 3263347 xxxxxxx xxxm kn 因此,码多项式为 (2.18) xxxxxxx xxxmxrxc kn6323472 )1 ()()()( 对应的码字为 C=(0 1 1 1 0 0 1) 其中最右边的 4 位是信息元,详细的编码过程 如下: (1) 三级移位寄存器初始状态为 000,此时门打开,信息组以 (2.19) xxxxx xm kn63347 )1 ()( 即 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 c2 c3 c4 c5 c6) =(0111001)。 (4) 送入第二组信息元,重复上述过程。 该码最小距离为 3,它能纠正 7 个码元一组中任何单个错误,这 7 种错误 图样和全零矢量一起组成译码表的陪集首,它组成了所有可能纠正的图样。现 假设接收的多项式为 (2.20) x y x y x y x yy xy 6 6 3 3 2 210 )( 即 Y=(1 1 1 1 0 0 1)。 译码器工作步骤如下: (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 位信息位有关,还和这以前各组的 东北大学本科毕业设计(论文) 第 2 章 相关理论介绍 - - 7 信息位有关。卷积码的结构比较复杂,但 n 和 k 的值相对于分组码来说比较小。 译码也相对比较容易些。 2.4.1 卷积码简介 非分组码的卷积码的编码器是在任一段规定时间内产生 n 个码元,但它不 仅取决于这段时间中的 k 个信息位,还取决于前(K-1)段规定时间内的信息位, 这 K 段时间内的码元数目为 Kk,称参数 K 为卷积码的约束长度,每 k 个比特 输入,得到 n 比特输出,编码效率为 k/n,约束长度为 K。在 k=1 的条件下,移 位寄存器级数 m=K-1。 卷积码一般可用(n,k,K)来表示,其中 k 为输入码元数,n 为输出码元数, 而 K 则为编码器的约束长度。典型的卷积码一般选 n 和 k ( k大于 =大于等于 =等于=不等于 比较两个元素的大小,结果是“1”表明为真,结果是“0”表明为假。 例如 2+2=4,结果是“0”,表明为假。 例如一个 6 阶魔术方阵,矩阵元素计算满足各种条件: A=magic(6) 东北大学本科毕业设计(论文) 第 3 章 卷积码实现 - - 24 ans = 35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11 阶数为 n 的魔术方阵,即 nn 矩阵,是由 1n2的整数组成(n=6)。仔细观 察这个矩阵,我们会发现任何行和、任何列和都相等。另外,每个 33 子行列 式的对角线元素和,都可被 3 整除。为了显示这一特性,键入: p=(rem(A,3)=0) p = 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 为了再仔细地观察这个模式,可以用 format+格式画出矩阵的压缩格式。此 格式用“+”代表正元素, “-”代表负元素,空格代表 0。 format + p = + + + + + + + + + + + + find 函数在关系运算中很有用,它可以在 0-1 矩阵中找非零元素的下标。 若 y 是一个向量,例如:y=1 3 2 4 3.5 2.9,则 find(y 0, F = A*F/N; E = E + F; N = N + 1; end 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 27 第 4 章 卷积码的设计与仿真 4.1 TD-SCDMA 系统 4.1.1 系统简介 TD-SCDMA(Time DivisionSynchronous Code Division Multiple Access)是 ITU 正式发布的第三代移动通信空间接口技术标准之一。它得到了 CWTS(中国 无线通信标准化组织)及 3GPP 的全面支持,是中国电信行业近百年来第一个完 整的通信技术标准,是集 CDMA、TDMA、FDMA 技术优势于一体、系统容量 大、频谱利用率高、抗干扰能力强的移动通信技术,采用了智能天线、联合检 测、接力切换、同步 CDMA、软件无线电、低码片速率、多时隙、可变扩频系、 自适应功率调整等技术。TD-SCDMA 的技术优势主要表现在以下几个方面: (1) 频谱灵活性和支持蜂窝网的能力高。TD-SCDMA 仅需要 16MHz 的 最小带宽。若带宽为 5MHz 则支持 3 个载波,在一个地区可组成蜂窝网,支持 移动业务,并可通过自动信用卡道分配(DCA)技术提供不对称数据业务。 (2) 高频谱利用率。TD-SCDMA 为对称话音业务和不对称数据业务提供的 频谱利用率高。在使用相同频带宽度时,TD-SCDMA 可支持多一倍的用户。 (3) 设备成本低。在天线基站方面,TD-SCDMA 的设备成本低,主要因为: 由多天线阵、相干收发信机和 DSP 算法组成的智能天线具有降低多址干扰、提 高容量和接收灵敏度以及降低发射功率和天线基站成本等优点;各终端上行链 路信号在基站解调器完全同步,即上行同步,它的优点是 CDMA 码正交,降低 码间干扰,提高 CDMA 容量,可以简化基站硬件,降低天线基站成本;通过 DSP 软件实现无线电功能,即软件无线电技术,可实现智能天线和多用户检测 等基带数字信号处理,使系统可灵活地使用新技术,并可降低产品开发周期和 成本。系统兼容。由于 TD-SCDMA 同时满足 Iub、A、Gb、Iu、IuR 等多种接 口的要求,所以 TD-SCDMA 的基站子系统既可作为 2G 和 25G GSM 基站的 扩容,又可作为 3G 网中的基站子系统,能同时兼顾现在的需求和未来的发展。 4.1.2 仿真通信系统模型 为了模拟实际通信系统,需要建立通信系统模型,仿真通信系统框图如图 4.1 所示,其中信源为随机输入的二进制码元,卷积编码即是通过 MATLAB 仿 真的部分。信道为简单的加性高斯白噪声信道,即产生误码的原因。调制方式 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 28 为 BPSK 调制,译码方式采用了 Viterbi 算法的卷积码译码,也是通过 MATLAB 仿真的部分。最终的信宿即为接收端。 图 4.1 仿真通信系统框图模型 4.2 卷积编码设计 在 3GPP 中统一定义了两种卷积编码方式:编码速率分别为 1/2 和 1/3 的、 约束长度为 9 的卷积编码。即(2,1)卷积码和(3,1)卷积码。这两种编码现在已得 到广泛应用。 图 4.2 是码速率为 1/2、约束长度为 9 的卷积编码器的结构框图,输出序列 为输出 0、输出 1、输出 0、输出 1。它有一个输入端。两个输出端。每次 向编码器中移入一位码元。 图 4.2 1/2 码率的卷积编码器 图 4.3 是码速率为 1/3、约束长度为 9 的卷积编码器的结构框图,输出序列 为输出 0、输出 1、输出 2、输出 0、输出 2。它有一个输入端。三个输出 端。每次向编码器中移入一位码元。 图 4.3 1/3 码率的卷积编码器 信 源 卷积 编码 信 宿 卷积 译码 解 调 AWGN 信道 BPSK 调制 输入 输出 0 G0=557 DD DDDD D D 输出 1 G1=663 输出 2 G2=711 D DDDD DDD 输出 0 G0=561 输出 1 G1=753 输入 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 29 在开始编码前,先在每个待编码块的末尾添加 8 个 0 比特。编码器中移位 寄存器(以下简称移存器)的初始状态为零。 卷积编码的实现很简单,要注意的是分清约束长度为 9 的卷积码分为:编 码率分别为 1/2 和 1/3 两种。 对于编码率为 R=1/2 的约束长度为 9 的卷积码,其编码矩阵为:G0 =561(八 进制数),G1=753。 对于编码率为 R=1/3 的约束长度为 9 的卷积码,其编码矩阵为:G0=557(八 进制数),G1=663,G2=711。 即,码率为 R=1/2 时: (4.1) 110101111 100011101 G 当码率为 R=1/3 时: (4.2) 100100111 110011011 111101101 G 4.3 编解码程序实现 为了模拟卷积码的编码和解码过程,需要编写卷积码编码和解码程序,再 进行仿真验证及误码率分析。 4.3.1 卷积码编解码设计 卷积码的编码器有三种主要元件构成,包括移位寄存器、模 2 加法器和一 个旋转开关。其中寄存器位数为一个码组中信息位位数 k 的整数倍。寄存器可 以看做是一个 FIFO 的队列。信息比特序列以此由入口移入寄存器,移位开始 时寄存器空闲高位补 0,移位结束时寄存器空闲低位补 0。信息比特序列每移动 一次,取位于寄存器中的一段码字与卷积码生成矩阵模 2 乘,得到卷积码输出 码元序列。其流程图如图 4.4 所示。 Viterbi 译码思想是将接收到的信号序列和所有可能的发送信号序列相比较, 选择其中汉明距离最小的序列认为是当前发送信号序列。在维特比算法中首先 要生成网格图。然后逐级计算每一条路径与接收序列的汉明距离。每一级的每 一个状态中只保留汉明距离最小的一条路径。当计算到最后一级时,剩余路径 只剩一条。回溯这条幸存路径即可得到解码输出序列。其流程图如图 4.5 所示。 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 30 开始 是 是 否 结束 否 i=i+1 是 是 error否 否 输入序列数是 k 的整数 倍 寄存器个数是 k 的整数 倍 确定编码器寄存器个数 G_2 确定编码器输出端个数 n i=1 ? gg_out 与输入矩阵 G 模 2 相乘 输出 取输入序列前 G_2 - i 个,得到 gg_out 函数 i=i-1 gg_out 与输入矩阵 G 模 2 相乘 输出 取输入序列前 G_2 个,得到 gg_out 函数 i=i+1 i=寄存器个数 G_2 -1 ? gg-out 与输入矩阵 G 模 2 相乘 输出 取输入序列前 i 个,其后补 0 得到 gg_out 函数 i=1 编码器初始化 开始 寄存器个数是 k 的整数倍 输入序列数是 k 的整数倍 i=1 gg-out 与输入矩阵 G 模 2 相乘输出 gg_out 与输入矩阵 G 模 2 相乘输 出 gg_out 与输入矩阵 G 模 2 相乘输 出 结束 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 31 图 4.4 卷积码编码程序流程图 结束 error 是 是 否 否 由后到前得到各级的状态 从最佳路径中产生解码 回溯最佳路径 尾部信道更改幸存路径 尾部信道状态转移路径选择 无尾信道更改幸存路径 无尾信道更改汉明距 无尾信道计算汉明距,加、比、选 产生幸存状态矩阵 按输入输出划分矩阵 确定级数 产生状态转移矩阵、输出矩阵、输入矩阵 产生状态距离矩阵 产生网格图 确定 l 输入序列数是 k 的整数倍 寄存器个数是 k 的整数倍 开始 开始 寄存器个数是 k 的整数倍 输入序列数是 k 的整数倍 结束 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 32 图 4.5 Viterbi 译码程序流程图 4.3.2 卷积码编解码程序设计 根据卷积码的算法及流程图编写程序。 (1) 编码程序 %header,后面的寄存器需补零 for i=1:size(G,2)/k-1 input_matrix=coder_input(i*k:-1:1),zeros(1,size(G,2)-i*k); %取输入序列的前i*k个,其后补0 gg_out=G*input_matrix; %生成矩阵和寄存器单元中的内容相乘得到输出 for l=1:n channel_input(n*(i-1)+l)=rem(gg_out(l),2); %进行模二运算得到编码器输出 end end %body for i=size(G,2)/k:depth_of_input input_matrix=coder_input(k*i:-1:k*i-G_2+1); %取输入序列的G-2个,即与寄存器个数相等 gg_out=G*input_matrix; for l=1:n channel_input(n*(i-1)+l)=rem(gg_out(l),2); %模二运算 end end %tailer,前面的寄存器需补零 for i=(G_2/k-1):-1:1 input_matrix=zeros(1,G_2-i*k),coder_input(depth_of_input*k:- 1:(depth_of_input-i)*k+1); %前G_2-i*k个补0 gg_out=G*input_matrix; for l=1:n channel_input(n*(G_2/k-i-1)+l+depth_of_input*n)=rem(gg_out(l),2); %模二运算 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 33 end (2) 解码程序 for j=0:step:number_of_states-1 for l=0:2k-1 branch_metric=0; binary_output=deci2bin(output(j+1,l+1),n); %将理想输出转化为二进制 for ll=1:n %计算汉明距 branch_metric=branch_metric+metric(channel_output_matrix(ll,i),binary_output(ll); end %在AWGN信道下,最大似然估计转化为求最小汉明距 %如果下一状态度量距离大于当前距离加汉明距,或是下一状态未被遍历过则设 为当前状态下一状态的幸存状态,当前距离加汉明距设为下一状态的距离 if(state_metric(nextstate(j+1,l+1)+1,2)state_metric(j+1,1)+branch_metric)|flag(next state(j+1,l+1)+1)=0) state_metric(nextstate(j+1,l+1)+1,2)=state_metric(j+1,1)+branch_metric; %更改汉明距 survivor_state(nextstate(j+1,l+1)+1,i+1)=j; %更改幸存路径 flag(nextstate(j+1,l+1)+1)=1; end end end %开始回溯最佳路径,从最佳路径中找出解码 %state_sequence(1x结点深度)矩阵,1dep分别记载各个阶段的路径(即前一 状态数)。1dep分别记载各个阶段的路径(即前一状态数)。 %从最佳路径中产生解码 %由后到前得到各级的状态 state_sequence=zeros(1,depth_of_trellis+1); state_sequence(1,depth_of_trellis)=survivor_state(1,depth_of_trellis+1); %开始回溯最佳路径 for i=1:depth_of_trellis state_sequence(1,depth_of_trellis- i+1)=survivor_state(state_sequence(1,depth_of_trellis+2-i)+1),depth_of_trellis-i+2); 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 34 end %解码输出矩阵,输出码元个数为结点深度减L decoder_output_matrix=zeros(k,depth_of_trellis-L+1); %由各级的状态和输入矩阵得到各级的输入 for i=1:depth_of_trellis-L+1 dec_output_deci=input(state_sequence(1,i)+1,state_sequence(1,i+1)+1); %解出码元 dec_output_bin=deci2bin(dec_output_deci,k); %按k将输出码元转换 decoder_output_matrix(:,i)=dec_output_bin(k:-1:1); end 4.4 卷积码实现 在 TD-SCDMA 系统中采用的卷积码为(2,1)卷积码和(3,1)卷积码。 4.4.1 (2,1)卷积码的仿真 随机输入一组序列,本仿真实验中输入的序列是:1 0 1 1 0 1 0 0,通过卷 积编码程序对所输入的序列进行编码,得到卷积码输出,再对这个卷积码进行 噪声干扰,在实际通信系统中即相当于在空中传输过程中出现传输错误,出现 误码,译码器接收到错误的码字进行解码,理论上按照 Viterbi 译码算法是可以 回溯到原始的正确码字的,即正确的输入序列。现在对于编码程序在 MATLAB 系统中对该实验进行仿真,验证译码是否正确,以得出是否有差错控制的功能, 即卷积码可以实现差错控制。 设置编码器输入端: 随机输入序列: coder_input=1 0 1 1 0 1 0 0 输入(2,1)卷积码的生成矩阵: 110101111 100011101 G 设置输入端个数: k=1 则通过仿真得到编码器输出的卷积码序列: channel_output = 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 35 仿真结果如图 4.6 所示。 图 4.6 编码器输出的卷积码 当通信过程中遇到噪声干扰,出现错码时。例如本例中将第一位、第五位、 第十位和最后一位更改。得到噪声之后的序列,之后再将噪声之后序列送入译 码程序进行译码输出。经过维特比译码之后输出的输出序列理论上是原始的输 入序列,若与输入序列相同,则验证成功。 设置解码器输入端: 编码器输出的卷积码序列: channel_output = 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 0 加了噪声之后的序列(被送到译码器中进行译码的序列): channel_output = 0 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 经过译码器译码之后的输出序列: decoder_output = 1 0 1 1 0 1 0 0 该序列与原始的输入序列 coder_input=1 0 1 1 0 1 0 0相同,即还原到了原 始的输入序列,达到了纠错的目的。验证成功。 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 36 仿真结果如图 4.7 所示。 图 4.7 解码器输出的序列 4.4.2 (3,1)卷积码的仿真 随机输入一组序列,本仿真实验中输入的序列是:1 0 1 1 0 1 0 0。通过卷 积编码程序对所输入的序列进行编码,得到卷积码输出,再对这个卷积码进行 噪声干扰,在实际通信系统中即相当于在空中传输过程中出现传输错误,出现 误码,译码器接收到错误的码字进行解码,理论上按照 Viterbi 译码算法可以回 溯到原始的正确码字,即正确的输入序列。现在对于编码程序在 MATLAB 系 统中对该实验进行仿真,验证译码是否正确,以得出是否有差错控制的功能, 即卷积码可以实现差错控制。 设置编码器输入端: 随机输入序列: coder_input=1 0 1 1 0 1 0 0 输入(2,1)卷积码的生成矩阵: 100100111 110011011 111101101 G 设置输入端个数: k=1 则通过仿真得到编码器输出的卷积码序列: channel_output= 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 37 1 1 1 1 0 1 1 1 0 0 0 0 0 0 仿真结果如图 4.8 所示。 图 4.8 编码器输出的卷积码 当通信过程中遇到噪声干扰,出现错码时。例如本例中将第一位、第五位、 第十位和最后一位更改。得到噪声之后的序列,之后再将噪声之后序列送入译 码程序进行译码输出。经过维特比译码之后输出的输出序列理论上是原始的输 入序列,若与输入序列相同,则验证成功。 设置译码器输入端: 编码器输出的卷积码序列: channel_output= 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0 加了噪声之后的序列(被送到译码器中进行译码的序列): channel_output= 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 1 经过译码器译码之后的输出序列: decoder_output = 1 0 1 1 0 1 0 0 该序列与原始的输入序列 coder_input=1 0 1 1 0 1 0 0相同,即还原到了原 始的输入序列,达到了纠错的目的。验证成功。 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 38 仿真结果如图 4.9 所示。 图 4.9 解码器输出的序列 4.5 卷积码误码率 当随机输入一组序列时,通过卷积编码程序对所输入的序列进行编码,得 到卷积码输出,再对这个卷积码进行噪声干扰,在实际通信系统中即相当于在 空中传输过程中出现传输错误,或在高斯白噪声传播信道中传输出现误码,该 错误的码字被译码器接收,而译码器会对接收到的错误的码字进行解码,理论 上,按照 Viterbi 译码算法可以回溯到原始的正确码字,即正确的输入序列。但 是由于通信信道质量不同,加入的噪声可能很大,输入的序列长,产生错误的 码字不一定只是简单的几个而已,因此经过噪声干扰之后的序列经过译码之后, 有可能无法回溯到源码字,这样就会出现误码。因此应该对序列进行误码率分 析。 卷积码是面向流的编码,自由距只影响其中相邻若干比特的误码。码长是 无穷的,而自由距是固定的,因此不能用纠错能力或检错能力来描述卷积码的 性能,比较公平的一种描述是它的平均误比特率,或在一定(较短)帧长的误帧 率,或者研究在某一位置开始发生一次错误(序列)的概率。 对卷积码译码误码率的仿真结果如下图 4.10 所示。图中,横坐标是信噪比 (SNR),是信息功率与噪声功率的比值,单位是分贝(dB),即: (4.3) 噪声功率 信息功率 SNR 纵坐标是误码率(FER)。 东北大学本科毕业设计(论文) 第 4 章 卷积码的设计与仿真 - - 39 从图 4.10 可以看出,随着噪声功率的增大,信噪比(SNR)逐渐降低,误码 率增大。这是卷积码的整体趋势。 图 4.10 Viterbi 误码曲线图 卷积码的误码率相关因素研究:卷积码的误码率与码率和约束长度有关。 (1) 码率对误码性能的影响 卷积码的码率 R=k/n,它是卷积码的一个重要参数,当码率一定时,随着 信道噪声的逐渐减小,系统的误比特率也逐渐减小。如图 4.10 所示。当改变卷 积码的码率时,系统的误码性能也将随之发生变化。随着卷积码码率的逐渐提 高,系统的误比特率也呈现出增大的趋势,也就是说码率越低,系统的误比特 率就越小,误码性能就越好。 当系统码率从 3/4 降至 1/2 时,可以使误比特率减小 0.2dB, 然而,信道带 宽和译码器的复杂性也将相应地增加,因此,对于二进制对称信道,当采用 东北大学本科毕业设计(论文) 第 4 章
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年滨州市沾化区区属国有企业公开招聘工作人员模拟试卷及一套答案详解
- 安全法培训成效课件
- 2025年济宁高新区事业单位公开招聘工作人员(教育类)(47人)考前自测高频考点模拟试题及答案详解(易错题)
- 2025届春季厦门银行校园招聘模拟试卷附答案详解
- 服务业员工安全培训内容课件
- 2025年福建省南安市龙泉中学招聘15人考前自测高频考点模拟试题及答案详解(易错题)
- 2025年蚌埠国钛纳米材料有限公司公开招聘工作人员50人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025-2030工业激光器功率提升对光学镜片耐高温性能的极限挑战研究报告
- 国家助学金申请书申请书
- 2025辽宁葫芦岛籍公费师范生专项招聘4人考前自测高频考点模拟试题及答案详解(历年真题)
- 医疗器械直调管理制度
- (高清版)DBJ33∕T 1294-2023 建设工程造价指标采集分析标准
- 海姆立克急救法操作考核标准
- 2025年店铺转租合同模板版
- 八年级英语上学期 选词填空解题方法及专项训练(解析版)
- 【语文试题卷】2024学年第一学期九年级12月学情调研(终)
- 2022年第十七届广东省中学生天文知识竞赛试题(含答案)
- 2023年温州市苍南县粮食收储有限公司招聘考试真题
- 《永遇乐-京口北固亭怀古》课件
- 数学高一-高一数学第一次月考卷01(考试版A4)【测试范围:必修第一册第一章~第二章】(人教A版2019)
- 《幼儿舞蹈基础》 课件 项目八 蒙古族舞蹈
评论
0/150
提交评论