デジタル信号におけるRCハイパスフィルタ

RCハイパスフィルタの回路図
RCハイパスフィルタの回路図

デジタル信号におけるRCハイパスフィルタは次の式となる。

$$y_i=ay_{i-1}+a(x_i-x_{i-1}) \tag{1}$$

なぜこの式がRCハイパスフィルタになるのか、ここで詳しく解説してみたいと思う。

基本的にローパスフィルタの記事で説明した方法と同じやり方でハイパスフィルタは導き出すことができる。

アナログ回路のRCハイパスフィルタ

電圧を分かりやすくするために最初の回路図を少し変形させた。

RCハイパスフィルタの回路図の変形
RCハイパスフィルタの回路図の変形

回路図より、

$$E_R(t)=I(t)R \tag{1}$$

である。

また、

$$q(t)=CE_C=C(E(t)-E_R(t)) \tag{2}$$

$$I(t)=\frac{dq(t)}{dt} \tag{3}$$

なので、式1は

$$E_R(t)=\frac{dq(t)}{dt}R=C(\frac{dE(t)}{dt}-\frac{dE_R(t)}{dt})R\tag{4}$$

となる。よって出力電圧\(E_R(t)\)は次式で導き出される。

$$E_R(t)=RC(\frac{dE(t)}{dt}-\frac{dE_R(t)}{dt})\tag{5}$$

電圧をデジタルデータで考える

サンプリングデータで置き換える
サンプリングデータで置き換える

ここで、電圧をサンプリングデータに置き換える。\(E(t)\)を\(x_i\)とし、\(E_R(t)\)を\(y_i\)とすると、式5は次のようになる。ただし、\(ΔT\)はサンプリング周期である。

$$y_i=RC(\frac{x_i-x_{i-1}}{ΔT}-\frac{y_i-y_{i-1}}{ΔT}) \tag{6}$$

さて、式6を\(y_i\)について解くと、

$$y_i=\frac{RC}{RC+ΔT}y_{i-1}+\frac{RC}{RC+ΔT}(x_i-x_{i-1})\tag{7}$$

となる。

ここで\(a=\frac{RC}{RC+ΔT}\)に置き換えると、

$$y_i=ay_{i-1}+a(x_i-x_{i-1}) \tag{8}$$

となり、RCハイパスフィルタのデジタルフィルタ計算式が導き出された。

カットオフ周波数

最後にカットオフ周波数と\(a\)の関係を導き出してみよう。

係数\(a\)は、

$$a=\frac{RC}{RC+ΔT}\tag{9}$$

であった。

また、RC回路におけるカットオフ周波数\(f_c\)は次式で求められる。

$$f_c=\frac{1}{2πRC}\tag{10}$$

これを展開すると、

$$RC=\frac{1}{2πf_c}\tag{11}$$

となる。式11を式9へ代入して係数\(a\)について展開すれば、

$$a=\frac{1}{2πΔTf_c+1} \tag{12}$$

の関係となる。

デジタルフィルタおすすめ書籍

今回使ったデジタルフィルタは、シンプルなので非常に使いやすい。しかしもっと精度を出したい場合には、FIRやIIRといったデジタルフィルタの設計が必要となってくる。それらを学びたい方には、こちらの書籍をおすすめしておく。フーリエ変換や窓関数、z変換など難しい部分があるが、図解の説明でなんとなくでもイメージは掴めると思う。また、サンプルプログラミングが豊富なので、それらを実際使ってみてデジタルフィルタに慣れていくのが良いと思う。

C言語ではじめる音のプログラミング―サウンドエフェクトの信号処理
C言語ではじめる音のプログラミング―サウンドエフェクトの信号処理

AmazonRakuten

Amazonでお得に購入するなら、Amazonギフト券がオススメ!

\Amazonギフトがお得/

コンビニ・ATM・ネットバンキングで¥5,000以上チャージすると、プライム会員は最大2.5%ポイント、通常会員は最大2%ポイントがもらえます!
Amazonギフト券

\この記事をシェアする/