电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc

上传人:wj 文档编号:625511 上传时间:2023-04-29 格式:DOC 页数:46 大小:26.83MB
下载 相关 举报
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第1页
第1页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第2页
第2页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第3页
第3页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第4页
第4页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第5页
第5页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第6页
第6页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第7页
第7页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第8页
第8页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第9页
第9页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第10页
第10页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第11页
第11页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第12页
第12页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第13页
第13页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第14页
第14页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第15页
第15页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第16页
第16页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第17页
第17页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第18页
第18页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第19页
第19页 / 共46页
电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc_第20页
第20页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc

《电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc》由会员分享,可在线阅读,更多相关《电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc(46页珍藏版)》请在冰点文库上搜索。

电子信息工程-毕设设计--基于matlab的信道编码仿真文档格式.doc

Thepurposeofchannelcodingistoimprovethetransmissionqualityofcommunicationssystems.Astheactualexistenceofthechannelnoiseandinterference,thetransmittedcodewordsandchanneltransmissionreceivedafterthedifferencebetweencodewords,saidthisdifferenceiswrong.Undernormalcircumstances,channelnoise,thegreatertheinterference,thecodewordgeneratedthegreatertheprobabilityoferror.

Inthispaper,matlabbinarysymmetricchannel(BSC),Gaussianwhitenoisechannel(AWGN)twochannelsimulation,(7,4)Hammingcodesimulationofthechannel,throughthebiterrorratecurvetounderstandthechannelcoding.Usingmatlabtosimulinkblocksimulation,usingsimulinkintheviterbidecodertoconvolutionalcodesonthebinarysymmetricchannelandGaussianwhitenoisechannelsimulation,observationerrorrategraphstounderstandthetwodifferentchannels

Keywords:

matlab,channel,coding,decoding,Simulink.

目录

1引言 1

1.1选题的目的和意义 1

1.2本选题的理论依据、研究内容 1

2.信道编码以及其运行环境MATLAB的介绍 2

2.1信道编码的概念及分类 2

2.2信道编码定理及信道编码中所包含的各种码类的简介 2

2.2.1卷积码 2

2.2.2线性分组码 3

2.2.3循环码 3

2.3MATLAB语言的简介 4

2.4Simulink 5

3.信道 5

3.1二进制对称信道(BSC) 5

3.2二进制删除信道(BEC) 6

3.3高斯白噪声信道(AWGN) 6

4.Hamming码 7

4.1汉明码 7

4.2校验方法 7

4.3汉明码编码 9

4.3.1汉明码对高斯白噪声信道 9

4.3.2汉明码对二进制对称信道的仿真 11

5.卷积码 15

5.1卷积码定义与原理 15

5.2维特比译码原理 15

5.3卷积码译码器对高斯白噪声信道的设计与仿真 18

5.3.1卷积码译码器的设计与仿真 19

5.3.2简化维特比译码器的仿真 22

5.3.3卷积码译码器的误码率分析 24

5.4卷积编码器在二进制对称信道(BSC)中的性能 25

6.卷积码译码器对二进制对称信道和高斯白噪声信道仿真比较 30

7.总结 31

致谢 32

参考文献 33

附录1:

34

附录2:

37

附录3:

40

附录4:

41

1引言

1.1选题的目的和意义

数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端产生图象跳跃、不连续、出现马赛克等现象。

所以通过信道编码这一环节,对数码流进行相应的处理,使系统具有一定的纠错能力和抗干扰能力,可极大地避免码流传送中误码的发生。

误码的处理技术有纠错、交织、线性内插等。

提高数据传输效率,降低误码率是信道编码的任务。

信道编码的本质是增加通信的可靠性。

但信道编码会使有用的信息数据传输减少,信道编码的过程是在源数据码流中加插一些码元,从而达到在接收端进行判错和纠错的目的。

1.2本选题的理论依据、研究内容

在数字通信系统中由于信道内存在加性噪声及信道传输特性不理想等容易造成码间串扰同时多用户干扰、多径传播和功率限制等也导致错误译码。

为了确保系统的误比特率指标通常采用信道编码。

信道编码是为了保证信息传输的可靠性、提高传输质量而设计的一种编码。

它是在信息码中增加一定数量的多余码元,使码字具有一定的抗干扰能力。

提高信息传输的有效性和可靠性始终是通信技术所追求的目标,而信道编码能够显著的提升信息传输的可靠性。

简述信道编码理论,详细说明分组码的编译原理、实现方法及检错纠错能力,用MATLAB仿真信道编码条不同信道下的影响。

