求大神帮我看一下程序哪出错了,为什么会运行不起来
1 仿真程序% H 监督矩阵
% G 生成矩阵
% C 编码矩阵
% I 输入信息序列
% R 信道输出码
% A 纠错输出码序列
% E 错码矩阵
% S 校验子矩阵
% M 校验子的行的十进制序列
%信道编码程序
clear all
close all
H=[0 1 1 1 0 0;
1 0 1 0 1 0;
1 1 0 0 0 1]; %监督矩阵H
G=gen2par(H); %求H阵的生成矩阵G
I=;
C=rem(I*G,2); %求码字C
disp('所得的编码结果为:C='); %显示输出码字C
disp(C);
%信道译码程序
clear all;
close all;
H=[0 1 1 1 0 0;
1 0 1 0 1 0;
1 1 0 0 0 1]; %监督矩阵H
B=input('请输入接收码组B:');
=size(B); %返回数组B的维数
E=[0 0 0 0 0 0;0 0 0 0 0 1;0 0 0 0 1 0;0 0 0 1 0 0;
0 0 1 0 0 0;0 1 0 0 0 0;1 0 0 0 0 0;1 0 0 1 0 0];
S=rem(B*H',2); %求校验子S
i=1;
for i=1:1:a
M(i,1)=S(i,1).*4+S(i,2).*2+S(i,3); %求校验子所表示的十进制整数
end
for i=1:1:a
switch(M(i,1))
case 0
A(i,:)=B(i,:)+E(1,:);
case 1
A(i,:)=B(i,:)+E(2,:);
case 2
A(i,:)=B(i,:)+E(3,:);
case 3
A(i,:)=B(i,:)+E(4,:);
case 4
A(i,:)=B(i,:)+E(5,:);
case 5
A(i,:)=B(i,:)+E(6,:);
case 6
A(i,:)=B(i,:)+E(7,:);
case 7
A(i,:)=B(i,:)+E(8,:);
end
end
for i=1:1:a
switch(M(i,1))
case 0
disp(‘没有出现错误!’);
case 1
disp(‘注意:第1位出现一个错误!请纠正!’);
case 2
disp(‘注意:第2位出现一个错误!请纠正!’);
case 3
disp(‘注意:第3位出现一个错误!请纠正!’);
case 4
disp(‘注意:第4位出现一个错误!请纠正!’);
case 5
disp(‘注意:第5位出现一个错误!请纠正!’);
case 6
disp(‘注意:第6位出现一个错误!请纠正!’);
case 7
disp(‘注意:第6位和第3位出现两个错误!请纠正!’);
end
end
A=rem(A,2); %求出正确的编码
disp('检纠错后的码组A=');
disp(A); %显示正确的编码
j=1;
while j<=3 %提取信息位
I(:,j)=A(:,j);
j=j+1;
end
disp('译出的信息序列I=');
disp(I); %显示原信息码
运行后在要求输入B接收码时出错,是怎么回事
页:
[1]