毕业设计(论文)-基于MATLAB的卷积码编译码器设计.doc_第1页
毕业设计(论文)-基于MATLAB的卷积码编译码器设计.doc_第2页
毕业设计(论文)-基于MATLAB的卷积码编译码器设计.doc_第3页
毕业设计(论文)-基于MATLAB的卷积码编译码器设计.doc_第4页
毕业设计(论文)-基于MATLAB的卷积码编译码器设计.doc_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

二二 一一 四四 届届 毕毕 业业 设设 计计 基于基于 MATLABMATLAB 的卷积码编译码器设计的卷积码编译码器设计 学学 院:信息工程学院院:信息工程学院 专专 业:电子信息工程业:电子信息工程 姓姓 名:陈红桥名:陈红桥 学学 号:号:2403100107 指导教师:王选民指导教师:王选民 完成时间:完成时间:2014 年年 6 月月 15 日日 二二一四年六月一四年六月 基于 MATLAB 的卷积码编译码器设计 装 订 线 摘 要 通信的目的是要把对方不知道的信息及时可靠地传递给对方,因此,一个信息 系统传输消息必须要可靠与快速。随着现代通信的发展,特别是在未来 4G 通信网 络中,信息传输的可靠性尤其重要。差错控制编码技术可以有效的提高或改善通信 的可靠性。卷积码和分组码是差错控制编码的两种主要形式,在编码器复杂度相同 的情况下,卷积码的性能优于分组码,因此卷积码几乎被应用在所有无线通信的标 准之中。 本文通过图形描述和解析表述详细地介绍了卷积码的相关原理,着重研究了 (2,1,3)卷积码编译码器的设计,介绍了 MATLAB 的使用方法、编程方法、语 句、变量、函数、矩阵等,在对通信系统仿真相关知识的了解下使用 MATLAB 对 卷积码的编译码过程进行仿真。在译码器设计中,本文只对 Viterbi 译码算法做了初 步的研究,对其它的译码方式没有进行详细的研究和比较。但本文通过不同条件下 的仿真分析了卷积码的性能,如不同信噪比、码率、约束长度、回溯长度等对误码 率的影响,完善了对卷积码的认识。 关键词:通信,MATLAB,差错控制编码,卷积码 基于 MATLAB 的卷积码编译码器设计 装 订 线 基于 MATLAB 的卷积码编译码器设计 装 订 线 ABSTRACT The purpose of communication is to pass information we do not know before,and therefore, an information system to transmit messages must be reliable and fast. With the development of communications, especially the communication in the future 4G network, the reliability of information transmission is particularly important. Error control coding techniques can effectively increase or improve the reliability of communication. Convolutional codes and block codes are two main forms of error control coding. In the case of same complexity, the performance of convolutional codes is better than block codes, and therefore convolutional codes is used in virtually all wireless communication standards . This paper give a detailed description of the relevant principles of convolution codes with graphical representation and analytical expression. Focuses on the (2,1,3) convolutional code codec design, describes the use of MATLAB programming methods, statements, variable , functions, matrices, etc. In the knowledge of the communications system simulation we use MATLAB to understand the process of encoding and decoding convolutional code simulation. In the decoder design, this article only use Viterbi decoding algorithm to do a preliminary study, there is no other way of decoding to do a detailed study and comparison. However, this paper analyzes the simulation under different conditions the performance of convolution codes, such as different signal to noise ratio, bit rate, constraint length, backtracking influence length of the bit error rate, and improve the understanding of the convolution code. KEY WORDS: communications,MATLAB,error control coding,convolutional code 基于 MATLAB 的卷积码编译码器设计 目 录 第一章 绪 论.1 1.1 引言.1 1.1.1 卷积码发展背景概述.1 1.1.2 本课题意义.1 1.2 本课题主要研究内容.2 第二章 卷积码的相关概念.3 2.1 信道编码.3 2.1.1 信道编码的原理.3 2.1.2 信道编码的分类.4 2.2 差错控制编码.4 2.2.1 差错控制码的基本概念和分类.4 2.2.2 线性分组码及循环码的简单介绍.5 2.3 卷积码.8 2.3.1 卷积码的基本概念.8 2.3.2 卷积码的基本原理.10 2.3.3 卷积码的译码.15 第三章 MATLAB 基础与其在通信系统中的应用.19 3.1 MATLAB 简介.19 3.2 MATLAB 程序设计.19 3.3 通信系统仿真.21 3.3.1 通信仿真的概念.21 3.3.2 通信仿真的基本方法.21 3.3.3 仿真通信系统模型.22 第四章 卷积码编译码的 MATLAB 仿真.23 4.1 卷积码的编码仿真.23 4.2 卷积码的译码仿真.24 第五章 卷积码的性能分析.31 5.1 信噪比对卷积码译码性能的影响.31 5.2 码率对卷积码译码性能的影响.33 5.3 约束长度对卷积码性能的影响.34 5.4 回溯长度对卷积码性能的影响.35 5.5 判决方式对卷积码性能的影响.36 基于 MATLAB 的卷积码编译码器设计 结 论.38 致 谢.40 参考书目.41 附 录.42 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 0 页 第一章 绪 论 1.1 引言 1.1.1 卷积码发展背景概述 卷积码又称连环码,最早于 1955 年由 Elias 等人提出。而后 1957 年 Wozencraft 提出 了一种有效的译码方法即序列译码。1963 年 Messey 提出了一种性能稍差但比较实用的大 数逻辑译码即门限译码,使卷积码开始应用与实际。1967 年 Viterbi 提出了最大似然译码 算法,被称为 Viterbi 译码。Viterbi 译码作为最优译码算法,有如下特点: (1)维特比算法是最大似然的序列译码算法 (2)译码复杂度与信道质量无关 (3)运算量与码长呈线性关系 (4)存贮量与码长呈线性关系 (5)运算量和存贮量都与状态数呈线性关系 (6)状态数随分组大小 k 及编码深度 m 呈指数关系 卷积码在现代通信中已被广泛应用。 1.1.2 本课题意义 在移动通信系统中,数字信号在无线信道中传输时,由于信道自身条件特性的不理想, 会受到诸多噪声干扰的影响,因而产生误码。为了在已知信噪比的情况下达到一定的误码率 指标,除在合理设计基带信号,选择调制解调方式,并采用信道均衡,分集等措施的基础 上,还应使用信道编码与交织,使误码率进一步的降低。差错控制编码已经十分成熟的应 用于信道编码技术之中。 卷积码和分组码是差错控制编码的两种主要形式,在编码器复杂度相同的情况下,卷积码 的性能优于分组码,因此卷积码几乎被应用在所有无线通信的标准之中。 如: (1)低码率卷积码应用于扩频通信系统 (2)VD 及 VLSI 的实现 (3)卷积码 UEP 方案用于分等级传输 (4)语音压缩 (5)卷积码纠错用于多媒体广播系统 1.2 本课题主要研究内容 熟练掌握卷积码的编码及 Viterbi 译码原理: 编码原理:卷积码在编码时将 k 比特的信息段编成 n 个比特的码组,监督码元不仅和 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 1 页 当前的 k 比特信息段有关,而且还同前面 m=(N-1)个信息段有关。通常将 N 称为编码约束 长度,表示编码过程中相互约束的码段个数。编码过程中相互关联的码元有 n*N 个。 R=k/n 为编码效率。约束长度和编码效率是衡量卷积码的两个重要参数。一般来说,卷积 码中 k 和 n 的值是比较小的整数,而 N 可取较大。将卷积码记作(n,k,N)。 维特比译码算法基本原理是:将接收到的信号序列和所有可能的发送信号序列比较, 选择其中汉明距离最小的序列认为是当前发送序列。 在此基础上运用 MATLAB 对卷积码的编译码进行仿真并分析其性能。 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 2 页 第 2 章 卷积码的相关概念 2.1 信道编码 2.1.1 信道编码的原理 信道编码是为了与信道的统计特性相匹配,并区分通路和提高通信的可靠性,而在信 源编码的基础上,按一定规律加入一些新的监督码元,以实现纠错的编码。信道编码大致 分为两类:信道编码定理,从理论上解决理想编码器、译码器的存在性问题,也就是解 决信道能传送的最大信息率的可能性和超过这个最大值时的传输问题。构造性的编码方 法以及这些方法能达到的性能界限。编码定理的证明,从离散信道发展到连续信道,从无 记忆信道到有记忆信道,从单用户信道到多用户信道,从证明差错概率可接近于零到以指 数规律逼近于零,正在不断完善。编码方法,在离散信道中一般用代数码形式,其类型有 较大发展,各种界限也不断有人提出,但尚未达到编码定理所启示的限度,尤其是关于多 用户信道,更显得不足。在连续信道中常采用正交函数系来代表消息,这在极限情况下可 达到编码定理的限度。不是所有信道的编码定理都已被证明。只有无记忆单用户信道和多 用户信道中的特殊情况的编码定理已有严格的证明;其他信道也有一些结果,但尚不完善。 信道编码还有以下几类方式:按字码的功能分为纠错码和检错码;按监督码元与信息 码元分为线性码和非线性码;按照对信息码元和监督码元的约束关系的不同又分为分组码 和卷积码,按照信息码元在编码后是否保持原来的形式分类,有系统码和非系统码。 线性分组码是差错控制码,由于认识此种码的思路与概念直观而条理清晰,并对编码 中的一些重要参量和纠错能力提供一系列明确的概念,从而也为介绍其它差控码奠定有力 基础。分组码是一组固定长度的码组,可表示为(n , k) ,通常它用于前向纠错。在分组码 中,监督位被加到信息位之后,形成新的码。在编码时,k 个信息位被编为 n 位码组长度, 而 n-k 个监督位的作用就是实现检错与纠错。当分组码的信息码元与监督码元之间的关系 为线性关系时,这种分组码就称为线性分组码。对于长度为 n 的二进制线性分组码,它有 种可能的码组,从种码组中,可以选择 M=个码组(kk)的二进制码 组。 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 5 页 线性分组码的编码过程可以简单描述成一个矢量和一个矩阵相乘的结果,即 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) 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) mmmppp 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)。 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 6 页 由 S =yH T 可求出 S =(1,1,1)。 循环码 循环码是线性分组码中最重要的一类,循环码是指码集合中的任一码字经过循环移位 后得到的码字仍然是码集合中的码字。循环码的码字可以用矢量的形式表示,即: (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) 它除尽 1+x7,若输入信息码元为 m(x)=1+x3 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 7 页 则由 (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.3 卷积码 2.3.1 卷积码的基本概念 卷积码(convolutional code)是由伊利亚斯(PElias)发明的一种非分组码。它与前面 一节所讨论的分组码不同,是一种非分组码。通常它更适用于前向纠错,因为对于许多实 际情况它的性能优于分组码,而且运算简单。在分组码中,编译器产生的 n 个码元的一个 码组,完全取决于这段时间中 k 比特输入信息。这个码组中的监督位仅监督本码组中的 k 个信息位。卷积码则不同。卷积码在编码时虽然也是把 k 个比特的信息段编成 n 个比特的 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 8 页 码组,但是监督码元不仅和当前的 k 比特信息段有关,还与前面 m=(N-1)个信息段有关。 所以一个码组中的监督码元监督着 N 个信息段。通常将 N 称为编码约束度,并将 nN 称为 编码约束长度。一般说来,对于卷积码,k 和 n 的值是比较小的整数。我们将卷积码记作 (n,k,N) 。码率则仍定义为 k/n。 卷积码是一种性能优越的信道编码,它的编码器和解码器都比较易于实现,同时还具 有较强的纠错能力,这使得它的使用越来越广泛。我们在一些资料上可以找到关于分组码 的一些介绍,分组码的实现是将编码信息分组单独进行编码,因此无论是在编码还是译码 的过程中不同码组之间的码元无关。卷积码和分组码的根本区别在于,它不是把信息序列 分组后再进行单独编码,而是由连续输入的信息序列得到连续输出的已编码序列。即进行 分组编码时,其本组中的 n-k 个校验元仅与本组的 k 个信息元有关,而与其它各组信息无 关;但在卷积码中,其编码器将 k 个信息码元编为 n 个码元时,这 n 个码元不仅与当前段 的 k 个信息有关,而且与前面的(N1)段信息有关(N 为编码的约束长度) 。 同样,在卷积码译码过程中,不仅从此时刻收到的码组中提取译码信息,而且还要利 用以前或以后各时刻收到的码组中提取有关信息。而且卷积码的纠错能力随约束长度的增 加而增强,差错率则随着约束长度增加而呈指数下降 。卷积码(n,k,N) 主要用来纠随机错 误,它的码元与前后码元有一定的约束关系,编码复杂度可用编码约束长度 N*n 来表示。 一般地,最小距离 d 表明了卷积码在连续 N 段以内的距离特性,该码可以在 N 个连续码流 内纠正(d-1)/2 个错误。卷积码的纠错能力不仅与约束长度有关,还与采用的译码方式有关。 总之,由于 n,k 较小,且利用了各组之间的相关性,在同样的码率和设备的复杂性条件下, 无论理论上还是实践上都证明:卷积码的性能至少不比分组码差。 以二元码为例,输入信息序列为 u(u0,u1,),其多项式表示为 u(x) u0+u1xulxl。编码器的连接可用多项式表示为 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),称为码的生 成多项式矩阵。由生成元构成的半无限矩阵 称为码的生成矩阵。其中(11,10,11)是由 g(1,1) 和 g(1,2)交叉连接构成。编码器输出序列为 cuG,称为码序列,其多项式表示为 c(x), 它可看作是两个子码序列 c(1)(x)和 c(2)(x)经过合路开关 S 合成的,其中 c(1)(x)u(x)g(1,1) (x)和 c(2)(x)u(x)g(1,2)(x),它们分别是信息序列和相应子生成元的卷积,卷积码由此得名。 在一般情况下,输入信息序列经过一个时分开关被分成 k0 个子序列,分别以 u(x)表示, 其中 i=1,2,k0,即 u(x)u(x),u(x)。编码器的结构由 k0n0 阶生成多项式矩阵给定。 输出码序列由 n0 个子序列组成,即 c(x)c(x),c(x),c(x),且 c(x)=u(x)G(x)。若 m 是所有子生成多项式 g(x)中最高次式的次数,称这种码为(n0,k0,N)卷积码。卷积码中编 码后的 n 个码元不仅与当前段的 k 个信息有关,而且也与前面(N-1)段的信息有关,编码 过程中相互关联的码元为 nN 个。因此,这 N 时间内的码元数目 nN 通常被称为这种码的 约束长度。卷积码的纠错能力随着 N 的增加而增大,在编码器复杂程度相同的情况下,卷 段积码的性能优于分组码。 卷积码也是分组的, 但它的监督元不仅与本组的信息元有关, 而且还与前若干组的信息 元有关。卷积码根据需要, 有不同的结构及相应的纠错能力,但都有类似的编码规律。值得 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 9 页 指出的是一种(2,1,N)卷积码, 其码率为 1 /2, 它的监督位只有 1 位, 编码效率较高, 也比较 简单。如使用较长的约束长度, 则既可以纠正突发差错, 也可以纠正随机差错。 2.3.2 卷积码的基本原理 卷积码的图形描述 以图 2-1 的(3,1,3)卷积码编码器为例说明卷积码编码器的工作过程:它由 S 输出序列 m1,m2,mj, y1,j y2,j 输入序列 3 M 2 M 1 M y3,j 3 触点转换开关和一组 3 位移存器及模 2 加法器组成每输入一个信息比特,经该编码器后 产生 3 个输出比特。为方便起见,先假设该移位寄存器的起始状态全为零,当第一个输人 比特为”0”时,输出比特为 OO0;若第一个输人比特为 I 时,则输出比特为 111 当输人第 二比特时,第一比特右移一位。此时的输出比特显然与“当前输人比特和前一输人比特” 有关当输人第成比特时,第一和第二比特皆右移一位,可看到此时的输出比特与“当前输 入比特和前二位愉人比特”有关。当第四比特输人时,原第一输人比特已移出移位寄存器 而消失,即第一输人比特已不再影响当前的输人比特,如图 2-2 所示,以上编码器在移位 过程中可能产生的各种序列,可用树状图、网格图或状态图来描述。 t 输出 1 m 21 y 31 y 2 m 22 y 32 y 34 y 3 m 23 y 33 y 4 m 24 y 5 m 输入 5 m t 1 m 2 m 3 m 4 m 图 2-2 编码器输入-输出关系 1)码树图 图 2-3 给出了(3,1,3)卷积码的树状图。按照习惯的做法。码树的起始节点位于左边;移 位寄存器的初始状态取 00,取 M1M2=00,用 a 来表示,并把该 a 标注于起始节点处。当输 人码元是 0 时,则由节点出发走上支路;当输人码元是 1 时.则由节点出发走下支路。例如, 图 2-1 卷积码编码器 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 10 页 d c b b a a 000 a011 110 001 110 001 000 111 000 111 111 000 100 101 010 a b a b c c d d a d c b b a a 111 a011 11 010 110 001 001 110 000 111 100 011 100 101 010 a b a b c c d d 图 2-3 (3,1,3)卷积码的树状图 当该编码器第一输入比特为 0 时,则走上支路,此时移存器的输出码“000”就写在上支杈 的上方;当该编码器第一输人比特为 1 时,则走下 支路,此时移存器的输出码“111”就写在图中下 支杈的上方。在输人第二比特时,移位寄存器右移 一位,此时上支路情况下的移位寄存器的状态为 00,即 a,并标注于上支路节点处;此时下支路情 况下的移位寄存器状态为 O1,即 b,并标注于下支 路节点处;同时上下支路都将分两杈。以后每一个 新输人比特都会使上下支路各分两杈。经过 4 个输 人比特后,得到的该编码器的树状图如图 2-3 所示。 树状图中,节点上标注的 a 表示 M1M2 =00, b 表 示 M1M2=O1,。C 表示 M1M2= 10, d 表示 M1M2=11。 2)状态图 当网格图达到稳定状态后,取出两个节点间的 一段网格图,即得到图 2-4( a)的状态转移图。此 后,再把目前状态与下一节拍状态合并起来,即可 得到图 2-4(b)的最简的状态转移图,称之为卷积 码状态图。 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 11 页 b d c a b d c a 100011 110 001 010 101 111 000 a 000 ad c b 111 100 01101 0 11 0 110 101 b 图 2-4 (3,1,3)卷积码状态 图 3)网格图 由树状图看到,对于第 j 个输人信息比特,相应出现有条支路,且在时2 j 3jN 树状图出现节点,自上而下重复取 4 种状态。又看到,当 j 变大时,图的纵向尺寸越来越 大。于是提出一种网格图,注意到码树状态的重复性,使图形变得紧凑。上例(3,1,3)码的 网格图示于图 2-5。网格图中,把码树中具有相同状态的节点合并在一起;码树中的上支路 用实线表示,下支路用虚线表示;支路上标注的码元为输出比特;自上而下的 4 行节点分别 表示 a ,b,c,d 的四种状态。网格图中的状态,通常有种状态。从第 N 个节点开始.图 1N z 形开始重复,且完全相同。 a b c d 000000000000000 111111111111111 011 001001 110 010010010 010010010 110110110 011011 011011 100 图 2-5(3,1,3)卷积码网格图 卷积码的解析表述 一个二元(2,1,4)卷积码的编码器,它是由 k=1,即一个输入位(端),n=2,即两个输出 位(端),K=4,m=3 即三级移位寄存器所组成的有限状态的有记忆系统。 (1) 离散卷积 若输入信息序列为(这里的卷积码是 u0首先输入) 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 12 页 (2.21) )( 210uuuu 则对应输出为两个码字序列 (2.22) )( )( 2 1 0 2 1 0 cccc cccc 其相应编码方程可写为 (2.23) ),( * * ccc g uc g uc 其中“*”表示卷积运算,g 、g表示编码器的两个脉冲冲击响应,即编码可由输入信息 序列 u 和编码器的两个冲击响应的卷积得到,故称为卷积码7。这里的脉冲冲击响应是指, 当输入信息为 u=(100)时,所观察到的两个输出序列值。由于编码器有 m=3 级寄存器, 故冲激响应至多可持续到 K=m+1=3+1=4 位,且可写成: (2.24) )1111( )1011( g g 在一般情况下有: (2.25) )( )( m 1 0 m 1 0 gggg gggg 经编码器后,两个输出序列合并为一个输出码字序列为: (2.26) )( 1 1 0 0 ccccc 若输入信息序列为: (2.27)10111( u 则有: (2.28)10000001()1011(*)10111( c (2.29)11011101()1111(*)10111( c 最后输出的码字为: (2.30)0100111101000101( c (2) 生成矩阵 基于 MATLAB 的卷积码编译码器设计 共 49 页 第 13 页 上述冲激响应 g g又称为生成序列,若将该生成序列 g g按如下方法排列,构 成如下生成矩阵(当 K=4,m=3 时): (2.31) 3 3 2 2 1 1 0 0 3 3 2 2 1 1 0 0 3 3 2 2 1 1 0 0 gggggggg gggggggg gggggggg G 上述矩阵中,其中空白部分均为 0。则上述编码方程可改为矩阵形式 (2.32) G uc G 为卷积码的生成矩阵,若输入信息序列为一无限序列时,即 u=(10111),生成矩阵则为 一个半无限矩阵,即有起点无终点,因此称它为半无限。 若: (2.33) )1111(),1011(),10111( ggu 则: (2.34) 1100010101000111 11110111 11110111 11110111 11110111 11110111 )10111( Guc (3) 码多项式 若将生成序列表达成多项式形式,有 (2.35) xxx g xx g 32 32 11111 11011 输入信息序列也可

温馨提示

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

评论

0/150

提交评论