学习卷积码的基本原理和编码方法。

学习基本分组码的原理和编码方法。

理解二进制对称信道(BSC),二进制擦除信道(BEC),高斯白噪声信道(AWGN)。

理解码率(coderate)和误码率(biterrorrate)的意义。

利用(7,4)Hamming码对不同信道进行仿真。

自己设计一个卷积码,并利用Viterbi译码二进制对称信道(BSC),高斯白噪声信道(AWGN)2个信道进行仿真,比较结果。

2.信道编码以及其运行环境MATLAB的介绍

2.1信道编码的概念及分类

进行信道编码是为了提高信号传输的可靠性,改善通信系统的传输质量,研究信道编码的目标是寻找具体构造编码的理论与方法。

从原理上,构造信道码的基本思路是根据一定的规律在待发送的信息码元中人为的加入一定的多余码元,以引入最小的多余度为代价来换取最好的抗干扰性能。

信道编码是通过信道编码器和译码器实现的用于提高信道可靠性的理论和方法,是信息论的内容之一。

信道编码大致分为两类:

①信道编码定理,从理论上解决理想编码器、译码器的存在性问题,也就是解决信道能传送的最大信息率的可能性和超过这个最大值时的传输问题。

②构造性的编码方法以及这些方法能达到的性能界限。

编码定理的证明,从离散信道发展到连续信道,从无记忆信道到有记忆信道,从单用户信道到多用户信道,从证明差错概率可接近于零到以指数规律逼近于零,正在不断完善。

编码方法,在离散信道中一般用代数码形式,其类型有较大发展,各种界限也不断有人提出,但尚未达到编码定理所启示的限度。

在连续信道中常采用正交函数系来代表消息,这在极限情况下可达到编码定理的限度,不是所有信道的编码定理都已被证明。

2.2信道编码定理及信道编码中所包含的各种码类的简介

1948年,信息论的奠基人C.E.Shannon在他的开创性论文“通信的数学理论”中,提出了著名的有噪信道编码定理。

他指出:

对任何信道,只要信息传输速率R不大于信道容量C,就一定存在这样的编码方法:

在采用最大似然译码时,其误码率可以任意小。

该定理在理论上给出了对给定信道通过编码所能达到的编码增益的上限,并指出了为达到理论极限应采用的译码方法。

在信道编码定理中,香农提出了实现最佳编码的三个基本条件:

(1)采用随机编译码方式;

(2)编码长度L→∞,即分组的码组长度无限;

(3)译码采用最佳的最大似然译码算法。

2.2.1卷积码

卷积码(convolutioncode)属于非分组码,它是一种小分组(n,k)多码段相关、纠错能力较强的FEC码。

卷积码不同于(n,k)分组码,它将(n,k)变成很短的分组(n,k),如(2,1)、(3,1)(3,2)卷积码等。

每一个监督元不仅是由本码段(n,k)的k位信码所决定,而且与其前N-1个码段的信码有关,因此称为卷积码。

它适于串行传送,延时较小。

本码段(n,k)以及其前(N-1)段构成的N个分组码段称为约束长度:

其码元数为Nn比特,而N称为约束度。

因此,各码段(n,k)不像(n,k)分组码是一个独立纠错码单元,其差错控制能力由N个码段来决定。

所以通常将卷积码写为(n,k,N),其中N=m+1,m是编码电路的移位寄存器数目。

卷积码分为两种:

(1)基本卷积码:

基本卷积码编码效率为,η=1/2,编码效率较低,优点是纠错能力强。

(2)收缩卷积码:

如果传输信道质量较好,为提高编码效率,可以采样收缩截短卷积码。

有编码效率为:

η=1/2、2/3、3/4、5/6、7/8这几种编码效率的收缩卷积码编码效率高,一定带宽内可传输的有效比特率增大,但纠错能力越减弱。

2.2.2线性分组码

简单来说,所谓“分组码”就是指码字的生成只与当前的源数据有关,而与前后的数据无关(相应地,与前后数据相关的码称为卷积码)。

分组码将连续的数据比特流分割为长度固定的组;

各组进一步以m比特为单位分割为符号(Symbol),通常取3比特或者8比特数据组成一个符号。

k个符号一起组成源字(Sourceword),经过编码后变为长度为n的码字(Codeword),称为m比特符号的(n,k)分组码。

所谓“线性”,是指编码过程均为线性变换,即可以通过矩阵变换来表示。

目前研究的纠错码大都属于线性码。

