我有一个带生成矩阵的二进制汉明码
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
不同但v
和G1
相同。
我的代码:
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];
我的代码有什么问题?我希望得到与示例中相同的结果。
谢谢!