0

継続的な信号の上昇と下降があります。ピーク - 最大値とその位置を見つけました。

この種のルールで信号が変化した場合に備えて、COUNT にコードを記述する方法を考えています。振幅が 0.1 を超え、増加の開始から 2 秒以内にピークが発生しました。

どうもありがとう。

4

1 に答える 1

0

一般的な答えは次のようになります: ピーク ベクトルをループし、最小要素の値ベクトルの適切な部分をチェックします。

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)
于 2013-03-04T14:02:59.973 に答える