收藏 分销(赏)

Hamming码的编码与解码.pptx

上传人:天**** 文档编号:4229945 上传时间:2024-08-27 格式:PPTX 页数:26 大小:219.23KB
下载 相关 举报
Hamming码的编码与解码.pptx_第1页
第1页 / 共26页
Hamming码的编码与解码.pptx_第2页
第2页 / 共26页
Hamming码的编码与解码.pptx_第3页
第3页 / 共26页
Hamming码的编码与解码.pptx_第4页
第4页 / 共26页
Hamming码的编码与解码.pptx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、Hamming码的编码与解码基于Matlab的尝试中国地质大学(武汉)关键操作1.Matlab下进制转换的实现2.H矩阵的生成3.错误生成模块的实现4.纠错的实现编程小技巧1.矩阵拼接 行数相同矩阵左右拼接:C=A,B;列数相同矩阵上下拼接:C=A;B;函数分析function G,H =Creat_GH(m)%建立汉明码生成矩阵和奇偶校验矩阵n=2m-1;k=2m-1-m;%I1=zeros(k,k);%I2=zeros(n-k,n-k);P=Creat_P(m,k);I1=eye(k);I2=eye(n-k);G=I1,P;H=P,I2;end编程小技巧1.矩阵拼接 行数相同矩阵左右拼接:

2、C=A,B;列数相同矩阵上下拼接:C=A;B;函数分析function G,H =Creat_GH(m)%建立汉明码生成矩阵和奇偶校验矩阵n=2m-1;k=2m-1-m;%I1=zeros(k,k);%I2=zeros(n-k,n-k);P=Creat_P(m,k);I1=eye(k);I2=eye(n-k);G=I1,P;H=P,I2;end函数设计与分析function P =Creat_P(m,k)%建立伴随矩阵counter=1;P=zeros(m,k);for i=1:(2m-1)if mod(log2(i),1)=0 t=dec2bin(i,m);for q=1:m P(q,cou

3、nter)=t(1,q)-48;end counter=counter+1;endend P=P;end函数设计与分析function codeword_out =Occur_error(codeword_in,p)%出错函数M,N=size(codeword_in);codeword_out=zeros(M,N);for j=1:M for i=1:N if rand(1)=p codeword_out(j,i)=mod(codeword_in(j,i)+1,2);else codeword_out(j,i)=codeword_in(j,i);end endendend函数设计与分析func

4、tion codeword_out,flag =Encoding(codeword_in,G)%编码函数M,N=size(G);C,R=size(codeword_in);if R=M codeword_out=codeword_in*G;codeword_out=mod(codeword_out,2);flag=1;else codeword_out(1:N)=-1;flag=0;msgbox(编码失败,生成矩阵与信源不匹配);endend函数设计与分析function codeword_out,t,error =Deconding(codeword_in,H)%解码函数M,N=size(H

5、);C,R=size(codeword_in);t=zeros(C,R);error=0;Ht=H;r=mod(codeword_in*Ht,2);if sum(sum(r)=0 error=1;for j=1:C for i=1:N if r(j,:)=Ht(i,:)codeword_in(j,i)=mod(codeword_in(j,i)+1,2);t(j,i)=1;end end endendfor i=1:C codeword_out(i,1:N-M)=codeword_in(i,1:N-M);endend功能测试clear;m=3;p=0.1;G,H=Creat_GH(m);%dat

6、a_in=1 0 1 1;%1 0 1 1;data_in=1 0 1 1;codeword_out,flag=Encoding(data_in,G);erroword=Occur_error(codeword_out,p);data_out,t,error=Deconding(erroword,H);功能测试if error if data_in=data_out msgbox(发生错误,纠正成功查看!);else msgbox(发生错误,纠正失败!);end msgbox(查看数组t可得知出错位置(错误0 正确1)!);else msgbox(未发生错误!);end效果截图 效果截图 效果

7、截图 CyclicCode 基于Matlab的尝试中国地质大学(武汉)张慧 制主要流程clear;G1=1 1 1;G2=1 0 1 0;0 1 0 1;G3=2 3 0 0 0;0 2 3 0 0;0 0 2 3 0;0 0 0 2 3;GF1=3;GF2=4;k=2;k1=4;主要流程data=Creat_data(GF1,k);data1=Creat_data(GF2,k1);codeword_G1=CycCoding(data,G1,GF1,k);codeword_G2=CycCoding(data,G2,GF1,k);codeword_G3=CycCoding(data1,G3,GF

8、2,k1);min_d_G1=Calculate_D(codeword_G1);min_d_G2=Calculate_D(codeword_G2);min_d_G3=Calculate_D(codeword_G3);函数设计与分析function data=Creat_data(GF,n)%按照指定的长度在指定域内产生所有可能的码字temp=zeros(GFn,n);data=zeros(GFn,n);for i=1:(GFn)a=dec2base(i,GF);L=length(a);for j=1:L temp(i,j)=a(1,L-j+1)-48;endEndfor i=1:(GFn)fo

9、r j=1:n data(i,n-j+1)=temp(i,j);endendend函数设计与分析function codeword=CycCoding(data,g,GF,k)%根据已知生成码字编码Mg,Ng=size(g);Md,Nd=size(data);for i=1:(GFk)if Mg=1 cx(i,:)=Mul(data(i,:),g,GF);Mx,Nx=size(cx);codeword(i,:)=zeros(1,Ng-1+Nd-Nx),cx(i,Nx:-1:1);else if Nd=Mg codeword(i,:)=inf;else codeword(i,:)=mod(dat

10、a(i,:)*g,GF);end endendend函数设计与分析function output =Mul(a,b,GF)%将多项式在指定域内相乘 Ma,Na=size(a);Mb,Nb=size(b);output=conv(a,b);Mc,Nc=size(output);output=output(Nc-Nb:Nc);output=mod(output,GF);end函数设计与分析function min_distance=Calculate_D(codeword)%计算最小汉明距离M,N=size(codeword);counter=1;for i=1:M-1 for j=i+1:M d

11、istance(counter)=0;for k=1:N if codeword(i,k)=codeword(j,k)distance(counter)=distance(counter)+1;end end counter=counter+1;endendmin_distance=min(distance);end功能测试clear;G1=1 1 1;G2=1 0 1 0;0 1 0 1;G3=2 3 0 0 0;0 2 3 0 0;0 0 2 3 0;0 0 0 2 3;GF1=3;GF2=4;k=2;k1=4;data=Creat_data(GF1,k);data1=Creat_data(GF2,k1);codeword_G1=CycCoding(data,G1,GF1,k);codeword_G2=CycCoding(data,G2,GF1,k);codeword_G3=CycCoding(data1,G3,GF2,k1);min_d_G1=Calculate_D(codeword_G1);min_d_G2=Calculate_D(codeword_G2);min_d_G3=Calculate_D(codeword_G3);效果截图 效果截图 谢谢观赏完

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服