オシロスコープで周波数測定してみました。
オシロのFFT機能を使うことで信号の周波数を簡単に確認できます。
簡単な周波数測定の方法からFFTの解析結果の見方まで分かりやすく紹介します。
オシロスコープで周波数測定!FFTの使い方を確認してみた
オシロスコープのFFT機能で周波数解析を実施しました。
5Hz,10Hz,50Hzの方波形を測定して、周波数のピークが正しいことを確認しました。
またFFTの周波数解析により高調波まで確認しています。
オシロスコープでのFFT機能の使い方含めて紹介していきます。
実際の測定に解説を加えた動画も下記Youtubeにアップしています。
合わせてご覧になると理解が深まりますので、ぜひ一緒に確認ください。
今回使用しているオシロスコープの詳細は下記記事で紹介しています。
よろしければ一緒にご覧ください。(リンク先はこちらから)

オシロスコープで周波数の測定方法
オシロスコープで信号波形の周波数を確認する手段としては複数あります。
簡単な方法から、詳しく周波数解析できる手段まで紹介します。
カーソル機能で手動で確認
一番単純なのはオシロスコープの「カーソル」機能で周波数を確認することです。
オシロスコープに「Cursor」の類のボタンがあるので選択します。
名の通り時間軸のカーソルを測定したい区間に移動すれば、周波数(周期)が分かります
一番単純かつ明確で分かりやすいと思います。
下記記事ではカーソルを使ってシリアル信号の通信速度(bps)を確認しています。
よろしければ一緒にご覧ください。(リンク先はこちら)

測定機能で自動で確認
オシロスコープの「測定」機能を使えば周波数を確認可能です。
自動で測定してくれるため非常に楽です。
「測定」ボタンを押した後に、測定したい項目を選択するだけです。
オシロが波形の周波数(周期)を表示してくれます。
下記記事では交流100Vの周波数・周期を「測定」機能でも確認しています。
よろしければ一緒にご覧ください(リンク先はこちら)

オシロスコープでFFT解析をする
先述した「カーソル」「測定」機能で代表的な周波数は分かります。
更にオシロの「FFT」機能を使うことで、周波数の成分・ピークまで測定すること可能です。
(※FFT…高速フーリエ変換)
オシロのFFT機能で確認
筆者のオシロスコープを例としてFFT機能を紹介します。
(オシロのメーカ・型式で方法が異なるかもしれませんが一例ということでご了承ください)
まず最初に「MATH(演算)」ボタンを押して、MATH機能を選択します。
さらにOperatorで「FFT」を選択して、Operationを「ON」にすればFFTの機能が動作します。
また、FFT以外にもMATH(演算)の機能は多くあります。
2chの信号の計算「+-×÷」なども可能です。
下記記事では2chの信号の差分を出し、RS485の差動信号を確認しています。

ラズベリーパイのGPIOの周波数測定の準備
今回はラズベリーパイのGPIOの周波数をFFTで測定していきます。
Pythonのプログラムや回路図などに関しては下記記事を応用したものです。
よろしければ一緒にご覧ください。(リンク先はこちら)

PythonでGPIOの周波数を変更する
PythonでON/OFFの時間を調整することで簡単に周波数を変更できます。
例えばON/OFF時間を各0.1秒を繰り返すと5Hz(周期0.2秒)の方形波になります。
今回は周波数を5Hz,10Hz,50Hzで測定してみました。
今回使用したプログラムが下記ですが、10数行で指定のGPIOピンの周波数を制御できます。
プログラム内容としては「GPIO17」を「0.1秒間隔」で「ON/OFFを1000回繰り返す」ものです。
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.1) GPIO.output(17, False) time.sleep(0.1) GPIO.cleanup() |
周波数を測定した回路
回路は非常に簡単です。ラズパイの出力するGPIOに抵抗とLEDを接続しただけです。
出力とGND箇所にオシロのプローブを接続して周波数測定を行います。
ラズベリーパイ(raspberry pi)とLED・抵抗はブレッドボード上の接続できます。
プローブでリード線の足を掴めば測定できます。
ブレッドボードや抵抗に関しては下記記事で紹介しています。
よろしければ一緒にご覧ください。(リンク先はこちら)

オシロスコープのFFTで周波数解析
オシロスコープのFFT機能で方形波を周波数解析をしていきます。
冒頭でも紹介したように解説を加えた動画を下記Youtubeにアップしています。
是非一緒にご覧ください。
5Hzの方形波をFFT解析してみる
最初にON/OFF時間が各0.1秒の5Hz(周期0.2s)の方形波を確認します。
5HzだとLEDの点滅具合がしっかり確認できます。
測定した波形が下記となります。無事5HzをFFT解析できました
今回はDuty比50%の方形波のため5Hzのピーク以外にも奇数次の高調波も確認できました。
5Hz以外にも15Hz,25Hz.35Hz…もFFTの解析結果から確認できています。
10Hzの方形波をFFT解析してみる
次にON/OFF時間が各0.05秒の10Hz(周期0.1s)の方形波を確認します。
10Hzの方形波のFFT解析が下記結果です。
10Hzのピーク以外にも30Hz,50Hzの奇数次の高調波が確認できました。
50Hzの方形波をFFT解析してみる
最後にON/OFF時間が各0.01秒の50Hz(周期0.02s)の方形波を確認します。
50Hzの場合はLEDが常時点灯しているように見えます。
(人間の目では点滅具合の確認が難しいだけで、しっかりON/OFFはされています)
50Hzの方形波のFFT解析が下記結果です。50Hzのピークを確認できました。
今回の測定範囲に入っていないだけで150Hz,250Hzといった奇数次の高調波もいるはずです。
まとめ
今回はオシロスコープの周波数測定に関して紹介させていただきました。
記事をまとめますと下記になります。
RIGOL DS1054Zは周波数の測定・FFT解析が十分に可能です。
コストパフォーマンス込みで非常に優秀なオシロスコープです。
下記記事でも紹介していますので、よろしければご覧ください。(リンク先はこちらから)

コメント