在线性空间中,所有可能的m比特源字都可以进行编码变换,而无需关心这m比特数据所代表的含义。

所谓“系统”,是指码字中包含了源字和变换所得的校验字。

2.2.3循环码

循环码的特点是符合(n,k)线形分组码特点---在码内(码子集合)的任意两个码字之和为该码中的一个码字,这一特征表明(n,k)循环码属于(n,k)线形分组码的一个子类。

(n,k)码中任何一个码字连续位移i位后的码字,仍属于该循环码的一个码字。

循环码中的生成多项式的必要条件为某(n,k)码是否位循环的必要条件是:

幂为码长n的多项式x+1,可分解出至少有1个因式的最高幂次为n-k=r,即该因式最高次项为x,最低项为常数1。

其生成多项式的充分条件是由必要条件得到的g(x),其多项式的非零权系数个数还应等于相应(n,k)分码组的d。

之所以补充这一“充分”条件,是因为符合必要条件的g(x)并不一定能得到与其相应分组码相同(n,k)的差错控制能力。

循环编码码步骤:

源码为m(x)=mx+…+mx+m,应首先提升n-k位,变为xm(x)。

然后以生成多项式g(x)去除,得

=q(x)+式(2-1)

可得循环码:

C(x)=xm(x)+b(x)。

2.3MATLAB语言的简介

MATLAB是矩阵实验室(Matrix Laboratory)之意,除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。

MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞争能力。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C、FORTRAN等语言完相同的事情简捷得多。

开放性使MATLAB广受用户欢迎。

除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。

Matlab软件最好的教材是它的帮助文件。

只要硬盘容量够大,极力推荐安装完整的帮助文档,即使你对阅读英文不是很有信心,但我相信其足够的实例还是能让你对要查询的命令函数有一定的了解的。

有两种方法取得帮助信息:

一是直接在命令窗口输入>

>

help函数名;

如helpimread,会得到相应函数的有关帮助信息。

二是在帮助窗口中查找相应信息。

不同版本的帮助菜单界面有所不同,这只能依赖于自己去熟悉了。

但总体上都和windows的界面具有相似的处理过程。

2.4Simulink

Simulink是TheMathWorks公司开发的用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具,常集成于MathWorks公司的另一产品mtlab中与之配合使用。

Simulink提供了一个交互式的图形化环境及可定制模块库(Library),可对各种时变系统,例如通讯、控制、信号处理、视频处理和图像处理系统等进行设计、仿真、执行和测试。

与MATLAB类似,Simulink的功能可以通过购买或自定义的工具箱不断扩展。

另外,Simulink与MATLAB紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。

它的主要特点有[1]:

1.丰富的可扩充的预定义模块库

2.交互式的图形编辑器来组合和管理直观的模块图

3.以设计功能的层次性来分割模型,实现对复杂设计的管理

4.通过ModelExplorer导航、创建、配置、搜索模型中的任意信号、参数、属性,生成模型代码

5.提供API用于与其他仿真程序的连接或与手写代码集成

6.使用EmbeddedMATLAB模块在Simulink和嵌入式系统执行中调用MATLAB算法

7.使用定步长或变步长运行仿真,根据仿真模式(Normal,Accelerator,RapidAccelerator)来决定以解释性的方式运行或以编译C代码的形式来运行模型

8.图形化的调试器和剖析器来检查仿真结果,诊断设计的性能和异常行为

9.可访问MATLAB从而对结果进行分析与可视化,定制建模环境,定义信号参数和测试数据

10.模型分析和诊断工具来保证模型的一致性,确定模型中的错误。

3.信道

3.1二进制对称信道(BSC)

二进制对称信道是离散无记忆信道在J=K=2时的特例。

它的输入和输出都只有0和1两种符号,并且发送0而接受到1,以及发送1而收到0(即误码)的概率相同,所以称信道是对称的。

此时条件差错概率由p表示。

二进制对称信道的转移概率如图3.1

图3.1二进制对称信道

3.2二进制删除信道(BEC)

图3.2二进制删除信道

信道的特点是,信源传输0或1时,接收端以1-a的概率正确接收,以概率a被删除。

3.3高斯白噪声信道(AWGN)

在信号传输的过程中,它会不可避免地受到各种干扰,这些干扰统称为“噪声”。

加性高斯白噪声AWGN是最常见的一种噪声。

加性高斯白噪声是最简单的一种噪声,它表现为信号围绕平均值的一种随机波动过程。

加性高斯白噪声的均值为o,方差表现为噪声功率的大小。

