実際に使える制御工学:寄り道編(1)「基本的な4つのフィルタ。見たいデータを見るために。」
<この記事で伝えたい事>
ローパスフィルタは特に大事です
他3つはローパスフィルタから作れます。
ただ、理想に近い特性が欲しいなら直接作った方が良いです。
1. はじめに
自己紹介はこちらです。
この記事は、制御工学の周辺技術としての4つの基本的なフィルタ(信号処理)の紹介・解説のために書いています。
制御設計とフィルタ設計には共通点が多く、使えるフィルタの多さは制御技術者としての手数の多さにつながります。
2. 4つのフィルタと主な使い方
基本的なフィルタといえば、多くの技術者は以下4つを思い浮かべます。
この4つはそれほどメジャーなフィルタです。
ローパスフィルタ
ハイパスフィルタ
バンドパスフィルタ
ノッチフィルタ(バンドエリミネイションフィルタ)
それぞれの特徴・主な用途を下表にまとめます。

なお、これらフィルタを組み合わせて使うことはよくあります。
3. ローパスフィルタ(LPF: Low Pass Filter)
ローパスフィルタ(以下、LPF)とは、その名のとおり入力信号の低周波成分だけを通過させるフィルタです。
その伝達関数は下式です。
$${\omega_{c}}$$はカットオフ周波数と呼ばれるパラメータです。
($${\omega_{c}}$$の単位は[rad/s])
$$
G_{(s)}=\frac{\omega_{c}}{s+\omega_{c}}
$$
LPFは$${\omega_{c}}$$より低い周波数成分はほぼ素通りさせます。
逆に$${\omega_{c}}$$より高い周波数成分はカットします。
LPFの周波数特性を下図に示します。

試しに$${\omega_{c}=50_{[rad/s]}}$$として下式の入力信号$${u}$$にLPF処理をかけてみましょう。
$$
u_{(t)}=1.5\cdot cos(10\cdot t)+3\cdot sin(1000\cdot t)
$$
LPFのカットオフ周波数$${\omega_{c}=50_{[rad/s]}}$$なので、
それよりローの部分($${1.5\cdot cos(10\cdot t)}$$)は素通りさせ、
ハイの部分($${3 \cdot sin(1000\cdot t)}$$)はカットする
動作が期待できます。
入力信号$${u}$$とLPF処理後の出力信号$${y}$$を下図に示します。

おおむね、
ローの部分($${1.5 \cdot cos(10\cdot t)}$$)は素通りさせ、
ハイの部分($${3 \cdot sin(1000\cdot t)}$$)はカットする
様子が確認できます。
ただ、ハイの部分もちょっとは通過しています。
LPFといえど完璧ではないのです。
それでもLPFの機能を完璧に近づけたい場合はどうしたら良いでしょうか?
そう、2段がけするのです。
「またそんないいかげんな...」と思うかもしれませんが、実際に効果があるので仕方ありません。
2段目のLPFをかける前後の波形を下図に示します。

2段がけした方がハイの部分を強力にカットできています。
ただ、2段がけすると位相の遅れが大きくなります。
測定済データの高周波ノイズをカットしたい場合、位相遅れはあまり問題になりません。
しかし、トルクの滑らかさを保つトルクフィルタとしてLPFを使う場合、位相遅れ増大は不安定化の原因になる可能性があります。
用途に応じた使い分けが必要なことは知っておくべきと思います。
4. ハイパスフィルタ(HPF: High Pass Filter)
LPFとは対照的に入力信号の高周波成分だけを通過させるフィルタです。
その伝達関数は下式です。
$${\omega_{c}}$$はカットオフ周波数と呼ばれるパラメータです。
($${\omega_{c}}$$の単位は[rad/s])
$$
G_{(s)}=\frac{s}{s+\omega_{c}}
$$
この伝達関数は$${1-(LPF伝達関数)}$$と一致します。
その仕組みは以下のブロック線図で説明できます。

ハイパスフィルタ(以下、HPF)は$${\omega_{c}}$$より低い周波数成分をカットするはたらきを持ちます。
逆に$${\omega_{c}}$$より高い周波数成分はほぼそのまま素通りさせます。
HPFの周波数特性を下図に示します。

試しに$${\omega_{c}=200_{[rad/s]}}$$として下式の入力信号$${u}$$にHPF処理をかけてみましょう。
$$
u_{(t)}=1.5\cdot cos(10\cdot t)+3\cdot sin(1000\cdot t)
$$
HPFのカットオフ周波数$${\omega_{c}=200_{[rad/s]}}$$なので、
それよりハイの部分($${3 \cdot sin(1000\cdot t)}$$)は素通りさせ、
ローの部分($${1.5\cdot cos(10\cdot t)}$$)はカットする
動作が期待できます。
入力信号$${u}$$とHPF処理後の出力信号$${y}$$を下図に示します。

