基于matlab的74汉明码编译码仿真.docx

上传人:b****5 文档编号:7662662 上传时间:2023-01-25 格式:DOCX 页数:20 大小:1.72MB
下载 相关 举报
基于matlab的74汉明码编译码仿真.docx_第1页
第1页 / 共20页
基于matlab的74汉明码编译码仿真.docx_第2页
第2页 / 共20页
基于matlab的74汉明码编译码仿真.docx_第3页
第3页 / 共20页
基于matlab的74汉明码编译码仿真.docx_第4页
第4页 / 共20页
基于matlab的74汉明码编译码仿真.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

基于matlab的74汉明码编译码仿真.docx

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

基于matlab的74汉明码编译码仿真.docx

基于matlab的74汉明码编译码仿真

东北大学秦皇岛分校电子信息系

综合课程设计

基于matlab的(7,4汉明码编译仿真

专业名称通信工程

班级学号4090719

学生姓名何云瑞

指导教师李雅珍

设计时间2011.12.19~2012.1.4

课程设计任务书

专业:

通信工程学号:

409719学生姓名(签名:

设计题目:

(7,4汉明码的编码、译码仿真

一、设计实验条件

电子信息创新实验室

二、设计任务及要求

1.了解、掌握汉明码编码、译码原理;

2.用仿真软件对(7.4汉明码进行编码、译码仿真;

3.画出编码后、译码后的信号波形图。

三、设计报告的内容

1.设计题目与设计任务(设计任务书

2.前言(绪论(设计的目的、意义等

3.设计主体(各部分设计内容、分析、结论等

4.结束语(设计的收获、体会等

5.参考资料

四、设计时间与安排

1、设计时间:

2周

2、设计时间安排:

熟悉实验设备、收集资料:

设计图纸、实验、计算、程序编写调试:

编写课程设计报告:

答辩:

摘要.......................................................................................................................................................................I

1.引言0

2.设计原理(1

2.1汉明码编码原理(1

2.2汉明码纠错原理(3

3.程序与SIMULINK仿真(5

3.1程序(5

3.1.1程序函数介绍(5

3.1.2主程序(5

3.1.3调试结果(6

3.2SIMULINK仿真(7

3.2.1SIMULINK电路图(7

3.2.2m文件程序(8

3.2.3模块参数设置(8

3.2.3仿真波形(10

3.2.4仿真结果分析(14

4.总结(15

参考文献(16

摘要

汉明码(HammingCode是一种能够自动检测并纠正一位错码的线性纠错码,即SEC(SingleErrorCorrecting码,用于信道编码与译码中,提高通信系统抗干扰的能力。

本文主要利用MATLAB中SIMULINK通信系统仿真模型库进行汉明码建模仿真,并调用通信系统功能函数进行编程,绘制时域波形,频谱及误码率与信噪比关系曲线图。

在此基础上,对汉明码的性能进行分析,得出结论。

关键词:

MATLAB汉明码SIMULINK性能

I

1.引言

MATLAB(MatrixLaboratory,矩阵实验室是Mathwork公司推出的一套高效率的数值计算和可视化软件。

其中,MATLAB通信工具箱是一套用于在通信领域进行理论研究、系统开发、分析设计和仿真的专业化工具软件包。

MATIAB通信工具箱由两大部分组成:

通信系统功能函数库和SIMULINK通信系统仿真模型库。

MATLAB通信系统功能函数库由七十多个函数组成,每个函数有多种选择参数、函数功能覆盖了现代通信系统的各个方面。

这些函数包括:

信号源产生函数、信源编码/解码函数、纠错控制编码/解码函数、调制/解调函数(基带和通带、滤波器函数、传输信道模型函数(基带和通带、TDMA、FDMA、CDMA函数、同步函数、工具函数等。

以纠错控制编解码函数为例:

函数库提供了线性分组码、汉明码、循环码、BCH码、里德一索洛蒙码(REED—SOLOMON、卷积码等6种纠错控制编码,每种编码又有编码、解码、矢量输入输出、序列输入输出等四种形式的函数表达。

在SIMULINK通信系统仿真模型库中,整个通信系统的流程图被概括为:

信号的产生与输出、编码与解码、调制与解调。

在SIMULINK中,通信系统仿真的一般模型如图1所示。

图1通信系统仿真模型

2.设计原理

2.1汉明码编码原理

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

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

21rn-≥或211r

kr-≥++(1

下面以(7,4汉明码为例说明原理:

设汉明码(n,k中k=4,为了纠正一位错码,由式(1可知,要求监督位数r≥3。

若取r=3,则n=k+r=7。

我们用6543210aaaaaaa来表示这7个码元,用123sss的

值表示3个监督关系式中的校正子,则123sss的值与错误码元位置的对应关系可以

规定如表1所列。

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

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

16542saaaa=⊕⊕⊕(2

2653saaaa=⊕⊕⊕(336430saaaa=⊕⊕⊕(4

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

监督位2a、1a、0a应根据信息位的取值按监督关系来确定,即监督位应使式(2~式(4中1s、2s、3s的值为0(表示编成的码组中应无错码

654265316

430000

aaaaaaaaaaaa⊕⊕⊕=⎧⎪

⊕⊕⊕=⎨⎪⊕⊕⊕=⎩(5

式(5经过移项运算,接触监督位

2654

16530

643aaaaaaaaaaaa

=⊕⊕⎧⎪

=⊕⊕⎨⎪=⊕⊕⎩(6

式(5其等价形式为:

6543210111010001101010010110010aaaaaaa⎡⎤

⎢⎥⎢⎥

⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦

⎢⎥⎢⎥⎢⎥⎣⎦(7

式(6还可以简记为

0TTHA∙=或0T

AH∙=(8

其中

111010011010101011001H⎡⎤

⎢⎥=⎢⎥

⎢⎥⎣⎦[]654321

0Aaaaaaaa=

[]00

0=

111011011011P⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦

1

0001

000

1rI⎡⎤⎢⎥=⎢

⎥⎢⎥⎣⎦

所以有

[]

rHPI=(9

式(6等价于

[][][]2106

54

3654

3111110101011aaaaaaaaaaaQ

⎡⎤⎢⎥

⎥==⎢⎥⎢⎥⎣⎦

(10

其中Q为P的转置,即

TQP=(11

式(10表示,信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。

我们将Q的左边加上一个k×k阶单位方阵,就构成一个矩阵G

100011101001100

0101010

00101

1kGIQ⎡⎤⎢⎥⎢⎥⎡⎤==⎣⎦⎢⎥⎢⎥

⎣⎦(12

G称为生成矩阵,因为由它可以产生整个码组,即有

[][]65432106543aaaaaaaaaaaG=∙(13

或者

[]6

5

4

3AaaaaG

=∙(14

式(13即汉明码的编码原理2.2汉明码纠错原理

当数字信号编码成汉明码形式(本文中即A后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行汉明码纠错,以提高通信系统的抗干扰能力及可靠性。

一般来说接收码组与A不一定相同。

若设接收码组为一n列的行矩阵B,即[]

6543210Bbbbbbbb=

(15

则发送码组和接收码组之差为

BAE-=(16

E就是传输中产生的错码行矩阵[]

6543210Eeeeeeee=(17

若ei=0,表示接收码元无错误,若ei=1,则表示该接收码元有错。

式(16可改写成

BAE=+(18

若E=0,即接收码组无错,则BAEA=+=,将它代人式(8,该是仍成立,即有

0TBH∙=(19

当接收码组有错时,E≠0,将B带入式(8后,该式不一定成立。

在未超过检错能力时,式(19不成立。

假设此时式(19的右端为S,即

TBHS

∙=

(20

将BAE=+代入式(20,可得

(TTTSAEHAHEH=+=∙+∙由式(8可知,所以

TSEH=∙(21

此处S与前面的

123sss有着一一对应关系,则S能代表错码位置。

因此,纠错原理即,接收端收到码组后按式(20计算出S,再根据表1判断错码情况,进行差错纠正。

3.程序与SIMULINK仿真

3.1程序

3.1.1程序函数介绍

MATLAB中提供了汉明码的编码和译码函数,本程序直接调用进行编程。

①encode函数

功能:

编码函数

语法:

code=encode(msg,N,K

说明:

该函数对二进制信息msg进行汉明编码,K为信息位长度,N为码字长度。

msg是一个K列矩阵。

②decode函数

功能:

译码函数

语法:

rcvcode=decode(code,N,K

说明:

该函数对接受码字进行译码,恢复出原始信息,译码参数及方式必须和编码时采用的完全相同。

③hammgen函数

功能:

汉明码生成矩阵和校验矩阵产生函数

语法:

H=hammgen(M

[H,G]=hammgen(M

[H,G,N,K]=hammgen(M

说明:

该函数的功能是产生生成矩阵和校验矩阵,其中M=N-K为校验位的长度,H为汉明码的校验矩阵,G为汉明码的生成矩阵。

3.1.2主程序

K=4;

N=7;

msg=randint(200,4,2%信息产生

code=encode(msg,N,K%汉明编码code_noise=rem(code+rand(200,7>0.95,2%加噪声rcv=decode(code_noise,N,K%汉明译码disp(['Errorrateinthereceivedcode:

'

num2str(symerr(code,code_noise/length(code]

disp(['Errorrateafterdecode:

'num2str(symerr(msg,rcv/length(msg]%计算误码率

3.1.3调试结果

3.2SIMULINK仿真

本系统由信号产生模块、信号汉明编码模块、AWGN信道、信号汉明译码模块、误码率计算模块组成,在图形观察模块还包括频谱仪和示波器。

3.2.1SIMULINK电路图

在设计中,本系统信号产生模块选用伯努利二进制序列产生器(BernoulliBinaryGenerator来输出速率为100Bd的随机数字信号,进入Hammingencoder进行编码,在送入AWGN信道(加入高斯白噪声传输,接收信号送入Hammingdecoder进行差错纠正,其后加一误码率计算模块(ErrorRateCalculation计算误码率。

再用示波器scope观察波形,用spectrumscope观测频谱。

电路如图2所示。

图2SIMULINK仿真电路图

由于要绘制Hammingdecoder模块输入信噪比与输出误码率的关系曲线图,所以将SNR设置成一个变量,通过ratio文件编程绘制误码率曲线图。

3.2.2ratio文件程序

x=0:

20%定义信噪比的范围

y=x;

fori=1:

length(x

xSNR=x(i;%输入信噪比

sim('fangzhen';%运行’fangzhen’SIMULINK仿真文件y(i=xErrorRate(1;%误码率

end

semilogy(x,y;

gridon;

xlabel('高斯信道中的信噪比/dB';

ylabel('误码率';

3.2.3模块参数设置

图3BernoulliBinaryGenerator

图4AWGNAChannel

图5ErrorRateCalculation

图6ToWorkplace图7SpectrumScope

3.2.3仿真波形

图8BernoulliBinaryGenerator输出信号波形

图9BernoulliBinaryGenerator输出信号频谱

图10HammingEncoder输出信号

图11HammingEncoder输出信号频谱

图12AWGNChannel输出信号

图13AWGNChannel输出信号频谱

图14Hammingdecoder输出信号

图15Hammingdecoder输出信号频谱

图16SNR=10dB的误码率

图17输入信噪比与输出误码率的关系曲线图

3.2.4仿真结果分析

通过结果可知,汉明码可以降低误码率,提高系统抗干扰能力。

在SIMULINK仿真中,利用ratio文件编程绘制误码率函数曲线近似于一条直线,但是若直接控制AWGN参数模块的SNR,误码率发生变化,比较奇怪,不明白。

4.总结

这次通信原理课程设计的题目是汉明码的编码、译码的仿真。

通过到图书馆查阅相关的资料,得知汉明码的编码、译码仿真可以用FPGA和MATLAB来做。

为了尽可能多地学到知识,我们选择了一组用FPGA,另一组用MATLAB。

因为之前并没有接触过MATLAB中的SIMULINK,所以在画原理图和设置参数的时候遇到了不少困难。

但好在网上可借鉴的资源很多,通过学习相关的教程和查阅MATLAB中的help,这些困难都迎刃而解了。

这其中我深刻地体会到专业英语的重要性。

可想而知,多积累点英语对今后的工作、学习将有极大的帮助。

通过本次学习,我再一次体会到MATLAB的强大。

丰富的库函数、强大的数据处理能力,出色的绘图功能,友好的工作平台,简单一用的操作语言等等,这些优点都促使MATLAB成为数学处理软件发展史上的巅峰之作。

这激发了我之后学习MATLAB的决心。

知识的构架是千枝交错的。

学到大学,知识之间相互渗透的现象可谓比比皆是,这启发我们不仅要发散思维的领域,也要拓宽知识的领域。

对与本专业相关的领域多加了解百利而无一害。

最后,还是那句话,实践出真知。

在渴望知识的道路上,用双脚探索出来的路才是你自己的路。

我还将上下左右而求索。

参考文献[1]葛哲学.精通MATLAB.北京:

电子工业出版社,2008年.[2]樊昌信,曹丽娜.通信原理.北京:

国防工业出版社,2008年.[3]赵静.基于MATLAB的通信系统仿真.北京:

北京航空航天大学出版社,2008年.[4]韩利竹,王华.MATLAB电子仿真与应用.北京:

国防工业出版社,2003年.16

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

当前位置:首页 > 农林牧渔 > 林学

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

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