フィルターのクリア

加速度計の重力加速度とノイズの除去

153 ビュー (過去 30 日間)
Ryuta Ito
Ryuta Ito 2018 年 12 月 17 日
回答済み: Shoumei 2018 年 12 月 20 日
200Hzで得られた3軸加速度データの重力加速度とノイズの除去は、どのように行えばよいのでしょうか?
バンドパス、ハイパス、ローパス、バタワースなど様々なフィルターがあるのは分かったのですが、
カットオフ周波数や何次のフィルターをかければ良いのかということが分かりません。
Matlabに関してはまったくの素人ですが、ご教授いただければ幸いです。
よろしくお願いいたします。

採用された回答

Shoumei
Shoumei 2018 年 12 月 20 日
除去したいノイズの周波数特性は把握していますか?
フィルタというものは、特定の周波数を増幅させたり減衰させたりするものなので、ノイズをフィルタで除去したいのであれば、ノイズの周波数特性を把握する必要があります。同時に信号成分(ここでは加速度信号)もフィルタの影響を受けることに注意しなければなりません。
ノイズが全周波数帯域に渡って存在する、いわゆるホワイトノイズのようなものだったり、得たい信号と同じ周波数帯域だったりすると、フィルタでは除去することができません。
そういったことから加速度センサのノイズを除去するには、複数センサー信号を使って補完する相補フィルタや、状態推定からノイズをキャンセルするカルマンフィルタなどが使用されます。(後者のほうが高度です。)
このページに特徴が説明してあります。
カルマンフィルタの例題がDSP System Toolboxにあります。
通常のフィルタを使うのあれば、まずIIRフィルタを使うかFIRフィルタを使うかを決めます。
IIRは位相特性が非線形たなめ位相が乱れますが、振幅特性は急峻な特性が得られます。
FIRは位相が線形となる特長があるので、位相成分を気にするようであればこちらを使います。
フィルターデザイナーを使うと様々なフィルタタイプを試行錯誤して、特性を確認しながら設計できます。
> filterDesigner
または
アプリタブにフィルターデザイナーのアイコンがあります。
念のため、filterDesignerはSignal Processing ToolboxかDSP System Toolboxが無いと使えないと思います。

その他の回答 (2 件)

Kazuya
Kazuya 2018 年 12 月 18 日
難しい課題ですね。データの何がノイズになるかも、目的次第かと思います。一般的にこのフィルターが正解というものはなく、欲しい結果になるフィルターを選ぶというスタンスがよいかと。

Tohru Kikawada
Tohru Kikawada 2018 年 12 月 18 日
信号処理に関してはSignal Processing Toolboxが便利です。
下記の入門から始めてみてはいかがでしょうか。
はじめに加速度信号の性質を時間領域や周波数領域で確認しましょう。
その上で、例えば高帯域のノイズ除去などを下記の例題からはじめるのはいかがでしょうか。
ご参考になれば幸いです。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!