代码之家  ›  专栏  ›  技术社区  ›  Chander Shivdasani

水平和垂直奇偶校验码

  •  1
  • Chander Shivdasani  · 技术社区  · 15 年前

    我在读关于水平和垂直奇偶校验码的书。这些码的一个性质是,最后的奇偶校验(右下位)等于水平奇偶校验和的模2,也等于垂直奇偶校验和的模2。

    我不明白,为什么这是真的。我可以在例子中看到它们,但我真的不能拿出任何形式/直观的证据来证明这一点。

    任何帮助/提示将不胜感激。

    谢谢,

    2 回复  |  直到 11 年前
        1
  •  1
  •   Luka Rahne    15 年前

    每一行和每一列是和模2。结果是mod 2的所有数字之和。你怎么数数并不重要。

    规则是:
    ((a mod c)+(b mod c))mod c==(a+b)mod c

        2
  •  1
  •   Jack    15 年前

    这是因为每一个错误的位在水平或垂直方向传播奇偶校验。。

    A B C D
    E F G H
    I J K L
    M N O P
    

    现在这些位中的一些被错误地传输了,所以您总共有 错误被层层排列,但是你不知道矩阵的内部位置。

    如果按行(这样计算水平奇偶校验),如果该行中有偶数个错误,则确保每行奇偶校验模2的和为0,否则为1。你也会确信,你正在考虑所有这些,因为你做这项工作的每一行。

    最后,如果您想从一行中更正一点,然后在另一行中修改另一行,那么最终的结果不会改变,因为您基本上是从一行中删除1以将其添加到其他行中。

    然后考虑按列来做,你会得到相同的精确行为,唯一的区别是错误可以以不同的方式分布,但是将垂直奇偶校验加在一起,模2会考虑相同的因素。因为总错误数是相同的,所以对于行和列,它将是偶数或奇数。