センサーの値が細かく揺れるとき、直近の何点かを平均すると変化の傾向が見やすくなります。ただ、平均する点数を増やすと、本当に起きた急な変化もゆっくり現れます。移動平均フィルターでは、揺れの減り方と応答の遅れが、同じ「過去の値を混ぜる」操作から生まれます。
簡単にまとめると?
- 現在と過去の値を等しく平均する移動平均は、独立した揺れを弱めますが、急な変化もならします。
- 100 Hzで測った値を5点平均すると、ゆっくり変わる信号の時間位置は20 ms前に相当します。段差が最終値へ達するまでの40 msとは別の量です。
- 5点平均は20 Hzの正弦波を打ち消す一方、30 Hzは振幅の約25%を通します。なめらかな見た目だけでは、不要な帯域が十分に消えたとは判断できません。
新しい値に、四つ前までの値が加わる
ここで扱うのは、一定間隔で測ったデータについて、現在の値と過去の値だけを使う単純移動平均です。現在のサンプル番号をn、入力をx、出力をyとすると、5点平均は次の形になります。
y[n] = (x[n] + x[n−1] + x[n−2] + x[n−3] + x[n−4]) / 5
次の測定値が届いたら、最も古い値を外し、新しい値を一つ入れます。どの値にも同じ重みを付け、一定数より前の値は使いません。指数移動平均のように、古い値の影響を徐々に小さくしながら残す方法とは、重みの付け方が違います。
変化しない値は、平均しても変わりません。一方、互いに独立で、平均が0、分散が同じσ²の測定ノイズをN点平均すると、出力ノイズの分散はNσ²をN²で割ったσ²/Nになります。揺れの大きさを標準偏差で表すなら、元の1/√Nです。5点では約0.447倍、9点では約0.333倍になります。隣同士のノイズに相関がある場合や、全サンプルに同じ偏りが加わる場合には、この減り方をそのまま使えません。
20 msの遅れと、40 msかけて上がる応答
毎秒100回、つまり10 msごとに測る場面を考えます。現在から40 ms前までの5点を等しく混ぜると、その時間の中心は20 ms前です。ゆっくり増えていく信号なら、出力は20 ms前の値に近くなります。一定の傾きで増える信号では、過去の値がそろっている範囲で、この対応が正確に成り立ちます。
周波数に対する位相の傾きから求めるこの時間のずれを、群遅延と呼びます。N点の単純移動平均では、応答が0になる周波数を除き、(N−1)/2サンプルです。5点・100 Hzなら2サンプル、20 msになります。[1]
ただし、段差のような急な変化が、形を保ったまま20 ms遅れて出てくるわけではありません。入力がそれまで0で、時刻0の測定から1へ変わると、出力はその時点で0.2になり、その後10 msごとに0.4、0.6、0.8と上がり、40 ms後に1へ達します。変化はすぐに出始めますが、古い0がすべて平均の外へ出るまで、立ち上がりが広がるのです。
9点平均にすると、時間の中心は40 ms前へ移り、同じ段差が1へ達するのは80 ms後になります。揺れをさらに減らす代わりに、短い変化はより丸められます。

20 Hzは消えても、その先が全部消えるわけではない
平均による変化は、波の速さによっても違います。100 Hzで測る20 Hzの正弦波は、5サンプルごとに一周します。その5点を足すと、波の山と谷が釣り合って0になるため、5点平均では打ち消されます。これは初期の過去データがそろい、波の周波数と測定間隔が正確に対応している場合の話です。
ところが、さらに速い30 Hzの正弦波は、5点では山と谷が釣り合いません。計算すると振幅の約0.247倍が残ります。5 Hzでは約0.904倍、10 Hzでは約0.647倍です。周波数が高いほど一方的に弱くなるのではなく、完全に消える点の間に、再び通る部分があります。[2]
この振幅比は、サンプリング周波数をfs、信号の周波数をfとすると、次の式で求められます。f=0では極限値の1を使います。
振幅比 = |sin(πNf/fs)| / (N |sin(πf/fs)|)
点数を変えると、打ち消す周波数も動きます。例えば9点平均では、20 Hzの振幅は1/9だけ残ります。5点平均では0だったので、この周波数に限れば、点数を増やした方が残る量は大きくなります。平均点数だけで除去性能の優劣を決めず、残したい信号と消したい揺れの周波数を具体的に比べる必要があります。
グラフを中央へずらしても、未来の測定値は先に届かない
保存済みのデータなら、5点平均を中央の時刻に表示することもできます。時刻0を中心に、−20、−10、0、10、20 msの値を平均すれば、表示上の中心は0になります。しかしリアルタイムの装置では、20 ms後の値が届くまで計算できません。グラフ上の位置をそろえることと、その結果をいつ使えるかは分けて考える必要があります。
実装時には、測定開始直後の扱いも決めます。過去の4点がまだない段階で0を補うと、一定の入力でも出力が小さく始まります。必要な点がそろうまで出力しない方法や、そろった点だけで平均する方法では、開始時の挙動が変わります。後者では点数が変わる間、上の固定Nの式をそのまま当てはめられません。
センサー値を見やすくする目的なら、許容できる応答時間と、残したい変化の速さから点数を選べます。一方、特定の帯域を強く抑えたい場合や、データを間引く前の処理では、必要な減衰量まで確かめる必要があります。平均後の曲線がなめらかでも、それだけで周波数の選別やエイリアシング対策が十分とは言えません。
出典
- MIT OpenCourseWare, 6.02 Fall 2012, Chapter 12: Frequency Response of LTI Systems。§12.2.2 Example 4、pp.170–171の因果的な移動平均、振幅と位相の関係。
- UC Berkeley EECS20N, Frequency Response of the Running Average Filter。有限和による応答、周波数によって残る成分の違い。ページ版日不明、2026年10月25日確認。
