基于simulink的74汉明吗的编码与译码.docx

上传人:b****7 文档编号:9929822 上传时间:2023-02-07 格式:DOCX 页数:16 大小:386.87KB
下载 相关 举报
基于simulink的74汉明吗的编码与译码.docx_第1页
第1页 / 共16页
基于simulink的74汉明吗的编码与译码.docx_第2页
第2页 / 共16页
基于simulink的74汉明吗的编码与译码.docx_第3页
第3页 / 共16页
基于simulink的74汉明吗的编码与译码.docx_第4页
第4页 / 共16页
基于simulink的74汉明吗的编码与译码.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于simulink的74汉明吗的编码与译码.docx

《基于simulink的74汉明吗的编码与译码.docx》由会员分享,可在线阅读,更多相关《基于simulink的74汉明吗的编码与译码.docx(16页珍藏版)》请在冰豆网上搜索。

基于simulink的74汉明吗的编码与译码.docx

基于simulink的74汉明吗的编码与译码

引言

在实际信道中传输数字信号时,由于信道特性不理想及加性噪声的影响,接收端所收到的数字信号不可避免的的会产生错码,影响通信质量。

为了使数字通信系统达到一定的误比特率指标,首先应合理设计基带信号,选择合适的调制方式、解调方式,采用均衡,提高发信功率等,但如果误比特率指标仍不能满足要求,则必须采用信道编码。

信道编码也称差错控制编码或纠错编码,它是提高数字通信系统可靠的重要方法。

1948年,香农在他的开创性论文《通信的数学理论》中首次阐明了在有扰信道中实现可靠通信的方法,提出了著名的有扰信道编码定理,奠定了纠错编码的基石。

如今的纠错编码已有几十年的历史,从早期的线性分组码,BCH码,到后来的RS码、卷积码,级

联码、Turbo码;从原来的代数译码,到后来的门限译码、软判决译码,到Viterbi译码

等;从注重数学模型、理论研究,到注重纠错编码的使用化问题,并且通过计算机仿真、搜索好码。

无论是从编码方法、译码方法还有研究方法上,纠错编码研究都取得了长足的发展,并广泛应用于各种通信系统。

如今,纠错编码技术已开始渗透带很多领域,如移动通信中大量利用纠错编码,计算机通信系统中也大量应用纠错编码。

汉明码是1950年由Hamming首先构造的,他是一个能够纠正单个错误的线性分组码,即SEC(SingErrorCorrecting)码,它不仅性能好,而且编译电路非常简单,易于实现。

从20世纪50年代问世以来,在提高系统可靠性方面获得了广泛的应用。

最先用于磁芯存储器,60年代初用于大型计算机,70年代在MOS存储器得到应用,后来在中小型计算机中普遍采用,目前常用在RFID系统中多位错误的纠正。

汉明码是在原编码的基础上附加一部分代码,使其满足纠错码的条件,原编码我们可将它称为信息码,附加码称为校验码(又可称为监督码或冗余码)。

汉明码的最小码间距为3,所以只能够检测到2个错误或纠正1个错误,编码效率最高。

它属于线性分组码,由于线性码的编码和译码容易实现,至今仍是应用最广泛的一类码。

1Simulink平台

1.1Simulink介绍

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。

在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。

Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。

同时有大量的第三方软件和硬件可应用于或被要求应用于

Simulink。

Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设

计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。

Simulink可以用连续采样时间、

离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。

模型化图形输入是指Simulik提供了一些按功能分类的

基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型,进而进行仿真与分析。

1.2Simulink工作环境

(1)模型库

在MATLAB命令窗口输入“Simulink并回车,就可进入Simulink模型库单击或工具栏上的按钮也可进入。

Simulik模块库按功能进行分为以下8类子库:

Continuous(连续模块),Discrete(离散模块),Function&Tables(函数和平台模块,)Math(数学模块),Nonlinear

(非线性模块,)Signals&Systems(信号和系统模块),Sinks(接收器模块),Sources(输入源模块),用户可以根据需要混合使用歌库中的模块来组合系统,也可以封装自己的模块,自定义模块库,从而实现全图形化仿真。

Simulink模型库中的仿真模块组织成三级树结构Simulink子模型库中包含了

Continous、Discontinus等下一级模型库Continous模型库中又包含了若干模块,可直接加入仿真模型。

图1-2新建仿真模型窗口

(3)运行仿真

两种方式分别是菜单方式和命令行方式,菜单方式:

在菜单栏中依次选择

"Simulation"|"Start"或在工具栏上单击。

命令

行方式:

输入“sim启动仿真进程。

比较这两种不同的运行方式:

菜单方式的优点在于交互性,通过设置示波器或显示模块即可在仿真过程中观察输出信号。

