誤り訂正(Error Correction)とは、コンピュータ間でデータをやり取りしたり、データをストレージに保存したりする際に、ノイズなどによってデータの一部が書き換わって(壊れて)しまった場合、受信側や読み出し側でその誤りを発見し、自動的に正しいデータへ修復(訂正)する技術のことです。誤りを検出するだけでなく、正しい値に直すための追加情報(冗長ビット)をデータと一緒に送ることで実現されます。
「ハミング符号」が誤り訂正の代表的な例です。送信するデータビットに対して特別な計算を行い、チェック用のビットを付加します。受信側でそのチェック用ビットを検証することで、1ビットの誤りであれば、その位置を特定して自動で反転(0を1に、1を0に修復)させます。
// 誤り訂正のイメージコード
received_data = "1101001" # 送信時の「1101101」から1ビット誤りが発生
corrected_data = correct_errors(received_data)
print(corrected_data) # 出力: "1101101" (自動で修復される)