android の加速度センサを調べていたら、プログラム例として、下記のような式が頻出していた。 現在の値 = 0.9 * ひとつ前の値 + 0.1 * センサの値 しかし、これが何をするものかの説明がほとんどなかった。 そこで少しだけ詳しく説明する。 目的 センサから情報には、センサ自体の精度や感度による誤差や、手に持った場合の手ぶれの影響などが含まれます。 本来検出したいセンサ情報を得るのは、素早い振動成分(高周波成分)を取り除くて、変動幅が小さい有効成分(低周波成分)だけを取りだす必要があります。 このための仕組みが、ローパスフィルタ(Low Pass Filter 低周波通過濾波器) です。 原理 詳しい原理は、デジタル信号処理 の教科書に任せて。 ひとまずは、加算平均すると、ローパスフィルタになると、覚えておけばよい。 ソースコード ソースコードは code.go