2014年12月30日 星期二

Error-correcting codes 錯誤更正碼,ECC,BCH

A想傳送"1"給B,但是怕bit-flip,這時候就是 Error-correcting codes (ECC) 登場的機會啦。

首先,先把"1"(稱作message)用 coding 加以保護 (方法有很多種,先用 Repetition Coding 當範例),經 Repetition Coding 之後 "1" 變成 "111" (稱為codewords) ,這樣當B收到101,就會猜想中間的"0"應該是bit-flip。

如果運氣很差,剛好flip兩個bits (變成100) 怎麼辦? 那就沒救了,將會判斷成收到 0's。
想要這種出錯率降底的話,就把"1" 變成 "1111111111111.....11111111"
越多越爽,但傳輸率(效能)就爛到哭。

總之,是有tradeoff的,Repetition Coding 很鳥,用來當範例方便而以。有機會(or never)再介紹其他比較威風的 ECC,像是BCH或是LDPC。













腦補-------------------------------------

A BCH code with a higher error-correcting capability (and higher overhead) is the [8360, 8192, 12] code, which can correct 5 errors or detect 11 errors.

8360是codewords
8192是message
所以redundancy的部份就是 8360 - 8192 = 168
多了這168 bits,傳輸變成原本的 8192/8360 = 0.979倍

沒有留言:

張貼留言