完整word版74汉明码信道编码共10页.docx
- 文档编号:5992071
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:8
- 大小:70.38KB
完整word版74汉明码信道编码共10页.docx
《完整word版74汉明码信道编码共10页.docx》由会员分享,可在线阅读,更多相关《完整word版74汉明码信道编码共10页.docx(8页珍藏版)》请在冰豆网上搜索。
完整word版74汉明码信道编码共10页
(7,4)汉明码信道编码
1.课程设计目的
(1)通过利用matlabsimulink,熟悉matlabsimulink仿真工具。
(2)通过课程设计来更好的掌握课本相关知识,熟悉汉明码的纠错与检错方法。
(3)更好的了解通信原理的相关知识,磨练自己分析问题、查阅资料、巩固知识、创新等各方面能力。
2.课程设计要求
(1)掌握课程设计的相关知识、概念清晰。
(2)程序设计合理、能够正确运行。
3.相关知识
3.1汉明码的概念
汉明码是1950年由Hamming首先构造的,它是一种能够自动检测并纠正一重错的线性纠错码,即SEC(SingleErrorCorrecting)码,它不仅性能好,而且编译码电路非常简单,易于实现。
从20世纪50年代问世以来,在提高系统可靠性方面获得了广泛的应用。
最先用于磁芯存储器,60年代初用于大型计算机,70年代在MOS存储器中得到应用,后来在中小型计算机中普遍采用,目前常用于RFID系统中多位错误的纠正。
3.2汉明码的校验
与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。
利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。
3.2汉明码的纠错
在接受端通过纠错译码自动纠正传输中的差错来实现码纠错功能,称为前向纠错FEC。
在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。
通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。
但这种方法比简单重传协议的成本要高。
汉明码利用奇偶块机制降低了前向纠错的成本。
在接受端通过纠错译码自动纠正传输中的差错来实现码纠错功能,称为前向纠错FEC。
在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。
通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。
但这种方法比简单重传协议的成本要高。
汉明码利用奇偶块机制降低了前向纠错的成本。
3.3汉明码的编码方法
设原代码的码长为k比特,附加纠错编码部分为r比特,当码字长度n=2r
-1,r=n-k,r=1,2…时就称这种线性分组码为汉明码。
其基本原理是,将信息码元与监督码元通过线性方程式联系起来,每一个监督位被编在传输码字的特定比特位置上。
系统对于错误的数位无论是原有信息位中的,还是附加监督位中的都能把它分离出来。
信息传输中信道中的噪声干扰不仅使原代码的每一位(k比特)可能出错,而且附加纠错位(比特)也可能出错,故“一个差错”的情况共有k+r种,加上“正常”态共有k+r+1种状态,而r比特的附加纠错位要能分辨这k+r+1种状态。
推导并使用长度为k位码字的汉明码,所需步骤如下:
(1)确定最小的监督位数r,将它们记成D1,D2,…Dr,每个监督位符合不同的奇偶测试规定;
(2)原有信息和r个监督位一起编成长为r+k位的新码字,选择r监督位(0或1)以满足必要的奇偶条件;
(3)对所接收的信息作所需的r个奇偶检查;
(4)如果所有的奇偶检查结果均为正确的,则认为信息无错误;如果发现有一个或多个错了,则错误的位由这些检查的结果来唯一地确定。
汉明码是一种能纠一位错的线性分组码,由于它的编译码简单,在数据通信和计算机存储系统中广泛应用,如在蓝牙技术和硬盘阵列中。
它的最小码距为,可以纠正一位错误,但对于两位错不能检测,还可能会造成误纠。
尽管发生一位错的概率相对最高,但在一些要求较高的应用中汉明码不能满足要求。
常用的能检测两位错同时能纠正一位错的纠错码有扩展汉明码和最佳奇权码的最小码距都为4,两者有相似之处,比如冗余度一样,对于数据位数k,校验位数r应满足2r-1≥k+r当k=16时,r=6,数据位长增加一倍,校验位数只需增加一位,编码效率较高。
3.5奇偶校验位
奇偶校验是一种添加一个奇偶位用来指示之前的数据中包含有奇数还是偶数个1的检验方式。
如果在传输的过程中,有奇数个位发生了改变,那么这个错误将被检测出来(注意奇偶位本身也可能改变)。
一般来说,如果数据中包含有奇数个1的话,则将奇偶位设定为1;反之,如果数据中有偶数个1的话,则将奇偶位设定为0。
换句话说,原始数据和奇偶位组成的新数据中,将总共包含偶数个1。
奇偶校验并不十分健壮,如果数据中有偶数个位发生变化,则奇偶位仍将是正确的,因此不能检测出错误。
而且,即使奇偶校验检测出了错误,他也不可以指出哪一位出现了错误,从而进行更正。
数据必须整体丢弃并且重新传输。
在一个噪音较大的媒介中,成功传输数据可能需要很长时间或者不可能完成。
虽然奇偶校验的效果不佳,但是由于他只需要一位额外的空间开销,因此这是开销最小的检测方式。
并且,如果知道了发生错误的位,奇偶校验还可以恢复数据。
4.课程设计分析
4.1(7,4)汉明码信道编码的基本概念
线性分组码是一类重要的纠错码,应用很广泛。
在(n,k)分组码中,若
督元是按线性关系相加而得到的,则称其为线性分组码。
现在以(7,4)分组码为例来说明线性分组码的特点。
设其码字为A=[a6,a5,a4,a3,a2,a1,a0],其中前4位是信息元,后3位是监督元,可用下列线性方程组来描述该分组码,产生监督元:
a2=a6+a5+a4
a1=a6+a5+a3(4.1.1)
a0=a6+a4+a3
显然,这3个方程是线性无关的。
经计算可得(7,4)码的全部码字,如表2-1所示。
表2-1(7,4)码的全部码字
序
号
码字
序
号
码字
信息码元
监督元
信息码元
监督元
0
0000
000
8
1000
111
1
0001
011
9
1001
100
2
0010
101
10
1010
010
3
0011
110
11
1011
001
4
0100
110
12
1100
001
5
0101
101
13
1101
010
6
0110
011
14
1110
100
7
0111
000
15
1111
111
不难看出,上述(7,4)码的最小码距d0=3,它能纠1个错或检2个错。
汉明码是能够纠正单个错误的线性分组码,其特点是:
最小码距d0=3,码长n与监督位满足n=2r-1的关系,上述的(7,4)线性分组码就是一个汉明码。
4.2监督矩阵H
式(4.1.1)所示(7,4)汉明码的3个监督方程改写后可用矩阵形式表示为
a5
1110100a40
1101010·a3=0(4.2.1)
1011001a20
a1
a0
并简记为H·
=
或A·
=0(4.2.2)
H称为监督矩阵,一旦H给定,信息位和监督位之间的关系也就确定了。
H矩阵可以分成2部分
1110100
H=1101010=[PIr](4.2.3)
1011001
H·
=
,可以用来作为判断接收码字A是否出错的依据。
4.3生成矩阵G
把监督方程补充完整并改写为矩阵形式
a61000
a50100
a40010a6
a3=0001·a5(4.3.1)
a21110a4
a11101a3
a01011
A=[a6a5a4a3]·G(4.3.2)
其中
1000111
0100110
G=0010101(4.3.3)
0001011
G称为生成矩阵,由G和信息组就可以产生全部码字。
生成矩阵也可以分成2部分,即G=[IkQ](4.3.4)
其中111
Q=110=
(4.3.5)
101
011
4.4校正子S
设发送码组A=[an—1,an—2,…,a1,a0],在传输过程中可能发生误码。
接收码组B=[bn—1,bn—2,…,b1,b0],收发码组之差定义为错误图样E,即
E=B-A(4.4.1)
令S=BHT,称为伴随式或校正子。
S=
=(A+E)
=E
(4.4.2)
上述(7,4)汉明码的伴随式与错误图样的对应关系如表2-2所示。
表2-2(7,4)汉明码S与E的对应关系
序
号
错误
码位
E
S
e6e5e4e3e2e1e0
s2s1s0
0
/
0000000
000
1
b0
0000001
001
2
b1
0000010
010
3
b2
0000100
100
4
b3
0001000
011
5
b4
0010000
101
6
b5
0100000
110
7
b6
1000000
111
5.仿真
MATLAB进行汉明码信道编码的编程:
clc;
initialseed=71;%AWGN信道的随机种子
inputinitialseed=63;%伯努利二进制生成器的随机种子
inputsampletime=1/1000;%伯努利二进制生成器的样本时间
y=[];
y1=[];
forsnr=1:
10;%SNR取1到10dB,得到不同SNR下的误码率曲线。
sim('hammingencoding');%打开simulink模块
y=[y,mean(simout(:
1))];%y代表经过汉明译码后的误码情况,计算的是其
误码的平均值
y1=[y1,mean(simout1(:
1))];%y1代表译码前的误码情况,计算的是误码的
平均值
end
snr=1:
10;
semilogy(snr,y,snr,y1)%绘制误码率曲线,可以看出经过译码后的BER的增益。
xlabel('SNR(dB)')
ylabel('BER')
title('经(7,4)汉明码信道编码后的误码率改善')
代码模块化:
通过MATLAB软件进行编译,运行结果如图:
6.结果分析
由实验结果可以看出:
经(7,4)汉明码信道编码后的误码率改善。
从而可以发现随着信噪比的增加误码率有明显下降的趋势
虽然汉明码在课堂上老师讲过但是对它的理论知识还是不深,但是通过这次试验加深了我对汉明码的理论和认识和理解,也是我懂得如何对一个理论进行自己的研究或验证。
7.参考文献
[1]徐明远邵玉斌编著《MATLAB仿真在通信与电子工程中的应用》
西安电子科技大学出版社,2005
[2]王兴亮编著《数字通信原理与技术》西安电子科技大学出版社第二版
[3]孙屹吴磊编著《Simulink通信仿真开发手册》国防工业出版社2003
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 74 汉明码 信道编码 10