Simulinkでローパスフィルター

Simulinkでローパスフィルターを作る時は Transfer Fcn(伝達関数)ブロックを使うことがよくあります。 その理屈は次のようなものです。

ローパスフィルターは入力をCR直列回路に入れて、そのCの両端から信号を取り出すイメージです。

この場合入力電圧をV1、出力電圧をV2とすると

\[ \cfrac{V2}{V1} = \cfrac{\cfrac{1}{j\omega C}}{R + \cfrac{1}{j\omega C}} = \cfrac{1}{1 + j\omega CR} \]

となります。\(CR = \tau \)とします。カットオフ周波数を\(\omega_c = 2 \pi f_c\)とすると、周期と周波数の関係から

\[ \cfrac{1}{\tau} = 2 \pi f_c \]

です。この回路の伝達関数が欲しいので\(j\omega\)をラプラス変換の \(s\)に入れ替えると

\[ \cfrac{1}{1 + \cfrac{1}{2\pi f_c}s} \]

となります。

この伝達関数で実際にSimulinkモデルを作ってみました。Simulinkモデルこちら→LowPassFilter.zip

このモデルでは入力信号に5 Hz, 10 Hz, 100 Hzのサイン波を足したものを入れています。カットオフ周波数を20 Hzにしてプロットさせた結果が下のグラフです。100 Hzの成分が残ってはいますが、だいぶフィルターされている様子が分かります。

また、フィルターされた信号が若干遅れているのが分かりますね。 これは分母が\(1 + Ts\)のように\(s\)の1次で表現されている「1次遅れ系」だからです。

Adsense広告