2

私は方形パルス(+いくつかのノイズ)で構成された信号を持っています、ここにその小さな部分があります:

ここに画像の説明を入力

脈拍数を数えるための効率的で堅牢な方法を探しています。

これまでに行ったことは次のとおりです。

振幅には少しノイズがありますが、SNR は大きく、しきい値を設定できます。

data = data>1;

各パルスの長さにはノイズが含まれている可能性があるため、無視して を使用diffして微分 (+ と -) を取得し、ゼロ以外の要素がいくつあるかを調べ、2 で割ります (パルスごとに微分ピークが 2 つあるため)。

dd=diff(data);

num_of_pulses=length(find(diff(dd)))/2

それが最善の方法ですか?diffうるさいので使わないように言われました…

4

1 に答える 1

2

データの説明に基づいて、これでうまくいくと思います。

numberOfPulses = nnz(diff(data > 1) > 0)

を使用してパルス サンプルを確実に検出しdata > 1、次に を使用diff() > 0してパルスなしからパルスへの遷移を検出し、最後nnz()にそれらをカウントします。

于 2013-02-26T22:18:13.437 に答える