周期的なイベントを含むデータ セットがあり、各イベントを分離するためのしきい値 (ピーク) を特定しているとします (最終的に変動係数を見つけるため)。
私はこのデータを複数回試しています。これらのイベントの速度は、他のイベントよりも大幅に速い場合があります。このデータも少しノイズが多いため、「findpeaks」関数内で「minpeakdistance」制約を設定しないと、「誤った極大値」が検出されることがあります。
速度に関係なく、「真の極大値」を見つける方法を見つけようとしています。真のピークのみを識別したことを確認するために、各試行を視覚的に検査してきました-偽のピークも識別した場合は、その特定の試行のmpd値を調整しました-しかし、これには文字通り数日かかります.
助言がありますか?
例:
私のコレクションのほとんどの試行では、次のコード行は真の最大値のみを識別します。
mpd = 'minpeakdistance';
eval(['[t' num2str(a) '.Mspine.pks(:,1),t' num2str(a) '.Mspine.locs] = findpeaks(t' num2str(a) '.Mspine.xyz(:,1), mpd,25);']);
しかし、試行 11 では、それらははるかに速く動いているため、mpd を 9 に調整する必要があります。ただし、すべての試行に mpd 値 9 を適用すると、偽の極大値が検出されます。