汉明码的仿真文档格式.docx
- 文档编号:19733824
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:15
- 大小:283.74KB
汉明码的仿真文档格式.docx
《汉明码的仿真文档格式.docx》由会员分享,可在线阅读,更多相关《汉明码的仿真文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
1人主要进行汉明码仿真模型设计;
1人主要进行仿真实现。
1人主要进行系统框图,软件流程图,报告编写;
计划设计进程
1、从接题开始收集资料、准备设计;
2、第1周设计汉明码仿真模型,制定模拟方案;
3、第2周调试和完善,同时编写设计报告。
参考文献
[1]蒋占军.数据通信技术教程机械工业出版社,2006
[2]王立宁,乐光新,詹菲.MATLAB与通信仿真[M].北京:
人民邮电出版社,2000.
[3]吴湘淇.信号、系统与信号处理.北京:
电子工业出版社,1999
[4]李新平.实用电子仿真技术机械工业出版社,2003
[5]王里生,罗光永.信号与系统分析.长沙:
国防科技大学出版社,1989.
[6]曹志刚,钱亚生.现代通信原理[M].北京:
清华大学出版社,1992.
目录
摘要:
3
正文:
4
一、课程设计的要求及思路4
1.1系统设计的目标及要求4
1.2汉明码仿真的思路4
二、汉明码的仿真框图和模块分析5
2.1汉明码的仿真框图5
2.2汉明码的仿真模块分析5
2.2.1BernoulliBinaryGenerator(伯努利二进制随机数产生器)5
2.2.2HammingEncode(汉明码编码器)6
2.2.3BinarySymmetricChannel(二进制对称信道)7
2.2.4HammingDecode(汉明码译码器)7
2.2.5ErrorRateCalculation(误码率计算)8
2.2.6ToWorkspace(输出到工作区)8
2.2.7display(显示仿真结果)9
三、汉明码仿真环境的实现和仿真的步骤10
3.1汉明码仿真的实现环境10
3.2汉明码仿真的步骤10
四、汉明码仿真的结果与分析10
五、总结15
参考文献16
当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为汉明码。
汉明码是一个在原有数据中插入若干校验码来进行错误检查和纠正的编码技术,在原编码的基础上附加一部分代码,使其满足纠错码的条件。
Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。
关键字:
汉明码、仿真、Matlab/Simulink
一、课程设计的要求及思路
1.1系统设计的目标及要求
学会使用Matlab/Simulink软件,在了解Simulink基本模块的性质的基础上建立汉明码仿真模型。
(要求:
信号源为伯努利随机二进制产生器,采样时间自定,传输环境是差错率为5%的二进制平衡信道。
)
本课程设计以汉明(7,3)码为例,其编码由4位信息码编码到7位,增加3个校验码。
汉明(7,3)码可以检测并纠正单位元错误,且也能检测双位元错误
1.2汉明码仿真的思路
随机产生一组帧结构的数据,对此组数据进行汉明编码,编码后再加入一些噪声,使编码产生错误,然后再对这组有错的数据进行汉明译码,最后比较原数据与译码,统计与分析最终的比较结果,观察汉明译码的纠错与检错的效果。
二、汉明码的仿真框图和模块分析
2.1汉明码的仿真框图
2.2汉明码的仿真模块分析
2.2.1BernoulliBinaryGenerator(伯努利二进制随机数产生器)
模块描述:
产生服从伯努利分布的随机二进制序列,模块的输出可以是帧结构的矩阵,也可以是数据流形式的行或列向量或一维数组。
模块参数:
Probabilityofazero:
模块产生的二进制序列中出再0的概率。
Initialseed:
随机数种子,不同的随机数种子通常产生不同的序列。
Sampletime:
抽样时间,表示输出序列中每个二进制符号的持续时间。
此处参数表示在0.02秒内产生4个比特。
Frame-basedoutputs:
选种表示输出为帧格式,否则输出数据流。
Samplesperframe:
只有当Frame-basedoutputs选种后才可编辑此参数,它表示输出一帧中包含的抽样点数。
此处表示1帧由4个比特组成。
2.2.2HammingEncode(汉明码编码器)
用于对输入信息进行汉明编码,汉明码是一种能够纠正一位错误的红性分组码,码长为N。
该信息位的长度为K,其中,N=2^M-1(M>
=3),K=N-M。
模块参数:
2.2.3BinarySymmetricChannel(二进制对称信道)
用于对二进抽制信号的误比特率性能进行仿真,添加二进制噪声到输入信号,可以是标量、数据流向量或帧结构的行向量。
Errorprobability:
添加噪声比特的概率。
2.2.4HammingDecode(汉明码译码器)
创建一个码长为N,信息码长为K的汉明码。
其中,N=2^M-1(M>
=3),K=N-M。
此处的两个参数要与前面的HammingEncode参数一致。
2.2.5ErrorRateCalculation(误码率计算)
通过比较传输数据和接收数据来计算误码率,模块的输出数据是长度为3的向量,其中每个元素的意义分别是:
误码率或误比物率、总的错误个数、总的参加比较的符号或比特数。
Receivedelay:
指定接收方滞后发送的抽样点数,即接收的第几个值
对应发送的第一个值。
Computationdelay:
指定开始比较时模块忽略的抽样点数。
Computationmode:
指定模块是比较全部还是输入数据。
Outputdata:
指定计算结果是输出到工作区还是端口。
2.2.6ToWorkspace(输出到工作区)
写入专门的数据到MATLAB的主工作区。
数据不可用直到仿真结束或暂停。
模块位置:
Simulink\Sinks
Variablename:
写入工作区间的数据名称,默认为simout。
Limitdatapointstolast:
模块最多可以保留的数据个数,inf表示无穷大。
Decimation:
写入数据的抽样频率,即每隔多少抽样点输入一个值。
Sampletime:
写入数据的抽样时间,默认值为-1,表示与上一模块抽样时间相同。
Saveformat:
输出数据的形式。
2.2.7display(显示仿真结果)
显示结果
Format:
显示在模块对话框上的数据形式,short显示小数据点后5位数字。
三、汉明码仿真环境的实现和仿真的步骤
3.1汉明码仿真的实现环境
在WindowsXPSP2下的Matlab/Simulink实现
3.2汉明码仿真的步骤
①打开MATLAB软件,在命令窗口中输入“simulink”打开Simulink仿真软件。
②打开“File->
New->
Model”,在模块库中找到实现汉明码仿真所需要的各个模块,把它们都拖动到Model中并把它们按需要连接起来。
③依次按需要设置各模块的参数。
④点击“Startsimulation”按钮开始仿真过程,并观察仿真结果,按需要对整个系统进行调试。
⑤得出最终正确的实验结果,保存模型。
四、汉明码仿真的结果与分析
(1)BSC模块的Errorprobability参数设置为0.05。
Simout1:
图1BBG产生的随机二进制码
BernoulliBinaryGenerator一秒钟产生了2004个比特,每4个比特组成一帧,比特流0的概率为0.5。
Simout2:
图2HE对BBG进行汉明编码
HammingEncoder对BernoulliBinaryGenerator产生的比特流进行汉明编码,采用(7,3)编码,即每4位信息码加上3位校验码组成7位码,如上图所示,2004位比特经编码后产生3507位比特。
Simout3:
图3HD进行汉明译码
HammingDecoder对经过传输误码率为0.05的BSC信道的比帧进行汉明译码。
Simout4:
图4原码与译码对比结果
ErrorRateCalculation对原码和译码进行比较,每4个比特(即一帧)统计一次,每次统计的时候把前面传输的比特一起统计,如图4所示,比较的比特共有2004位,传输错误的比特有38位,传输借误率为0.018962。
Display:
Display更加直观地显示了比较的结果,从上到下依次是实际传输误码率,误比特数,比较的比特总数。
(2)把BSC模块的Errorprobability参数再分别设置为0.00010.0010.0050.010.020.030.040.060.070.080.090.1得出如下结果:
信道
误码率
0.0001
0.001
0.005
0.01
比较
结果
0.02
0.03
0.04
0.06
0.07
0.08
0.09
0.1
结合部
(1)信道误码率为0.05的结果,可得出下图:
由图可知,汉明码能有效解决信道传输中由信道噪声等引起的传输差错问题,当信道误码率低于0.01的时候,汉明码甚至可以达到无差错传输,但当信道误码率越来越大的时候,汉明码的检纠错能力下降,当信道误码率在0.02的时候,汉明码能检纠错达75%,当信道误码率在0.1的时候,汉明码只能检纠不到50%的错误,且这个数值会随着信道误码率的增加而降低。
五、总结
做设计的过程中我们遇到了一个问题,为了尽可能的了解仿真的过程,我们希望能够看到仿真过程中每个模块输出的数据。
根据汉明编码的原理,汉明编码是对帧结构的数据进行编码,而普通的示波器(scope)无法看到帧结构的数据,所以我们选用另一个能得到输出结果的模块——toworkplace。
在Matlab模块中有toworkplace和scope(显示器)两个模块能显示数据,toworkplace是以数据真实结构的形式显示数据,它是以数据矩阵方式显示数据流,虽然不能直接看到数据波形,但是看到的数据矩阵是真实的结构,而且静态的数据矩阵也便于观察和比较各部分得出的数据。
通过这次的课程设计,我们了解并掌握了Matlab仿真在通信与电子工程中的应用;
更深入的理解了汉明码的相关知识。
提高了综合运用所学的理论知识和方法独立分析和解决问题的能力;
同时也培养了自己调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
在这次的课程设计中,我们在指导教师的指导下,独立完成设计课题的内容,包括:
调查研究,收集和调查有关技术资料,掌握设计课题的基本步骤和方法,根据课题的要求进行应用Matlab软件调试。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汉明码 仿真