ブログ

移動平均

もし、図1のようなデータを得たときに、もう少し滑らかにできるといいのに、と思った方はいませんか? その時に、もし2点間の平均をとったらどうだろうか?と思った方もいらっしゃるのではありませんか?

データ1図1

下の図2では、試しに2点間の平均を赤点で表示しました。赤点を目で追っていけばわかりますよね。滑らかになっていることが。

データ2図2

この考え方をきちんと整理したものが、”移動平均”です。図2では、2個のデータの平均を求めていますが、2個以上でも構いません。

移動平均処理前のデータを、D[i] (ただし、i=0, 1, 2…)、移動平均処理後のデータをDm[i] (ただし、i=0, 1, 2…)とすると、n個のデータの移動平均は、たとえば(1)式で与えられます。

移動平均式1…(1)式

たとえば、n=5の場合は、(2)式のようになります。

移動平均式2…(2)式

また、(3)式のような表現もあります。

移動平均式3…(3)式

(3)式では、Dm[0]とDm[1]の計算時に必要なD[-2], D[-1]が無いので少し悩みますが、Dm[2]から計算すればよいでしょう。対して、(2)式は、最初は問題ありませんが、最後の4個のDmデータの計算に必要なDデータが不足します。一般的には、n個の移動平均処理をした場合は、処理後のデータはn-1個減ることになります。ただし、もしDデータの両端がほぼゼロとみなしてもよい場合は、Dデータの両端に”0”データを追加すれば、見かけ上データ数を合わせることもできます。グラフ表示の見栄えをよくしたい場合は、これで良いと思います。

さて、図1を電圧波形と考えると、移動平均はいわゆるLPF(Low Pass Filter:低域通過フィルタ)の特性を持っていると考えられます。

さて、ここから少し難しくなりますが、z変換の考え方を使用します。z変換ではzを使用します。zは、1クロック分のディレイ、あるいはDフリップ・フロップで実現できますので、(2)式は(4)式のように表現できます。z変換4…(4)式

このフィルタの周波数特性を求めるために、z変換2と置くと、z変換5…(5)式

H[ωT]の絶対値を計算し周波数特性を求めると、

z変換6…(6)式

ちなみに、Tはクロックの周期で、ω=2πfです。ωは角周波数(単位:rad/sec)、fは周波数(単位は、Hzまたは1/s)です。

5個の移動平均を表す(6)式をExcelでグラフ化したものが下の図3になります。上段は(6)式のωTを横軸としてグラフ化したものです。回路設計者にとっては、周波数特性の表現が分かりやすいので、中段はT=1秒の場合の周波数特性で表しています。下段はT=1m秒の場合です。同じ式をグラフ化しているので、当然ですがいずれも形は同じです。特性はそれほど良いとは言えませんが、簡易あるいはわかりやすい処理で実現できるのが特長と言えます。

f特…図3

また後日説明を予定していますが、Δ-Σ型AD変換器の内部の間引き処理時にこの移動平均処理が利用されています。

もし、間違い等を見つけましたら遠慮なくご指摘ください。