卷积码的编解码Matlab仿真与模拟

卷积码的编解码Matlab仿真与模拟
卷积码的编解码Matlab仿真与模拟

卷积码的编解码Matlab仿真

摘要

卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本文简明地介绍了卷积码的编码原理和译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真和实测,并对测试结果作了分析。得出了以下三个结论:

(1)当改变卷积码的码率时,系统的误码性能也将随之发生变化。

(2)对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化。

(3)回溯长度也会不同程度上地影响误码性能。

关键词:卷积码;码率;约束长度;回溯长度

目录

论文总页数:21页

1 引言 (1)

1.1 课题背景 (1)

1.2 国内外研究现状 (1)

1.3 本课题的意义 (1)

1.4 本课题的研究方法 (1)

2 卷积码的基本概念 (2)

2.1 信道 (2)

2.2 纠错编码 (2)

2.3 卷积码的基本概念 (2)

2.4 卷积码编码的概念 (2)

2.4.1 卷积编码 (2)

2.4.2 卷积码的树状图 (3)

2.4.3 卷积码的网格图 (4)

2.4.4 卷积码的解析表示 (5)

3 卷积码的译码 (6)

3.1 卷积码译码的概述 (6)

3.2 卷积码的最大似然译码 (6)

3.3 VITEBI 译码的关键步骤 (7)

3.3.1 输入与同步单元 (7)

3.3.2 支路量度计算 (7)

3.3.3 路径量度的存储与更新 (7)

3.3.4 信息序列的存储与更新 (8)

3.3.5 判决与输出单元 (8)

4 结论 (9)

4.1 卷积码的仿真 (9)

4.1.1 SIMULINK仿真模块的参数设置以及重要参数的意义 (9)

4.2 改变卷积码的参数仿真以及结论 (12)

4.2.1 不同回溯长度对卷积码性能的影响 (12)

4.2.2 不同码率对卷积码误码性能的响 (14)

4.2.3 不同约束长度对卷积码的误码性能影响 (15)

结论 (17)

参考文献 (18)

致谢.................................................... 错误!未定义书签。声明.................................................... 错误!未定义书签。

1 引言

1.1 课题背景

随着现代通信的发展,高速信息传输和高可靠性传输成为信息传输的两个主要方面,而可靠性尤其重要。卷积码以其高速性和可靠性在实际应用中越来越广泛。1967年Viterbi译码算法的提出,使卷积码成为信道编码中最重要的编码方式之一[1]。

1.2 国内外研究现状

在对卷积码的研究中,其中编码器较简单,模式也很统一。主要是研究提高卷积码的译码速度和可靠度。译码算法中最重要的卷积码的Viterbi算法问世以来,软件仿真和实现都得到了迅速发展。目前,利用计算机仿真Viterbi算法,模拟在各种不同情况下(使用不同码率、不同约束度等)卷积编码时的译码性能,寻找Viterbi算法的最佳适用信道和不同要求(如误码率)下最优编码。

1.3 本课题的意义

在卷积码中,因为Viterbi算法效率高,速度快,结构相对简单等特点,被广泛应用于各种数据传输系统。特别是深空通信、卫星通信系统中。在现代信息处理系统中,需要处理的信息量越来越大,实时性要求越来越高。为减少对主处理器各种资源的占用,要求通信模块方面的大部分工作能独立完成。因此采用Viterbi译码算法具有非常现实的意义。

1.4 本课题的研究方法

本文通过基于MATLAB的SIMULINK下的模块对卷积编码,解码进行仿真。通过仿真可以更清楚的认识到卷积码的编码,解码的各个环节,并对仿真结果进行了分析。得出卷积码Viterbi译码的误比特性能和回溯长度,码率,约束长度的关系。

2 卷积码的基本概念

2.1 信道

信道是任何一个通信系统所必不可少的组成部分。由于信道中可能存在着各种干扰,通信设备中也可能存在种种造成错码的因素。随着数据处理、计算机通信、卫星通信以及高速数据通信网的飞速发展,用户对数据传输的可靠性提出了越来越高的要求。因此如何在保证数据传输速率的前提下,提高传输数据的可靠性,就成为一个迫切需要解决的问题。根据干扰对数据传输影响可分为随机干扰和突发干扰。其中,电子热噪声产生的干扰可以看作是随机的高斯白噪声,它对信道主要的影响是产生码元的随机错误[6]。

2.2 纠错编码

因为信道状况的恶劣,信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途径:一种是增加发送信号的功率,提高接收端的信号噪声比;另一种是采用编码的方法对信道差错进行控制。前者常常受条件限制,不是所有情况都能采用。编码理论可以解决这个问题,使得成本降低,实用性增强。

2.3 卷积码的基本概念

卷积码是一种性能优越的信道编码。(n ,k ,N) 表示把k个信息比特编成n 个比特,N 为编码约束长度,说明编码过程中互相约束的码段个数。卷积码编码后的n 个码元不仅与当前组的k 个信息比特有关,而且与前N - 1 个输入组的信息比特有关[6]。编码过程中相互关联的码元有N ×n 个。R = k/ n 是卷积码的码率,码率和约束长度是衡量卷积码的两个重要参数[1]。

2.4 卷积码编码的概念

卷积码的编码描述方法有5 种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述法和网格图描述法[1]。卷积码的纠错能力随着N的增加而增大,而差错率随着N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。分组码有严格的代数结构,但卷积码至今尚未找到如此严密的数学手段。分组码的译码算法可以由其代数特性得到。卷积码虽然可以采用适用于分组码的门限译码(即大数逻辑译码),但性能不如维特比译码和序列译码[6]。

2.4.1 卷积编码

卷积码的编码器一般都比较简单。

输入图2-1 卷积码编码器框图

图2-1是一般情况下的卷积码编码器框图。它包括NK 级的输入移位器,一组n 个模2和加法器和n 级的输出移位寄存器 [6]。对应于每段k 比特的输入序列,输出n 个比特。由图可知,n 个输出比特不但与当前的k 个输入比特有关,而且与以前的(N-1)k 个输入信息比特有关。整个编码过程可以看成是输入信息序列与由移位寄存器和模2加法器的连接方式所决定的另一个序列的卷积,卷积码由此得名。本文采用的是冲击响应描述法编码思想。

输入输出

图2-2 (2,1,3)卷积编码器

如图2-2是卷积码(2,1,3)卷积编码器的一个框图[6]。左边是信息的输入。下面分别是系统位输出和校验位输出。其中间是3个移位寄存器和一个模2加法器。简单的说就是信息位经过移位寄存器和一个模2加法器产生一个系统位和校验位加在一起输出。可以看出:每输入一个比特,移位寄存器中就向右移动一个位子。原来的第三个寄存器就被移出。可见卷积编码不只与现在的输入比特有关还与前面的3-1个比特有关。所以约束长度是3。在这里,其中K=1 ,n=2所以码率R=K/ n=1/2。

2.4.2 卷积码的树状图

对于图2-2所示的(2,1,3 )卷积码编码电路,其树状图如下图3-3所示。这里,分别用a,b,c 和d 表示寄存器的4种状态:00, 01, 10,和11,作为树状图中每条支路的节点。以全零状态a 为起点,当输入位信息位为0时,输出码元

