MATLAB实现线性分组码的编码

l         要求:
某( 7 4 )汉明码的生成矩阵为 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);
 
这个也没啥技术含量,重点还是译码里的标准阵列译码表。明天有空发上。

你可能感兴趣的:(职场,matlab,休闲,分组码)