2013年6月6日 星期四

錯誤更正漢明碼

錯誤更正碼(ECC)

由於同位位元檢查和循環冗餘碼(CRC)均無法提供足夠的資訊來更正錯誤,所以就有人提出ECC的概念,它不僅能夠偵測錯誤,還可以更正錯誤。

 漢明碼(Hamming Code),是在電信領域的一種線性偵錯碼,以發明者Richard Hamming的名字命名。漢明碼在傳輸的訊息流中插入驗證碼,以偵測並更正單一位元錯誤。由於簡單的漢明編碼,它們被廣泛應用於內存(RAM)。
0 1 0 1 1 1 偶
1 0 1 0 1 0 奇
1 0 1 1 0 1 偶
0 1 0 0 1 0 偶
0 1 0 0 1 0
偶奇偶偶 偶 偶

        如果一條訊息中包含更多用於糾錯的位,且透過妥善安排這些糾錯位使得不同的出錯位產生不同的錯誤結果,那麼我們就可以找出出錯位了。在一個7位的訊息中,單個位出錯有7種可能,因此3個錯誤控制位就足以確定是否出錯及哪一位出錯了。
漢名研究了包括五取二碼在內的編碼方案,並歸納了他們的想法。

資料位位置1234567891011121314151617181920...
編碼後資料位置p1p2d1p4d2d3d4p8d5d6d7d8d9d10d11p16d12d13d14d15
奇偶校驗位
覆蓋率
p1XXXXXXXXXX
p2XXXXXXXXXX
p4XXXXXXXXX
p8XXXXXXXX
p16XXXXX










沒有留言:

張貼留言