1、已知一(10,4)线性分组码的生成矩阵为
1001110111111000111001101101011
10111100
1G ?????
?=??????
试用Matlab 求出该码的全部码字和最小汉明距离。 (1)源代码
G=[1 0 0 1 1 1 0 1 1 1;1 1 1 0 0 0 1 1 1 0;0 1 1 0 1 1 0 1 0 1;1 1 0 1 1 1 1 0 0 1]
%生成矩阵
%将生成矩阵标准化,化为典型生成矩阵
B1=G(2,:),G(2,:)=G(3,:),G(3,:)=B1; %交换第2、3行的位置
G(3,:)=(~G(3,:) & G(2,:))|(G(3,:) & (~G(2,:))); %将第2行的数据与第3行的数据进行异
或运算作新的第3行的值
G(4,:)=(~G(4,:) & G(2,:))|(G(4,:) & (~G(2,:))); %将第2行的数据与第4行的数据进行异
或运算作为新的第4行的值
G(1,:)=(~G(1,:) & G(3,:))|(G(1,:) & (~G(3,:))); %将第3行的数据与第1行的数据进行
异或运算作为新的第1行的值
G(4,:)=(~G(4,:) & G(3,:))|(G(4,:) & (~G(3,:))); %将第3行的数据与第4行的数据进行
异或运算作为新的第4行的值
B2=G(1,:),G(1,:)=G(3,:),G(3,:)=B2; %交换第1、3行的位置
G(2,:)=(~G(2,:) & G(4,:))|(G(2,:) & (~G(4,:))); %将第4行的数据与第2行的数据进行异
或运算作为新的第2行的值
G(2,:)=(~G(2,:) & G(3,:))|(G(2,:) & (~G(3,:))); %将第3行的数据与第2行的数据进行异
或运算作为新的第2行的值
G(4,:)=(~G(4,:) & G(3,:))|(G(4,:) & (~G(3,:))); %将第3行的数据与第4行的数据进行异
或运算作为新的第4行的值
B3=G(3,:),G(3,:)=G(4,:),G(4,:)=B3; %交换第3、4行的位置 %信息位码元矩阵为C
C=[0 0 0 0;0 0 0 1;0 0 1 0;0 0 1 1;0 1 0 0;0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 0;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] %生成的含有全部码字的矩阵A A=C*G for i=1:16 for j=1:10
if (A(i,j)==2) |(A(i,j)==4) A(i,j)=0; end
if A(i,j)==3 A(i,j)=1; end end
end %由于进行乘法运算中各数是进行加和,必须改为异或运算,即使生成矩阵中只含有0和1,以上即是运用异或运算的规则进行转化