一放情况下,噪声功率越大,信号的波动幅度就越大,接收端接收到的信号的误比特率就越高。

在研究通信系统的误码率与信道质量的关系时,一放先研究它在加性高斯白噪声信道下的性能,然后再把它推广到具有快衰落的复杂情况。

4.Hamming码

4.1汉明码

当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为汉明码。

与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。

利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。

在接受端通过纠错译码自动纠正传输中的差错来实现码纠错功能,称为前向纠错FEC。

在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。

通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。

但这种方法比简单重传协议的成本要高。

汉明码利用奇偶块机制降低了前向纠错的成本。

4.2校验方法

进行奇偶校验的方法是先计算数据中1的个数,通过增加一个0或1(称为校验位),使1的个数变为奇数(奇校验)或偶数(偶校验)。

例如,数据1001总共是4个比特位,包括2个1,1的数目是偶数,因此,如果是偶校验,那么增加的校验位就是一个0,反之,增加一个1作为校验位。

通过“异或”运算来实现偶校验,“同或”运算来实现奇校验。

单个比特位的错误可以通过计算1的数目是否正确来检测出来,如果1的数目错误,说明有一个比特位出错,这表示数据在传输过程中受到噪音影响而出错。

利用更多的校验位,汉明码可以检测两位码错,每一位的检错都通过数据中不同的位组合来计算出来。

校验位的数目与传输数据的总位数有关,可以通过汉明规则进行计算:

 

  d+p+1<

=2的p次方 

  d表示传输数据位数目,p表示校验位数目。

两部分合称汉明码字,通过将数据位与一个生成矩阵相乘,可以生成汉明码字。

  2008-07-0519:

10

  针对4位数据的汉明码编码示意图

  汉明码是一个在原有数据中插入若干校验码来进行错误检查和纠正的编码技术。

以典型的4位数据编码为例,汉明码将加入3个校验码,从而使实际传输的数据位达到7个(位),它们的位置如果把上图中的位置横过来就是:

  数据位

  1 2 3 4 5 6 7

  代码

  P1P2D8P3D4 D2D1

  说明

  第1个汉明码

  第2个汉明码

  第1个数据码

  第3个汉明码

  第2个数据码

  第3个数据码

  第4个数据码

注:

Dx中的x是2的整数幂(下面的幂都是指整数幂)结果,多少幂取决于码位,D1是0次幂,D8是3次幂,想想二进制编码就知道了。

另外,汉明码加插的位置也是有规律的。

以四位数据为例,第一个汉明码是第一位,第二个是第二位,第三个是第四位,1、2、4都是2的整数幂结果,而这个幂次数是从0开始的整数。

这样我们可以推断出来,汉明码的插入位置为1(20(注:

20表示2的0次幂))、2(21)、4(22)、8(23)、16(24)、32(25)……

4.3汉明码编码

4.3.1汉明码对高斯白噪声信道

随机信号源:

function[out,rc]=inform(k)

rc=rand(k,1);

forn=1:

k

ifrc(n)>

=0.5out(n)=1;

elseout(n)=0;

end

end

产生高斯噪声:

functionout=noise(snr,k,r)

snr=10^(snr/10);

rate=k/(k+r);

q=1/(sqrt(2*snr*rate));

out=randn(1,k+r)*q;

汉明码编码:

functioncode=hamming(ic,k,P)

IG=eye(k);

G=[IG,P'

];

code=rem(ic*G,2);

汉明码译码:

functionout=dehamming(in,k,r,P)

m=k+r;

IH=eye(r);

H=[P,IH];

S=rem(in*H'

2);

n=0;

whilen<

m

n=n+1;

h=H(:

n);

ifS==h'

break;

end

end

in(n)=1-in(n);

fori=1:

out(i)=in(i);

调制:

functionout=modd(in,k,r)

forn=1:

ifin(n)<

1

out(n)=-1;

else

out(n)=1;

解调:

functionout=demod(in,k,r)

0

out(n)=0;

总程序

k=4;

%信息位

r=3;

%监督位

P=[1110;

%校验矩阵

0111;

1101;

SNR=1;

%信噪比

N=1000;

%测试的数据包数目

w=0;

%译码错误码元数目统计的变量

n=1;

N%测试数据包

[ic,rc]=inform(k);

%产生随机信号源

hc=hamming(ic,k,P);

%汉明码编码

mc=modd(hc,k,r);

%调制

nc=mc+noise(SNR,k,r);

%通过带噪声信道

dmc=demod(nc,k,r);

%解调

dhc

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2