おおむね、
ハイの部分($${3 \cdot sin(1000\cdot t)}$$)は素通りさせ、
ローの部分($${1.5\cdot cos(10\cdot t)}$$)はカットする
様子が確認できます。
ただ、LPFと同じくローの部分を完璧にはカットできません。
また、HPFも段数を増やすほどロー部分のカット効果は強まります。
5. バンドパスフィルタ(BPF: Band Pass Filter)
バンドパスフィルタ(以下、BPF)は特定の周波数帯の信号だけを通過させるフィルタです。
その伝達関数は下式です。
$${\omega_{p}}$$通過帯の中心周波数、$${\zeta}$$は減衰係数と呼ばれるパラメータです。
($${\omega_{p}}$$の単位は[rad/s]、$${\zeta}$$の単位は無次元)
$$
G_{(s)}=\frac{2\cdot \zeta\cdot\omega_{p}\cdot s}{s^2+2\cdot \zeta\cdot\omega_{p}\cdot s+\omega_{p}^2}
$$
BPFは、LPFとHPFの直列接続でだいたい再現できます。
ただ、単純な直列接続だけだと0[dB](=完全な素通り)になる周波数ができない点は要注意です。
上式をそのまま使えばその心配はありません。

BPFは$${\omega_{p}}$$付近の成分を素通りさせます。
そして、$${\zeta}$$が大きいほど素通りさせる範囲が広くなります。
BPFの周波数特性を下図に示します。

試しに$${\omega_{p}=100_{[rad/s]} , \zeta=1.0}$$として下式の入力信号$${u}$$にBPF処理をかけてみましょう。
$$
\begin{array}{cl}
u_{(t)}=&1.5 \cdot cos(10\cdot t)+3\cdot sin(100\cdot t) \\
& +2\cdot sin(1000\cdot t)
\end{array}
$$
BPFの中心周波数$${\omega_{p}=100_{[rad/s]}}$$なので、
$${3\cdot sin(100\cdot t)}$$だけ素通りさせ、
他2つのSIN波はカットする
動作が期待できます。
入力信号$${u}$$とBPF処理後の出力信号$${y}$$を下図に示します。

おおむね、$${3\cdot sin(100\cdot t)}$$は素通りさせて他はカットする様子が確認できます。
ただ、LPF・HPFと同じく、中心周波数以外の成分の完璧なカットはできません。
やはり、BPFも段数を増やすほど中心周波数のみを素通りさせる効果は強まります。
6. ノッチフィルタ(BEF: Band Elimination Filter)
正式にはバンドエリミネイションフィルタと言うらしいですが、ノッチフィルタの方が通りが良いのでこちらの呼び名を使います。
ノッチフィルタは特定の周波数帯成分だけをカットするフィルタです。
その伝達関数は下式です。
$${\omega_{n}}$$はノッチ中心周波数、$${\zeta}$$は減衰係数と呼ばれるパラメータです。
($${\omega_{n}}$$の単位は[rad/s]、$${\zeta}$$の単位は無次元)
$$
G_{(s)}=\frac{s^2+\omega_{n}^2}{s^2+2\cdot \zeta\cdot\omega_{n}\cdot s+\omega_{n}^2}
$$
この伝達関数は$${1-(BPF伝達関数)}$$と一致します。
その仕組みは以下のブロック図で説明できます。

ノッチフィルタは$${\omega_{n}}$$付近の成分だけカットします。
そして、$${\zeta}$$が大きいほどカットする範囲が広くなります。
ノッチフィルタの周波数特性を下図に示します。

試しに$${\omega_{p}=100_{[rad/s]} , \zeta=1.0}$$として下式の入力信号$${u}$$にノッチフィルタ処理をかけてみましょう。
$$
\begin{array}{cl}
u_{(t)}=&1.5 \cdot cos(10\cdot t)+3\cdot sin(100\cdot t) \\
& +2\cdot sin(1000\cdot t)
\end{array}
$$
ノッチ中心周波数$${\omega_{n}=100_{[rad/s]}}$$なので、
$${3\cdot sin(100\cdot t)}$$だけカットし、
他2つのSIN波は素通りさせる
動作が期待できます。
入力信号$${u}$$と、ノッチフィルタ処理後の出力信号$${y}$$を下図に示します。

ほぼ$${3\cdot sin(100\cdot t)}$$だけカットして、他は素通りさせる様子が確認できます。
なお、ノッチ中心付近の位相遅れを小さくするため、分子側にも減衰係数を持たせることもあります。
(その場合、ノッチの深さは有限の数値になります)
7. おわりに
この記事では、4つの基本的なフィルタを紹介・解説しました。
これらフィルタは制御に応用できるのはもちろん、それ単体でも実験データから見たい情報を抽出するのに役立ちます。
こうしたフィルタ(信号処理技術)は色々と考案されています。
LPF1つ取っても
ベッセルフィルタ
バターワースフィルタ
チェビシェフフィルタ
といった複数のタイプがあります。
(HPF・BPF・BEFにもこれらはあります)
調べれば調べるほど色んなフィルタが見つかります。
きっと私が知らないタイプのフィルタもあることでしょう。
時間があるとき調べてみるのも面白いのではないでしょうか?
