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

标签 java matrix matrix-multiplication hamming-code

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

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

int [][] byte = {{0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1}};

int [][] matrixG = { { 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                     { 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
                     { 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
                     { 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, 
                     { 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
                     { 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0},
                     { 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0},
                     { 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0},
                     { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0},
                     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0},
                     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1} }; 

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

最佳答案

你的G矩阵是错误的。

int [][] matrixG = { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0},
                     { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0},
                     { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0},
                     { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0},
                     { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1},
                     { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1},
                     { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1},
                     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1},
                     { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1},
                     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1},
                     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1} }; 

正如您在此处看到的,G 矩阵保持原始数据位不变,并将额外的奇偶校验位附加到字符串末尾。

关于java - 15, 11 汉明码发生器矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39784338/

相关文章:

matrix - 使用 CUDA 进行动态矩阵乘法

java - 将数据从 JSON Android 保存到 SQLite

java - 如何调用指定编号的方法发生异常的次数

java - 用spring注入(inject)匿名类

java - Apache POI,创建新单元格会覆盖行样式

c - 将两个矩阵相乘时获取地址作为输出

python - 矩阵数组乘以向量

python - 求解一对线性方程时的断言错误

r - 如何在r中使用heatmap.2让集群在对角线上排列?

java - 调用/调用 void 方法(Java 作业 - 生命游戏示例)