継続的な信号の上昇と下降があります。ピーク - 最大値とその位置を見つけました。
この種のルールで信号が変化した場合に備えて、COUNT にコードを記述する方法を考えています。振幅が 0.1 を超え、増加の開始から 2 秒以内にピークが発生しました。
どうもありがとう。
継続的な信号の上昇と下降があります。ピーク - 最大値とその位置を見つけました。
この種のルールで信号が変化した場合に備えて、COUNT にコードを記述する方法を考えています。振幅が 0.1 を超え、増加の開始から 2 秒以内にピークが発生しました。
どうもありがとう。
一般的な答えは次のようになります: ピーク ベクトルをループし、最小要素の値ベクトルの適切な部分をチェックします。
for i = 1:len(peaks)
peak = peaks(i,:)
peak_value = peak[1]
peak_time = peak[2]
cut_values = values(max(1,(peak_time-2)*f):peak_time*f)
if min(cut_values) < peak_value - 0.1
peak_count += 1 % or something
編集 - 説明の追加:
peaks
ピーク値と時間の行列 (nx2)
values
あなたの信号ベクトルは
f
は均一と見なされるサンプリング周波数 (Hz) です。
2 秒前のピークに合わせて再度編集しました。
ここでは、Matlab の 1-indexing は少しトリッキーです: サンプル 1 は時間 0 で、サンプル 2 は時間f
です。したがって、ゼロ時間で開始するシグナルに対して行うべき本当に正しいことは次のとおりです。
cut_values = values(max(0,(peak_time-2)*f)+1:peak_time*f+1)