編集:これは予期せぬ動作ではありませんが、まだ解決策が必要です。 findpeaks compares each element of data to its neighboring values.
MATLABのSignal Processing Toolboxの関数findpeaksの予期しない動作
Signal Processing Toolboxから関数findpeaksで検出されたピークを含むデータがあります。時には、関数がピーク値を正しく検出しないように見えることがあります。これが私のデータでは非常にrarly発生しますが、ここでは私の問題を説明するためのサンプルです:
>> 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
今findpeaks機能は唯一のピークを検出します。
>> [pks loc] = findpeaks(values)
pks =
0.0116
loc =
42
私はデータをプロットした場合、それが明らかになりましたfindpeaksは両方とも値0.08579
を持っているので、位置18/19
のピークの1つを見逃しています。
それらの行方不明のピークを見つけるための最善の方法は何ですか?
次のリソースを試してください:http://www.billauer.co.il/peakdet.html、http://terpconnect.umd.edu/~toh/spectrum/PeakFindingandMeasurement.htm – Amro