通信系统信道编码研究及仿真.docx

上传人:b****5 文档编号:4917843 上传时间:2022-12-11 格式:DOCX 页数:32 大小:1.82MB
下载 相关 举报
通信系统信道编码研究及仿真.docx_第1页
第1页 / 共32页
通信系统信道编码研究及仿真.docx_第2页
第2页 / 共32页
通信系统信道编码研究及仿真.docx_第3页
第3页 / 共32页
通信系统信道编码研究及仿真.docx_第4页
第4页 / 共32页
通信系统信道编码研究及仿真.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

通信系统信道编码研究及仿真.docx

《通信系统信道编码研究及仿真.docx》由会员分享,可在线阅读,更多相关《通信系统信道编码研究及仿真.docx(32页珍藏版)》请在冰豆网上搜索。

通信系统信道编码研究及仿真.docx

通信系统信道编码研究及仿真

 

通信系统信道编码研究及仿真

院系:

信息科学与工程学院

专业班:

电子信息工程1102班

姓名:

朱家新

学号:

20111186053

指导教师:

王颖黄瑞光

2015年5月

 

通信系统信道编码研究及仿真

TheCommunicationsSystemChannelCodingandSimulationResearch

 

摘要

通信技术的飞速发展,信道编码已经成功地应用于各种通信系统中。

各种传输方式对可靠性要求的不断提高,信道编码技术作为抗干扰技术的一种重要的手段,在数字通信技术领域和数字传输系统中显示出越来越重要的作用。

通信系统仿真贯穿着通信系统工程设计的全过程,对通信系统的发展起着举足轻重的作用。

通信系统仿真具有广泛的适应性和极好的灵活性,有助于我们更好地研究通信系统性能。

本文是通过学习通信系统传输原理,建立起通信系统仿真模型,利用不同的码型对信道进行仿真分析。

学会使用仿真工具Matlab,先利用汉明码对信道的仿真,通过误码率的曲线图来了解其编码效率及特性。

再利用循环码对信道进行仿真,最后利用Matlab的Simulink模块仿真,其中是运用Simulink的卷积码Viterbi译码器来对高斯白噪声信道的仿真。

通过对这些码的仿真过程分析,从纠错能力,译码性能等方面分析研究各自的优缺点。

关键字:

Matlab信道编码译码Simulink

 

Abstract

Withtheripiddevelopmentofcommunicationtechnology,channelcodinghasbeensuccessfullyappliedtovariouscommunicationssystems.Andavarietyoftransmissionofthecontinuousimprovementofreliabilityrequirements,anti-jammingchannelcodingtechnologyasanimportantmeansoftechnolgyinthefieldofdigitalcommuncationstechnologyanddigitaltransmissionssystemsinamoreandmoreimportantrole.Communicationsystemsimulationrunsthroughthewholeprocessofcommunicationsystemsengineeringdesign,playsanimportantroleonthedevelopmentofcommunicationsystem.Communicationsystemsimulationhasextensiveadaptabilityandexcellentflexibility,helpsustobetterstudythecommunicationsystemperformance.

Bylearningcommunicationsystemtransmissionprinciple,thispaperestablishedacommunicationsystemsimulationmodelandcarriedoutonthechannelusingdifferentcodesimulationanalysis.LearnhowtousethesimulationtoolMatlab,Iusehammingcodeforchannelsimulationandunderstanditscodingefficiencyandfeaturesbythebiterrorratecurve.Usingcycliccodeforchannelsimulation,andfinallyintheMatlabSimulinkmodule,whichistousetheconvolutioncodeViterbidecoderintheSimulinktogaussianwhitenoisechannelsimulation.Byanalyzingthesimulationprocessofthecode,Istudytherespectivemeritsanddemeritsfromtheerrorcorrectionabilityanddecodingperformanceanalysis.

Keyword:

MatlabchannelcodingdecodingSimulink

 

 

绪论

现如今,随着无线通信技术的快速发展,数字信号技术发展迅速,它已渐渐将模拟信号取代成为了主流的传输信号类型,其优点有数字通信保密性高、抗干扰性能强、调制信号容易等。

数字信号在信道的传输过程中,信道的特性过于复杂,主要体现在实际信道的传输特性不理想、噪声干扰等,当经过调制的信号进入信道传输时由于信道的影响在接收端容易产生误码。

为了提高数字通信过程中的可靠性,就必须合理设计系统的发送和接收滤波器,采取均衡技术,消除数字系统中码间干扰的影响,还可选择合适的调制解调技术,增加发射机功率,采用先进的天线技术等。

