汉明码编码实验报告详细解释.docx

上传人:b****6 文档编号:16394778 上传时间:2023-07-13 格式:DOCX 页数:9 大小:863.74KB
下载 相关 举报
汉明码编码实验报告详细解释.docx_第1页
第1页 / 共9页
汉明码编码实验报告详细解释.docx_第2页
第2页 / 共9页
汉明码编码实验报告详细解释.docx_第3页
第3页 / 共9页
汉明码编码实验报告详细解释.docx_第4页
第4页 / 共9页
汉明码编码实验报告详细解释.docx_第5页
第5页 / 共9页
汉明码编码实验报告详细解释.docx_第6页
第6页 / 共9页
汉明码编码实验报告详细解释.docx_第7页
第7页 / 共9页
汉明码编码实验报告详细解释.docx_第8页
第8页 / 共9页
汉明码编码实验报告详细解释.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

汉明码编码实验报告详细解释.docx

《汉明码编码实验报告详细解释.docx》由会员分享,可在线阅读,更多相关《汉明码编码实验报告详细解释.docx(9页珍藏版)》请在冰点文库上搜索。

汉明码编码实验报告详细解释.docx

汉明码编码实验报告详细解释

汉明码的实现详细实验报告

一、实验目的

1、掌握线性分组码的编码原理

2、掌握汉明码编码方法

3、了解编码对误码性能的改善

二、实验内容

1、自行设置汉明码的参数,生成矩阵,计算所设计出的汉明码;写出产生(3,1)汉明码的生成矩阵,给出生成码的源程序,并给出运行结果。

2、利用encode库函数实现汉明编码;

3、搭建一个通信仿真模块,并给出运行结果,分析汉明码对通信性能的影响;

4、整理好所有的程序清单或设计模块,并作注释。

三、实验原理

(一)、汉明码的介绍

汉明码是1951年由汉明(R.W.Hamming)提出的能纠正单个错

误的线性分组码。

它性能良好,既具有较高的可靠性,又具有较高的传输效率,而且编译码电路较为简单,易于工程实现,因此汉明码在发现后不久,就得到了广泛的应用。

我们的目的是要寻找一个能纠正单个错误,且信息传输率(即码率r=k/n)最大的线性分组码。

我们已经知道,具有纠正单个错误能

力的线性分组码的最小距离应为3,即要求其H矩阵中至少任意两列

线性无关。

要做到这一点,只要H矩阵满足“两无”一一无相同的列,无全零列就可以了。

(n,k)线性分组码的H矩阵是一个⑴-"n訂n阶矩阵,这里r=n—k是校验元的数目。

显然,r个校验元能组成2r列互不相同的r重矢量,其中非全零矢量有2r-1个。

如果用这2r-1个非全零矢量作为H矩阵的全部列,即令H矩阵的列数n=2「一1,则此H矩阵的各列均不相同,且无全零列,由此可构造一个纠正单个错误的(n,k)线性分组码

同时,2r-1是n所能取的最大值,因为如果n2r-1,那么H矩阵的n列中必会出现相同的两列,这样就不能满足对H矩阵的要求。

而由于n=2-1是门所能取的最大值,也就意味着码率R取得了最大

值,即

这样设计出来的码是符合我们的要求的,这样的码就是汉明码

定义若H矩阵的列是由非全零且互不相同的所有二进制r重矢量组

成,则由此得到的线性分组码,称为GF

(2)上的(2r-1,2r-1-r)汉

明码。