c1c2= 00,寄存器保持状态a 不变,对应图中从起点出发的上支路;当输入位为1时,输出码元c1c2 =11,寄存器则转移到状态b,对应图中的下支路;然后再分别以这两条支路的终节点a 和b 作为处理下一位输入信息的起点,从而得到4条支路.以此类推,可以得到整个树状图。如下图2-3[6]

状态A=00B=01C=10

D=111信息起点a 0011a 0011a

b 00

11a b 00a c d 1001c 110001

101110

d 01

b 1001

c 1100a 00

11b 1001

d 1001

c 110010

d 01a b c d a b c d b a b c d 图2-3(2,1,3)树状图

2.4.3 卷积码的网格图

如下图2—4是(2,1,3)卷积编码的网格图[6]。

图2-4 (2,1,3)卷积编码的网格图

图2-5 卷积码状态图[6]

2.4.4 卷积码的解析表示

除上述三种图解表示方法外,常常还用解析表示方法描述卷积码,即延时算子多项式。在延时算子多项式表示中,编码器中的移位寄存器与模2加法器的连接关系以及输入、输出序列都表示为延时算子D 的多项式。在一般情况下,输入序列可表示为[6]:

...M(D)2321D m D m m ++= (2-1)

变量D 的幂的次数等于相对于时间起点的单位延时数目,时间起点通常选在第1个输出比特,ml,m2,m3,m...为输入比特的二进制表示(1或0)。用D 算子多项式表示移位寄存器各级与各模2项连接关系时。若某级寄存器与某模2和相连,则多项式中相应项的系数为1,否则为0(表示无连接)。以图3.2所示(2,1,3)卷积码为例,左、右两个模2和与寄存器各级的连接关系可表达为[6]:

222

