ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:254.35KB ,
资源ID:2879252      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2879252.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汉明码编译码.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汉明码编译码.docx

1、汉明码编译码汉明码编译码一 设计思想汉明码是一种常用的纠错码,具有纠一位错误的能力。本实验使用Matlab平台,分别用程序语言和simulink来实现汉明码的编译码。用程序语言实现就是从原理层面,通过产生生成矩阵,错误图样,伴随式等一步步进行编译码。用simulink实现是用封装好的汉明码编译码模块进行实例仿真,从而验证程序语言中的编译码和误码性能分析结果。此外,在结合之前信源编码的基础上,还可实现完整通信系统的搭建。二 实现流程1.汉明码编译码图 1 汉明码编译码框图1)根据生成多项式,产生指定的生成矩阵G2)产生随机的信息序列M3)由得到码字4)进入信道传输5)计算得到伴随式6)得到解码码

2、流7)得到解码信息序列2.汉明码误码性能分析误码率SER是指传输前后错误比特数占全部比特数的比值。误帧率FER是指传输前后错误码字数占全部码字数的比值。通过按位比较、按帧比较可以实现误码率和误帧率的统计。3.构建完整通信系统图 2 完整通信系统框图三 结论分析1.汉明码编译码编写了GUI界面方便呈现过程和结果。图 3 汉明码编译码演示GUI界面以产生7,4汉明码为例说明过程的具体实现。1)根据生成多项式,产生指定的生成矩阵G用H,G,n,k = hammgen(3,D3+D+1)函数得到系统码形式的校验矩阵H、G以及码字长度n和信息位数k 2)产生随机的信息序列M3)由得到码字4)进入信道传输

3、传输后接收端得到的码流为红色表示错误比特。5)计算得到伴随式错误图样0000001000001000001000001000001000001000001000000伴随式101111011110001010100查表可知第一行码字错误图样为0100000,第二行码字错误图样为1000000,第三行码字错误图样为0000001。进行即可得到纠错解码的码字C2。6)得到解码码流7)得到解码信息序列可以看出解码信息序列与原信息序列一样,表达了汉明码的纠错能力。2性能分析1BSC信道仿真设置BSC错误转移概率Pe从0到1变化,步进为0.01,在每个Pe值进行1000次蒙特卡洛仿真,得到图4所示误码率

4、随Pe变化曲线图和图5所示误帧率随Pe变化曲线图。图 6误码率随Pe变化曲线图图中绿线为BSC信道误码率,红线为设定Pe值,蓝线为Hamming码解码误码率。由图线可以看出仿真的BSC信道误码率与Pe一致。在Pe0.2时, Hamming码的解码误码率随着BSC信道错误传输概率Pe的减小而减小。Hamming码的解码误码率显著下降,约为Pe的1/2。Hamming码的纠1位错起到了很好的效果。0.20.2时,传一个码字错误比特数近似为2,而Hamming码只能纠一位错,两位同时出错时会纠成另一个码字,这样就可能增加误比特数,使得“越纠越错”。Pe0.5时,情况恰好相反。图 7误帧率随Pe变化曲

5、线图可以看出随着Pe增加,BSC传输误帧率和Hamming译码误帧率成S曲线上升到达1。Hamming译码误帧率要低于BSC传输误帧率,表达了其纠错能力使得码字错误减少这一效果。与误码率的图比照可以发现,误帧率要比误比特率高。为了进一步验证结果的正确性,进行了simulink仿真。图 8 BSC信道仿真框图用伯努利二进制发生器产生随机序列,进行汉明码编码,进入BSC信道传输,之后进行汉明码译码,用Error Rate Calculation模块统计误码率,结果如下:图 9 simulink仿真BER随Pe变化曲线图与程序实现仿真的结果几乎一样。2AWGN信道仿真AWGN信道仿真直接用simul

