Low Pass Filter

電子工作、制御系、電気回路などあらゆるところで出てくるローパスフィルタ。信号の種類によってさまざまな用途がありますが、ここでは前々々回FM音源を鳴らしたときの音を使って試してみました。

Frequency Modulation

ずっと前に伝達関数で表現される一次遅れというものをOctaveを使って表示したことがありました。

Octave Transfer Function


これと全く同じことをPythonを使って音波形に施してみるのが目的です。
なぜ遅れることがローバスフィルタになるのかと最初はよくわかりませんでした。たくさんの周波数成分を含んだ波形だとわかりやすいのですが、高い周波数ほど遅れたときの位相ずれが大きいことから、打ち消しあいが起き、それにより小さくなってしまうので減衰するということのようです。(周波数の違うサイン波形を横にならべるとわかりやすいです)

まずは一次遅れの伝達関数からボート線図をプロットしました。
参考: https://gsmcustomeffects.hatenablog.com/entry/2019/01/13/112150


特性を確認した上で、このシステムを使って上記FM音源のソースをもとに、FM音源のフィルタをシミュレートしてみます。

フィルタなし

フィルタあり

プロット結果から差異が明確にあらわれました。音はわかりづらいですが、若干こもった感じになりました。
また伝達関数で設定している抵抗値とキャパシタの容量が正しいかどうか、LTspiceで確認しました。

1kHzで-20dbまで減衰しているので、最初のボード線図と一致してそうです。

ノイズ対策などでローバスフィルタが使われますが、フィルタというと削るということで消極的処理のように感じますが、楽器のシンセサイザーの世界では、音に特徴(クセ)をもらたす大事な役割を果たします。
モーグシンセやRoldand TB-303のようなクセがスゴい二次遅れ系のフィルタについても、作れたらいいなぁと思っているこのごろです。

About

Categories: 未分類 タグ: