问题标签 [hamming-code]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
753 浏览

c# - 汉明码扩展

我从这个汉明代码网站上获取了代码。如果我想在 12 位消息和 7 位奇偶校验上实现它,我必须做哪些更改?我已经添加到 DI[11] 和 CI[6] 位无法解释它的逻辑

0 投票
1 回答
764 浏览

verilog - 汉明 (7,4) 码 - 有限状态机

所以我正在为计算机工程课程做一个实验室作业。我有一个作业要交,我正在尽我所能获得帮助,至于教授,我必须等到几天才能与他们交谈以寻求帮助。所以我在看看我是否可以帮助她。

我的问题是我的有限状态机没有按照实验室任务的要求工作。状态机应该有 3 个状态;空闲,s1,s2。空闲应该显示波形中的所有零,状态 1 将显示从 LFSR 随机生成的 4 位数字,状态 2 将显示汉明 (7,4) 完成后的 4 位数字的结果。时钟更改为 1HZ 时钟,使用 clk 分频。

代码如下:

CLOCK_1HZ

LFSR

汉明

所有这些代码都能正常工作并计算正确的汉明,时钟分频与 LFSR 配合得很好,并且当它作为层次设计组合时工作。

当我为此代码制作 FSM 时,它可以计算汉明数,但在指示时不会改变状态。

  • 当开关 1 置位时:状态 IDLE
  • 当开关 2 置位时:状态 1,显示 4 位 LFSR 编号
  • 当开关 2 置位时:状态 2,显示 7 位汉明结果

以下是我的有限状态机代码,然后是波形输出

有限状态机的波形:

快照

0 投票
1 回答
456 浏览

error-correction - 汉明 Ecc 计算

考虑汉明 ECC 的例子https://en.wikipedia.org/wiki/Hamming_code

假设收到后发现奇偶校验位 16 和 8 不正确,您纠正了哪个位

0 投票
0 回答
1088 浏览

error-correction - P0 奇偶校验位错误会影响 SECDED 中的其他位吗?

我现在正在研究用于错误检测和纠正的 SECDED 事物。在我的工作中,规范是“已检索到一个 SECDED 编码字符,十六进制值为 CC9。SECDED 奇偶校验是偶数。是否有错误?并解释是否可以更正。”

根据规范,我在 P1(奇数)和 P2(奇数)处有错误,所以位 3 有错误。之后,我翻转了位并再次检查了错误。结果,P0 奇偶校验位只有一个错误,其余的在 P1,P2,P4,P8 处是正确的。

我的问题是,在这种情况下,不能更正代码吗?或相反亦然?我的回答是,我们可以说 P1 的第 1 位或第 3 位有错误,或者 P2 的第 2 位或第 3 位有错误,但即使第 3 位可以翻转也无法纠正。

任何答案将不胜感激。

问候,

艾伦

0 投票
2 回答
899 浏览

c# - C#汉明编码串行输出

我正在尝试与需要汉明编码 ASCII 字符的 RS232 设备通信。

下表由制造商提供:

我编写了这个 C# 函数来对每个字节(ascii char)进行编码,但该设备仅在其屏幕上解码行话。

我是否误解了汉明应该如何工作?我不是计算机科学家 :)

0 投票
1 回答
5492 浏览

java - 15, 11 汉明码发生器矩阵

我一直在尝试理解汉明码并编写了一个程序,该程序可以正确编码和解码汉明 7,4 的给定输入。尝试为 15,11 执行此操作时,尝试编码时无法获得正确的输出。

我输入了字节并添加了三个前导零,然后将其乘以下面的生成器矩阵。取矩阵的 mod2 后,我仍然没有得到正确的答案,并且不确定我是否做错了什么或者我的矩阵是否不正确。

汉明码对我来说是一个非常新的概念,所以我可能遗漏了一些非常明显的东西!我真的很感激你能给我的任何帮助!

0 投票
1 回答
1605 浏览

boolean-logic - 设计一个计算汉明距离的电路?

我遇到了这个问题,但在教科书或互联网上都找不到。看起来很独特。

我想会涉及一些比较器和加法器,但我不知道从哪里开始。

0 投票
1 回答
732 浏览

memory - 如何确定 SEC 代码是否有错误?

我以为我知道如何在 SEC 汉明码中找到错误并纠正它,但后来我的教科书问题质疑了我的能力......

考虑使用 4 个奇偶校验位保护 8 位字的 SEC 代码。如果我们读取值 0x375,是否有错误?如果是,请更正错误。

所以 0x375 相当于 0011 0111 0101

我找到奇偶校验位...

p1:0 011 0111 0101
p2:0 0 11 0111 0101
p4:001 1 0111 0101
p8:0011 011 1 0101

现在要检测错误,我看看是否有奇偶校验位是奇数......

p1: 0 0 1 1 0 1 1 1 0 1 0 1 = 010100 = 偶数 (0)
p2: 0 01 1 0 11 1 0 10 1 = 011110 = 偶数 (0)
p4: 001 1 011 1 010 1 = 10111 =偶数 (0)
p8: 0011 011 1 0101 = 10101 = 奇数 (1)

我的印象是,要找到错误位,您只需添加奇偶校验位编号即可。就我而言,只有奇偶校验位 8 是奇数。所以错误位 = p8 = 8。但我不认为奇偶校验位可能是错误位,所以我一定做错了什么?

0 投票
1 回答
96 浏览

bits - 汉明码奇偶校验分布问题

有人可以澄清我哪里出错了。我在这 2 个小时......我知道代码中的第一个奇偶校验包括它自己,并以是和否的顺序跳过它之后的每个第一个数字。第二个跳过它自己和后面的数字之后的每一组数字。第 4 个应在包括自身和前 3 个数字后跳过 4。

0 投票
0 回答
277 浏览

scala - 在 scala 中创建一个简单的 SECEncoder 和 SECDecoder

我被分配了一项任务,我必须在 scala 中创建一个 SECEncoder,它将 32 位字编码为 40 位字,其中 40 位字的最低有效位是 32 位字。

即使最多有一位错误,SECDecoder 也应该能够返回相同的 32 位字。

到目前为止,我的编码器能够检查简单的奇偶校验位并将它们添加到字中,但是我被我的解码器困住了,因为我无法从中正确检索 32 位字。

所以我本质上想要做的是通过类似于汉明的原理计算奇偶校验位(不幸的是我没有太多的知识),其中添加到 32 位字的位是奇偶校验位。

在解码器中,我检查给定字的奇偶校验位和编码给定字的奇偶校验位的差异,以便查看哪些奇偶校验位不同。

我卡住的地方是我如何准确计算哪个位与整个 32 位字不同,然后更改它?当我尝试这样做时,我得到了一些东西,但我从来没有得到确切的东西。

我是在完全错误的方向上前进还是我只是错过了什么?