若数字信号的误码仍不能满足要求,则可以采用信道编码技术,进而降低误码率。

在通信系统设计的历程中,系统仿真发展有着非常重要的作用。

这都要归功于系统仿真灵活性好、适应性广等特点。

通过系统仿真可以将复杂的系统变为简单的子系统来进行分析研究。

本课题目标是以Matlab及其仿真工具包Simulink对通信系统信道编码方式进行仿真分析。

在1948年的时候,香农发表了《通信的数字理论》文章,也是从那时开始,信道编码技术的研究方向渐渐得以明确,使研究者能更加深入进行设计研究。

在之后近50年的发展历程中,各种新的信道编码技术及方案被研究人员研究开发出来。

例如汉明码,Reed-Muller,Golay码等几类码是属于分组码,使用的是AWGN信道,只能针对随机错误进行编码,而不能纠错突发错误,也就是不能用于衰减信道的编码。

1959年Bose和Chaudhuri共同提出一类循环码中的BCH码[1],而这种BCH码良好的编码增益一种被研究者看好,也是因此它被沿用至今日。

1960年RS码被Reed和Solomon两位提出,相对于早期的编码技术来说,它具有良好的频带有效性,所以被广泛应用于卫星通信信道中。

在1955年科学家Elias提出了一种全新的编码方式(卷积编码),Wozencraft和Reiffen提出了序列译码,它是一种有效的译码方法,在1963年由Massey提出了门译码方法,虽然这种方法的性能较差,但它的实用性还是不错的[16]。

1967年Viterbi提出最大似然译码方法,对于存储级数较小的卷积码易于实现,因此它广泛应用于现代通信中[2]。

1993年,C.Barrou发表的Turbo论文中提出了Turbo码,

给出了Turbo码结构及在BPSK下其性能几乎达到了香农限,1995年Mackay和Neal发现低密度效验码的优越性之后,非常多的研究者都将注意力放在了LDPC码上,并将其作为未来高速宽带移动通信系统中的信道编码的主要备选方案之一[3]。

在实际的应用开发中,通信系统的优劣主要体现在有效性和可靠性这两个重要的方面,它们也是通信技术设计中非常重要的部分。

数字通信系统中由于信道在传输特性不理想及加噪声等易于造成码间串扰,功率限制和多径传播等导致错误译码,一般采用信道编码来确保系统的误比特率指标。

众所周知纠错编码技术在数字通信系统中起着很重要的作用,主要是用来提高通信的可靠性,所以从它出现到如今一直都是全世界通信领域研究的热点。

从1950年开始这一方面的研究一直没有中断且非常活跃。

在通信领域,由于计算机模拟技术的广泛实践应用,更加促进了纠错码技术的发展研究。

提高信息传输的可靠性和有效性一直是通信技术想要实现的目标,信道编码能够大大提升信息传输的可靠性,就让这一目标的实现容易了很多。

在这个过程中,我们需要学习通信系统传输原理,建立起通信系统仿真的模型(编码、译码),学习如何使用仿真工具MATLAB。

利用仿真工具MATLAB对通信系统信道编码(分组编码、冗余编码、卷积编码)仿真。

通过仿真分析,从纠错能力,译码性能等方面分析研究各自的优缺点。

 

1信道编码

1.1信道编码的概念及分类

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

信道编码的基本思想是在被传输信号中附加一些冗余码元,我们称这些冗余码元为监督码元。

监督码元和信号码元有一定的关系也可以说是规律,接收端可以利用监督码元与信号码元的这种关系对其进行效验,达到检测和纠正错误的目的,这种纠、检错能力是用编码的冗余度来换取的。

在编码之前信号是没有效验码或监督位的,传输过程中容易产生误码,所以说信道编码就需要给信息添加冗余度,使没有什么规律的原始数字信息转换成带有一定规律的数字信息。

信道译码就是利用其规律来检验在传输过程中是否发生错误,进而达到纠正错误的目的。

1.2信道编码及各种码类的简介

在二十世纪中期,在信源编码研究领域,通过香农得以证明:

当信源输出的信息添加有监督位的情况下,就能通过编码方式达到改变信源的输出的目的,这样就使得信息传输速率非常接近信道容量。

图1-1采用信道编码技术的数字通信系统

信道编码定理是在信息传输过程中,设r为其传输速率,c为离散信道的信达容量,

是大于零的任意小的一个数,当r

的分组码,并使得译码的平均差错概率

[9]。

上述定理描述的是:

只要信息在传输过程中满足速率比信道容量小,就存在一类编码,可以使信息传输的错误概率非常小,理论上达到0也是可能的。

