汉明码编译码_第1页
汉明码编译码_第2页
汉明码编译码_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、 10 0 00 110 10 0 G1110 0 101 0 1 0 0 0 12) 产生随机的信息序列M0 0 10M = 01000 1113由C MG得到码字0 1 0 0 0 1 1C 01101000 0 10 1114进入信道传输传输后接收端得到的码流为0 00 00 1 1R111010 00 010111红色表示错误比特。5计算S=RHT得到伴随式0 1 1S= 1000 0 1错误图样0000001000001000001000001000001000001000001000000伴随式101111011110001010100查表可知第一行码字错误图样为0100000,第

4、二行码字错误图样为1000000,第三行码字错误图样为 0000001。进行C?=R+ E?即可得到纠错解码的码字C2。6得到解码码流0100011C2 000000011100107得到解码信息序列0 10 0M 2000 00 0 10可以看出解码信息序列与原信息序列一样,表达了汉明码的纠错能力。2 性能分析1BSC信道仿真设置BSC错误转移概率 Pe从0到1变化,步进为0.01,在每个Pe值进行1000 次蒙特卡洛仿真,得到图 4所示误码率随Pe变化曲线图和图5所示误帧率随Pe变 化曲线图。10.B0.6LUS0.40.2000,10 左 0,30,40,60.70.00,91Pe图6误

5、码率随Pe变化曲线图图中绿线为BSC信道误码率,红线为设定Pe值,蓝线为Hamming码解码误码 率。由图线可以看出仿真的BSC信道误码率与Pe一致。在Pe<0.2时,Hamming码的解码误码率随着 BSC信道错误传输概率 Pe的减 小而减小。Hamming码的解码误码率显著下降,约为 Pe的1/2。Hamming码的纠1 位错起到了很好的效果。0.2<Pe时,Hamming码的解码误码率大于Pe。这是因为在 Pe>0.2时,传一个码字错误比特数近似为 2,而Hamming码只能纠一位错,两位同时出错时会纠成另 一个码字,这样就可能增加误比特数,使得“越纠越错。Pe>

6、0.5时,情况恰好相反。0010.20.30.4 o.b Q.60.70.80 卫图7误帧率随Pe变化曲线图可以看出随着 Pe增加,BSC传输误帧率和 Hamming译码误帧率成S曲线上升 到达1。Hamming译码误帧率要低于 BSC传输误帧率,表达了其纠错能力使得码字 错误减少这一效果。与误码率的图比照可以发现,误帧率要比误比特率高。为了进一步验证结果的正确性,进行了simulink仿真。tb 府:放耳fe bVank.qKEU ITb WcrkEpaTo iVcrftEpacsJ图8 BSC信道仿真框图用伯努利二进制发生器产生随机序列,进行汉明码编码,进入BSC信道传输,之后进行汉明码译

7、码,用Error Rate Calculation模块统计误码率,结果如下:ErrorRate with SNR3e(ro山图9 simulink仿真BER随Pe变化曲线图与程序实现仿真的结果几乎一样。2AWGN信道仿真AWGN信道仿真直接用 simulink实现。ra 曲?4ka aFa 曲图10 AWGN信道仿真框图设置系统的数字调制方式为2FSK,设定AWGN信道的SNR从0到8dB以1dB步进变化,得到误码率统计图。ErrorRale with SNRSNR in dB图11 simulink仿真BER随SNR变化曲线图图中绿线为2FSK调制误码率,是由于AWGN带来的。蓝线为汉明码解

8、码后误 码率。可以看出,汉明码能够很好的降低误码率。 在SNR到达5dB时错误概率降低 为 0.001.3完整通信系统的构建以传输图片为例,信道设置为BSC信道。在不参加汉明码和参加汉明码两种情 况下观察传输后图像的情况。结果如下表所示。BSC错误转移概率Pe50BSC传输图像二A二沖匚二h丘'.:严 7 X卜逊?r=&i a信加汉明码误码率65200加汉明码传输图像' 鲨曲r 一 - -X宀T A;5s?用 1* i 1ain信由结果可以看出,参加信道编码后,当BSC错误转移概率Pe<0.01后,图像恢复性能有明显的改善。这表达了汉明码虽然只有纠一位错的能力,但

9、由于一般信道 的Pe不会很大,其纠错的实用性和效果还是很好的。四思考题解答1采用循环Hamming码在硬件实现中的优点?与普通的线性分组码译码电路相比,循环汉明码不需要存储伴随式及错误图样,显 著的节省了存放器的使用,起到简化电路的作用。2.Hamming码如何改进可提高纠检错性能?可以在H校验矩阵根底上进行扩展,最后一行为全1行,最后一列矢量为00Tt这样任何3列是线性无关的,dmin=4,进行奇偶校验,纠错能力为 1,检错能力为2。即0H :H '=01-11F面通过实例的方式说明扩展H校验矩阵的检错性能首先在:乙4汉明码的根底一上进行扩展,得到8, 4扩展汉明码的生成矩阵H111

10、0100001110100H =1101001011111111简化译码表如下错误图样0000000000000000000100100100100000010010010010000000000000000000伴随式00010011010110010111110111111011错码个数原序列错码序列伴随式查表结果10000 00000000 01010100有21110 10001110 10100011无30001 01110010 01011001有40100 11101100 00100111有说明对于错码个数为1的,既可以检错也可以纠错;错码个数为2的,可以检错,但不能纠错;错码

11、个数大于2的,被认为是错码个数为 1,纠成其他码字 附录clear allH,G, n,k = hammge n(3,'DA3+D+1');%H,G, n,k = hammge n(3,'DM+DA2+D+1');%H,G, n,k = hammge n( 4,0人4+。+1');%H,G, n,k = hammge 门(5,0人5+。人2+1');%产生校验矩阵E=zeros(1,n);fliplr(eye(n,n);%产生错误图样 一共是 n+1 个S=mod(H*E',2);% 生成错误图样的伴随式%产生消息序列%二进制随机矩阵%M

12、= randi(0,1,1,k);% 产生 4位消息列nm=3;M= randi(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 position display(lengt

13、h(ep),'BSC 错误位数 ') display(length(ep)/(nm*n),'BSC 误比特率 ');Scode=mod(code_bsc*H',2 )' %Scode=1 1 0'errow2=0;for i=1:nmif sum(code_bsc(i,:)-code(i,:)=0 errow2=errow2+1;endenddisplay(errow2,'BSC 错误码字数 ');% display(errow2/nm,'BSC 误码率 ');for m=1:nmfor i=1:n+1if

14、 S(:,i)=Scode(:,m)j=i;endend %找到对应的伴随式的位置 dcode(m,:)=mod(code_bsc(m,:)+E(j,:),2);ender=length(find(dcode-code=0);% 计算误比特的个数 enta=er/(nm*n);display(code,'信息序列码字')display(code_bsc,'BSC 传输后的信息序列码字 ') display(dcode,'解码后的信息序列')% display(errow2/nm,' 解码后误码率 ');% display(er,&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论