ローパスフィルタの記事は多いけど、ハイパスフィルタの記事はあまりなかったので、メモ。
ローパスフィルタ
微細なギザギザしたノイズをカットできる。
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]