6、ink实现。图 10 AWGN信道仿真框图设置系统的数字调制方式为2FSK,设定AWGN信道的SNR从0到8dB以1dB步进变化,得到误码率统计图。图 11 simulink仿真BER随SNR变化曲线图图中绿线为2FSK调制误码率,是由于AWGN带来的。蓝线为汉明码解码后误码率。可以看出,汉明码能够很好的降低误码率。在SNR到达5dB时错误概率降低为0.001.3完整通信系统的构建以传输图片为例,信道设置为BSC信道。在不加入汉明码和加入汉明码两种情况下观察传输后图像的情况。结果如下表所示。BSC错误转移概率Pe50BSC传输图像加汉明码误码率65200加汉明码传输图像由结果可以看出,加入信道

7、编码后,当BSC错误转移概率Pe0.01后,图像恢复性能有明显的改善。这表达了汉明码虽然只有纠一位错的能力,但由于一般信道的Pe不会很大,其纠错的实用性和效果还是很好的。四 思考题解答1.采用循环Hamming码在硬件实现中的优点?与普通的线性分组码译码电路相比,循环汉明码不需要存储伴随式及错误图样,显著的节省了寄存器的使用,起到简化电路的作用。2.Hamming码如何改良可提高纠检错性能?可以在H校验矩阵基础上进行扩展,最后一行为全1行,最后一列矢量为001T。这样任何3列是线性无关的,dmin=4,进行奇偶校验,纠错能力为1,检错能力为2。即 下面通过实例的方式说明扩展H校验矩阵的检错性能

8、。首先在7,4汉明码的基础上进行扩展,得到8,4扩展汉明码的生成矩阵H。 简化译码表如下:错误图样 0000 0001 00000010 00000100 00001000 00010000 00100000 0100000010000000伴随式00010011010110010111110111111011错码个数原序列错码序列伴随式查表结果10000 00000000 01010100有21110 10001110 10100011无30001 01110010 01011001有40100 11101100 00100111有说明对于错码个数为1的,既可以检错也可以纠错;错码个数为2的

9、,可以检错,但不能纠错;错码个数大于2的,被认为是错码个数为1,纠成其他码字。附录clear allH,G,n,k = hammgen(3,D3+D+1);%H,G,n,k = hammgen(3,D4+D2+D+1);%H,G,n,k = hammgen(4,D4+D+1);%H,G,n,k = hammgen(5,D5+D2+1);%产生校验矩阵E=zeros(1,n);fliplr(eye(n,n);%产生错误图样 一共是n+1个S=mod(H*E,2);%生成错误图样的伴随式%产生消息序列%二进制随机矩阵%M= randi(0,1,1,k);%产生4位消息列nm=3;M= randi(

10、0,1,nm,k);%产生4位消息列%消息序列code=mod(M*G,2);%对消息序列编码%BSC信道进入Pe=0.1;for j=1:nmfor i=1:ncode_bsc(j,i)=mod(code(j,i)+(unidrnd(round(1/Pe)=1),2);%模2加得到传输后的编码delta(j,i)=code_bsc(j,i)-code(j,i);%作差来计算错误位置endendep=find(delta=0);%error positiondisplay(length(ep),BSC错误位数)display(length(ep)/(nm*n),BSC误比特率);Scode=m

11、od(code_bsc*H,2 ); %Scode=1 1 0;errow2=0; for i=1:nm if sum(code_bsc(i,:)-code(i,:)=0 errow2=errow2+1; end enddisplay(errow2,BSC错误码字数);% display(errow2/nm,BSC误码率);for m=1:nmfor i=1:n+1 if S(:,i)=Scode(:,m) j=i; endend %找到对应的伴随式的位置dcode(m,:)=mod(code_bsc(m,:)+E(j,:),2);ender=length(find(dcode-code=0)

12、;%计算误比特的个数enta=er/(nm*n);display(code,信息序列码字)display(code_bsc,BSC传输后的信息序列码字)display(dcode,解码后的信息序列)% display(errow2/nm,解码后误码率);% display(er,解码后错误比特数);m2=dcode(:,n-k+1:end);display(dcode,解码后信息序列);errow2=0; for i=1:nm if sum(dcode(i,:)-code(i,:)=0 errow2=errow2+1; end end% display(errow2,解码后错误码字数);% display(errow2/nm,解码后误码率);

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

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