2

エラー率が非常に高いバイナリ ストリームがあります。エラー率は 50% で、各ビットが反転する可能性が 50% であることを意味します。エラーはバーストでは発生せず、完全にランダムであるため、リードソロモン コードはうまく機能しません。

どのスキームまたはアルゴリズムをストリームに適用する必要がありますか? オーバーヘッドはまったく気にしません。

これはすべて理論的なものであるため、ストリームのエラーを減らすことができるかどうかを尋ねても意味がありません。

編集

不可能だとは言わないでください。最初の答えは、ノイズの多いチャネルコーディング定理で可能であると言っています。

4

7 に答える 7

7

エラー率が 50% の場合、それは基本的にランダム ノイズですよね。つまり、1 ビットだけを送信しようと考えてみてください。正しいビットの無限ストリームを 50% のエラー率で送信すると、正しいビットが 1 であるか 0 であるかにかかわらず、半分の 1 と半分の 0 が得られます。

実際に 50% 未満の場合 (たとえば、ビットの 50% が「反転」ではなく「ランダム」になる場合)、データを繰り返すことができます。各ビットを 128 回送信し、100 ビットごとにどちらが多いかを計算します。受け取った。これは、コード化が簡単で、非常に非効率的で、まったく数学的ではない解決策です:)

于 2009-03-02T20:04:08.143 に答える
3

リードソロモン エラー訂正の要点は、ほとんどの実際のエラーがバーストで発生するため、データをインターリーブおよびデインターリーブすることです。エラーが完全にランダムな場合、つまりポアソン分布の場合は、単純で数学的に効率的な方法でストリームに冗長性を追加するだけで機能します。確認できることの 1 つは、トレリス コードなど、ある種の隠れマルコフ モデルです。 これは基本的に、冗長性を追加する数学的に効率的な方法です。

また、ノイズ チャネル コーディング定理も見てください。 厳密に言えば、デジタル データには当てはまりませんが、これらのビットのソースが何らかのアナログ プロセスである場合、またはビットが何らかのアナログ プロセスの結果であるかのようにモデル化できる場合は、何についての洞察を得ることができます。あなたができる最善のことかもしれません。これにより、数学的に可能な以上のことをしようとして時間を無駄にするのを防ぐことができます。

于 2009-03-02T20:02:21.190 に答える
2

チャネルが実際のノイズ レートの 50% に近づくと、情報をまったく送信できなくなります。Jon Skeet の回答に対して、エラー率が 50% 未満のノイズである場合は、意図したデータのより長いバーストを冗長に実行し、結果を統計的に調べて、元の値に対するある程度の信頼度を確認することで、データを取得できます。次に、ノイズの特徴付けに基づいて、必要なバースト長と特定の長さの信頼レベルが導き出されます。ただし、ここで行っていることは、データ レートを効果的に下げて、送信ストリームの正味の信号対雑音比を改善していることを理解してください。

あなたの質問では、これをオプションとして除外したかもしれませんが、より良いエンコーディング スキームは、データ ストリーム自体の相対的な存在 (または存在しない) に基づいている可能性があります。つまり、バイナリ 1 を送信するには、1/0 の交互ストリームを送信します。ゼロを送信するには、何も送信しないか、一定のレベルを送信します。何かを送信 (および受信) することは 1 つの状態を表し、何も送信 (および受信すること) は別の状態を表すという考え方です。これは、事実上、データのバイポーラ エンコーディングのタイプに似ています。

于 2009-03-02T20:17:56.753 に答える
1

エラー率が 50% の場合、ビット ストリームはランダムであり、元のビット ストリームとの相関関係はありません。ストリームを完全にランダムなビット ストリームで XOR しているようなもので、結果は完全にランダムです。そして、それについてあなたができることは何もありません。

スキームが機能するには、反転率が 50% 未満である必要があります。もちろん、50% を超える可能性もありますが、最初にストリームを反転してから、エラー率が 50% 未満の場合と同様に処理できます。

エラーが完全にランダムで非常に頻繁に発生する場合 (たとえば、ビットの 25% が反転する場合)、堅牢なエラー検出スキームを考え出すことは非常に困難です。かなりの量の冗長性を追加する必要があります。

于 2009-03-02T20:18:24.333 に答える
0

ターボコードを調べましたか?

-- マーカスQ

どっ!50% 反転ではなく 50% ランダム化されていると読み間違えました。

于 2009-03-02T20:03:41.843 に答える
0

各ビットが 50% の確率で反転するのではなく、特定の送信で正確に50% のビットが反転する場合、2 ビットの送信を送信することによってビット情報を送信できます。つまり、0 を 00 として送信し、1 を01. 受信コードワードの最初のビットが 1 の場合、他のビットは反転されません。

于 2009-03-04T20:05:22.010 に答える