測定信号のピーク検出

データ収集カードを使用して、信号がピークまで増加し、その後元の値近くまで減少するデバイスから読み取り値を取得します。ピーク値を見つけるには、現在、配列から最も高い読み取り値を検索し、そのインデックスを使用してピーク値のタイミングを決定し、それを計算に使用します。

この方法は、最高値がピークであれば問題ありませんが、デバイスが正しく動作していない場合、最初のピークよりも高い2番目のピークが表示されることがあります。90秒間、16台のデバイスから1秒間に10回の読み取りを行います。

最初の考えでは、読み取り値を循環させて、前後のポイントが現在より小さいかどうかをチェックしてピークを見つけ、ピークの配列を構築することです。システムのノイズを考慮し、現在の位置の両側にあるいくつかのポイントの平均を見るべきかもしれません。この方法がベストなのか、それとももっと良い方法があるのでしょうか?


LabVIEWを使用しており、LAVA forumsをチェックしたところ、興味深い例がいくつもありました。これは私たちのテストソフトウェアの一部であり、私たちはあまり多くの非標準のVIライブラリを使用することを避けようとしているので、私は特定のコードではなく、関連するプロセス/アルゴリズムについてのフィードバックを期待していました。

ソリューション

信号の平均化、つまり各ポイントについて、周囲の3つ以上のポイントとの平均化を試してみてはいかがでしょうか。ノイズのブリップが大きい場合は、これでも解決しないかもしれません。

LabViewをお使いのようですが、LabViewにはスムージングやノイズ除去に使える信号処理VIがたくさんパッケージされています。NIフォーラム]1は、この種のものに関してより専門的なヘルプを得るための素晴らしい場所です。

解説 (0)

自分の信号と予想される模範的な信号との相互相関1をとりたいのでしょう。でも、信号処理を勉強したのはずいぶん昔のことで、当時もあまり気にしていませんでした。

解説 (0)

標準偏差]1を適用して、x%以上のピークに注目することもできます。

解説 (0)