損失のあるチャネルについて提供していない詳細に応じて、最初にグレイコードを使用して、シングルビットエラーがわずかな違いをもたらすようにし(損失のある伝送での損失の軽減に対する要望をカバーするため)、次にお勧めします。おそらく、結果のストリームを「ロスレス」(==ロスレスにしようとします;-)エンコーディングでエンコードすることもできます。
リードソロモンとその変形は、ノイズエピソードが小さなバースト(たとえば、1バイト内のいくつかのビットミス)で発生する傾向がある場合に特に適しています。これは、グレイコーディングとうまく相互運用する必要があります(マルチビットミスはグレイの「損失軽減」の側面。ワイヤ上のシングルビットエラーに対して適切に劣化するように設計されています)。これは、RSは本質的にブロックスキームであり、RSの観点からは、1つのブロック内の複数のエラーは基本的にその中の単一のエラーと同じであるためです;-)。
エラーの多くが消去である場合、RSは特に素晴らしいです。簡単に言えば、消去は送信時に破壊された可能性が最も高いシンボルですが、破壊されたという重大な事実を知っています。物理層は、その設計方法によっては、その事実についてのヒントを持っていることがよくあります。それが上位層に通知する方法がある場合、それは非常に役立ちます。消去について少し説明しましょう...:
0が-1ボルトのレベルとして送信され、1が+1ボルトのレベルとして送信される(何らかの基準波に対して)単純な例として、ノイズがあります(物理的なノイズは多くの場合、適切にモデル化できます。有能なコミュニケーションエンジニア;-); ノイズモデルに応じて、デコードでは、-0.7 V以下は0ビットと見なされ、+ 0.7 V以上は1ビットと見なされ、その間のすべては消去と見なされます。つまり、上位層に通知されます。問題のビットはおそらく送信中に破壊されたため、無視する必要があります。(私は時々、抽象化が「リーク」すべきであるという私の論文の一例としてこれを挙げます-制御され、設計された方法で:Spolskyのリーク抽象化の法則に対するMartelliの結果!-)。
任意の冗長性の比率を持つRSコードは、消去(デコーダーに通知されるエラー)の修正に、他の方法では未知のエラーの修正の約2倍の効果があります。両方の側面を組み合わせて、いくつかの消去と両方を修正することも可能です。それ以外の場合は不明なエラー。
一番上のチェリーとして、カスタムRSコードは、消去と未検出エラー(確率とバースト性の両方)。
私はこの分野全体を「コンピューター技術」とは呼びません。実際、卒業したとき(MSEE、30年前)、私は主に「CS」のものを避けて、チップ設計、システム設計、高度なものを優先しようとしていました。無線システム、&c-それでも私はこのようなもの(まあ、すでに実用的なエンジニアリングの使用の領域内にあったサブセット;-)をかなりよく教えられました。
そして、1世代で物事がそれほど変わっていないことを確認するために、私の娘は通信工学の修士号を取得しました(厳密に高度な無線システムに焦点を当てています)-彼女は深刻なプログラム、アルゴリズム、またはデータ構造(彼女はCとJavaの必須コースでうまくいきましたが、これらのコースでもカリキュラムの他の場所でもCSの深さはまったくありませんでした-彼女の毎日の作業言語はmatlabです...!-)-まだ彼女は私がこれまでに学んだよりも情報とコーディング理論についてよく知っています。それはPhDレベルの研究の前です(彼女はPhDのために滞在していますが、まだ始まっていません)。
したがって、これらのフィールドはCS-yよりもEE-yであると主張します(もちろん、境界はあいまいですが、数年後にチップを設計した後、私は多かれ少なかれ偶然にSWの男になってしまったという事実を目の当たりにします。私の同時代人の多くもそうしました;-)。