0

次の性質の(階段を上っている人の)信号があります。これは、階段を上る 6 分間で 38K + サンプルに値する信号です。いくつかの低周波ノイズがある部分は、人が次の階段に到達するためにターンアバウトを行う時間です (したがって、階段の上昇としてはカウントされません)。

図1

これが、階段の上昇データのみを受け入れるディープ ラーニング モデルでそれを取り除く必要がある理由です。基本的に、人が階段を上っている高周波領域のみが必要です。手動で削除することもできますが、そのような信号が 58 個あるため、かなりの時間がかかります。

この問題を解決するための私のアプローチは、低周波数領域では 0、高周波数領域では 1 である方形波でこの信号を変調し、信号を乗算することでした。しかし、問題は、高周波数領域と低周波数領域を独自に検出するような方形波信号をどのように作成するかです。

(MATLAB のエンベロープ rms 関数を使用して) 信号をエンベロープしようとしたところ、次の結果が得られました。

図 2

ご覧のとおり、エンベロープ rms 信号は関数に非常によく従っています。しかし、それから変調方形波関数を作成する方法に固執しています(基本的に、可変パルス幅変調波形を求めています)。

PS: ハイパス フィルターの使用を検討しましたが、高周波数の階段を上る領域に除去できない低周波数信号がいくつかあるため、これは機能しません。また、(エンベロープ rms 関数用に) 立ち上がり/立ち下がりエッジ検出の何らかの形式を使用することも考えましたが、それを実装する実用的な方法は見つかりませんでした。) アドバイスしてください。

事前に助けてくれてありがとう、シュレヤ

私のデータセットで行ったしきい値処理の提案について David に感謝します。これらの結果が得られました...ただし、ゼロ間の冗長なピークを取り除こうとすることに再び行き詰まっています (下の画像を参照) 次に何をすればよいですか?

図 3

次の手順を使用して、波形の「興味深い」部分を元の波形全体から正常に分離できるという問題を解決できたと思います(読者の将来の参照用:)

図 1 のような不均一な波形には、"envelope(rms)" MATLAB 関数を適用して、図 2 のようなオレンジ色の関数を取得できます。その後、MATLAB 独自の "idfilt" 関数を使用して、このエンベロープ波形をフィルター処理しました。これにより、波形の「興味深い」部分の間に発生していた不要なスパイク (ゼロの間) を取り除くことができました。次に、しきい値処理を使用して、この波形を「興味深い」部分で1に、「興味のない」部分で0に等しくなるように変換し、元の波形の「興味深い部分」のみに従うパルス幅変調方形波フォーム(図 1) 次に、方形波に元の関数を乗算し、「興味のない」ものを除外することができました。

図 4

助けてくれてありがとう!このスレはこれで解決!

4

1 に答える 1