2012-10-23 84 views
0

如果我們必須從發送方接收一個數據塊(比如8位)。丟失位的錯誤校正碼

但是,轉移是不可靠的,導致丟失。 (不是位翻轉) 這意味着,塊中的任何位可以不存在,接收器只能接收7位。

我研究了一些糾錯編碼,比如'漢明碼'。但是,在這種情況下,代碼旨在恢復翻轉位,而不是丟失位。

+0

你高興與(8, 4)可以修復任何單個刪除的代碼? –

+0

,更重要的是,您能檢測到您讀取的內容少於8位,或者您在最後閱讀垃圾嗎? –

回答

0

如果您對低熵代碼感到滿意,並且您可以檢測到消息結束,則可以將每個位簡單地發送兩次。

在接收,發現所有的奇數大小的運行,並通過一個比特位擴展它們:

該代碼可以從任意數量的發生在不同的運行缺失的恢復。如果最終的結果少於預期的位數,則無法從多次刪除中恢復。

如果要確保可以恢復的固定錯誤率,請使用位填充。

實施例:

0110 

encoded as: 
00 11 11 00 

a double error occurs: 
0x 11 x1 00 

received: 
011100 

'0' and '111' are odd-sized runs. Fix: 
00111100 

we have 8 bits, and have recovered from a double error. 
decode: 
0110 

實施例2:

0101 

encoded as 
00110011 

transmitted as 
0xxx0011 

received as 
00011 

corrected as 
000011 

decoded as 
001 

which is shorter than expected. A transmission error has occured. 

實施例3(3位的運行後位填充):

0000 1111 

stuffed as 
00010 11101 

sent as 
0000001100 1111110011