命令行方式启动模型后,不能观察仿真进程,但仍可通过显示模块观察输出,适用于批处理方式。

2(7,4)汉明码原理

一般来说,若码长为n,信息位数为k,则监督位数r=n-k。

若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求

2r1n或2rkr1(2-1)

下面以一个例子来说明这些监督关系式。

设分组码(n,k)中k=4,为了纠正一位错码,由式(2-1)可知,要求监督位数r>30若取r=3,则n=k+r=7。

我们用a6a5a4a3a2a1a0来表示这7个码元,用S1S2S3的值表示3个监督关系式中的校正子,则SS2S3的值与错误码元位置的对应关系可以规定(自然也可以规定另一种对应关系,这不影响讨论一般性)如表2-1所列。

表2-1校正子和错码位置的关系

S1S2S3

错码位置

S1S2S3

错码位置

001

a。

111

a4

010

011

a5

100

a2

110

a6

101

a3

000

无错码

则由表2-1可得监督关系式:

S1

a6

a4

a3a2

2-2)

S2

a6

a5

a4a1

2-3)

S3

a5

a4

a3a°

(2-4)

在发送端编码时,信息位a6a5a4a3的值决定于输入信号,因此它们是随机的。

监督

位应根据信息位的取值按监督关系来确定,即监督位应使式(2-2)~式(2-4)中

S1S2S3的值为0(表示编成的码组中应无错码)

a6a4a3a2

0

a6a5a4a1

0

2-5)

a5a4a3a°

0

按式(2-5)经过移项运算,解出监督位

a2

a6

a4

a3

a1

a6

a5

a4

(2-6)

a5

a4

a3

给定信息位后,可以直接按式(2-6)算出监督位,其结果如表2-2所列

表2-2监督位计算结果

信息位

监督位

信息位

监督位

a?

a1a°

a6a5a4a3

a?

玄卫。

0000

000

1000

110

0001

101

1001

011

0010

111

1010

001

0011

010

1011

100

0100

011

1100

101

0101

110

1101

000

0110

100

1110

010

0111

001

1111

111

接收端收到每个码组后,先按照式(2-2)~式(2-4)计算出S1S2S3,再按照表2-1判断错码情况。

按照上述方法构成的码称为汉明码。

表2-2所列的(7,4)汉明码的最小码距等于3。

因此,根据纠错编码的基本原理可知,这种码能够纠正一个错码或检测两个错码。

3系统设计

3.1(7,4)汉明码的编码与译码仿真电路

在设计中,本系统信号产生模块选用伯努利二进制序列产生器(BernoulliBinary

Generato)来输出随机数字信号,先进入HammingEncoder进行编码,然后进入DBPSKModulatorBaseband进行调制,再送入AWGN信道(加入高斯白噪声)传输,解调后接收信号送入HammingDecoder进行差错纠正,其后加一误码率计算模块(ErrorRateCalculation)计算误码率,最后用示波器Scope观察编码与译码后的波形。

(7,4)汉明码的编码与译码仿真电路如图3-1所示。

图3-1(7,4)汉明码的编码与译码仿真电路图

由于要绘制Hammingdecoder模块输入信噪比与输出误码率的关系曲线图,所以将

SNR设置成一个变量,通过ratio.m文件编程绘制误码率曲线图,程序见附录

3.2(7,4)汉明码的编码与译码仿真电路参数设计

将信号源的码元数率设为0.05B/S,即频率为20Hz。

参数设置如图3-2所示

吕SourceBlockParameters:

BernauHiBjruryGen,..

B音羸ncnjl1£EimtfGen<^

Ce-ae-rate-aTMdc-3binarr

ToE€n@is.~t&sve-ctcrcutput:

soecifytheprobatilityga.vectur,

Paxa^&ters

Fi-Gbabilitrofaz»o:

0.5

Initial莒*社:

5a>pl@tine:

Q.05

J且雪昙!

1s-utputs

S'ssTplgsp&ifraas;4

OutcutGatatypt;doubltt

掘£uic»Lfit如

图3-2信号源参数设置

ianc巨1IpAdd:

y

Initial-

InputEigc耳:

pcwijrefe

汉明码编码器与译码器设计成(7,4)汉明码。

参数设计如图3-3所示

吕FunctionBlockParameters:

HammingEncoder

