私は損失のあるビットストリームを読んでおり、できるだけ多くの使用可能なデータを回復する方法が必要です。 0の代わりに1があり、1の位置に0がありますが、精度はおそらく80%を超えています。ノイズの多いビットストリームを読み取るための冗長アルゴリズム
アルゴリズムが足りない/多すぎるビットを補うことができる場合は、ボーナスになります。
私が読んでいる音源は、ノイズ(アナログエフェクトによるマイク)であり、読み込みのタイミングはコンピュータのスピードによって異なります。
CD-ROMで使用されているアルゴリズムについて、3でこれを読んでいるのを覚えていますか?私はいくつかの層を使用して推測しているので、良い選択です。私は詳細を覚えていないので、誰かが素晴らしいアイデアを共有することができれば! :)
編集:追加サンプルデータ
Best case data: in: 0000010101000010110100101101100111000000100100101101100111000000100100001100000010000101110101001101100111000101110000001001111011001100110000001001100111011110110101011100111011000100110000001000010111 out: 0010101000010110100101101100111000000100100101101100111000000100100001100000010000101110101001101100111000101110000001001111011001100110000001001100111011110110101011100111011000100110000001000010111011 Bade case (timing is off, samples are missing): out: 00101010000101101001011011001110000001001001011011001110000001001000011000000100001011101010011011001 in: 00111101001011111110010010111111011110000010010000111000011101001101111110000110111011110111111111101
EDIT2:私が送信されたデータをcontrollすることができています。現在、簡単なXORチェックを実装しようとしています(それだけでは不十分です)。
ストリームに書き込まれる内容を制御できますか?そうでない場合は、エラー訂正コードとともにデータが書き込まれる必要があるため、CDの例は適用されません。 – CodesInChaos
私はこの質問を理解していません。信頼性の低いチャネルで何らかの通信プロトコルを作成しようとしていますか?または、何か悪い魔法のアルゴリズムを見つけることを試みている、それは、細い空気から、何が間違っているか正しいと思いますか? – Euphoric
私は音(スピーカー+マイク)で通信しようとしています。私はビットを送信するために特定の周波数を使用しているので、アプリケーションはこの特定の周波数を探しています。 –