l
要求:
某(7,4)汉明码的生成矩阵为G,用MATLAB仿真编码过程。其中G为
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
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 |
l
主程序如下所示:
G=[1 0 0 0 1 1 1;
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
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);
这个也没啥技术含量,重点还是译码里的标准阵列译码表。明天有空发上。
转载于:https://blog.51cto.com/smallclouds/729300