汉明码的性能分析.docx
- 文档编号:9835606
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:37
- 大小:1.89MB
汉明码的性能分析.docx
《汉明码的性能分析.docx》由会员分享,可在线阅读,更多相关《汉明码的性能分析.docx(37页珍藏版)》请在冰豆网上搜索。
汉明码的性能分析
课程设计任务书
学生姓名:
专业班级:
通信0906班
指导教师:
尹勇工作单位:
信息工程学院
题目:
汉明码的性能分析
:
初始条件MATLAB软件,电脑,通信原理知识
:
要求完成的主要任务输入信号:
速率为100Bd的矩形信号
信道:
AWGN
要求:
画出编码器输入、输出信号,信道的输出信号,译码器的输出信号的波形、频谱以及误码率与译码器输入信噪比的关系曲线
:
参考书目徐明远主编《MATLAB仿真在通信与电子工程中的应用》
王兴亮主编《数字通信原理与技术》
孙屹吴磊主编《Simulink通信仿真开发手册》
葛哲学主编《精通MATLAB》
樊昌信曹丽娜主编《通信原理》
:
时间安排第1周,安排任务(鉴主15楼实验室)
第1-17周,仿真设计(鉴主13楼计算机实验室)
第18周,完成(答辩,提交报告,演示)
指导教师签名:
年月日
系主任(或责任教师)签名:
日月年
武汉理工大学《MATLAB应用》课程设计报告
摘要..................................................................................................................................................3
Abstract.............................................................................................................................................4
1.引言..............................................................................................................................................5
2.设计原理........................................................................................................................................6
2.1汉明码编码原理................................................................................................................6
2.2汉明码纠错原理................................................................................................................8
2.3程序函数及命令介绍........................................................................................................9
3.仿真与程序...............................................................................................................................11
3.1仿真..................................................................................................................................11
3.1.1SIMULINK仿真................................................................................................11
3.1.2模块属性设置.....................................................................................................12
3.1.3M文件程序........................................................................................................14
3.1.4仿真结果..............................................................................................................15
3.1.5调试......................................................................................................................20
3.1.6结果分析..............................................................................................................20
3.2程序..................................................................................................................................20
3.2.1程序......................................................................................................................20
3.2.2调试结果..............................................................................................................21
3.2.3结果分析..............................................................................................................22
4.总结............................................................................................................................................23
参考文献.........................................................................................................................................24
2
武汉理工大学《MATLAB应用》课程设计报告
摘要
随着信息时代和数字世界的到来,通信原理已成为当今一门极其重要的学科和技术领域。
在通信原理中起着重要的作用并已获得广泛应用的是汉明码。
汉明码是一种能够自动检测并纠正一位错码的线性纠错码,即SEC码,用于信道编码与译码中,提高通信系统抗干扰的能力。
MATLAB是英文MATrixLABoratory(矩阵实验室)的缩写。
它是美国的MathWorks公司推出的一套用于科学计算和图形处理可视化、高性能语言与软件环境。
它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。
在设计汉明码建模仿真时,通常采用MATLAB来进行辅助设计和仿真。
本文主要利用MATLAB中SIMULINK通信系统仿真模型库进行汉明码建模仿真,并调用通信系统功能函数进行编程,绘制时域波形,频谱及误码率与信噪比关系曲线图。
在此基础上,对汉明码的性能进行分析,得出结论。
关键词:
通信原理MATLAB汉明码SIMULINK
3
TLAB应用》课程设计报告武汉理工大学《MA
Abstractcommunicationthedigitalworld,andtheinformationagetheadventofWith
Inandtechnicalfields.becomeanextremelyimportantdisciplinesprincipleshas
inusedroleimportantandhasbeenwidelycommunicationprinciplesplaysan
canwhichisalinearerror-correctingcodeHammingCode.HammingCode
toandtoSECcodeappliedanautomaticallydetectandcorrecterror.Itisbelongs
thetheanti-jammingcapacityoftochannelencodinganddecodingimprove
communicationsystem.
MATLABisinEnglishMATrixLABoratory(MatrixLaboratory)acronym.Itis
graphicsofsetcomputingandtheUnitedStates,MathWorkshasintroduceda
softwarelanguageandhigh-performanceprocessingforscientificvisualization,
avarietyofclassicandmodernsignalprocessingtoolboxcontainsenvironment.Its
aidedgoodsignalprocessingtechnology,isaveryalgorithmresearchanddigital
designtools.Inthedesignofhammingcodemodeltosimulate,itisusuallycarried
outusingMATLAB-aideddesignandsimulation.
Inthispaper,SIMULINKsimulationmodellibraryofMATLABismainlyused
tobuildhammingcodemodeltosimulate.Atthesametime,communicationsystem
thespectrum,time-domainiscalledtoprogram.Andwaveform,functions
relationshipbetweenBERandSNRcurveisdrawn.Onthisbasis,thepropertyofthe
hammingcodeisanalyzedtogettheconclusion.
HammingCodingPrinciplesMATLABKeywords:
Communication
SIMULINK
4
武汉理工大学《MATLAB应用》课程设计报告
1.引言MathWorksMATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国数据分析以及数值计算公司出品的商业数学软件,用于算法开发、数据可视化、通信工具箱是一套用于在的高级技术计算语言和交互式环境,其中,MATLAB主要系统开发、分析设计和仿真的专业化工具软件包。
通信领域进行理论研究、两大部分。
MATLAB和Simulink包括通信系统功能函数库由七十多个函数组成,每个函数有多种选择MATLAB信号源产生函参数、函数功能覆盖了现代通信系统的各个方面。
这些函数包括:
数、信源编码/解码函数、纠错控制编码/解码函数、调制/解调函数(基带和CDMAFDMA、滤波器函数、通带)、传输信道模型函数(基带和通带)、TDMA、函数、同步函数、工具函数等。
以纠错控制编解码函数为例:
函数库提供了线性、—SOLOMON)分组码、汉明码、循环码、BCH码、里德一索洛蒙码(REED种纠错控制编码,每种编码又有编码、解码、矢量输入输出、序列输卷积码等6入输出等四种形式的函数表达。
Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。
Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。
对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。
汉明码是由Hamming首先构造的,它是一种能够自动检测并纠正一重错的线性纠错码,即SEC(SingleErrorCorrecting)码。
汉明码利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。
利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。
它不仅性能好,而且编译码电路非常简单,易于实现。
从20世纪50年代问世以来,在提高系统可靠性方面获得了广泛的应用。
5
武汉理工大学《MATLAB应用》课程设计报告
2.设计原理
2.1汉明码编码原理
一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。
若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求
r2?
1?
k?
r?
1rn?
2?
1(公式或2-1)
下面以(7,4)汉明码为例说明原理:
设汉明码(n,k)中k=4,为了纠正一位错码,由式
(1)可知,要求监督位sssaaaaaaa312用个码元,来表示这7r=3,则n=k+r=7。
我们用数r≥3。
若取0524136sss312的值与错误码元位置的对应关系的值表示3个监督关系式中的校正子,则2-1所列。
可以规定如表2-1校正子和错码位置的关系表
sss312
错码位置
sss321
错码位置
001
a0
101
a4
010
a1
110
a5
100
a2
111
a6
011
a3
000
无错码
则由表1可得监督关系式:
s?
a?
a?
a?
a25614(公式2-2)
s?
a?
a?
a?
a3265公式2-3)(
s?
a?
a?
a?
a064332-4)
(公式
aaaa的值决定于输入信号,因此它们是随机的。
在发送端编码时,信息位3654aaa应根据信息位的取值按监督关系来确定即监督位应使式监督位(2,)、、012sss的值为0式(表示编成的码组中应无错码)、~(4)中、1236
武汉理工大学《MATLAB应用》课程设计报告
a?
a?
a?
a?
0?
2654?
a?
a?
a?
a?
0?
1653?
a?
a?
a?
a?
0?
6043(公式2-5)
式(5)经过移项运算,接触监督位
a?
a?
a?
a?
4526?
a?
a?
a?
a?
3516?
a?
a?
a?
a?
0436(公式2-6)
式(5)其等价形式为:
a?
?
6?
?
a?
?
5?
?
a00011101?
?
?
?
4?
?
?
?
?
?
a00?
101110?
?
?
?
?
?
3?
?
?
?
?
?
01100110a?
?
?
?
2?
?
a?
?
1?
?
a?
?
(公式2-7)
0
式(6)还可以简记为TTTH?
A?
0A?
H?
0或(公式2-8)
其中
1110100?
?
?
?
110101H?
0?
?
?
?
aaaaA?
aaa?
?
?
?
10110100000?
?
?
1542306
1110010?
?
?
?
?
?
?
?
1?
1I11000P?
?
?
?
?
r?
?
?
?
0011011?
?
?
?
所以有?
?
PI?
H(公式2-9)r
)等价于式(6111?
?
?
?
011?
?
?
?
?
?
?
?
Qaaaaaaa?
a?
aaa36544021563?
?
110?
?
101?
?
(公式2-10)
7
武汉理工大学《MATLAB应用》课程设计报告
TQ?
P其中Q为P的转置,即(公式2-11)
式(10)表示,在信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。
我们将Q的左边加上一个k×k阶单位方阵,就构成一个矩阵G
1000111?
?
?
?
0001101?
?
k?
?
?
IG?
Q?
?
?
?
1110000?
?
1100010?
?
(公式2-12)
G称为生成矩阵,因为由它可以产生整个码组,即有
?
?
?
?
?
Ga?
aaaaaaaaaa36034625145(公式2-13)
或者
?
?
?
Ga?
aaaA3456(公式2-14)
式(13)即汉明码的编码原理
2.2汉明码纠错原理
当数字信号编码成汉明码形式后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行汉明码纠错,以提高通信系统的抗干扰能力及可靠性。
一般来说接收码组与A不一定相同。
若设接收码组为一n列的行矩阵B,即
?
?
bbbbbB?
bb(公式2-15)0263514
则发送码组和接收码组之差为
B?
A?
E(公式2-16)
E就是传输中产生的错码行矩阵
?
?
eee?
eeeeE(公式2-17)0436152
若e=0,表示接收码元无错误,若e=1,则表示该接收码元有错。
式(16)ii可改写成
8
武汉理工大学《MATLAB应用》课程设计报告
B?
A?
E(公式2-18)
B?
A?
E?
A,将它代人式(8)若E=0,即接收码组无错,则,该是仍成立,即有
T?
0?
HB(公式2-19)
当接收码组有错时,E≠0,将B带入式(8)后,该式不一定成立。
在未超过检错能力时,式(19)不成立。
假设此时式(19)的右端为S,即
T?
HSB?
(公式2-20)
B?
A?
E代入式(20),可得将TTTH?
?
?
A?
HS?
(A?
E)HE
由式(8)可知,所以
TH?
?
ES(公式2-21)
sss有着一一对应关系,则S此处S与前面的能代表错码位置。
312因此,纠错原理即,接收端收到码组后按式(20)计算出S,再根据表1判断错码情况,进行差错纠正。
2.3程序函数及命令介绍
MATLAB中提供了汉明码的编码和译码函数,本程序直接调用进行编程。
(1)encode函数
功能:
编码函数
语法:
code=encode(msg,N,K)
说明:
对信息msg进行汉明编码,K为信息位长度,N为码字长度。
msg是一个K列矩阵。
(2)decode函数
功能:
译码函数
语法:
rcvcode=decode(code,N,K)
说明:
对接受码字进行译码,恢复出原始信息。
(3)rand函数
9
应用》课程设计报告MA武汉理工大学《TLAB
功能:
均匀分布随机矩阵rand(m,n),用法:
的伪随机数。
1(不包括1)randm×n均匀分布的随机矩阵,产生的是0到说明:
产生rem4)(函数功能:
求整除余数rem(x,y)用法:
x/y的余数说明:
求整除计算向量或矩阵长度length命令:
(5)开始进行仿真命令6)sim:
(7)(命令:
显示结果,不显示变量名disp10
武汉理工大学《MATLAB应用》课程设计报告
3.仿真与程序
3.1仿真
3.1.1SIMULINK仿真
在设计中,本系统信号产生模块选用伯努利二进制序列产生器(Bernoulli
BinaryGenerator)来输出速率为100Bd的随机数字信号,进入Hammingencoder进行编码,在送入AWGN信道(加入高斯白噪声)传输,接收信号送入Hamming
decoder进行差错纠正,其后加一误码率计算模块(ErrorRateCalculation)计算误码率。
再用示波器scope观察波形,用spectrumscope观测频谱。
由ToWorkspace模块将运算结果送入M文件,并画出信噪比与误码率关系的曲线。
电路如图3-6所示。
图3-1SIMULINK仿真电路图
11
武汉理工大学《MATLAB应用》课程设计报告
3.1.2模块属性设置
BernoulliBinaryGenerator3-2图
3-3AWGNAChannel图
12
武汉理工大学《MATLAB应用》课程设计报告
ErrorRateCalculation3-4图
ToWorkplace图3-5
13
武汉理工大学《MATLAB应用》课程设计报告
SpectrumScope图3-6
3.1.3M文件程序
x=0:
30%定义信噪比的范围
y=x;
fori=1:
length(x)
xSNR=x(i);%输入信噪比
sim('hammingmat');%运行Simulink仿真模型'hammingmat',运算结果保存在xerrorrate中
y(i)=xerrorrate
(1);%误码率
end
semilogy(x,y);%对y取对数画图
gridon;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汉明码 性能 分析