什么是汉明码?怎么计算的?

2020.06.14 -

   

在数字系统中,由于外部噪声和任何其他物理故障,传输的通信数据可能会被破坏。如果传输的数据与给定的输入数据不匹配,则称为“错误”。数据错误可能会删除数字系统中的重要数据。

什么是汉明码?

汉明码被定义为在错误检测过程中最多使用2个中间错误的线性代码。它还能够检测单位错误。在这种方法中,冗余位由发送方添加到数据/消息中以对数据进行编码。为了进行错误检测和纠正,将这些冗余位添加到错误纠正过程的某些位置。

海明码
汉明码

使用汉明码编码消息的过程

发送者使用汉明码对消息进行编码的过程包括3个步骤。

步骤1:第一步是计算消息中的冗余位数

  • 例如,如果一条消息包含“ n”个位,并且“ p”个冗余位被添加到该消息,则“ np”表示(n + p + 1)个不同的状态。
  • 其中(n + p)表示每个位的错误位置
  • 1(额外状态)表示没有错误。
  • 由于“ p”表示2 ^ p(2p)状态,等于(n + p + 1)个状态。

步骤2:将冗余位放置在正确/正确的位置

将“ p”位插入到像1、2、4、8、16等的2的幂的位位置。这些位位置分别表示为p1(位置1),p2(位置2),p3(位置4)等

步骤3:计算冗余位的值

  • 此处,奇偶校验位用于计算冗余位的值。
  • 奇偶校验位可以使消息中的1号为偶数或奇数。
  • 如果消息中的总数为1,则使用奇偶校验
  • 如果消息中的总数为1,则为奇数,则使用奇偶校验。

海明码的优点

如果数据流包含单位错误,则使用汉明码的主要优势是具有成本效益。

  • 它可以提供错误检测功能,还可以指示包含错误的位以进行纠正。
  • 汉明码非常容易,最好在计算机内存以及单位错误纠正和检测中使用。

海明码的缺点

  • 最好仅用于单比特错误纠正和检测。如果多个位错误,则整个可能会损坏。
  • 汉明码算法只能解决单位错误。

海明码的应用

汉明码用于

  • 电脑运算
  • 电信
  • 资料压缩
  • 解决难题和turbo码
  • 卫星
  • 等离子CAM
  • 屏蔽线
  • 调制解调器
  • 电脑内存
  • 打开连接器
  • 嵌入式系统和处理器

常见问题

1)海明码可以检测到2位错误吗?

汉明码可以检测并纠正数据流中的多达2位错误

2)您如何修正汉明码?

汉明码放置在实际数据和冗余位之间的任何长度的数据中。这些代码是最小距离为3位的地方

3)什么是奇偶校验码?

奇偶校验码或奇偶校验位在接收到的帧上加一个位(数据包含1和0),以使总位数(1)为偶数或奇数。

4)数据之间的汉明距离是多少?

长度相等的两个不同数据流之间的汉明距离为1。

可以使用XOR操作来计算两个等长数据串之间的汉明距离。

例如,a = 11011001

b = 10011101

汉明距离可以计算为

11011001⊕10011101 = 01000100(1位的位数是2)

汉明距离表示结果数据流中的1号

因此,d(11011001,10011101)= 2

类似地,010⊕011 = 001,d(010,011)= 1。

本站文章禁止转载,违者必究
阅 289
1

在数字系统中,由于外部噪声和任何其他物理故障,传输的通信数据可能会被破坏。如果传输的数据与给定的输入数据不匹配 […]

湘公网安备 43011102001693号

    湘ICP备19003021号-1