⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xxfzm.m

📁 海明马德matlab仿真
💻 M
字号:

%编码程序
m=input('请输入信组 m =')  %信息长度为4的整数倍 采用(7 ,4)线性分组码
[r,s]=size(m); 
while ((rem(s,4))~=0) 
disp('输入错误 请重新输入'); 
n=input('请输入信组 m =') 
[r,s]=size(n); 
m=n; 
end        
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=s/4;
for i=1:a
    P=rem([m(1+(i-1)*4) m(2+(i-1)*4) m(3+(i-1)*4) m(4+(i-1)*4)]*g,2);
    for j=1:7
       P1((i-1)*7+j)=P(j); 
    end 
end    

disp('输入正确 信息组 m='),disp(m); 
disp('hamming编码后码字为'),disp(P1);
P1=rem(P1+randerr(1,a*7,[0 1;0.7 0.3]),2);  %加入信道噪声
y=P1;
disp('不通过译码为'),disp(y);
%译码程序
[r,s]=size(P1); 
a=s/7; 
s0=zeros(1,3); 
ss=zeros(1,7*a); 
e=zeros(1,7); 
c=zeros(r,s); 
m=zeros(1,4*a); 
for i=1:a 
s0=rem(([y((i-1)*7+1) y((i-1)*7+2) y((i-1)*7+3) y((i-1)*7+4) y((i-1)*7+5) y((i-1)*7+6) y((i-1)*7+7)]*h'),2); 
e=s0/h'; 
for j=1:7 
ss((i-1)*7+j)=e(j); 
end 
end 
c=xor(y,ss); 
for k=1:a 
m((k-1)*4+1)=c((k-1)*7+1); 
m((k-1)*4+2)=c((k-1)*7+2); 
m((k-1)*4+3)=c((k-1)*7+3); 
m((k-1)*4+4)=c((k-1)*7+4); 
end 
disp('译码为'),disp(m); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -