2017-12-24 6 views
1

1d-arrayからピークとトラフを見つけようとしています。1d-arrayから正しいピークとトラフを得る方法

私たちはnumpy.r_()を使用していますが、それは配列からのすべてのピークとトラフを見つけますが、我々は横隔膜運動の緩和と収縮点に対応するピークとトラフのみを求めます。

間違った最小点と最大点を拒否する関数はありますか?あなたはピーク発見の目的のために望ましくない高周波、小振幅振動を持って

enter image description here

+0

私たちはSciPyに新しいピーク発見アルゴリズムを取り入れようとしていますが、まだ見ていてうまくいけばそれについていくつかのフィードバックを与えることができます:) https://github.com/scipy/scipy/issues/8211 – percusse

+0

"are are numpy.r_()を使用して、すべてのピークを検出します。真剣に? ['numpy.r_'](https://docs.scipy.org/doc/numpy/reference/generated/numpy.r_.html)はピーク検出法ではありません。 – FTP

答えて

2

は、下の悪い例を参照してください。ピークを検索する前にフィルタリングしてください。シンプルなフィルタはscipy.ndimageの1-dimensional Gaussianです。あなたのチャートのスケールで、

smooth_signal = ndimage.gaussian_filter1d(signal, 5) 

は(ウィンドウサイズは、不要な振動を抑制するのに十分な大きさが、実際のピークを歪めないために十分に小さくなければならない)、右であるべきであると思われます。次に、ピーク発見アルゴリズムをsmooth_signalに適用します。

signal processing moduleは、より洗練されたフィルタを備えていますが、使用するのに時間がかかります。

関連する問題