实验七汉明码编译码实验
【实验目的】使学生了解汉明码的编译码原理;并能够通过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)用3步的H形成HCT =0,从而得出m个监督方程;
5)将已知的信息代入方程组,然后求出满足上述方程组的监督位c (i=0,1,?,m一1)。例如,用以上
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
,很容易求出[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: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=randsrc(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;
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]
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]
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,'b:s'); %画出误比特数
xlabel('信噪比');
ylabel('误比特数');
figure
plot(ber,'k-*'); %画出误比特率
xlabel('信噪比');
ylabel('误比特率');
【实验现象
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
】
记录汉明码波形,并对误比特数和误码率进行分析。【现象分析】
观察输出波形,分析原因。
【实验结果】
***************
【实验体会】
***************