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