其一般的思路就是通过构造一个理想的码,之后再定义一个译码规则,最后计算这个码的误码率。

1.2.1线性分组码

线性分组码从字面上可以理解为既是线性码也是分组码。

由码的分类知道,监督码元仅与本组监督码元有关的码称为分组码,监督码元与信息码元之间的关系可以用线性方程表示的码称为线性码[5]。

所以,在线性分组码中,一个码字中的监督码元只与这个码字中的信息码元相关,而且这种关系是使用线性方程来表示的。

线性分组码也是属于奇偶效验码,其形式是由(n,k)表示的。

编码器将一个k比特信息分组转变为一个更长的由给定元素符号集组成的n比特编码分组。

如果此元素符号集只是包含0和1两个元素的时候,与二进制相对,就被称为二进制编码[6]。

以长度为n的二进制分组码为例,可将其表示成(n,k)的形式,它一般情况用于前向纠错。

在分组码中,监督位加到信息位之后就生成新的码,在编码过程中,k个信息位加入监督位形成n位长度,n-k为监督码的个数,用以实现检错和纠错[7]。

1.2.2循环码

循环码它是一种重要的线性分组码。

如果线性分组码中的任一码字循环移位之后得到的码字在该码字集中仍然存在,那么就把这种线性分组码称为循环码。

可以知道在循环码中两个码字之和还是该码字中的一个码字。

循环码是由其码字长度n及生成多项式g(x)所决定。

除去全零的码字外,循环码中次数最低的码字多项式称为生成的多项式[8]。

循环码的生成多项式g(x)有以下三个特性:

(1)g(x)是

的一个因子。

(2)g(x)是r=n-k次多项式。

(3)g(x)的常数项为1.

1.2.3卷积码

卷积码是在线性码之后提出的,但是卷积码和线性分组码有很大不同,首先卷积码是属于非分组码的,它的所有(n,k)码字内的n个码元不仅与该码字内的信息码元有关,还与前面m个码字内的信息码元有关联。

或者说,各子码内的监督码元不仅对本子码起监督作用,而且对前面m个子码内的信息码元也起着监督作用[10]。

所以,卷积码通常用(n,k,m)表示。

通常称m为编译存储,它反映了输入信息码元在编码器中需要存储时间长短;称N=m+1为编码约束度,它是相互约束的码字个数;称nN为编码约束长度,它是相互约束的码元个数。

卷积码也有系统码和非系统码两种情况,如果其子码是系统码,则称这个卷积码为系统卷积码,反之,就是非系统卷积码。

 

2MATLAB简介

2.1MATLAB

MATLAB是英文MATrixLABoratory缩写的意思,矩阵实验室是其中文翻译,它是一款商业数学软件。

MATLAB是用于数据可视化、交互式环境和数据分析的高级技术计算语言和交互环境。

MATLAB矩阵运算、实现算法,绘制函数和数据图像是其常用的功能,MATLAB也用来创建用户界面及与调用一些例如C,C++的语言编写的程序[12]。

MATLAB的基本数据单位是矩阵,与一般我们在数学等领域用到的表达式相比,它们及其相似,也是因此,相对于用C、C++等语言来解决运算问题,用MATLAB要比它们简单很多,使之成为一个非常强大的数学软件。

还有一点就是它有很强的荣扩性,能直接调用其他语言编写的程序,将程序导入MATLAB函数库中就能很好的使用,也可以直接运行一些已经被编好的程序。

Matlab的特点:

(1)此高级语言可以用于技术计算

(2)此开发环境可对代码、文件及数据进行管理

(3)其内部的二维或三维图形函数一般用于可视化数据

(4)交互式工具可以按迭代的方式探查、设计及求解问题

(5)其数学函数一般用于fft分析、线性代数、统计等功能

(6)各种工具可用于构建自定义的图形用户界面

(7)各种函数可集成一些外部应用程序或语言,例如C、C++、Java等

2.2Simulink简介

Simulink是可视化动态系统仿真环境,其拥有动态系统建模和仿真的功能。

Simulink是MATLAB最重要的组件之一,其集成环境具有综合分析的能力[20]。

在这个环境中,根本不用大量书写程序,仅仅通过简单操作,就能构造出复杂的系统,用于仿真分析等。

在MATLAB中,Simulink是的一种可视化仿真工具,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性和非线性系统、数字控制及数字信号处理的建模和仿真中[13]。

.

Simulink的优点:

(1)直接通过图形搭建模型,不需要编程,用户使用起来很方便。

(2)具有结构和流程清晰,效率很高,灵活性强等优点;