11)(1)(D D D G D D G ++=+= (2-2)

通常把表示移位寄存器与模2和连接关系的多项式称为生成多项式,因为由它们可以用多项式相乘计算出输出序列。卷积码的图解与解析表示方法各有特点。用延时算子多项式表示卷积码编码器的生成多项式最为方便。网格图对于分析卷积码的译码算法十分有用。

3 卷积码的译码

3.1 卷积码译码的概述

卷积码的译码方式有三种[2]:(1)1963年由梅西((Massey)提出的门限译码,这是一种基于码代数结构的代数译码,类似于分组码中的大数逻辑译码;(2) 1963年由费诺(Fano)改进的序列译码,这是基于码的树状图结构上的一种准最佳的概率译码;(3) 1967年由维特比提出的Viterbi算法。这是基于码的网(trellis)图基础上的一种最大似然译码算法,是一种最佳的概率译码方法[8]。其中,代数译码,利用编码本身的代数结构进行译码,不考虑信道本身的统计特性。该方法的硬件实现简单,但性能较差,其中具有典型意义的是门限译码。另一类是概率译码,这种译码通常建立在最大似然准则的基础上。由于计算是用到了信道的统计特性.因而提高了译码性能,但这种性能的提高是以增加硬件的复杂度为代价的。常用的概率译码方法有维特比译码和序列译码。维特比译码具有最佳性能,但硬件实现复杂;门限译码性能最差,但硬件简单;序列译码在性能和硬件方面介于维特比译码和门限译码之间。

3.2 卷积码的最大似然译码

卷积码概率译码的基本思路是[3]:以接收码流为基础,逐个计算它与其他所有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。概率最大在大多数场合可解释为距离最小,这种最小距离译码体现的正是最大似然的准则。卷积码的最大似然译码与分组码的最大似然译码在原理上是一样的,但实现方法上略有不同。[2]主要区别在于:分组码是孤立地求解单个码组的相似度,而卷积码是求码字序列之间的相似度。基于网格图搜索的译码是实现最大似然判决的重要方法和途径。用格图描述时,由于路径的汇聚消除了树状图中的多余度,译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。如果在某一点上发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径中重新选择路径。这样一直进行到最后第L级(L为发送序列的长度)。由于这种方法较早地丢弃了那些不可能的路径,从而减轻了译码的工作量,Viterbi译码正是基于这种想法。对于(n, k, K )卷积码,其网格图中共2kL种状态。由网格图的前K-1条连续支路构成的路径互不相交,即最初2k_1条路径各不相同,当接收到第K条支路时,每条路径都有2条支路延伸到第K级上,而第K级上的每两条支路又都汇聚在一个节点上。在Viterbi译码算法中,把汇聚在每个节点上的两条路径的对数似然函数累加值进行比较,然后把具有较大对数似然函数累加值的路径保存下来,而丢弃另一条路径,经挑选后第K 级只留下2K条幸存路径。选出的路径同它们的对数似然函数的累加值将一起被存储起来。由于每个节点引出两条支路,因此以后各级中路径的延伸都增大一倍,

但比较它们的似然函数累加值后,丢弃一半,结果留存下来的路径总数保持常数。由此可见,上述译码过程中的基本操作是,“加-比-选”,即每级求出对数似然函数的累加值,然后两两比较后作出选择。有时会出现两条路径的对数似然函数累加值相等的情形,在这种情况下可以任意选择其中一条作为“幸存”路径。

卷积码的编码器从全零状态出发,最后又回到全零状态时所输出的码序列,称为结尾卷积码。因此,当序列发送完毕后,要在网格图的终结处加上(K-1)个己知的信息作为结束信息。在结束信息到来时,由于每一状态中只有与已知发送信息相符的那条支路被延伸,因而在每级比较后,幸存路径减少一半。因此,在接收到(K-1)个己知信息后,在整个网格图中就只有唯一的一条幸存路径保留下来,这就是译码所得的路径。也就是说,在己知接收到的序列的情况下,这条译码路径和发送序列是最相似的。

由上述可见,Viterbi译码过程并不复杂,译码器的运行是前向的、无反馈的。它接收一段,计算一段,选择一段最可能的码段(分支),从而达到整个码序列是一个有最大似然函数的序列。传输序列很长时,判决需要的长延时和相当大的存储量是我们无法承受的。

因此,实际应用中采用截短Viterbi算法,即不需要接收到所有序列才进行判决,当译码器接收并处理完了固定的T (T <

3.3 VITEBI 译码的关键步骤

3.3.1 输入与同步单元

输入同步单元为译码器提供正确的支路同步,每次正确地输出属于一条支路的n个比特。显然,当支路定时失步时,译码过程中将会出现大量的差错,只要能检测出这种状态,即能有效地调整支路同步。一种方法是监视路径量度的增长率;另一种方法是检查网格图的路径合并性质。当译码器出现失步时,网格图中幸存路径合并的速率比同步时慢得多[2]。

3.3.2 支路量度计算

每当接收到一条新支路的一组n个量度值(硬判决时为n比特),支路量度计算单元就对网格图中每一条不同的支路确定一新的量度值。对R=k/n码来说,每次将有2个不同的量度值。在软判决Viterbi译码时,支路量度值不但随支路不同而异,而且还与接收信号的量化值有关[2]。

3.3.3 路径量度的存储与更新

在此单元中,支路量度与以前所存储的路径量度相加,然后对汇聚到同一节

点处的支路进行路径量度比较,选择一条路径量度最小的路径保留下来[2]。

3.3.4 信息序列的存储与更新

一种最佳的也是最常用的方法是基于最大似然译码。对于R=1/n卷积码而言,每接收一组新的支路信息,在各个状态的路径存储器中存入经“加一比一选”电路选出的一位假想信息比特,同时将最先存入路径存储器的一位比特输出给判决单元。因此,每接收到一条新支路,路径存储器就更新一次它所存储的假想信息序列[2]。

3.3.5 判决与输出单元

在R=1/n卷积码最佳译码时,应选择具有最小路径量度的假想信息序列中最早存入的一个比特做译码输出[2]。

4 结论

4.1 卷积码的仿真

本文通过MATLAB下的SIMULINK仿真。首先建立卷积码的仿真模块并组合起来。

图4-1卷积码的编码译码框图

如上图4-1的信号流程可以表示为先由Bernoulli Binary Generator(贝努利二进制序列产生器)产生一个0,1等概序列,经过Convolutional Encoder(卷积编码器)对输入的二进制序列进行卷积编码,并用BPSK调制方式调制信号。加入信道噪声(高斯白噪声)后再经过BPSK解调制后送入Viterbi Decoder(Viterbi 译码器)进行硬判决译码。最后经过Error Rate Calculation(误码统计)后由Display (显示)输出。然后通过Selector(数据选通器)将结果输出到To workspace(工作区间)。

4.1.1 SIMULINK仿真模块的参数设置以及重要参数的意义

在建立如图4-1的仿真模块后,对各个模块分别一一进行设置后并运行仿真。

图4-2贝努利二进制序列产生器模块的设置框图

如上图4-2是贝努利二进制序列产生器模块的设置框图,其中参数有三项:第一项probability of a zero取值为0.5,表示0和1出现的概率相等。Initial seed 表示随机种子数。不同的随机种子数将产生不同的二进制序列,特定的随机种子数可以产生一个特定的二进制序列。Sample time=0.0001表示抽样时间,也就是说输出序列中每个二进制符号的持续时间是0.0001秒。Samples per frame 表示每帧的抽样数用来确定每帧的抽样点的数目。Frame-based outputs 是用来确定帧的输出格式。

图4-3 BPSK调制器模块的设置框图

如上图4-3是BPSK调制器模块的设置框图中有二项,第一项是Phase offset(rad)(相位偏移),这里设置为0。第二项是Samples per symbol(输出信号采样数)这里设置为1。

图4-4卷积编码器模块的设置框图

如上图4-4是卷积编码器模块的设置框图。其中Trellis structure(Trellis结构)中通过poly2trellis()函数把卷积码的约束长度,生成多项式以及反馈多项式转换成Trellis结构的形式。如上面是(2,1,3)卷积码的参数设置。(3,[6,7])说明约束长度是3,生成多项式是(八进制)6和7,无反馈多项式。后面还要用到的(2,1,7)的参数是(7,[171,133])是约束长度是7,生成多项式是171和133。Reset是复位方式,这里设置为on each frame,它表示卷积码编码器在每帧数据开始之前自动对寄存器复位。

图4-5误比特统计模块的设置框图

如上图4-5是误比特统计模块的设置框图。其中Receive delay表示接收延迟,意思是在通信接收端口需要对接收到的信号进行解调,解码或解交织而带来一定的延迟,使得到达误码统计模块接收端的信号滞后于发送端的信号。为了补偿这种延迟这里设置为0。Computation delay表示计算延迟,在仿真过程中,有时间需要忽略最初的若干个输入数据就通过计算延迟来实现。这里设置为0。Computation mode表示计算模式,帧的计算模式(Entire frame),误码统计模块对发送端和接收端的所有输入数据进行统计。output data是输出数据,这里设置为

Port的意思是表示把统计数据从端口中输出。workspace表示把统计数据输出到工作区。

图4-6 数据选通器模块的设置框图

如上图4-6是数据选通器模块的设置框图。对应图4-1看Elements是指输出端口的个数为1。Input port width表示输入端口的个数为3。

图4-7卷积码译码器模块的设置框图

如上图4-7是卷积码译码器模块的设置框图。Trellis structure: Trellis结构(前面已说明)。Decision type是指判决类型,有3种:(1)Unquantized(非量化)(2)Hard Decision(硬判决),(3)Soft Decision(软判决)Traceback depth表示反馈深度。它的值会影响译码精度和解码延迟。Operation mode是指操作模式。在Truncated模式下,解码器在每帧数据结束的时候总能恢复到全0状态,它与卷积编码器的on each frame复位方式相对应。

4.2 改变卷积码的参数仿真以及结论

4.2.1 不同回溯长度对卷积码性能的影响

下面将以(2,1,7)卷积码来建立模块仿真。将译码模块中的Traceback depth 分别设置为20,35,45并在一个图中画出这三种方式下的误码性能曲线得到下图4-8。从上到下的三条曲线分别是Traceback depth为20,35,45。可以看出:回溯长度是在Viterbi 译码过程中一个很重要的参数,他决定了译码延迟,随着他的不断变化,误码性能也随误比特率曲线可以清楚地看到,当回溯长度一定时,随着信道噪声的逐渐减小,系统的误比特率逐渐降低;当回溯长度逐渐增加,系统的误比特率随之逐渐降低,但是当回溯程度τ增加到τ≥5 N 时( N 为编码的约束长度) ,误比特率数值趋于稳定,因此,在确定回溯长度时既要考虑到随着τ的增加误比特率随之降低的趋势,也要考虑到译码延迟会变大,在选取回溯长度时,通常取τ= 5 N。

图4-8 不同回溯长度对误码性能的影响

分析不同回溯长度对卷积码误码性能的影响时用到的程序如下:

x=-10:5;

y=x;

for i=1:length(x)

SNR=x(i);

sim('yima');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

hold on;

for i=1:length(x)

SNR=x(i);

sim('yima1');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

hold on;

for i=1:length(x)

SNR=x(i);

sim('yima2');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

4.2.2 不同码率对卷积码误码性能的响

下面图4-9是通过改变卷积码的码率为1/2和1/3而得到的二条对比曲线。上面的一条曲线是码率为1/2,下面的是码率为1/3。卷积码的码率R = k/ n,他是卷积码的一个重要参数,当改变卷积码的码率时,系统的误码性能也将随之发生变化。从图4-9中的误比特率曲线可以看出,当码率一定时,随着信道噪声的逐渐减小,系统的误比特率也逐渐减小,当改变系统码率时,随着卷积码码率的逐渐提高,系统的误比特率也呈现出增大的趋势,也就是说码率越低,系统的误比特率就越小,误码性能就越好。

图4-9卷积码不同码率对误码性能的影响

分析不同码率对卷积码误码性能的影响时用到的程序如下:

x=0:5;

y=x;

for i=1:length(x)

SNR=x(i);

sim('yima1');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

hold on;

for i=1:length(x)

SNR=x(i);

sim('yima2');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

4.2.3 不同约束长度对卷积码的误码性能影响

如下图4-10,对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化, 我们以码率R = 1/ 2的(2 ,1 ,3)和(2,1,7)卷积码为例展开分析。上面的曲线是(2,1,3)卷积码的误码性能曲线。下面的曲线是(2,1,7)卷积码的误码性能曲线。从图4-4中的误比特率曲线可以清楚地看到,随着约束长度的逐渐增加,系统的误比特率明显降低,所以说当码率一定时,增加约束长度可以降低系统的误比特率,但是随着约束长度的增加,译码设备的复杂性也会随之增加,所以对于码率为1/ 2 的卷积码,我们在选取约束长度时一般为3~9 。

图4-10 不同约束长度对卷积码误码性能的影响分析不同约束长度对卷积码误码性能影响用到的程序如下:

x=0:5;

y=x;

for i=1:length(x)

SNR=x(i);

sim('yima');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

hold on;

for i=1:length(x)

SNR=x(i);

sim('yima1');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

通过上面从(1)回溯长度;(2)码率;(3)约束长度这三个卷积码的重要参数的变化后对译码性能的分析,我们得到在卷积码的编码,译码过程中有很多条件是不可能同时满足的。所以我们要根据具体情况来选择合适的参数。

结论

通过本次课题的研究,针对Viterbi算法在理论和实现两方面分别进行了较深的研究。理论方面,在深入了解了用于卷积码的Viterbi译码算法基本原理后,进一步将其拓展到SIMULINK模块仿真方面的应用,主要给出了基于Matlab的卷积编码和Viterbi算法应用过程。在实现方面,本文重点研究的是用SIMULINK 实现不同码率;不同约束长度;不同回溯长度下的卷积码的误码性能的对比研究.最后仿真得到对比图,达到了研究的预期目的。

经过自己的努力和曾老师的耐心指导,毕业设计顺利按时完成。它是对我们把本科四年所学的理论知识运用到实践中的一次系统的检验。从接到题目到设计结束的过程中经历了很多,总的来说可以概括为以下几点。

(1)设计中要用到的Simulink仿真软件是我第一次接触,所以刚接到题目时无从下手,后来通过上网和借助图书馆的书籍,学习这门新的软件,学习过程中遇到很多困难,但通过自己的努力和老师的帮助,最终掌握了仿真的基本方法。

(2)由于面临找工作的问题,和此次设计工作的时间安排上有一定的冲突。为了顺利完成设计工作,老师安排了每周的工作量和所要达到的目标,自己也制定了相应的时间表,以求更充分的利用时间。

(3)刚开始在设计的步骤和方法上比较混乱,后通过借阅各种资料和请教老师,有了明确的工作方向和清晰的设计步骤,使我能在更短的时间内很好的完成了本次毕业设计。

由于时间原因,本文的工作在很多方面未能更深入地研究下去。如对于Viterbi译码的软,硬判决的误码性能对比和应用还有必要进一步研究。

参考文献

[1]《信息论与编码》高等教育出版社仇佩亮编著

[2]《现代通信系统—使用MATLAB》西安交通大学出版社约翰.G.普罗克斯马苏德.萨勒赫编刘树棠译

[3]《SIMULINK通信仿真教程》国防工业出版社主编李贺冰副主编袁杰萍孔俊霞

[4]《MA TLAB通信仿真及应用实例详解》人民邮电出版社邓华等编著

[5]《MA TLAB基础与编程入门》西安电子科技大学出版社张威编

[6]《通信原理》国防工业出版社樊昌信吴成柯编

[7] 王新梅,肖国镇.《纠错码--原理与方法》修订版西安西安电子科技大学出版社 2001.

[8] Train Communication Network(TCN),IEC61375—1,1999

基于Matlab的FM仿真实现

摘要 本次设计主要是以Matlab为基础平台,对FM信号进行仿真。介绍了FM信号,及其调制和解调的基本原理,并设计M文件,分析在混入噪声环境下的波形失真,以及分析FM的抗噪声性能。本设计的主要目的是对Matlab的熟悉和对模拟通信理论的更深化理解。 关键词:Matlab;FM;噪声

前言 (2) 1 设计基础 (3) 1.1 Matlab及M文件的简介 (3) 1.2模拟调制概述 (4) 1.2.1模拟调制系统各个环节分析 (5) 1.2.2 模拟调制的意义 (6) 2 FM基本原理与实现 (7) 2.1 FM的基本原理 (7) 2.1.1调制 (7) 2.1.2解调 (8) 2.2 FM的实现 (8) 2.2.1 FM调制的实现 (8) 2.2.2 FM解调的实现 (9) 2.3 调频系统的抗噪声性能 (10) 2.3.1 高斯白噪声信道特性 (10) 3 FM的仿真实现与分析 (14) 3.1 未加噪声的FM解调实现 (14) 3.2 叠加噪声时的 FM解调 (16) 总结 (20) 致谢 (21) 参考文献 (22) 附录 (23)

通信按照传统的理解就是信息的传输。在当今高度信息化的社会,信息和通信已成为现代社会的命脉。信息作为一种资源,只有通过广泛传播与交流,才能产生利用价值,促进社会成员之间的合作,推动社会生产力的发展,创造出巨大的经济效益。而通信作为传输信息的手段或方式,与传感技术、计算机技术相融合,已成为21世纪国际社会和世界经济发展的强大动力。可以预见,未来的通信对人们的生活方式和社会的发展将会产生更加重大和意义深远的影响。 在通信系统中,从消息变换过来的原始信号所占的有效频带往往具有频率较低的频谱分量(例如语音信号),如果将这种信号直接在信道中进行传输,则会严重影响信息传送的有效性和可靠性,因此这种信号在许多信道中均是不适宜直接进行传输的。在通信系统的发射端通常需要有调制过程,将调制信号的频谱搬移到所希望的位置上,使之转换成适于信道传输或便于信道多路复用的已调信号;而在接收端则需要有解调过程,以恢复原来有用的信号。调制解调方式常常决定了一个通信系统的性能。随着数字化波形测量技术和计算机技术的发展,可以使用数字化方法实现调制与解调过程。 调制在通信系统中具有重要的作用。通过调制,不仅可以进行频谱搬移,把调制信号的频谱搬移到所希望的位置上,从而将调制信号转换成适合于信道传输或便于信道多路复用的已调信号,而且它对系统的传输有效性和传输可靠性有着很大的影响。调制方式往往决定了一个通信系统的性能。调制技术是指把基带信号变换成传输信号的技术。基带信号是原始的电信号,一般是指基本的信号波形,在数字通信中则指相应的电脉冲。在无线遥测遥控系统和无线电技术中调制就是用基带信号控制高频载波的参数(振幅、频率和相位),使这些参数随基带信号变化。用来控制高频载波参数的基带信号称为调制信号。未调制的高频电振荡称为载波(可以是正弦波,也可以是非正弦波,如方波、脉冲序列等)。被调制信号调制过的高频电振荡称为已调波或已调信号。已调信号通过信道传送到接收端,在接收端经解调后恢复成原始基带信号。

卷积码的编解码Matlab仿真

卷积码的编解码Matlab仿真摘要 卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力D随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本文简明地介绍了卷积码的编码原理和译码原理o并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真和实测,并对测试结果作了分析。得出了以下三个结论z (1)当改变卷积码的码率时,系统的误码性能也将随之发生变化。 (2)对于码率一定的卷积码,当约束长度N发生变化时,系统的误码性能也会随之发生变化。 (3)回溯长度也会不同程度上地影响误码性能。 关键词:卷积码:码率:约束长度:回溯长度

Simulation and Research on Encoding and Decoding of Convolution Code Abstract Convolution code has a superior performance of the channel code. It is easy to coding and decoding.An d it has a strong ability to correct e盯ors. As correcting coding theory has a long development,the practice of convolution code is more and more extensive.In由1S由esis,the principle of convolution coding and decoding is introduced simply白rstly. Then由e whole simulation module process of encoding,decoding and the Error Rate Calculation is completed in由is design. Finally,in order to understand 由eir performances of error rate,many changes in parameters of convolution code are calculated in the simulation process.Af ter simulation and me皿UTe,an analysis of test results is presented.Th e following由ree conclusions are draw: (l)Wh en the rate of convolution Code ch皿ges,HER performance of the systemwill change. (2) For a certain rate of convolution code,when由ere is a change in the constraint length of N,BER perfonnance of由e system will change. (3) Re位ospec咀ve length will affect BE R. Key words: convolution code; rate; cons缸aint leng由; retrospective length;

基于MATLAB的模拟调制系统仿真与测试(AM调制)

闽江学院 《通信原理设计报告》 题目:基于MATLAB的模拟调制系统仿真与测试学院:计算机科学系 专业:12通信工程 组长:曾锴(3121102220) 组员:薛兰兰(3121102236) 项施旭(3121102222) 施敏(3121102121) 杨帆(3121102106) 冯铭坚(3121102230) 叶少群(3121102203) 张浩(3121102226) 指导教师:余根坚 日期:2014年12月29日——2015年1月4日

摘要在通信技术的发展中,通信系统的仿真是一个重点技术,通过调制能够将信号转化成适用于无线信道传输的信号。 在模拟调制系统中最常用最重要的调制方式是用正弦波作为载波的幅度调制和角度调制。在幅度调制中,文中以调幅、双边带和单边带调制为研究对象,从原理等方面阐述并进行仿真分析;在角度调制中,以常用的调频和调相为研究对象,说明其调制原理,并进行仿真分析。利用MATLAB下的Simulink工具箱对模拟调制系统进行仿真,并对仿真结果进行时域及频域分析,比较各个调制方式的优缺点,从而更深入地掌握模拟调制系统的相关知识,通过研究发现调制方式的选取通常决定了一个通信系统的性能。 关键词模拟调制;仿真;Simulink 目录 第一章绪论 (1) 1.1 引言 (1) 1.2 关键技术 (1) 1.3 研究目的及意义 (2) 1.4 本文工作及内容安排 (2) 第二章模拟调制原理 (3) 2.1 幅度调制原理 (3) 2.1.1 AM调制 (4) 第三章基于Simulink的模拟调制系统仿真与分析 (6) 3.1 Simulink工具箱简介 (6) 3.2 幅度调制解调仿真与分析 (8) 3.2.1 AM调制解调仿真及分析 (8) 第四章总结 (12) 4.1 代码 (13) 4.2 总结 (14)

基于MATLAB的模拟信号频率调制(FM)与解调分析

课程设计任务书 学生姓名:杨刚专业班级:电信1302 指导教师:工作单位:武汉理工大学 题目:信号分析处理课程设计 -基于MATLAB的模拟信号频率调制(FM)与解调分析 初始条件: 1.Matlab6.5以上版本软件; 2.先修课程:通信原理等; 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1、利用MATLAB中的simulink工具箱中的模块进行模拟频率(FM)调制与解调,观 察波形变化 2、画出程序设计框图,编写程序代码,上机运行调试程序,记录实验结果(含计算结 果和图表等),并对实验结果进行分析和总结; 3、课程设计说明书按学校统一规范来撰写,具体包括: ⑴目录;⑵理论分析; ⑶程序设计;⑷程序运行结果及图表分析和总结; ⑸课程设计的心得体会(至少800字,必须手写。); ⑹参考文献(不少于5篇)。 时间安排: 周一、周二查阅资料,了解设计内容; 周三、周四程序设计,上机调试程序; 周五、整理实验结果,撰写课程设计说明书。 指导教师签名: 2013 年 7月 2 日 系主任(或责任教师)签名: 2013年 7月 2日

目录 1 Simulink简介 (1) 1.1 Matlab简介······················································错误!未定义书签。 1.2 Simulink介绍 ···················································错误!未定义书签。 2 原理分析 ·····························································错误!未定义书签。 2.1通信系统 ·························································错误!未定义书签。 2.1.1通信系统的一般模型 ···································错误!未定义书签。 2.1.2 模拟通信系统 (3) 2.2 FM调制与解调原理···········································错误!未定义书签。 3 基于Matlab方案设计 (6) 3.1 Matlab代码 (6) 3.2 Matlab仿真 (8) 4 基于Simulink方案设计 (12) 4.1 使用Simulink建模和仿真的过程 (12) 4.1.1 Simulink模块库简介 (12) 4.1.2 调制解调模块库简介 (13) 4.2 FM调制与解调电路及仿真 (14) 4.3 仿真结果分析 (17) 5 心得体会 ·····························································错误!未定义书签。 6 参考文献 (20) 本科生课程设计评定表

Matlab中卷积码译码器的误码率分析

长沙理工大学 《通信原理》课程设计报告 郭林 学院计算机与通信工程专业通信工程 班级540802 学号11 学生姓名郭林指导教师龙敏 课程成绩完成日期2008年1月11日

基于Matlab的卷积码译码器的 设计与仿真 学生姓名:郭林指导老师:** 摘要本课程设计主要解决对一个卷积码序列进行维特比(Viterbi)译码输出, 并通过Matlab软件进行设计与仿真,并进行误码率分析。在课程设计中,系统开发平台为Windows Vista Ultimate,程序设计与仿真均采用Matlab R2007a(7.4),最后仿真详单与理论分析一致。 关键词课程设计;卷积码译码器;Matlab;Simulink;设计与仿真 1引言 本课程设计主要解决对一个卷积码序列进行维特比(Viterbi)译码输出,并通 过Matlab软件进行设计与仿真。卷积码的译码有两种方法——软判决和硬判决,此课程设计采用硬判决的维特比译码。 1.1课程设计目的 卷积码是一种向前纠错控制编码。它将连续的信息比特序列映射为连续的编码器输出符号。这种映射是高度结构化的,使得卷积码的译码方法与分组码译码所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。对于某个特定的应用,采用分组编码还是采用卷积编码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术[1]。 本课程设计便是通过Matlab设计一个硬判决维特比译码输出的完整电路,并进行误码率分析。

1.2 课程设计的原理 卷积码,又称连环码,是由伊莱亚斯(P.elias)于1955年提出来的一种非分组码。 卷积编码的最佳译码准则为:在给定已知编码结构、信道特性和接收序列的情况下,译码器将把与已经发送的序列最相似的序列作为传送的码字序列的估值。对于二进制对称信道,最相似传送序列就是在汉明距离上与接收序列最近的序列。 卷积码的译码方法有两大类:一类是大数逻辑译码,又称门限译码(硬判决,编者注);另一种是概率译码(软判决,编者注),概率译码又分为维特比译码和序列译码两种。门限译码方法是以分组码理论为基础的,其译码设备简单,速度快,但其误码性能要比概率译码法差[2]。 当卷积码的约束长度不太大时,与序列译码相比,维特比译码器比较简单,计算速度快。维特比译码算法是1967年由Viterbi提出,近年来有大的发展。目前在数字通信的前向纠错系统中用的较多,而且在卫星深空通信中应用更多,该算法在卫星通信中已被采用作为标准技术。 2维特比译码原理 采用概率译码的基本思想是:把已接收序列与所有可能的发送序列做比较,选择其中码距最小的一个序列作为发送序列。如果发送L组信息比特,那么对于(n,k)卷积码来说,可能发送的序列有2kL个,计算机或译码器需存储这些序列并进行比较,以找到码距最小的那个序列。当传信率和信息组数L较大时,使得译码器难以实现。维特比算法则对上述概率译码做了简化,以至成为了一种实用化的概率算法。它并不是在网格图上一次比较所有可能的2kL条路径(序列),而是接收一段,计算和比较一段,选择一段最大似然可能的码段,从而达到整个码序列是一个最大似然值得序列。 下面以图2.1的(2,1,3)卷积码编码器所编出的码为例,来说明维特比解码的方法和运作过程。为了能说明解码过程,这里给出该码的状态图,如图2.2所

基于MATLAB模拟调制系统的仿真设计

1 线性模拟调制 1.1模拟调制原理 模拟调制是指用来自信源的基带模拟信号去调制某个载波,而载波是一个确知的周期性波形。模拟调制可分为线性调制和非线性调制,本文主要研究线性调制。 线性调制的原理模型如图1.1所示。设c(t)=Acos2t f o π,调制信号为m(t),已调信号为s(t)。 图1.1 线性调制的远离模型 调制信号m(t)和载波在乘法器中相乘的结果为:t A t m t s w o cos )()('=,然后通过一个传输函数为H(f)的带通滤波器,得出已调信号为。 从图1.1中可得已调信号的时域和频域表达式为: (1-1) 式(1-1)中,M(f)为调制信号m(t)的频谱。 由于调制信号m(t)和乘法器输出信号之间是线性关系,所以成为线性调制。带通滤波器H(f)可以有不同的设计,从而得到不同的调制种类。 1.2双边带调制DSB 的基本原理 在幅度调制的一般模型中,若假设滤波器为全通网络,调制信号m(t)中无直流分量,则输出的已调信号就是无载波分量的双边带调制信号,或称抑制载波双边带(DSB )调制信号,简称双边带(DSB )信号。 设正弦型载波c(t)=Acos( t) ,式中:A 为载波幅度, 为载波角频率。 根据调制定义,幅度调制信号(已调信号)一般可表示为: (t)=Am(t)cos(t) (1-2) ?? ???-++==) ()]()([21)()(*]cos )([)(f H f f M f f M f s t h t t m t s o o o w m(t) H(t) A os t w o c s(t) )(' t s

其中,m(t)为基带调制信号。 设调制信号m(t)的频谱为M(),则由公式2-2不难得到已调信号 (t)的频谱: )]()([2 )(c c m M M A s ωωωωω-++= (1-3) 由以上表示式可见,在波形上,幅度已调信号随基带信号的规律呈正比地变化;在频谱结构上,它的频谱完全是基带信号频谱在频域的简单搬移。 标准振幅就是常规双边带调制,简称调幅(AM )。假设调制信号m(t)的平均值为0,将其叠加一个直流偏量 后与载波相乘,即可形成调幅信号。其时域表达式为: )cos())(()(0t t m t c AM A s ω+= (1-4) 式中: 为外加的直流分量;m(t)可以是确知信号,也可以是随机信号。 若为确知信号,则AM 信号的频谱为: (1-5) AM 信号的频谱由载频分量、上边带、下边带三部分组成。AM 信号的总功率包括载波功率和边带功率两部分。只有边带功率才与调制信号有关,也就是说,载波分量并不携带信息。因此,AM 信号的功率利用率比较低。 AM 调制器模型如下图所示。 图1.2 AM 调制器模型 AM 信号的时域和频域表达式分别为 (1-6) (1-7) 式中,A o 为外加的直流分量;m(t)可以是确知信号也可以是随机信号,但通常认为其平均值为0,即0)(=t m — 。 由频谱可以看出,AM 信号的频谱由载波分量、上边带、下边带三部分组成。上边带的频谱结构与原调制信号的频谱结构相同,下边带是上边带的镜像。因此,AM 信号是带有载波 分量的双边带信号,他的带宽是基带信号带宽 的2倍,即 ) (cos )()(cos ) (cos )]([)(t w c t m t w c A t w c t m A o t s o AM +=+=)]()([2 1)]()([)(w c w M w c w M w c w w c w A o t s AM -+++-++=δδπ)] ()([2 1)]()([)(0 ω ω ω ω ωωωδωδπωc c c c m M M A s -+++-++=f H

Matlab的卷积码译码器的仿真要点

基于Matlab的卷积码译码器的 设计与仿真 学生姓名:指导老师:** 摘要本课程设计主要解决对一个卷积码序列进行维特比(Viterbi)译码输出, 并通过Matlab软件进行设计与仿真,并进行误码率分析。在课程设计中,系统开发平台为Windows Vista Ultimate,程序设计与仿真均采用Matlab R2007a(7.4),最后仿真详单与理论分析一致。 关键词课程设计;卷积码译码器;Matlab;Simulink;设计与仿真 1引言 本课程设计主要解决对一个卷积码序列进行维特比(Viterbi)译码输出,并通 过Matlab软件进行设计与仿真。卷积码的译码有两种方法——软判决和硬判决,此课程设计采用硬判决的维特比译码。 1.1课程设计目的 卷积码是一种向前纠错控制编码。它将连续的信息比特序列映射为连续的编码器输出符号。这种映射是高度结构化的,使得卷积码的译码方法与分组码译码所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。对于某个特定的应用,采用分组编码还是采用卷积编码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术[1]。 本课程设计便是通过Matlab设计一个硬判决维特比译码输出的完整电路,并进行误码率分析。

1.2 课程设计的原理 卷积码,又称连环码,是由伊莱亚斯(P.elias)于1955年提出来的一种非分组码。 卷积编码的最佳译码准则为:在给定已知编码结构、信道特性和接收序列的情况下,译码器将把与已经发送的序列最相似的序列作为传送的码字序列的估值。对于二进制对称信道,最相似传送序列就是在汉明距离上与接收序列最近的序列。 卷积码的译码方法有两大类:一类是大数逻辑译码,又称门限译码(硬判决,编者注);另一种是概率译码(软判决,编者注),概率译码又分为维特比译码和序列译码两种。门限译码方法是以分组码理论为基础的,其译码设备简单,速度快,但其误码性能要比概率译码法差[2]。 当卷积码的约束长度不太大时,与序列译码相比,维特比译码器比较简单,计算速度快。维特比译码算法是1967年由Viterbi提出,近年来有大的发展。目前在数字通信的前向纠错系统中用的较多,而且在卫星深空通信中应用更多,该算法在卫星通信中已被采用作为标准技术。 2维特比译码原理 采用概率译码的基本思想是:把已接收序列与所有可能的发送序列做比较,选择其中码距最小的一个序列作为发送序列。如果发送L组信息比特,那么对于(n,k)卷积码来说,可能发送的序列有2kL个,计算机或译码器需存储这些序列并进行比较,以找到码距最小的那个序列。当传信率和信息组数L较大时,使得译码器难以实现。维特比算法则对上述概率译码做了简化,以至成为了一种实用化的概率算法。它并不是在网格图上一次比较所有可能的2kL条路径(序列),而是接收一段,计算和比较一段,选择一段最大似然可能的码段,从而达到整个码序列是一个最大似然值得序列。 下面以图2.1的(2,1,3)卷积码编码器所编出的码为例,来说明维特比解码的方法和运作过程。为了能说明解码过程,这里给出该码的状态图,如图2.2所

卷积码matlab程序

卷积编码程序: function [output, len_tal] = cnv_encd(secrettext, encodetext) g = [0 0 1 0 0 1 0 0; 0 0 0 0 0 0 0 1; 1 0 0 0 0 0 0 1; 0 1 0 0 1 1 0 1]; k0 = 1; % 读入文本文件并计算文件长度 frr = fopen(secrettext, 'r'); [msg, len] = fread(frr, 'ubit1'); msg = msg'; % check to see if extra zero padding is necessary if rem(length(msg), k0) > 0 msg = [msg, zeros(size(1:k0-rem(length(msg),k0)))]; end n = length(msg)/k0; % 把输入比特按k0分组,n为所得的组数。 % check the size of matrix g if rem(size(g, 2), k0) > 0 error('Error, g is not of the right size.'); end % determine L and n0 L = size(g, 2)/k0; n0 = size(g, 1); % add extra zeros,以保证编码器是从全0开始,并回到全0状态。 u = [zeros(size(1:(L-1)*k0)), msg, zeros(size(1:(L-1)*k0))]; % generate uu, a matrix whose columns are the contents of conv. encoder at % various clock cycles. u1 = u(L*k0: -1 :1); for i = 1:n+L-2 u1 = [u1, u((i+L)*k0:-1:i*k0+1)]; end uu = reshape(u1, L*k0, n+L-1); % determine the output output = reshape(rem(g*uu, 2), 1, n0*(L+n-1)); len_tal = n0*(L + n - 1);

基于MATLAB的卷积码的分析与应用

基于MATLAB的卷积码的分析与应用

毕业设计(论文)任务书

基于MATLAB的卷积码的分析与应用 摘要 随着现代通信的发展,特别是在未来4G通信网络中,高速信息传输和高可靠性传输成为信息传输的两个主要方面,而可靠性尤其重要。因为信道状况的恶劣,信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途径:一种是增加发送信号的功率,提高接收端的信号噪声比;另一种是采用编码的方法对信道差错进行控制。前者常常受条件限制,不是所有情况都能采用。因此差错控制编码得到了广泛应用。 介绍了多种信道编码方式,着重介绍了卷积码的编码方法和解码方式。介绍了MATLAB的使用方法、编程方法、语句、变量、函数、矩阵等。介绍了TD-SCDMA通信系统和该系统下的卷积码,搭建了系统通信模型。编写卷积码的编码和解码程序。用MATLAB仿真软件对TD-SCDMA系统的卷积码编解码进行仿真。对其纠正错码性能进行验证,并且对误码率进行仿真和分析。卷积码的编码解码方式有很多,重点仿真Viterbi算法。Viterbi算法就是利用卷积码编码器的格图来计算路径度量,选择从起始时刻到终止时刻的惟一幸存路径作为最大似然路径。沿着最大似然路径回溯到开始时刻,所走过的路径对应的编码输出就是最大似然译码输出序列。它是一种最大似然译码方法,当编码约束长度不大、或者误码率要求不是很高的情况下,Viterbi译码器设备比较简单,计算速度快,因而Viterbi译码器被广泛应用于各种领域。 关键词:卷积码;信道编码;TD-SCDMA;MATLAB

目录 毕业设计(论文)任务书 ............................................................................................I 摘要........................................................................................................................... II Abstract......................................................................................... 错误!未定义书签。第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)

实验一 模拟通信的MATLAB仿真

实验一 模拟通信的MATLAB 仿真 姓名:左立刚 学号:031040522 简要说明: 实验报告注意包括AM ,DSB ,SSB ,VSB ,FM 五种调制与解调方式的实验原理,程序流程图,程序运行波形图,simulink 仿真模型及波形,心得体会,最后在附录中给出了m 语言的源程序代码。 一.实验原理 1.幅度调制(AM ) 幅度调制(AM )是指用调制信号去控制高频载波的幅度,使其随调制信号呈线性变化的过程。AM 信号的数学模型如图3-1所示。 图2-1 AM 信号的数学模型 为了分析问题的方便,令 δ =0, 1.1 AM 信号的时域和频域表达式 ()t S AM =[A 0 +m ()t ]cos t c ω (2-1) ()t S AM =A 0 π[()()ωωωωδC C ++-]+()()[]ωωωωc c M M ++-2 1 (2-2)

AM 信号的带宽 2 =B AM f H (2-3) 式中, f H 为调制信号的最高频率。 2.1.3 AM 信号的功率P AM 与调制效率 η AM P AM =()222 2 t m A +=P P m c + (2-4) 式中,P C =2 A 为不携带信息的载波功率;()2 2 t m P m =为携带信息的边带 功率。 ()() t t m A m P P AM C AM 2 2 2+= = η (2-5) AM 调制的优点是可用包络检波法解调,不需要本地同步载波信号,设备简单。AM 调制的最大缺点是调制效率低。 2.2、双边带调制(DSB ) 如果将在AM 信号中载波抑制,只需在图3-1中将直流 A 0 去掉,即可输出 抑制载波双边带信号。 2.2.1 DSB 信号的时域和频域表达式 ()()t t m t c DSB S ωcos = (2-6) ()()()[]ωωωωωC C DSB M M S ++-=2 1 (2-7) DSB 信号的带宽 f B B H AM DSB 2 == (2-8)

基于MATLAB对卷积码的性能分析

基于MATLAB对卷积码的性能分析 【摘要】本文对比了在加性高斯白噪声(AWGN)信道下经BPSK调制后的数据不编码与添加卷积编码后接收到的信道输出的误码性能,并通过对比对卷积码性能进行分析。采用MATLAB自编函数对[2,1,8]卷积码以及维特比译码进行仿真,且对其性能进行分析。由于卷积码有性能floor,编码增益随信噪比降低而体现不明显。仿真结果表明:当信噪比等于-1dB时,一个序列通过加性高斯白噪声信道后接收到的信道输出误比特率大于10-1,且该序列运用[2,1,8]卷积码编码,维特比译码(硬判决)后所得的序列误比特率升高。当信噪比为2dB时,一个序列通过加性高斯白噪声信道后接收到的信道输出误比特率约为4*10-2,且该序列运用[2,1,8]卷积码编码,维特比译码后所得的序列误比特率小于10-3,误码率远低于不编码时的误码率。因此卷积码适用于信道输出误码率比较低时候。 【关键词】维特比译码;卷积码;误比特率;马尔科夫性 1.引言 卷积码的编码器是由一个有k位输入、n位输出,且具有m位移位寄存器构成的有限状态的有记忆系统,通常称它为时序网络。[1]编码器的整体约束长度为v,是所有k个移位寄存器的长度之和。具有这样的编码器的卷积码称作[n,k,v]卷积码。对于一个(n,1,v)编码器,约束长度v等于存储级数m。卷积码是由k个信息比特编码成n(n>k)比特的码组,编码出的n比特码组值不仅与当前码字中的k个信息比特值有关,而且与其前面v个码组中的v*k个信息比特值有关。 卷积码有三种译码方式:序列译码、门限译码和概率译码。其中,概率译码根据最大似然译码原理在所有可能路径中求取与接收路径最相似的一条路径,具有最佳的纠错性能,[2]维特比译码是概率译码中极重要的一种方式。 序列译码和门限译码则不一定能找出与接收路径最相似的一条路径。不同于维特比译码,门限译码与序列译码所需的计算量是可变的且对于给定信息分组的最终判决仅仅基于(m+1)个接收分组,而不是基于整个接收序列。[3]与维特比译码所使用的对数似然量度不同,序列译码所使用的量度为Fano量度。在接收序列受扰严重的情况下,序列译码的计算量大于维特比译码所需的固定计算量,虽然序列译码要求的平均计算次数通常小于维特比译码。在采用并行处理的情况下,维特比译码的速度会优于序列译码。在同样码率和存储级数的条件下,门限译码的性能比维特比译码低大约3dB。 维特比译码的数据输出方式有硬判决及软判决两种方式,本文选取生成多项式为561,753的(2,1,8)卷积码对硬判决的性能进行分析,并依据维特比译码的原理以及卷积码的特性,对卷积码编码和维特比译码过程在加性高斯白噪声(AWGN)信道下进行仿真,并且根据仿真结果对维特比译码(硬判决)的结果

MATLAB OFDM卷积编码程序及代码

%bin22deci.m function y=bin22deci(x) %将二进制数转化为十进制数 t=size(x,2); y=(t-1:-1:0); y=2.^y; y=x*y'; %************************end of file*********************************** %comb.m %AWGN加噪声程序 function[iout,qout]=comb(idata,qdata,attn) %******************variables************************* %idata:输入I信道数据 %qdata:输入Q信道数据 %iout输出I信道数据 %qout输出Q信道数据 %attn:由信噪比导致的衰减系数 %****************************************************** iout=randn(1,length(idata)).*attn; qout=randn(1,length(qdata)).*attn; iout=iout+idata(1:length(idata)); qout=qout+qdata(1:length(qdata)); %************************end of file*********************************** %crdemapping.m %数据逆映射载波程序 function[iout,qout]=crdemapping(idata,qdata,fftlen,nd); %******************variables************************* %idata:输入I信道的数据 %qdata:输入Q信道的数据 %iout:输出I信道的数据 %qout:输出Q信道的数据 %fftlen:FFT的长度 %nd:OFDM符号数 %***************************************************** iout(1:26,:)=idata(2:27,:); qout(1:26,:)=qdata(2:27,:); iout(27:52,:)=idata(39:64,:); qout(27:52,:)=qdata(39:64,:); %********************end of file*************************** %crmapping.m

MATLAB仿真 BPSK调制

matlab BPSK 调制与解调 1、调制 clear all; g=[1 0 1 0 1 0 0 1];%基带信号 f=100; %载波频率 t=0:2*pi/99:2*pi; cp=[];sp=[]; mod=[];mod1=[];bit=[]; for n=1:length(g); if g(n)==0; die=-ones(1,100); %Modulante se=zeros(1,100); % else g(n)==1; die=ones(1,100); %Modulante se=ones(1,100); % end c=sin(f*t); cp=[cp die]; mod=[mod c]; bit=[bit se]; end bpsk=cp.*mod; subplot(2,1,1);plot(bit,'LineWidth',1.5);grid on; title('Binary Signal'); axis([0 100*length(g) -2.5 2.5]); subplot(2,1,2);plot(bpsk,'LineWidth',1.5);grid on; title('ASK modulation'); axis([0 100*length(g) -2.5 2.5]); 2、调制解调加噪声 clc; close all; clear; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 假定:

% 2倍载波频率采样的bpsk信号 % 调制速率为在波频率的 N/2m % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% m=128; N=512; n=1:1:N; N0=0.5*randn(1,N) %噪声 h0=zeros(1,N); % 30阶低通滤波器 h0 f = [0 0.3 0.3 1]; w0 = [1 1 0 0]; b = fir2(30,f,w0); [h,w] = freqz(b,1,N/2); h0(1,1:N/2)=abs(h'); for i=1:N/2 h0(1,N-i+1)=h0(1,i); end; %%%%%%%%% 随机序列 a=rand(1,m); for i=1:m if(a(1,i)>0.5) a(1,i)=1; else a(1,i)=-1; end; end; %%% 生成BPSK信号 bpsk_m=zeros(1,N); j=1;k=1; for i=1:N if(j==(N/m+1)) j=1; k=k+1; end; % 0.05*pi 为初始相位,可以任意改变 bpsk_m(1,i)=a(1,k)*sin(2*pi*0.5*i+0.05*pi)+a(1,k)*cos(2*pi*0.5*i+ 0.05*pi); j=j+1; end; bpsk_m=bpsk_m+N0;% 信号加噪声,模拟过信道 % 接收处理用正交本振与信号相乘,变频 bpsk_m1=bpsk_m.*sin(2*pi*0.5*n); bpsk_m2=bpsk_m.*cos(2*pi*0.5*n); %滤波 tempx=fft(bpsk_m1);

matlabFM调制仿真

Matlab FM调制仿真

目录 引言.................................................................................. 一.课程设计的目的与要求 .............................................. 1.1课程设计的目的.................................................... 1.2课程设计的要求.................................................... 二.FM调制解调系统设计............................................... 2.1FM调制模型的建立............................................. 2.2调制过程分析........................................................ 2.3FM解调模型的建立............................................. 2.4解调过程分析........................................................ 2.5高斯白噪声信道特性 ............................................ 2.6调频系统的抗噪声性能分析 ................................ 三.仿真实现...................................................................... 3.1MATLAB源代码.................................................. 3.2仿真结果................................................................ 四.心得体会...................................................................... 五.参考文献...................................................................... 引言 本课程设计用于实现DSB信号的调制解调过程。信号的调制与解调在通信系统中具有重要的作用。调制过程是一个频谱搬移的过程,它是将低频信号的频谱搬移到载频位

MATLAB实现卷积码编译码-

本科生毕业论文(设计) 题目:MATLAB实现卷积码编译码 专业代码: 作者姓名: 学号: 单位: 指导教师: 年月日

目录 前言----------------------------------------------------- 1 1. 纠错码基本理论---------------------------------------- 2 1.1纠错码基本理论 ----------------------------------------------- 2 1.1.1纠错码概念 ------------------------------------------------- 2 1.1.2基本原理和性能参数 ----------------------------------------- 2 1.2几种常用的纠错码 --------------------------------------------- 6 2. 卷积码的基本理论-------------------------------------- 8 2.1卷积码介绍 --------------------------------------------------- 8 2.1.1卷积码的差错控制原理----------------------------------- 8 2.2卷积码编码原理 ---------------------------------------------- 10 2.2.1卷积码解析表示法-------------------------------------- 10 2.2.2卷积码图形表示法-------------------------------------- 11 2.3卷积码译码原理---------------------------------------------- 15 2.3.1卷积码三种译码方式------------------------------------ 15 2.3.2V ITERBI译码原理---------------------------------------- 16 3. 卷积码编译码及MATLAB仿真---------------------------- 18 3.1M ATLAB概述-------------------------------------------------- 18 3.1.1M ATLAB的特点------------------------------------------ 19 3.1.2M ATLAB工具箱和内容------------------------------------ 19 3.2卷积码编码及仿真 -------------------------------------------- 20 3.2.1编码程序 ---------------------------------------------- 20 3.3信道传输过程仿真-------------------------------------------- 21 3.4维特比译码程序及仿真 ---------------------------------------- 22 3.4.1维特比译码算法解析------------------------------------ 23 3.4.2V ITERBI译码程序--------------------------------------- 25 3.4.3 VITERBI译码MATLAB仿真----------------------------------- 28 3.4.4信噪比对卷积码译码性能的影响 -------------------------- 28

相关文档
最新文档