置换映射:二进制汉明码

时间:2017-06-28 14:18:33

标签: matlab matrix hamming-code

我有一个带生成矩阵的二进制汉明码

 G = [1 0 0 0 1 0 1;
      0 1 0 0 1 1 1;
      0 0 1 0 1 1 0;
      0 0 0 1 0 1 1];

u是收到的向量u = [0.5 0.3 1.3 -0.1 0.7 0.6 1.5]

基于递减值的置换接收向量是:

v = p(u) = [1.5 1.3 0.7 0.6 0.5 0.3 -0.1]p = (5 6 2 7 3 4 1)

置换生成矩阵是:

G1 = [1 0 1 0 1 0 0;
      1 0 1 1 0 1 0;
      0 1 1 1 0 0 0;
      1 0 0 1 0 0 1];

我尝试编写此示例,但我找不到完全相同的答案,我发现p不同但vG1相同。

我的代码:

G = [1 0 0 0 1 0 1;
     0 1 0 0 1 1 1;
     0 0 1 0 1 1 0;
     0 0 0 1 0 1 1];

u = [0.5 0.3 1.3 -0.1 0.7 0.6 1.5];
[~,p] = sort(u,'descend');
v = u(p);
G1 = G(:,[p]);

我获得:

v = [1.5 1.3 0.7 0.6 0.5 0.3 -0.1];
p = [7 3 5 6 1 2 4]; 

G1 = [1 0 1 0 1 0 0;
      1 0 1 1 0 1 0;
      0 1 1 1 0 0 0;
      1 0 0 1 0 0 1];

我的代码有什么问题?我希望得到与示例中相同的结果。

谢谢!

0 个答案:

没有答案