(二八产生(3,1)汉明码的原理及程序代码

本实验要求写出产生(3,1)汉明码的生成矩阵,由上述可知,我们

的n=2r-1=3,而k=2r-1-r=1,由此可得出r=2.

当r=2时,有3个非全零的二重矢量:

(01),(10),(11)

构成矩阵

■0111

H=I

〔10J

由此得到一个能纠正单个错的(3,1)汉明码。

若码字传输中左边第一位出错,贝S相应的伴随式s=(01)就是H矩阵的第一列,也正好是“1的二进制表示。

同理可知,无论哪一位出错,它对应的伴随式就是该位的二进制表示,故译码十分方便,特别适用于计算机内部运算和记忆系统中的纠错。

如果要得到系统码形式的H矩阵,只需对上述矩阵进行初等变换交换列即可。

110

H=|

101一,

相应地,生成矩阵G为

G=111

根据c=uG生成码字。

由此构成的(3,1)汉明码如表3-1所示。

表3-1(3,1)系统码

信息组

码字

0

000

1

111

程序段代码为:

%functionf=humm_enc(a);

G=[111];%(3,1)汉明码的生成矩阵

t=input(输入0或1:

');%t=0则产生(3,1)汉明码,t=1则对输

入序列进行编码

ift==1

a=input('输入信息元序列:

');

c=mod(a*G,2);%编码的码字c

disp('

else

为:

”字样

编码后序列:

');%显示“编码后序列:

”字样

disp('对应码字为:

');%显示“对应码字为:

”字样disp(c);%显示编出的码字

end

%

结束for循环

end

%

结束整个程序

显示系统自动给出两信息元从0到1

disp(a);%

(三八利用encode库函数实现汉明编码程序为

msg=randint(1,40);%生成一行40列的信息序列

code=encode(msg,7,4,'hamming');%进行汉明编码

(四)、搭建通信仿真模块图形

四、实验步骤

按照实验原理中所述进行相应的实验操作即:

1、求(3,1)码的生成矩阵;

2、进行代码输入;

3、进行仿真;

4、记录实验结果。

五、实验记录及分析

1、(3,1)码的生成矩阵的求解过程已在实验原理中详细作解

2、代码运行结果为

(1)、输入1且信息元系列为1时

输入0或1:

1

输入信息元序列:

0

编码后序列:

000

2)、输入1且信息元系列为0时

输入0或1:

1输入信息元序列:

1编码后序列:

111

(3)、输入0时显示以下结果输入0或1:

0

(3,1)汉明系统码为:

0对应码字为:

000

1对应码字为:

111

3、利用encode库函数实现汉明编码程序为:

msg=

Columns1through11

111

0

1

0

0

0

0

0

0

Columns12through22

010

1

1

1

0

0

0

1

1

Columns23through33

011

1

1

0

0

1

1

0

0

Columns34through40

000

0

1

0

1

4、进行仿真结果;

参数设置

 

Create-a?

^n±ilfiae&dfiTfith二色占占宜岸色lengthK^dC*d^T:

rdlengthK.

HuEthavethefora2”H・bwhtieKi&aninteser£jreit*rthanor@aiialt&3„3*jEttaual

TheinputauBtcontainexactlyKeleaents,IfitisfTBae^based^thenitwstbeacoIlmvector.

 

号StinkBlockParameters:

Display

Dieplay

NusexicdisplayQfinputvalues,

Paranaters

Farsat:

short

DeciBation:

1

_|Fl^atincdisplay

OKCancelHelp

在主框中输入simout运行后为:

simout=

0

0

0

0.3333

1.0000

3.0000

0.1429

1.0000

7.0000

六、实验思考

1、分析汉明码对通信性能及其作用的影响;

答:

当计算机存储或移动数据时,可能会产生数据位错误,这时

可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。

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

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

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

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

但这种

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

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

2、哪些参数可能对汉明仿真编码进行影响

答:

BernoulliBinaryGenerator中的0出现的概率(prababilityofazero),还有Intialseed、sampletime,ErrorRateCalculation中的Receivedelay禾口computationdelay等等。

七、实验心得

通过这次实验我对汉明吗有了进一步的认识,对生成矩阵的求法更熟悉了,同时对仿真模块的应用也有了深刻的认识,认真检验了各参数对编码的影响,此实验将为以后相类似实验的基础,以后相类似实验将更容易更快捷的被做出,最重要的是我能够运用纠错编码理论知识来解决我所遇到的问题,可达到了学以致用的效果。

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

当前位置:首页 > 求职职场 > 简历

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

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