目次

移動平均フィルタリング

 時系列データの変化をなだらかにするため、移動平均を求めることが多い。

 移動平均は、加算と除算が必要になるので、除算を高速に実現するため
 シフト演算を利用する。


原理

 配列を用意し、2のべき乗個の時系列データを入れる。  時系列データの、総和を求めて、2のべき乗であることを利用して  シフトする。  データの個数が、2ならば1ビット右シフト、4ならば2ビット右シフト  のようにする。256あれば、8ビット右シフトになる。  総和が、変数のサイズを超えないように、注意しなければならない。

関数

 4データの移動平均を実現する関数は、以下となる。 UWORD average_filtering(UWORD *ptr) { UWORD result ; /* add */ result = 0 ; result += *(ptr+0) ; result += *(ptr+1) ; result += *(ptr+2) ; result += *(ptr+3) ; /* shift */ result >>= 2 ; return result ; }
目次

inserted by FC2 system