出典: フリー百科事典『ウィキペディア(Wikipedia)』
| 出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。記事の信頼性向上にご協力をお願いいたします。(2018年1月) |
誤り検出訂正︵あやまりけんしゅつていせい︶またはエラー検出訂正 (error detection and correction/error check and correct) とは、データに符号誤り︵エラー︶が発生した場合にそれを検出、あるいは検出し訂正︵前方誤り訂正︶することである。検出だけをする誤り検出またはエラー検出と、検出し訂正する誤り訂正またはエラー訂正を区別することもある。また改竄検出を含める場合も含めない場合もある。誤り検出訂正により、記憶装置やデジタル通信・信号処理の信頼性が確保されている。
誤り検出と誤り訂正[編集]
一般に誤り検出訂正では、k単位長︵kビット、kバイト など︶の符号を、n = m + k 単位長の符号語に変換する。これを (n, k) 符号、あるいは、符号形式を添えて (n, k) ××符号などと呼ぶ︵誤り訂正符号"Error Correction Code"を特にECCと略す︶。符号語は、最小ハミング距離が d >1、つまり、互いに少なくともd単位が異なっていて、この冗長性を利用して前方誤り訂正が可能となる。dを添えて、(n, k, d) 符号ともいう。
適切な (n, k, d) 符号は、符号語あたり d - 1 単位の誤りを検出でき、[(d - 1) / 2] 単位︵[ ] は床関数︶の誤りを訂正できる。d ≦ 2 ならば、誤り訂正能力は [(d - 1) / 2] = 0 となり、単なる誤り検出となる。ただし、データの消失に対しては、つまり誤り位置がわかっているときは、d単位の消失を訂正できる。これを特に消失訂正と呼ぶ。単なる誤り訂正も、最低1単位の消失訂正能力を持つ。
たとえば、(2, 1, 2) 符号であるミラーリングは、
●どちらかに誤りが起これば検出できるが、両方に起これば検出できない。︵誤り検出能力1︶
●どちらか︵どちらかはわからない︶に誤りが起これば訂正できない。︵誤り訂正能力0︶
●どちらかが消失すれば訂正できるが、両方に起これば訂正できない。︵消失訂正能力1︶
となる。(3, 1, 3) 符号である三重ミラーリングでは、誤り検出能力と消失訂正能力が2となり、誤り訂正能力1も得る。
双方向の通信では、前方誤り訂正ができなくても誤り検出さえできれば、送信者に再送を要求することで実質的に誤りを訂正できる。これを自動的におこなう仕組みを、自動再送要求 (ARQ, Automatic Repeat reQuest) と呼ぶ。
バースト誤りとランダム誤り[編集]
誤りには、
●短い区間に多数の誤りが集中するバースト誤り
●散発的に単独で誤りが発生するランダム誤り
の2種類がある。
多くの誤り検出・訂正は、全体の誤り率が許容範囲でも、バースト誤りに対しては、1つのブロックに多くの誤りが集中するため、対応できない。そこで、符号の順序を入れ替え、同じブロックのデータを分散させ、バースト誤りが1つのブロックに集中しないようにする。この技術をインターリーブという。
バースト誤り[編集]
切り替え動作、フェージングなどが原因。%SESを評価尺度に用いるのに適している。
ランダム誤り[編集]
熱雑音などが原因。BERを評価尺度に用いるのに適している。
誤り補正[編集]
特に音声や映像など、人間の感覚に訴える信号のディジタル化されたデータで真の値から多少の誤差が許容される場合、誤り検出は可能でも誤り訂正が不可能︵訂正能力を超えている︶かまたは誤り訂正が実装されていないとき、元のデータ自身に含まれる冗長性を利用して欠落データを予測して置き換えることがある。これを特に誤り補正 (error compensation) と呼んで区別する。補正されたデータは真の値と一致するとは限らないが、真の値から許容される誤差内にあると期待される。CDなどでは、誤り補正がデータ読み取り誤りに対する﹁最後の手段﹂として使われている。
誤り補正では、一般には、近傍の標本に重み付けをした和、すなわちフィルタを畳み込んだ値を予測値︵補正値︶とする。特に、直前・直後の標本を使うものを、以下のように呼ぶ。
- 平均値補間
- 前値ホールド
- 後値ホールド
誤り補正は原信号自身に含まれる冗長性を使うため、データ圧縮、特に非可逆圧縮と同種の原理に基づいている。