ノイズ (電磁、無線など) に非常に敏感なデバイスをテストするプロジェクトがあります。デバイスは、与えられた入力 (オーディオ) に基づいて、1 秒あたり 5 ~ 6 バイトのバイナリ データ (訓練されていない人には意味不明に見える) を生成します。
ノイズによっては、デバイスが文字を見落としたり、ランダムな文字を挿入したり、両方の倍数を挿入したりすることがあります。
私は、生成されたエラーをユーザーがその場で確認できるようにするアプリを作成しました (マスター ファイルと比較して [たとえば、デバイスが理想的な状態で出力する必要があるもの])。私のアルゴリズムは基本的に、ライブ データの各バイトを取得し、それを既知のマスター ファイルの同じ位置にあるバイトと比較します。バイトが一致しない場合、現在の位置から両方向に 10 文字のウィンドウがあり、近くで一致するものを探します。それが一致する場合 (および 1 つまたは 2 つの検証)、UI でその場所を視覚的にマークアップし、エラーを登録します。
このアプローチはかなりうまく機能し、実際、着信データの速度を考えると、リアルタイムでも機能します。ただし、私がやっていることは最適ではなく、データがより高速にストリーミングされると、アプローチが崩壊するように感じます.
私が取ることができる他のアプローチはありますか?この種の既知のアルゴリズムはありますか?
何年も前に、NASA のデータ収集装置 (宇宙や月/火星の宇宙船と通信するものなど) は、宇宙での途方もない干渉にもかかわらず、0.00001% のデータ損失があったことを読みました。
何か案は?