5

ノイズ (電磁、無線など) に非常に敏感なデバイスをテストするプロジェクトがあります。デバイスは、与えられた入力 (オーディオ) に基づいて、1 秒あたり 5 ~ 6 バイトのバイナリ データ (訓練されていない人には意味不明に見える) を生成します。

ノイズによっては、デバイスが文字を見落としたり、ランダムな文字を挿入したり、両方の倍数を挿入したりすることがあります。

私は、生成されたエラーをユーザーがその場で確認できるようにするアプリを作成しました (マスター ファイルと比較して [たとえば、デバイスが理想的な状態で出力する必要があるもの])。私のアルゴリズムは基本的に、ライブ データの各バイトを取得し、それを既知のマスター ファイルの同じ位置にあるバイトと比較します。バイトが一致しない場合、現在の位置から両方向に 10 文字のウィンドウがあり、近くで一致するものを探します。それが一致する場合 (および 1 つまたは 2 つの検証)、UI でその場所を視覚的にマークアップし、エラーを登録します。

このアプローチはかなりうまく機能し、実際、着信データの速度を考えると、リアルタイムでも機能します。ただし、私がやっていることは最適ではなく、データがより高速にストリーミングされると、アプローチが崩壊するように感じます.

私が取ることができる他のアプローチはありますか?この種の既知のアルゴリズムはありますか?
何年も前に、NASA のデータ収集装置 (宇宙や月/火星の宇宙船と通信するものなど) は、宇宙での途方もない干渉にもかかわらず、0.00001% のデータ損失があったことを読みました。

何か案は?

4

1 に答える 1

2

主な関心は、デバイスによって生成された信号であると思いますか? もっと重要なことは何ですか?エラーがいつ発生したかを検出するか、そのようなエラーに対して信号を「堅牢」にしますか? 私は最近多くの信号処理を行っており、信号のノイズ除去は私のルーチンの一部です。基本的には、実際の信号を推定して汚染物質を除去しようとしています。

デバイスによって生成された信号がさらにどのように使用されるかはわかりません...コンピューターに記録されている場合は、ノイズ除去を簡単に適用できます。たとえば、ウェーブレットノイズ除去を試してください。選択したいくつかの言語でこれを行うためのパッケージが見つかります。

于 2011-03-12T23:39:51.837 に答える