matlab - 为什么我计算的结果与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计算的结果。我想知道为什么,如果有人可以回答我的问题,我会很高兴。谢谢!
解决方案
encode
您可以在 Matlab中打开该函数。因此,该函数计算以下步骤:
m = n-k;
h = hammgen(m);
gen = gen2par(h);
code = rem(x * gen, 2);
尝试逐步检查这些命令的作用以及它们与经典汉明码的不同之处。
推荐阅读
- byte-buddy - .withMethodCall() 链接在可变参数方法 ByteBuddy
- python-3.x - 如何比较函数python中的局部变量和全局变量
- c# - 在 C# 中创建一个按下键盘上的键的函数
- javascript - 难道我做错了什么?
- javascript - Rails + Foundation Sites vs. Webpacker + Asset Pipeline
- python - 我需要拆分一个字符串,以便它只打印出名称
- outlook-addin - 使用 react js 的 Outlook 加载项无法正常工作 Outlook 桌面客户端
- arrays - jsonpath Array 和其他一次
- oauth-2.0 - Keycloak SPI 处理遗留 API 密钥令牌
- c - 为什么我无法将分配内存的结构节点指针分配给先前值为 null 的结构节点指针以创建链表?