信号処理の「高速」変化を検出する方法


12

私は、コンポーネントのはんだ付け性を測定するプロジェクトに取り組んでいます。測定された信号はノイズが多い。5000ミリ秒の時点で始まる変化を認識できるように、信号をリアルタイムで処理する必要があります。

私のシステムは10ミリ秒ごとに実数値のサンプルを取得しますが、サンプリングを遅くするように調整できます。

  1. 5000ミリ秒でこのドロップを検出するにはどうすればよいですか?
  2. シグナル/ノイズ比についてどう思いますか?焦点を合わせて、より良い信号を取得する必要がありますか?
  3. すべてのメジャーの結果が異なるという問題があり、この例よりも低下が小さい場合があります。

サンプル信号 サンプル信号2 サンプル信号3

データファイルへのリンク(プロットに使用されるものとは異なりますが、最新のシステムステータスを表示します)

  1. https://docs.google.com/open?id=0B3wRYK5WB4afV0NEMlZNRHJzVkk
  2. https://docs.google.com/open?id=0B3wRYK5WB4afZ3lIVzhubl9iV0E
  3. https://docs.google.com/open?id=0B3wRYK5WB4afUktnMmxfNHJsQmc
  4. https://docs.google.com/open?id=0B3wRYK5WB4afRmxVYjItQ09PbE0
  5. https://docs.google.com/open?id=0B3wRYK5WB4afU3RhYUxBQzNzVDQ

5
信号対雑音比が比較的小さいようです。ほとんどの検出問題と同様に、指定した機能を正しく検出する確率と、そこにあると誤って宣言する確率のバランスを検討する必要があります。アプリケーションにとってどちらが重要ですか?検出遅延の要件はありますか?
ジェイソンR

2
「ノイズ」は、特定の周波数での干渉のように見えます。これが当てはまる場合(スペクトルプロットが役立ちます)、適切なフィルタリングがほとんどの仕事を行います。
-Juancho

実際、この機能の検出は非常に重要です。しかし、ある程度のレイテンシで生きることはできますが、最終的な停止位置を調整する必要があります。これは、部品がはんだに触れる場所が正確にわからないためです。また、浸漬深度を制御する必要があります。例えば、浸漬が0.5mmであるべきだとわかっている場合、はんだ小球の理想的なサイズに応じて理論的な位置を計算しますが、タッチで検出した小球の実際のサイズの補正を行う必要があります-力の変化。
ペトル

measuremntツール全体はスプリング上にあるため、自由に移動できますが、ノイズも発生します。また、測定の全範囲でスプリングを固定しています。もちろん、これらの問題は、測定された力がひどく高い感度を使用する場合に発生します小さい。
ペトル

Juancho-多分これは助けになるかもしれませんが、さまざまなパーツの重量に対して解決するにはどうすればよいですか?また、部品をはんだに浸すと、このコンポーネントが変化します。これは、湿潤プロセスによりノイズレベルが低下するためです。ただし、これは大きな部品でのみ発生します。
ペトル

回答:



4

私は通常、この問題を勾配検出の1つとしてフレーム化します。移動するウィンドウで線形回帰を計算する場合、図解されたドロップは、スロープのサインやマグニチュードの大きな変化として表示されます。このアプローチは、「チューニング」を必要とする多くの要因です。たとえば、サンプリング周波数、ウィンドウサイズなどは、スロープサイン検出器の堅牢性(ノイズ抵抗)に影響します。これは、上記のコメントの一部が適用される場合があります。ラインフィッティングの前に適用できるフィルタリングまたはノイズ抑制は、結果を改善します。


2

データの左部分とデータの右部分の平均のT統計を計算することにより、この種のことを行いました。これは、移行ポイントがどこにあるかを知っていることを前提としています。

そのため、時間軸に沿って数百のパーティションポイントを試して、最も重要なT統計量を持つパーティションポイントを見つけます。

u_left, u_right : mean of left and right portion
s_left, s_right : SD of left and right portion
n_left, n_right : number of samples on left and right (subtract one from each for the one degree of freedom)

se = sqrt(s_left^2 / n_left^2 + s_right^2 / n_right^2)
T = (u_left - u_right) / se

これは、バイナリ検索のようなものとして実行できます。10個のデータポイントを試して、最大の2個を見つけてから、それらの間の10個のポイントを試してみます。このようにして、かなり正確な遷移ポイントを取得できます。私は正確さを主張していません。:-)

それがどうなるか教えてください!

PS平均とsdをランニングサムとして計算できます。これにより、N ^ 2からNまでのあらゆる可能性について、このパーティション関数の計算の複雑さが軽減されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.