(3)其扩展能力较强、移植性和开发性好

(4)语言简洁,内容丰富

 

3汉明码

3.1汉明码编码原理

在电信领域,汉明码是一种线性调试码。

当计算机进行存储或转移等操作时,其数据位上的信息很有可能会产生错误,这种情况发生时就需要利用汉明码来对其检测并纠错。

汉明码是一个错误校验码码集,是Hamming发明,所以命名为汉明码。

汉明码也利用了奇偶校验位的概念,这一点与其他的错误校验码相似。

通过在数据位之后添加加一定数量比特,就能达到验证数据的有效性的目的,这种方法非常实用。

它是通过利用多余一个的校验位,来验证数据的有效性,以及在出错的情况下找到错误的位置,方便纠错。

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

FEC属于三种常用的差错控制方式中的一种,另外两种分别是检错重发(ARQ)以及混合纠错。

而FEC的特点主要体现在其根本不需要反向信道而且实时性非常好。

前向纠错码(FEC)的码字是具有一定纠错能力的码,它是自动纠错的,在接收端译码后,对其中错误的码进行自动纠错,不需人为操纵。

汉明码就是利用奇偶块机制从而达到降低了前向纠错的成本的目的。

进行奇偶校验的方法:

先计算数据中1的个数,然后通过增加一个0或1(称为校验位),使1的个数变为奇数就叫奇校验,变成偶数就叫偶校验。

汉明码是编码效率较高的线性分组码,解码方式简单、方便、有效。

汉明码指某一种码这种说法不太正确,它其实而指一类码。

当m=3,4,5,6,7,…时,分别有(7,4),(15,11),(31,26),(63,57),…汉明码。

下面以(7,4)hamming码为例,简单介绍其参数:

码长:

信息位:

效验位:

(m大于等于3)

最小码距:

其生成矩阵G如下:

(其中前四位是信息位,后三位是监督位)

此次也是利用(7,4)汉明码进行仿真,使用的是高斯白噪声信道,可以通过观察仿真结果观察其编译码性能的优缺点。

3.2汉明码对高斯白噪声信道编码及仿真

3.2.1

对仿真过程进行分析,确定编码过程中需要使用的函数,分放置在.m文件中。

代码见附录一。

编译码程序是由一个主程序和6个子函数组成。

Number.m为随机信号源函数,Hm74.m和Dehm74.m分别为汉明码编码和解码函数,Modd.m和Demod.m分别为调制和解调函数。

Noise.m为产生高斯噪声函数,Exception.m文件中为业务控制函数,Main.m为主程序文件。

Number.m中随机信号源函数,rc=rand(k,1)中rand函数是产生在(0,1)之间均匀分布的随机数组成的数组。

这里是生成4乘1的矩阵。

数组中的数大于等于0.5输出1,小于0,5输出0,就得到了信息矩阵。

