편집 : 실제로 이것은 예기치 않은 동작이 아니지만 여전히 솔루션이 필요합니다. findpeaks compares each element of data to its neighboring values.
MATLAB의 Signal Processing Toolbox에서 함수 findpeaks의 예기치 않은 동작
신호 처리 도구 상자에서 findpeaks 기능으로 탐지 한 피크가있는 데이터가 있습니다. 때로는 함수가 피크 값을 제대로 감지하지 못하는 것처럼 보입니다. 동일한 값을 두 번 옆에 두었을 때가 있습니다. 내가 데이터를 플롯 경우
>> [pks loc] = findpeaks(values)
pks =
0.0116
loc =
42
, 그것은 분명하게 : 지금 findpeaks는 하나 개의 피크가 발견 기능
>> values
values =
-0.0324
-0.0371
-0.0393
-0.0387
-0.0331
-0.0280
-0.0216
-0.0134
-0.0011
0.0098
0.0217
0.0352
0.0467
0.0548
0.0639
0.0740
0.0813
0.0858 <-- here should be another peak
0.0858 <--
0.0812
0.0719
0.0600
0.0473
0.0353
0.0239
0.0151
0.0083
0.0034
-0.0001
-0.0025
-0.0043
-0.0057
-0.0048
-0.0038
-0.0026
0.0007
0.0043
0.0062
0.0083
0.0106
0.0111
0.0116
0.0102
0.0089
0.0057
0.0025
-0.0025
-0.0056
: 이것은 내 문제를 설명하기 위해 샘플을 내 데이터에 매우 rarly 발생하지만 여기 findpeaks는 모두 0.08579
값을 가지고 있기 때문에 위치가 18/19
인 봉우리 중 하나를 놓치게됩니다.
그 실종 피크를 찾을 수있는 가장 좋은 방법은 무엇입니까?
다음 리소스를 사용해보십시오. http://www.billauer.co.il/peakdet.html, http://terpconnect.umd.edu/~toh/spectrum/PeakFindingandMeasurement.htm – Amro