2017-12-24 10 views
1

우리는 1 차원 배열에서 봉우리와 골짜기를 찾으려고합니다.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에는보다 정교한 필터가 있지만 사용법을 배우는 데는 다소 시간이 걸립니다.