Hm74.m中函数为汉明码编码过程,先将随机信息矩阵、信息位k、矩阵P传入函数,通过Y=eye(k)得到k*k的单位矩阵,后面的G=[Y,P']就得到相应的生成矩阵G,rem(ic*G,2)函数用来求两数的余数,因此就可以求出信息矩阵通过生成矩阵G后生成的码字,将生成码字赋给code。

Modd.m中Modd()函数其中传入Hm74函数求得的生成码字、信息位k、监督位r,将生成码字中的值放入循环中,根据条件输出对应的载波信号1和-1。

Noise.m中noise函数是传入的是信号的分贝值SNR、信息位k以及监督位r的值。

函数中snr=10^(snr/10)就将对应的分贝转换成了对应的信噪比snr,再根据信息位与码长(信息位k加监督位r)之比得到编码效率,一般情况下,编码效率越高,传输效率越高,但纠错或是检错的能力会降低一些。

根据对信噪比、编码效率进行运算,再加入一个1*k+r的矩阵,就得到了经过高斯白噪声信道之后的码字。

Demod.m中Demod()函数将已调信号中携带的信号恢复出来的过程。

将载波信号1、-1转换为对应的1*7的0、1序列矩阵。

Dehm74.m中Dehm74()函数为汉明码译码过程。

函数传入的数据有解调后的信息矩阵in,信息位k、监督位r、矩阵P的值,得到码长m,然后先是生成r*r的单位矩阵,再将其与矩阵P结合得监督矩阵H,通过rem(in*H,2)将信息矩阵in与H的转置矩阵

相乘再取余得到输出的信息码S,利用H(:

n)取得监督矩阵H中第1列到第7列的数据赋给h。

将循环得到的每一个h的转置

与S做比较,当它们相等时跳出循环,得到此时的n值,将信号矩阵in的第n位上的数字做一次改变由0变为1,或者由1变0,就达到了纠错一位码字的功能。

将修改后的k位信息码输出。

Example.m中定义了信号位k、监督位r的值,监督矩阵P,给出测试数据包的数量以及用来统计译码后错误码元的数量w的初始值0。

通过调用随机信号源、编码译码、调制解调等函数得到译码后输出的信息码dhc,将其与随机信号函数得到的信息码ic进行比较,不相等的情况下w自增1,得打所以测试数据包检测完后的w。

代码中通过BER=w/(N*k)就就将误码率求出来了。

Main.m为主程序文件,定义一个信噪比s变量,调用Example函数,run(运行)主程序输出信噪比和误码率的关系曲线图。

Main.m函数仿真结果如图3-1所示:

2

图3-1误码率曲线图

观察图3-1中发现,汉明码的编码效率很好,在高斯白噪声信道中,当信噪比较小时,误码率略高,但当信噪比不断增大时,误码率随之越来越低了,理论上当信噪比非常大的时候,误码就会无限接近于0或等于0,

此设计代码完成了汉明码的编码和译码过程,令人遗憾的是,汉明码的编码效率虽好,但它是不能同时对7位码字进行两位纠错的,也就是说,只能完成一位信息码的纠错。

这一点制约了汉明码在实际系统的应用,如果能通过整合其他技术,到达检错并纠错多位码元,那么汉明码的发展前景会非常大。

 

4循环码

4.1循环码编译码原理

循环码的编码系统是以比特组为基础建立起来的,也就是字节了,但不要理解为它是单个的0和1,也就是说是非二进制BCH码,这种非二进制BCH码具有很强的处理突发错误的能力,在这一点上汉明码是不具有的。

循环码的特点:

(1)循环码是一类重要的线性分组码,因此它具有线性分组码的一般特性,还具有循环性,纠错能力强的特点。

(2)循环码是一种无权码,其相邻数码间只有一位码元不同,因此它它满足邻接条件,没有瞬时错误的优点。

循环码完全由其码字长度n及生成多项式g(x)所决定。

以(7,4)循环码为例,n=7,k=4,r=3.生成多项式为

,效验多项式为

其生成矩阵和效验矩阵分别为:

4.1.1编码原理

在讨论循环码时,一般是用代数多项式来表示循环码的码字,此多项式就被称为码字多项式了。

对于(n,k)循环码的码字,其码字多项式的一般形式为式(4-1):

(4-1)

系统循环码的码字多项式可表示为式(4-2):

(4-2)

其中,前一部分代表信息码元组,后一部分用[]’表示,是

被g(x)除得的余式,它代表监督码组。

(1)有信息码构成信息多项式:

,其中高幂次为k-1。

(2)用

乘上信息多项式m(x),得最高幂次为n-1,做移位。

(3)用g(x)除

和到余式r(x)。

4.1.2译码原理

发送码字多项式A(x)是生成多项式g(x)的倍式,换言之,生成多项式g(x)能将发送码字多项式A(x)整除.如果码字经信道传输后没有发生错误,那么接收码字多项式B(x)也是生成多项式g(x)的倍式,但如果码字在传输过程中发生错误,则接收码字多项式不再是生成多项式g(x)的倍式,即此时g(x)不能整除接收码字多项式[15]。

所以定义伴随多项式S(x)为:

(4-3)

即S(x)是接收码字多项式B(x)除以g(x)后的余式,是不大于r-1次多项式。

接收码字多项式B(x)是发送码字多项式A(x)和差错多项式e(x)(错误图样所对应的多项式)相加的结果,即

(4-4)

得:

(4-5)

由式可发现,伴随多项式只与差错多项式有关。

所以,循环码的译码过程也可以归纳为如下三个步骤:

(1)根据式(4-5)计算出可纠错图样多项式e(x)的伴随式S(x),将e(x)与S(x)的对应关系列成译码表。

(2)当收到一个码字B(x)后,利用式(4-3)求出伴随式S(x),对照译码表找到e(x);

(3)利用式(4-4)求出发送码字A(x),即

.

4.1.3循环码的检错与纠错

循环码的译码是可以检测和纠正突发错误的。

循环码的检错能力优越于其它码主要表现在他的超强检错能力和超强纠错能力,它的超强检错能力具体表现在以下的方面:

(1)能检出全部单个错码;

(2)能检查全部离散的二位错码;

(3)能检测出所以的奇数个错码;

(4)能检测所以

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

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1