ボードを使って外部からデータを取り込み,そのデータにスムージングをかけ,
そのスムージングしたグラフのピーク値を検出しようとしています.
どのようなアルゴリズムで考えればいいのでしょうか?
まさか,ある点と一つ前の点のy座標との差を考えたときに,差がマイナスからプラスに転じる点をピークと定めればいいんですか?
もっと,エレガントな考え方はないでしょうか?
よろしくお願いします.なお,ソースで書いていただけると大変ありがたいです.
A/Dからの生データで、どのような素性の波形で、何を計測したか
によっては、一概にピーク値を検出することはできません。
スムージングでも、ノイズ成分(S/N比)によっては、ノイズの
ピークを取ってしまいます。
初心者さんと言うことでありますが、試験対象のモノが何で、どの
ような計測波形になるか解らない状態では、ピーク検出の方法を提
案するのは、不可能です。
超一般的には、データの前後関係で、差の符号が変化したポイント
としかいいようがありません・・・
まぁ〜エレガント・・・と言うのであれば、
グラフのある区間毎の傾きの平均から係数の符号の変化する部分を
求める・・・とか、最小二乗や多項式フィッティングで、山や谷を
見つけるとか・・・理想直線・理想曲線と言う言葉をお調べになっ
たら、近いものは出てくるとは思いますが・・・
以上。
なるほど.
差の符号が変わる点でまずはやってみます.
ちなみに,計測するのは脳スライスにおけるLTPの変化を見るために,EPSPの傾きを知ろうとしています.その際に,EPSPのピークの半分の値における接線を求めて,その傾きを知りたいわけです.
かなり微弱な信号の解析・・・と言うことだと思いますが、
信号の増幅とかやっておられると、ノイズ成分がどうなのか
が心配ですが・・・
接線を求めているなら、その接線(一次直線)『y=ax+b』の
a の符号変化で追えるのでは?
接線を求める式は既に持っておられるのですよネ?!
以上。
ツイート | ![]() |