fugagaの備忘録

しがないプログラマの備忘録。好きなモノ:機械学習、Linux、vim、C/C++、Scala、php、CakePHP、python

ハイパスフィルタ(High Pass Filter)

ローパスフィルタの記事は多いけど、ハイパスフィルタの記事はあまりなかったので、メモ。

ローパスフィルタ

微細なギザギザしたノイズをカットできる。

x[i] = coef*x[i] + (1.0-coef)*x[i-1]

ただし、位相が遅れるので、オンライン処理しないなら、移動平均を取った方がベター。

x[i] = (x[i-1] + x[i] + x[i+1]) / 3

単純な移動平均でなく、重み付けしても。

ハイパスフィルタ

低周波のノイズをカットできる。
現在の値からローパスフィルタの結果を引けば、ハイパスフィルタの結果になる。

tmp = x[i]
x[i] = coef*x[i] + (1.0-coef)*x[i-1]
y[i] = tmp - x[i]

こちらも、位相が遅れるので、オンライン処理しないなら、移動平均で求めたローパスフィルタの結果を使ったほうがベター。

tmp = x[i]
x[i] = (x[i-1] + x[i] + x[i+1]) / 3
y[i] = tmp - x[i]