- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:移動平均とローパスフィルタについて(matlab))
移動平均とローパスフィルタについて(matlab)
このQ&Aのポイント
- 移動平均とは、一定の範囲のデータの平均値を計算する方法です。
- ローパスフィルタは、高周波成分を除去し、低周波成分を通過させるフィルタです。
- 移動平均プログラムと同様の結果が得られるようなローパスフィルタを設計する方法が知りたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ハードで実現する場合は,FPGAで行う場合シフトレジスタにためて,加算して,係数を掛ける格好になると思います. 100個の和になるので,そのまま加算する場合は桁上がりに注意が必要です.係数を掛けてから加算した方が良いかもしれません.添付のURLに4段の場合のVDHLが書かれていました.参考までに. 前の方もおっしゃっていましたが,100個の移動平均であれば,100個分の時間を待つ必要がありますので,その処理を入れておく必要があると思います.ご注意ください.
その他の回答 (3)
noname#221368
回答No.3
まず100個で移動平均を取ると、100個の平均が0の周波数成分は全部消える訳ですよね?。100個で余りが出るものについては、少々端数が出ますが、そんなに大きくないでしょう。 そうすると概ね10Hzのハイカット(ローパス)と、そんなに変わらないのでは?。#2さんが妥当と思います。
- foobar
- ベストアンサー率44% (1423/3185)
回答No.2
デジタルフィルタ(FIR)でしたら、そのまま、過去100点分のデータの平均を取る、で良いかと思います。 他の手法で、ですと、別途設計が必要になるかと思います。
質問者
補足
現在はプログラム上で行っていますが、今後ハードウェアで設計したいと考えています。そのため、常に過去100点分保持しておくような方法ではなく、フィルタのようにpoint by point でできる方法で実装したいと考えています。 簡単に変換することは可能でしょうか?
- 178-tall
- ベストアンサー率43% (762/1732)
回答No.1
補足
現在はプログラム上で行っていますが、今後ハードウェアで設計したいと考えています。そのため、常に過去100点分保持しておくような方法ではなく、フィルタのようにpoint by point でできる方法で実装したいと考えています。 簡単に変換することは可能でしょうか?