axis([1 length(a) -0.5 1.5])
title('编码序列');
%判断生成的随机序列个数是否是 11 的整数倍
if length(a)/11==fix(length(a)/11)
%随机序列个数是 11 的整数倍,直接编码
b=reshape(a,11,(length(a)/11));
M=b';
F=eye(11);
S=[0 0 1 1;0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 1;1 0 1 0;1 0 1
1;1 1 0 0;1 1 0 1;1 1 1 0;1 1 1 1];
K=eye(4);
G=[F,S];
H=[S',K];
C=rem(M*G,2);
disp('生成矩阵 G:');
disp(G);
disp('监督矩阵 H:');
disp(H);
disp('码字:');
disp(C);
else
%随机序列个数不是 11 的整数倍,补 0 后编码
s1=[a,zeros(1,(fix(length(a)/11)+1)*11-length(a))];
%补 0
b=reshape(s1,11,(length(s1)/11));
M=b';
F=eye(11);
S=[0 0 1 1;0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 1;1 0 1 0;1 0 1
1;1 1 0 0;1 1 0 1;1 1 1 0;1 1 1 1];