ローパスフィルター回路を自作して、実際に波形をオシロで測定してみました。
測定結果とシミュレーションを比較して、理論通りの結果であることを確認しています。
ローパスフィルターの原理を分かりやすく紹介します。
ローパスフィルター回路の波形をオシロスコープで確認してみた
ローパスフィルター回路をオシロスコープで実際に測定してみました。
FFTも実施して、周波数成分含めて確認しています。
シミュレーションも行い測定結果との比較まで行いました。
乗数・パラメータを変更することによりカットオフ周波数も変わることを確認しています。
ローパスフィルターにより高周波数帯がカットされることを紹介します。
フィルター前後で波形を取得して比べると効果がわかります。
テスト動画が下記になります。
実際に波形取得している様子が分かりやすいので是非一緒にご覧ください。
ローパスフィルターの回路
ローパスフィルターの回路としてはR(抵抗)とC(コンデンサ)で構成されています。
RC回路とも呼ばれます。R(抵抗)とC(コンデンサ)の値で特性が変わります。
ローパスフィルターが実際の波形にどのように影響するかを簡単に説明します。
ローパスフィルターを周波数解析すると下記のような結果となります。
低い(ロー)周波数は通しますが、高い(ハイ)周波数はカットします。
上記グラフは実際にLTSPICEでシミュレーションしたものです。
横軸が周波数、縦軸がデシベル(dB)となるように周波数(AC)解析しています。
またローパスフィルターのRCを入れ替えるだけでハイパスフィルターも作成可能です。
下記記事でハイパス・ローパスフィルターの比較をしています。(リンク先はこちら)

カットオフ周波数を計算する
ローパスフィルターの特性の一つの指標が「カットオフ周波数」となります。
カットオフ周波数は「f=1/2πRC」で簡単に計算できます。
-3dB(出力電圧で言うと約70%)まで減衰する周波数のことを示します。
上記シミュレーション結果のように1kΩと1uFの場合は約159Hzとなります。
それ以上の周波数は-3dB以上減衰されてカットされる形になります。
ローパスフィルターをシミュレーションしておく
実際にオシロスコープで測定する前にLTSPICEでシミュレーションしておきます。
測定結果の妥当性を確認できるようにするためです。
(実際のテストでも)100Hzの方形波を出力してローパスフィルターの前後で波形を見ます。
今回は抵抗値を変えて2パターン確認しています。
シミュレーション結果は実際の測定波形と一緒に紹介します。
- R(抵抗)…1kΩ、C(コンデンサ)…1uFの場合
- R(抵抗)…100Ω、C(コンデンサ)…1uFの場合
ローパスフィルターの周波数特性をテストする環境構築
実際にローパスフィルターをテストする環境を整えていきます
今回はラズベリーパイとオシロスコープと使って測定していきます。
オシロスコープの使い方に関しては下記記事でまとめています。(リンク先はこちら)
オシロ1台で趣味の電子工作の幅が一気に広がりますので、ぜひ一緒にご覧ください

ラズベリーパイでクロック(方形波)を出力する
ラズベリーパイを使う理由はローパスフィルターに通す信号を出力するためです。
100Hz程度ならばPythonとラズパイで簡単に方形波が作れます。
※正確に言うと微妙な誤差は発生しますが、テストレベルのため楽しています。
ラズパイにはデフォルトでPythonがインストールされており、誰でも簡単に使用できます。
初心者の方でも大丈夫です。下記記事で使い方を紹介しています。(リンク先はこちら)

ラズパイのGPIOから一定周期(100Hz)でON/OFFする簡単なプログラムです。
下記のようにPythonで10数行で簡単に作成可能です。
下記の紹介するコードをそのまま貼り付ければ動作します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/usr/bin/env python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(17,GPIO.OUT) for i in range(1000): GPIO.output(17, True) time.sleep(0.005) GPIO.output(17, False) time.sleep(0.005) GPIO.cleanup() |
実際にGPIOをオシロスコープで確認すると大体100Hzの方形波が確認できます
ローパスフィルターの作り方
ローパスフィルターは市販の電子工作の部品セットで簡単に作れます。
今回は抵抗1kΩと100Ω、またコンデンサ(1uF)を使います。
ジャンパー線でブレッドボードに接続すれば完成です。
ラズベリーパイからのGPIOとGNDをローパスフィルターに繋げるだけです。
ローパスフィルターの前後にプローブを接続する
ローパスフィルターの前後での波形差を見れるようにします。
オシロスコープからのプローブを接続すればテスト環境の完成です。
ローパスフィルターの波形を測定する
ローパスフィルターで測定した結果を紹介していきます。
冒頭でも紹介しましたが、動画で見ると測定の様子が分かりやすいです。是非一緒にご覧ください。
ローパスフィルターが効果ある場合
最初に「R(抵抗)…1kΩ、C(コンデンサ)…1uFの場合」の測定結果です。
「黄色…ローパスフィルター前」「青色…ローパスフィルター後」の波形です。
ローパスフィルター後は高周帯域がカット(減衰)され、波形がなまっている結果です。
LTSPICEでのシミュレーションでも同じ結果がでています。
ローパスフィルター後は立ち上がり・立ち下がりがなまった波形となります。
FFTでローパスフィルターの影響を確認する
実際の波形でローパスフィルターの影響を確認したい場合はFFTで可能です。
下記記事で紹介しましたが、オシロのFFTの機能は非常に便利です。(リンク先はこちら)

ローパスフィルター前をFFT(周波数解析)した結果が下記となります。
高周波帯の箇所でピークがあることが分かります。
ローパスフィルター後のFFTの結果が下記となります。
高周波帯にあったピークが消えています。
フィルター前後で並べると下記形になります。
低い(ロー)帯域の信号は周波数のピークが変わらずそのまま通過しています。
フィルターにより(ハイ)高周波帯が減衰(カット)されていることが分かります。
ローパスフィルターが効果がない場合
次に「R(抵抗)…100Ω、C(コンデンサ)…1uFの場合」の波形です。
抵抗のみを「1kΩ」→「100Ω」と変更しています。
ローパスフィルター通過後でも、波形が変わらない結果となっています
シミュレーションでも同様な結果となっています。
100kHzの信号に対してローパスフィルターが効果していない状況です。
FFTでもローパスフィルターの効果がないことを確認
FFTでローパスフィルター後を確認しても効果がないことが分かります。
高周波帯のピークが残ったままです。
フィルターの特性は抵抗・コンデンサの乗数で変わる
抵抗が1kΩ→100Ωにすることでローパスフィルターの特性が変化します。
※今回は抵抗を変更していますが、コンデンサを変更しても特性が変わります。
計算でもカットオフ周波数を確認すると約159Hz→約1591Hzまで変化します。
カットオフ周波数が約1591Hzになると、それより低い周波数はそのまま通過します。
100Hzの方形波の高調波(300Hz、500Hz、700Hz…)を減衰(カット)できない特性となります。
まとめ
今回はローパスフィルターに関して紹介させていただきました。
記事をまとめますと下記になります。
今回使用したオシロのRIGOL DS1054ZはFFT解析が可能です。
オシロスコープでFFTが出来ると、フィルターの効果確認で非常に役立ちます。
下記記事でも紹介していますので、よろしければご覧ください。(リンク先はこちらから)

コメント