问题标签 [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.
c# - 汉明码扩展
我从这个汉明代码网站上获取了代码。如果我想在 12 位消息和 7 位奇偶校验上实现它,我必须做哪些更改?我已经添加到 DI[11] 和 CI[6] 位无法解释它的逻辑
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 位汉明结果
以下是我的有限状态机代码,然后是波形输出。
有限状态机的波形:
error-correction - 汉明 Ecc 计算
考虑汉明 ECC 的例子https://en.wikipedia.org/wiki/Hamming_code
假设收到后发现奇偶校验位 16 和 8 不正确,您纠正了哪个位
error-correction - P0 奇偶校验位错误会影响 SECDED 中的其他位吗?
我现在正在研究用于错误检测和纠正的 SECDED 事物。在我的工作中,规范是“已检索到一个 SECDED 编码字符,十六进制值为 CC9。SECDED 奇偶校验是偶数。是否有错误?并解释是否可以更正。”
根据规范,我在 P1(奇数)和 P2(奇数)处有错误,所以位 3 有错误。之后,我翻转了位并再次检查了错误。结果,P0 奇偶校验位只有一个错误,其余的在 P1,P2,P4,P8 处是正确的。
我的问题是,在这种情况下,不能更正代码吗?或相反亦然?我的回答是,我们可以说 P1 的第 1 位或第 3 位有错误,或者 P2 的第 2 位或第 3 位有错误,但即使第 3 位可以翻转也无法纠正。
任何答案将不胜感激。
问候,
艾伦
c# - C#汉明编码串行输出
我正在尝试与需要汉明编码 ASCII 字符的 RS232 设备通信。
下表由制造商提供:
我编写了这个 C# 函数来对每个字节(ascii char)进行编码,但该设备仅在其屏幕上解码行话。
我是否误解了汉明应该如何工作?我不是计算机科学家 :)
java - 15, 11 汉明码发生器矩阵
我一直在尝试理解汉明码并编写了一个程序,该程序可以正确编码和解码汉明 7,4 的给定输入。尝试为 15,11 执行此操作时,尝试编码时无法获得正确的输出。
我输入了字节并添加了三个前导零,然后将其乘以下面的生成器矩阵。取矩阵的 mod2 后,我仍然没有得到正确的答案,并且不确定我是否做错了什么或者我的矩阵是否不正确。
汉明码对我来说是一个非常新的概念,所以我可能遗漏了一些非常明显的东西!我真的很感激你能给我的任何帮助!
boolean-logic - 设计一个计算汉明距离的电路?
我遇到了这个问题,但在教科书或互联网上都找不到。看起来很独特。
我想会涉及一些比较器和加法器,但我不知道从哪里开始。
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。但我不认为奇偶校验位可能是错误位,所以我一定做错了什么?
bits - 汉明码奇偶校验分布问题
有人可以澄清我哪里出错了。我在这 2 个小时......我知道代码中的第一个奇偶校验包括它自己,并以是和否的顺序跳过它之后的每个第一个数字。第二个跳过它自己和后面的数字之后的每一组数字。第 4 个应在包括自身和前 3 个数字后跳过 4。
scala - 在 scala 中创建一个简单的 SECEncoder 和 SECDecoder
我被分配了一项任务,我必须在 scala 中创建一个 SECEncoder,它将 32 位字编码为 40 位字,其中 40 位字的最低有效位是 32 位字。
即使最多有一位错误,SECDecoder 也应该能够返回相同的 32 位字。
到目前为止,我的编码器能够检查简单的奇偶校验位并将它们添加到字中,但是我被我的解码器困住了,因为我无法从中正确检索 32 位字。
所以我本质上想要做的是通过类似于汉明的原理计算奇偶校验位(不幸的是我没有太多的知识),其中添加到 32 位字的位是奇偶校验位。
在解码器中,我检查给定字的奇偶校验位和编码给定字的奇偶校验位的差异,以便查看哪些奇偶校验位不同。
我卡住的地方是我如何准确计算哪个位与整个 32 位字不同,然后更改它?当我尝试这样做时,我得到了一些东西,但我从来没有得到确切的东西。
我是在完全错误的方向上前进还是我只是错过了什么?