l         要求:
某(74)汉明码的生成矩阵为G,用MATLAB仿真编码过程。其中G
 1  0  0  1
 0  1  0  0  1  1  0
0  0  1  0  1  0
 0  0  1 1
 
 
 
 
l         主程序如下所示:
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]; %十进制 生成矩阵
m=[1 0 0 0]; %十进制数

信息组
result = groupCoding(m,G) % 对信息组进行编码,得到的结果为二进制数

其中 groupCoding 函数如下:

function c = groupCoding(m,G) %m 为信息组, G 为生成矩阵, 均为十进制
[row,col] = size(G); %G 的行数为 k,; 列数为 n

if length(m)~= row

   disp( ' 信息组尺寸与生成矩阵不一致 ' );

  return;

end

r=mod(m*G,2); % m*G 得到 m 的码字

% 将码字转化为二进制

tempSum = 0;

for i=1:length(r)

   if r(i) == 1

      tempSum = tempSum +2^(length(r)-i);

   end

end

c = dec2bin(tempSum);
 
这个也没啥技术含量,重点还是译码里的标准阵列译码表。明天有空发上。