計算機網路中的漢明碼


計算機網路中,漢明碼用於一組糾錯碼,這些碼可能在資料從傳送方移動到接收方的過程中發生。漢明方法透過查詢發生錯誤的狀態來糾正錯誤。

冗餘位

冗餘位是額外生成的二進位制位,新增到資料傳輸的資訊位中,以確保在資料傳輸過程中沒有丟失任何位。冗餘位放置在某些計算出的位置以消除錯誤,兩個冗餘位之間的距離稱為“漢明距離”。

糾錯碼 - 這是資料位和冗餘位之間用於糾正單位元錯誤的關係。一個幀由M個數據位和R個冗餘位組成。假設幀的總長度為N(N=M+R)。包含資料和校驗位的N位單元通常稱為N位碼字。

使用以下公式來查詢冗餘位的數量。

單位元錯誤數 = M + R

無錯誤狀態數 = 1

因此,表示所有狀態(M+R+1)的冗餘位數(R)必須滿足:

2𝑅 ≥ 𝑀 + 𝑅 + 1

其中R = 冗餘位,M = 資料位。

查詢漢明碼的步驟:

漢明方法使用額外的奇偶校驗位來識別單位元錯誤。

  • 步驟1 - 首先以二進位制形式寫下從1開始的位位置(1, 10, 11, 100等)。
  • 步驟2 - 將所有位位置標記為奇偶校驗位(1, 2, 4, 8, 16, 32, 64等)。
  • 步驟3 - 所有其他位位置用於使用(3, 5, 6, 7, 9, 10和11等)進行編碼的資料。

每個奇偶校驗位計算碼字中某些位的奇偶校驗。奇偶校驗位的位置決定了它交替檢查和跳過的位的序列。

  • 位置1 - 檢查1位,然後跳過1位,檢查1位,然後跳過1位,依此類推(例如- 1,3,5,7,11等)。
  • 位置2 - 檢查2位,然後跳過2位,檢查2位,然後跳過2位(例如- 2,3,6,7,10,11,14,15等)。
  • 位置4 - 檢查4位,然後跳過4位,檢查4位,然後跳過4位(例如- 4, 5, 6, 7, 12, 13, 14, 15等)。
  • 位置8 - 檢查8位,然後跳過8位,檢查8位,然後跳過8位(例如- 8, 9, 10, 11, 12, 13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31)。

注意 - 如果它檢查的位置中1的總數為奇數,則將奇偶校驗位設定為1;如果它檢查的位置中1的總數為偶數,則將奇偶校驗位設定為0。

示例:

為資料位元組1001101構造偶校驗漢明碼字。

位數(1001101)為7。

r的值計算如下:

2𝑅 ≥ 𝑀 + 𝑅 + 1

⇒ 24 ≥ 7 + 4 + 1

因此,冗餘位數 = 4

現在,讓我們計算所需的奇偶校驗位數。

我們取𝑃 = 2,則2𝑃 = 22 = 4,且𝑛 + 𝑃 + 1 = 4 + 2 + 1 = 7

2個奇偶校驗位不足以用於4位資料。

現在,我們將取𝑃 = 3,則2𝑃 = 23 = 8,且𝑛 + 𝑃 + 1 = 4 + 3 + 1 = 8

因此,3個奇偶校驗位足以用於4位資料。

碼字中的總位數為:4 + 3 = 7

位置1:檢查位1,3,5,7,9和11。

? _1_0 0 1_1 0 1 0. 在位置1偶校驗,因此將位置1設定為0:0_1_0 0 1_1 0 1 0。

010110010

位置2:檢查位2,3,6,7,10,11。

0 ? 1_0 0 1_1 0 1 0. 在位置2奇校驗,因此將位置2設定為1:0 1 1_0 0 1_1 0 1 0

0101100110

位置4檢查位4,5,6,7,12。

0 1 1 ? 0 0 1_1 0 1 0. 在位置4奇校驗,因此將位置4設定為1: 0 1 1 1 0 0 1_1 0 1 0

01011001110

位置8檢查位8,9,10,11,12。

0 1 1 1 0 0 1 ? 1 0 1 0. 在位置8偶校驗,因此將位置8設定為1: 0 1 1 1 0 0 1 0 1 0 1 0

010101001110

碼字 = 011100101010

011100101010

更新於:2023年9月14日

35K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告