チャネルコーディングとは何ですか?
チャネルコーディングは、デジタル通信で使用される手法であり、最小限またはエラーなしで送信が受信されるようにします。 採用できるさまざまなコーディング方法は、追加のバイナリ数字を送信に織り込むことで実現されます。 受信側でデコードされると、送信が発生した可能性のあるエラーを確認でき、多くの場合、修理できます。 それ以外の場合、受信者は単に送信を再び要求します。
チャネルコーディングの背後にあるアイデアは、特定のタイプの通信チャネルでエラーが避けられないために開発されました。 放射波、電気信号、さらには光ファイバーチャネル上の光波でさえ、培地にある程度のノイズがあり、ある程度の距離で発生する信号の分解があります。 コミュニケーションにおいてこのような一般的な問題であるため、それをどのように扱うかについての多くの理論は、情報理論やコーディング理論などの応用数学の分野の下で開発されました。
一般的に使用される方法の1つは、自動リピートリクエスト(ARQ)と呼ばれます。これには、受信者が送信をチェックしてエラーをチェックし、行われた場合に再送信を要求するだけです。 これは、後方エラー修正と呼ばれることもあります。 一方、チャネルコーディングは、フォワードエラー補正(FEC)手法です。 送信者は、エラー修正コードと呼ばれる特別なアルゴリズムを使用して、送信用にビットを準備し、受信側にデコードされます。 どちらの方法もハイブリッドで使用されることがよくあり、チャネルコードで送信中の小さなエラーを修復できます。主要なエラーには完全な再送信が必要です。
最初のチャネルコーディング手法は、ハミングコードと呼ばれるものを開発したリチャードハミングという数学者によって作成されました。 これは、追加のバイナリDigiを含めることを伴う最初のフォワードエラー補正コードでしたパリティビットと呼ばれるトランスミッションのTS。 送信の受信側でのパリティビットの巧妙な計算は、伝送、それらがビットの列にあるエラーが発生したかどうか、元のトランスミッションを回復するためにそれらを修復する方法が明らかになります。
ハミングコードは、ブロックコードと呼ばれるチャネルコーディング方法のファミリーに分類され、その多くは長年にわたって開発されてきました。 ブロックコードは通常、固定長のブロックに収集されるビットを含み、コードワードと呼ばれます。各コードワードには、受信者によるデコードのための適切なチェックビットが与えられます。 ブロックコードメソッドは、コードワードに追加されたビットのために送信のサイズを増加させる傾向があり、チャネルの帯域幅に影響を与える可能性があります。
別のチャネルコーディング方法は、畳み込みコードとして知られています。 これらの方法ははるかに高速で、任意の長さの少しのストリームをエンコードできます。 一般的に使用されるコードの1つこのタイプは、イタリアの数学者Andrew Viterbiによって作成されたViterbiコードと呼ばれます。 この方法の欠点は、畳み込みコードの長さが増加すると、デコード時にその複雑さも増すことです。 多くの場合、コンバリューションコードは、連結エラー補正コードと呼ばれるもののブロックコードと組み合わせて使用されます。