资源描述:
《实验七汉明码编译码实验.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验七汉明码编译码实验【实验目的】使学生了解汉明码的编译码原理;并能够通过MATLAB实现。【实验器材】装有MATLAB软件的计算机一台【实验原理】汉明码的编码就是如何根据信息位数k,求出纠正一个错误的监督矩阵H,然后根据H求出信息位所对应的码字。 1)根据已知的信息位数k,从汉明不等式中求出校验位数m=n-k; 2)在每个码字C:(C1,C2,⋯ ,C2m -1)中,用c02 ,c12 ,cn-12作为监督位,剩下的位作为信息位; 3)用二进制数字表示2m-1 列,得到2m-1列和m行监督矩阵H; 4)用
2、3步的H形成HCT =0,从而得出m个监督方程; 5)将已知的信息代入方程组,然后求出满足上述方程组的监督位c (i=0,1,⋯ ,m一1)。 例如,用以上方法,很容易求出[7,4,3]汉明码的监督矩阵H及编码所对应的码字。【实验内容与步骤】1、路径设置成指向comm2文件夹;2、新建一个扩展名为m的文件。3、输入PCM编码的代码:参考代码:N=30000; K=4*N;%信息长度 Q=8;%调制形式 num=zeros(20,1);%误比特数 ber=zeros(20,1);%误比特率 for SNR=1
3、:1:20 %生成矩阵 G=[ 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 ]; %监督矩阵 H=[1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1]; A=zeros(7*N,1);%编码后信号 S=zeros(N,3);%校验子 E=zeros(7*N,1);%错误图样 I=zeros(7*N,1);%解调纠错后的矩阵 NEW=zeros(K,1);%收到的信号 a=randsr
4、c(K,1,[0,1]);%信源 %编码 for k=1:N code=[a(4*k-3) a(4*k-2) a(4*k-1) a(4*k)]*G; for l=0:6 A(7*k-l)=mod(code(7-l),2); end end %8PSK调制 Xa=pskmod(A,Q); %信道传输加噪 Xb=awgn(Xa,SNR); %解调 B=pskdemod(Xb,Q); %编码 for n=1:N M=7*n-6;
5、 Z=4*n-3; T=7*n-3; V=4*n; L=7*n; s=B(M:L,1)'*H'; S(n,:)=mod(s,2); if S(n,:)==[0 0 0] E(M:L,1)=[0 0 0 0 0 0 0]'; elseif S(n,:)==[0 0 1] E(M:L,1)=[0 0 0 0 0 0 1]'; elseif S(n,:)==[0 1 0]
6、 E(M:L,1)=[0 0 0 0 0 1 0]'; elseif S(n,:)==[0 1 1] E(M:L,1)=[0 0 0 0 1 0 0]'; elseif S(n,:)==[1 0 0] E(M:L,1)=[0 0 0 1 0 0 0]'; elseif S(n,:)==[1 0 1] E(M:L,1)=[0 0 1 0 0 0 0]'; elseif S(n,:)==[1 1 0]
7、 E(M:L,1)=[0 1 0 0 0 0 0]'; elseif S(n,:)==[1 1 1] E(M:L,1)=[1 0 0 0 0 0 0]'; end P=B(M:L,1)+E(M:L,1); I(M:L,1)=mod(P,2); NEW(Z:V,1)=I(M:T,1); end [num(SNR,:),ber(SNR,:)]=biterr(NEW,a); end plot(num,
8、'b:s'); %画出误比特数 xlabel('信噪比'); ylabel('误比特数'); figureplot(ber,'k-*'); %画出误比特率 xlabel('信噪比'); ylabel('误比特率');【实验现象记录】记录汉明码波形,并对误比特数和误码率进行分析。【现象分析】观察输出波形,分析原因。【实验结果】***************【实验体会】**********