首页 > 解决方案 > 为什么我计算的结果与matlab计算的不同?

问题描述

这是matlab的答案:

x=[1,0,1,1]

x_encode=encode(x,7,4)

>>x_encode [1,0,0,1,0,1,1]

我根据汉明码的定义计算了汉明码,这是我的计算过程:

2^r≥k+r+1
Here,k=4
2^r≥5+r
r=3
n=k+r=7
encode:[r1,r2,1,r3,0,1,1]
r1->[r1,1,0,1]、r2->[r2,1,1,1]、r3->[r3,0,1,1]

如果我使用奇校验位,那么它会像:

r1=1,r2=0,r3=1
>>x_encode [1,0,1,1,0,1,1]

但如果我使用偶校验位,它会像:

r1=0,r2=1,r3=0
>>x_encode [0,1,1,0,0,1,1]

以上都不等于matlab计算的结果。我想知道为什么,如果有人可以回答我的问题,我会很高兴。谢谢!

标签: matlabencodehamming-code

解决方案


encode您可以在 Matlab中打开该函数。因此,该函数计算以下步骤:

m = n-k;
h = hammgen(m);
gen = gen2par(h);
code = rem(x * gen, 2);

尝试逐步检查这些命令的作用以及它们与经典汉明码的不同之处。


推荐阅读