TiajEinffsask)(link;

CrEst已己E^zniriESD-deirith二i已三&己e■三1En^thKEnd匚Gdewcrl1已ngthS.[上亡rLnzibeiSziuethavethefdtid2H--twtiereKissziinte-gerjzreattrthan

Jti

igxvntx

Parui*t*rs

CodiicoTcilfinfthN;

3

l«=n.grt'hKPorprisitivepoiyn-OHial:

d(3432tl')

图3-3汉明码编码器与译码器参数设置

为了提高误码率,便于观察分析,输入信号的功率设置为10,高斯白噪声信道的参数设置如图3-4所示。

”^unctionBlockParameters:

AWGFM匚hannel

AWGNCJiiBncIFxlc〉(linJc)

AddwfriteG-atiSaiEHnciaetntheinputsizna1.TireinDutajidoutnutsignalscanbe^ealoi~ccziplez„Thisbloclimippoxt5zsultizhaimelinputando-utputEifi-nalsazwel1amfi~ane~basedproce.ssltle1.

ffhenuairifhero:

thevar:

ariv&□odesTithccapletinputs-thevarianceT.'alu«sin吊u氐^>ng耳nd:

二m弓:

詮cat^n^nxscfthttatut

ParasitTrr

图3-4高斯白噪声信道参数设置

误码率计算模块参数设计如图3-5所示

Eft&fRstc'link'

Cawtz.oizhtnr二■人*brgiraqiu.fi1ittcil-s:

&r4dtifeiqe

gfttni&a.t&?

s»s^t-p^tic*g"aL-gseji?

tb?

tq-ri^g1

□ft上土errcrzatefallDTei匕一tzsx-sz-szifszrzzsistezt-el£nztnstctc_H^bKflfIfWlMhlAUPWiUeiH.Th^a■_a.v仝a--=iitt-3piIk醴theTtiku-aL--.

■BEDbtBbtBWt

Ttins-»p-i>clfS£-Jlaji.jj.L'v:

0芝r«sa^c-ftTivIIig?

thein^kt

9£a-Eeilarars=4亡ten?

»if^nTet*rji»1Ti''Sa's^rtE»uE-e&b富牛讨

baeacscaaor^orfro«v?

Lces:

l^xnac^rs.

Tbs^tc-3EL.3L.lEtLZ-E.C3:

Stepst~H113-Z.H.tl2dIlZTZlZSt-Elt1Z1:

3.15XES七H二二士□£鼻工二口工,-e-ia.土uq_^ids-yn.G-ls.,>i.i_h.ffii-rrc-nsrsIixat.

PssaaMEiss

KKtmOtlfifT

1

<=p^tat.2-n-2d.sla.T:

C~~patio-z=izze:

|t:

.=s:

zzaziz

Uta:

Put

FL*si9-tjxzrt

5■:

-opEiaizlsrtizr;

图3-5ErrorRateCalculation参数设置

ToWorkspace参数设置如图3-6所示。

Sink3lockParameters:

ToWorkspace

TaloikspAC*

Trit-eInputtoEpeslflid.ai-1ayors-trii^tjltslitJU丁二mzsaln.

TMkspaca-Eats1J;nitaTai^at-eliAtiltie兰工丄丄客百匕Bp白屯色址

p&js-»d.

Lde.fixed"pointdataasinfiobject

0£Cucsl星口

图3-6ToWorkspace参数设置

3.3仿真结果与分析

编码后的波形如图3-7所示,前面4个波形是信息位,后面3个波形是监督位对比

表2-2可知,编码正确。

S/PPA3Qe-7”

J1—

J

iii_i亠丛~|uuu□uu_^i士□uL]

I^CkMLjwTjOuLnrLJ^■,:

.

--LRU_TLTinJU~U~LJ~UI

jijijLj^hrmjiHl

图3-7编码后的波形

译码后的波形与信号源波形对比图如图3-8所示,对比波形可知,译码正确。

innrLn_rLJLnr~LJLrLTirLTuui^n_nzzLJZZL[

1TL-T~L^J

Lfu_rmrirT_rLrLr^_nrLTLnn

nr仃□厂l厂ltl厂Innnrm厂ird

LTLTLILJ~LTLJLJ~~LJLI

图3-8译码后的波形与信号源波形对比图

高斯信道输入信噪比与误码率关系图,如图3-9所示,可见误码率随着信噪比的增

加而下降,还可以发现,信息源的码元速率越小,曲线越光滑

图3-9高斯信道输入信噪比与误码率关系图

实验中还可以发现,当汉明码经过高斯白噪声信道不加调制与解调的时候,误码率不会随着高斯信道中的输入功率增加而减少,而是维持在一个固定值。

可见数字信号不能直接通过模拟的高斯信道,必须加上调制与解调。

4心得体会

在这次的设计中我学习到了很多。

首先本次设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问题,让我们对平时学习的理论知识与实际操作相结合,在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高,学会将知

识运用于实际的方法,提高分析和解决问题的能力,也让我掌握simulink仿真平台的使

用方法以及一些基本通信电路的结构原理,应该说是收益良多。

然而,在这次课程设计中,我也发现了很多自身的不足,比如基础知识不扎实,容易烦躁,不细心等等,这些必须在将来的学习生活中慢慢改进,加以克服。

在仿真的过程中遇到了各种不同的问题,比如当示波器中的波形只出现一部分时,需要双击示波器,修改datahistory中的limit

datapointstolast的数据,再重新运行Simulink观察示波器即可看到准确图形。

在解调时没有加噪声出现误码率,我通过查阅资料找到解决办法,可以根据示波器的输出波形,合理修改误码器中的receivedelay的数据就可以使误码数据为零。

通过理论指导与仿真实践,我完成了这次设计的任务,其运行结果如前面所示,较好的完成了这次设计。

仿真的时候,一直遇到误码率无法下降的情况,在尝试多种方法后,曾一度想过放弃。

当回去查阅前辈编的程序时,发现别人的汉明码在进入高斯白噪声前都加了调制与解调,就联想到自己的仿真问题是不是出在了这里,事实证明,我的想法是对的。

在设计的过程中,不断的尝试,不断的遇到困难,不断的想办法克服困难,以前碰到困难就找别人帮忙,这次独立完成这个课程设计,使我感受颇多,也只有这样不断的向前,才能真正学到、掌握知识。

谢辞

首先,要感谢我的课设老师陈冬梅老师,是她给了我一次接触Matlab/simulink的机会,使得我的知识面扩展许多。

在本次课程设计中,我了解到了通信系统仿真的重要性。

它可以很好地让我们理解通信原理,能够对原理进行仿真,这对于我们专业的学生来说是非常重要的。

因为我们以后会经常用到系统仿真来设计我们所需的通信系统,需要从仿真结果检验出我们所设计的系统是否达到目标,从中及时发现并解决设计问题,不断地改进和优化方案,这样可以提高效率,节约投资,缩短开发设计时间。

因此,了解和掌握通信系统仿真对于通信专业学生而言尤其重要。

在做课程设计准备工作的时候,我们应该明确以下几点:

首先,应该明确设计的要求,到底让我们做什么,要达到什么样的效果,目的要明确。

其次,将设计问题分解,分成几个模块,画出方框图并说明各个模块间的联系,有针对性的分别去设计各个模块,分块检错,消除模块内的问题。

然后,将各个模块联系起来,整体来调试,发现模块间的问题,不断的修改调试,已达到最终的要求。

通过这次课程设计,我对于设计有了一个具体的了解,知道了设计的具体流程。

我认为这对于我们来说是非常重要的,因为有了这样的设计思路和设计流程,我们才能设计其他不同的课题,才能达到举一反三的地步。

最后,我要感谢所有在我成长的道路上及完成课程设计过程中,关心、支持、帮助过我的人们,我所取得的每一点成绩都与你们的努力联系在一起,再一次向你们每个人表示由衷感谢。

参考文献

[1]周玲.Matlab/Simulink在信号调制与解调中的应用[J].鲁东大学学报,2011,27(4):

310-313

[2]孙高海,蒋洪晖,于爽•基于Matlab的二进制数字调制系统仿真[J].四川兵工学报,2010,31(3):

120-129

[3]刘斐•基于Simulink的通信系统仿真[J].电脑知识与技术,2011,7(7):

1593-1594

[4]么艳平,史红,王广德•基于Matlab/Simulink的调制解调分析[J].科协论坛,2011,40

(2):

40-41

⑸严晓兰•基于Simulink的信号与系统仿真实验研究[J].实验科学与技术,2008,30(6):

3-6

⑹樊昌信,曹丽娜•通信原理[M].北京:

国防工业出版社,2009

[7]张圣勤.MATLAB7.0实用教程[M].北京:

机械工程出版社,2006

[8]徐远明•MATLAB仿真在通信与电子工程中的应用[M].西安:

西安电子科技大学出版社,2005

[9]桑林,郝建军,刘丹谱•数字通信[M].北京:

国防工业出版社,2009

[10]唐向宏,岳恒立,郑雪峰•Matlab及在电子信息类课程中的应用[M].北京:

电子工业出版社,2009

附录

x=0:

20;%定义信噪比的范围为1~20

fori=1:

length(x)

xSNR=x(i);%AWGN信道中的信噪比依次取x中的元素

xErrorRate中

sim('fangzhen');%运行’fangzher仿真文件得到误码率存在工作区变量y(i)=mean(xErrorRate);%失算xRrrorRate的均值作为本次仿真的误码率end

semilogy(x,y,'-p');%semilogy函数对y求对数画图,点显示为星形xlabel('高斯信道中的信噪比/dB');%写x坐标

ylabel('误码率');%写y坐标

grideon;%画网格表

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

当前位置:首页 > 高等教育 > 文学

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

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