【KEYSIGHT/EDUX1052G】オシロスコープの使い方
この記事は筑波大学理工学群、応用理工学類応用物理主専攻3年次の専攻実験(テーマ:オプトエレクトロニクス)用に作成しています。
作成者は2025年度TAの山本隼大(関口・早田研、前期博士課程1年)です。
この記事のMarkdownバージョンや、テキストのPDF版、回路図、レイアウトは下のGitHubから閲覧することができます。
使用するオシロスコープはKEYSIGHTのEDUX1052Gです。
マニュアルはここからダウンロードできます。
このオシロスコープは基本的な機能である波形の観察に加えて、ファンクションジェネレータ機能(波形を発生させる機能)や、周波数特性の測定を一台で完結することができる優れものです。
他社製のオシロスコープでも同様の使い方で測定を行うことができるので、是非来年以降の研究でも参考にしていただければと思います。
プローブについて
プローブはオシロスコープと被測定物の電気的接続を取るためのものです。一般的には細長い棒状のものを使いますが、被測定物や測定する周波数帯によってはBNCケーブルなどを直接繋ぐこともあります。
プローブ倍率
プローブには倍率を切り替えるスイッチが付いています。一般的には1:1と10:1の2つが切り替え可能になっていることが多いですが、本実験では10:1を基本として測定を行いましょう。その理由としては、プローブの入力インピーダンスをできるだけ大きくして回路や信号への影響を最小限に留めるためです。
オシロスコープの入力インピーダンスは1MΩ程度のものが多いですが、プローブを10:1にすることで、入力インピーダンスを10倍の10MΩにすることができます。その分、信号の電圧が1/10になってしまうので、オシロスコープ内部で10倍に増幅して表示することになります。
オシロスコープ側の設定
まず、プローブの倍率を変更したいチャンネルを選択します。ここでは例としてCh1を選択します。
プローブの倍率の確認方法その1
次に画面右側のプローブを選択し、倍率をプローブと同様の値に変更します。
この操作を怠ると、誤った電圧やゲインが表示されてしまうため、セットアップの一環として必ず確認するようにしましょう。
プローブの倍率の確認方法その2
プローブの補正
オシロスコープのセットアップとして重要な設定に、プローブの補正があります。ケーブルやオシロスコープの入力部分には容量成分(コンデンサ成分)が存在するため、これを打ち消さないとプローブ自身がLRCフィルタとなってしまい、正しい測定ができません。
そこで、直列にコンデンサ成分を追加して、容量成分を打ち消す必要があります。
参考資料
補正方法
まず、補正したいプローブをオシロスコープ下部にある端子と図のように接続します。
プローブの接続方法
次に接続されているチャンネル選択ボタンを押して、ボタンが点灯していることを確認します。さらに、右上のAuto Scale
ボタンを押すと、矩形波(方形波)が表示されるはずです。これで補正の準備完了です。
プローブ補正の手順
プローブには補正用のトリマーが付いています(図参照)。これを調整することで、直列のコンデンサ容量を調整します。エッジが適切な角度になり、理想的な矩形波が得られるように調整してください。十分に調整できたら問題ありません。
最適な形状に調整する
波形の観察方法
オシロスコープの最も基本的な機能である波形観察の方法について解説します。
まず、大前提として横軸(x軸)方向が時間軸、縦軸(y軸)方向が電圧軸になります。サイン波を印加すれば
時間軸と電圧軸で表される
軸の調整方法
ここからは実際に波形を見やすいい形に調整していきます。例として、プローブの補正に使う矩形波を使います。まず、補正時と同様にAuto Scale
ボタンを押しましょう。そうすると、ある程度整った波形が描画されるはずです。
表示される波形の一例
次に、エッジ部分をもっと詳細に見たいとします。電圧軸を拡大・縮小するときは操作部中央の大きなツマミ(Vertical
と書かれたツマミ)を調整します。ツマミを押し込むと、粗調整モードと微調整モードが切り替わります。
電圧オフセット(中心の高さ)を切り替えたいときは下にある▲▼が書かれたツマミを調整します。押し込むことでオフセットがゼロに戻ります。
時間軸方向の調整はHorizontal
と書いてあるセクションで行います。左の大きいツマミが拡大縮小、右の小さいツマミが時間オフセットです。
それぞれ押し込むことで、電圧軸方向のそれと同様の切り替えやオフセットのリセットが行えます。
電圧軸、時間軸の調整
トリガーの設定
オシロスコープをマスターするうえで、最も重要な設定がトリガーです。トリガーとは時間で変動する電圧を安定的に表示するための機能です。トリガーを適切に設定しないと大きく荒ぶった波形となり、これでは到底測定には役立ちません。測定したい波形を確実に捉えるために必須となる機能であり、多くのモードがありますが、今回は低周波を扱ううえで最も基本的な設定に絞って紹介します。
まず、トリガーモードはいくつかありますが、とりあえず最も一般的なトリガーであるエッジトリガーを用いることにします。エッジトリガーにも立ち上がりを検出するものと立ち下がりを検出するものがありますが、一般的には立ち上がりを検出するものを選択するとよいでしょう。操作パネル右端のTrigger
ボタンを押すとトリガーの設定画面が表示されるので、Trigger Type
にEdge、Slope
に上向きのダイオードのような図を選択します。
トリガーの調整
次に、トリガーのソースを設定します。これはトリガーをかける波形を選択するもので、今回は<span style="color:#FF7C33; ">Ch1</span>を選択します。内蔵のファンクションジェネレータを測定に使っている場合はWave Genをソースに選択してもよいでしょう。
最後に、トリガーレベルを調整します。右端のTrigger
と書かれたツマミを調整することで、オレンジのバーが上下することが確認できます。このオレンジバーの横線をトリガーレベルといい、この電圧を超える波形のみを取り出し、表示することができます。
正しくトリガーを設定すると、波形が安定して表示されます。
各数値を調べる
表示している波形の電圧や周波数を確認したいタイミングは往々にしてありますが、毎度目盛りを読むのは面倒なものです。そのため、デジタルオシロスコープには周波数や周期、電圧の振幅のピーク値や実効値を表示してくれる機能があります。
Meas
ボタンを押すことでサイドバーにMeasurementモードが開きます。そこからSource
を選択し、Type
を選択します。セレクトノブを押し込むか、Add Measurement
を押すことで、下部に固定表示することができます。測定データは最大5個まで追加できます。
波形の特性の測定方法
複数のSourceの特性を同時に見ることができる
波形表示を一時停止する
波形表示を一時停止するには右上のRUN/STOP
ボタンを押します。すると波形が止まり、ボタンが赤くなると思います。
再開するにはもう一度RUN/STOP
ボタンを押せばOKです。
周波数特性分析(FRA)
FRA(Frequency Response Analyzer)は装置の周波数応答を調べる装置を指し、この機能が本実験で用いるオシロスコープでは実装されています。アンプ等の周波数特性を分析することで、増幅可能な周波数レンジを定量的に評価することが可能です。理想的な特性としては低周波まで高周波まで真っ直ぐ伸びていることが望ましいです。例えば、あるヘッドホンアンプの周波数特性が人間の可聴域より狭いと、音が籠もって聞こえたり、キンキンして聞こえることがあります。また、低周波だけ強い特性を持つ場合は、ベースやバスドラムなどの低音が強調されて聞こえます。
基本的なセットアップ
まず、Analyze
→Features
を開き、FRAを選択します。そうすると、左側にグラフが表示されます。
FRAのセットアップ方法①
次に、被測定物にプローブを取り付けていきます。Setupを開くと、ディレクションが表示されるので、このように接続していきます。具体的にはGenOutと<span style="color:#FF7C33; ">Ch1</span>を入力、Ch2を出力に取り付けます。
FRAセットアップ方法②(Setupを押すと表示される画面)
FRA Setupの画面に戻り、測定のためのパラメータを調整していきます。Start Freq
とStop Freq
に測定したい周波数の上限/下限を入力します。例として、可聴帯域を測定したいとするならば10Hz~20kHz程度が望ましいでしょう。
Amplitude
は入力するサイン波の大きさを調整します。クリップ(音割れ)しない範囲で調整しつつ、小さすぎるとノイズの影響が支配的になってしまい、正確な測定ができません。あらかじめどれくらいの大きさの信号ならクリップしないか確認しておきましょう。
Output Load
はとりあえず50Ωで構いません。Points
は測定点数を示し、点数が多いほど精密な測定が期待出来ますが、その分測定時間が長くなります。可聴域程度であれば200~300程度でも十分だと思います。
結果の見方
ゲイン(Gain)
が<span style="color:#157EFB; ">青線</span>、位相(Phase)
が<span style="color: red; ">赤線</span>で表示されています。x軸は周波数で、ゲインの単位はdBで、
FRA結果の一例 [被測定物:家に転がっていたエレキギター用のエフェクター(自作)]
結果の保存方法
『データの保存方法』>『FRA結果を保存する』項を参照。
高速フーリエ変換(FFT)
高速フーリエ変換とは離散フーリエ変換を計算機上で高速に計算するアルゴリズムです(Wikipedia)。測定した波形を周波数成分に分解することができます。
基本的なセットアップ
FFTを呼び出す方法は簡単です。下側にあるFFT
ボタンを押すだけです。
そうするとFFTの設定画面が表示されます。Span
は表示する周波数帯の広さを、Center
は画面中央に位置する周波数を設定することができます。
ただし、歪み率の計算などの細かい分析はできません。詳細な分析が必要な場合は後述の『Pythonを使ってFFTする』項を参照してください。
FFT結果の表示例、このように時間範囲を広げるとFFTの周波数分解能が向上する
高分解能化のテクニック
FFTの周波数分解能(どれくらい細かく周波数を分けて分析できるかという指標)は、基本的に解析時間
しかし、サンプル数(FFTで解析するデータ点の数)はオシロスコープごとに固定されている場合が多く(たとえば、EDUX1052Gの場合は最大50,000点)であり、時間幅を広げすぎると1秒間あたりのサンプル数を示すサンプリング周波数
例えば上の図のように1グリッドあたり20msのとき、画面全体に表示されている時間幅は200msなので、サンプリング周波数
まとめると、時間幅を大きくすると周波数分解能は上がりますが、過度に時間幅を大きくしすぎるとサンプリング周波数が下がり、最大解析周波数が低くなってしまいます。逆に、時間幅を小さくしすぎると周波数分解能が粗くなるため、高すぎる周波数しか解析できなくなる可能性があります。オシロスコープでFFTを行う際は、時間幅、サンプリング周波数のバランスを考えながら、解析したい周波数帯域と分解能の両方を満たす設定を見つけることが大切です。
参考までに、もし時間窓が短い場合、分解能が低下し下画像の様にピークの裾引きが長くなります。
波形の表示範囲が狭いと周波数分解能が低下する
Pythonを使ってFFTする
波形のFFT結果を知るために最も簡単で合理的な方法はPythonを使う方法でしょう。私はコーディングのスキルがまったくないので、ChatGPTとやりとりして書いてもらいました。使用モデルはo3-mini-highです。
Google Colabを利用して実行する方法とローカル環境で実行する方法の二つを用意しました。
Google Colabを用いる方法はこちらから。
ローカル環境で実行したい場合はこちらからスクリプトをダウンロードして利用してください。
データの保存方法
結果の解析や実験レポートのために結果を保存したい場合は多々あります。勿論波形の観察のみではなく、記録も可能な機種がほとんどですから、是非活用してより深い考察をしてほしいです。
波形データを保存する
オシロスコープ側の操作をする前に、まずUSBメモリを前面のUSBポートに差し込みます。
次に、Save/Recallボタンを押します。すると下のような画面が表示されるのでFormatからCSVを選択します。
波形データをCSVで保存する方法
Save to
で保存するディレクトリを選択できます。デフォルトではUSBメモリが選択されていると思いますから、そのままでも問題なく利用できます。
また、File Name
からお好みの名前を設定できます。
Settings
では記録するサンプル数を変更できます。記録した波形を基にFFTをしようと考えている場合は最大の50,000にするとナイキスト周波数を伸ばすことができ、幅広い周波数帯でFFTすることができます(時間範囲を広げるのを忘れずに)。
最後にPress to Save
を押すと、USBメモリに結果が保存されます。サンプル数が多いとその分保存に時間がかかります。
また、オシロスコープ側のFFTが有効な状態で波形を記録すると、CSVファイル内に波形データに続いて、FFT結果も記録されます。
次回から同様の設定で波形データを保存したい場合、操作パネル右側にあるSave to USB
を選択することで一発で保存できるため便利です。
Save to USBを押すことで同様の設定で保存できる
FRA結果を保存する
まず、波形の保存と同様にUSBメモリを差し込み、それからFormat
からFRA dataを選択します(下図参照)
FRA結果を保存する方法
【付録A】Google ColabでPythonスクリプトを実行する
手順概要
- スクリプトがあるページにアクセスする
- 自分のアカウントにコピーを保存する
- ユーザ設定パラメータを設定する
- スクリプトを実行する
- コード末尾のファイル選択ボタンからファイルをアップロードする
- 結果を確認する
手順詳細
1. スクリプトがあるページにアクセスする
- 以下のリンクをクリックして、スクリプトが掲載されているGoogle Colabのページにアクセスしてください。
2. 自分のアカウントにコピーを保存する
- ページが表示されたら、左上のメニューから 「ファイル」 → 「ドライブにコピーを保存」 を選択します。
- コピーされたファイルは、自分のGoogleドライブ内の「Colab Notebooks」フォルダに保存されます。
3. ユーザ設定パラメータを設定する
- コピーしたスクリプトを開いたら、各セル内に記載されているユーザ設定パラメータを、自分の環境に合わせて設定してください。
※ここではパラメータの詳細な説明は省略しています。必要な設定を行うだけで大丈夫です。
4. スクリプトを実行する
- 画面上部の 「ランタイム」 メニューから 「すべてのセルを実行」 を選択するか、各セル左側の再生ボタンをクリックして、順次実行してください。
5. ファイルをアップロードする
- スクリプトの末尾にある 「ファイルを選択」 ボタンまでスクロールします。
- ボタンをクリックして、アップロードしたいファイルを選択してください。
6. 結果を確認する
- ファイルのアップロード後、スクリプトの実行結果が下部に表示されます。
【付録B】Pythonスクリプトとその解説
スクリプトはGitHubからダウンロードして利用してください。
できること
-
波形のプロット
- 生の実測データ(originalモード):取得した波形データをそのままプロット
- 平均化波形(averagedモード):基本周波数に基づき各周期を抽出し、平均化した波形をプロット
-
FFT解析
- 実測波形の周波数成分を解析し、FFTグラフに表示します。
- 基本周波数の検出、高調波成分の評価、THD(全高調波歪み)などの計算を行います。
- 必要に応じてFFT結果をCSVファイルへエクスポートすることも可能です。
1. 使い方
1.1 CSVファイルの準備
-
ファイル形式:
- Keysightのオシロスコープから出力されたCSVデータを利用するための最適化されています。そのため、CSVファイルの最初の2行はヘッダーとしてスキップされます。
1.2 スクリプトの実行
- スクリプトを実行すると、Tkinter のファイル選択ダイアログが表示されます。
- 対象のCSVファイルを選択してください。
- ファイルを読み込んだ後、スクリプトが自動的に波形のプロットとFFT解析を行い、グラフを表示します。
- コンソールには、波形統計情報(最大値、最小値、ピーク・トゥー・ピーク、DC成分)やFFT解析結果(基本周波数、高調波比、ノイズフロア、THDなど)が出力されます。
1.3 ユーザ設定パラメータの変更
- スクリプト冒頭の「User-configurable parameters」部分で、以下のような設定を変更できます。
-
波形描画モード:
WAVEFORM_PLOT_MODE
-
"original"
:生の実測データをプロット -
"averaged"
:基本周波数に基づき平均化した波形をプロット-
num_cycles_user
:平均化するデータの周期数
-
-
-
グラフの軸設定:
- 波形グラフやFFTグラフのx軸、y軸の表示範囲を
"manual"
または"auto"
で選択 - manualモードの場合
MANUAL_WAVEFORM_XLIM
,MANUAL_FFT_XLIM
,MANUAL_FFT_YLIM
で手動設定可能
- 波形グラフやFFTグラフのx軸、y軸の表示範囲を
-
FFT解析に関する設定:
-
窓関数の種類(例:
"hann"
,"hamming"
,"rectangular"
など) - 高調波の最大表示次数(
MAX_HARMONIC_ORDER
) - FFT結果のCSV出力(
Export_FFT_Result
) - FFT解析前に適用されるフィルタの設定(
min_freq_temp
,max_freq_temp
)
-
窓関数の種類(例:
-
波形描画モード:
2. スクリプトの動作内容
2.1 インポートされるモジュール
- numpy:数値計算、FFT解析に使用
- matplotlib:波形およびFFT結果のグラフ表示
- tkinter:ファイル選択ダイアログの表示
- math, os, csv:補助的な計算、ファイル操作、CSV出力に利用
2.2 ユーザ設定パラメータ
- スクリプト冒頭に、ユーザが環境に合わせて変更できるパラメータが列挙されています。
例:波形表示モード、グラフ軸の自動/手動設定、FFTの窓関数の選択、フィルタ設定(ハイパス・ローパスの周波数)など。
2.3 ヘルパー関数群
-
format_frequency(freq)
周波数の値を、1000 Hz未満なら「xxx.xx Hz」、1000 Hz以上なら「x.xxxx kHz」の形式で文字列に変換します。 -
fft_tick_formatter(x, pos)
FFTグラフのx軸の目盛りを、数値または"k"表示に整形します(例:100, 500, 1k, 5kなど)。 -
generate_fft_ticks(lower, upper)
指定範囲内で、1×10^n や 5×10^n の値を目盛りとしてリスト化します。最小値と最大値も必ず含みます。 -
ordinal(n)
整数に対して英語の序数接尾辞(st, nd, rd, th)を返します。高調波の表示などに使用。
2.4 WaveformPlotterクラス
このクラスは、読み込んだ波形データを使って、以下の処理を行います。
-
コンストラクタ (
__init__
)
CSVから読み込んだデータ(電圧、時間)、サンプリング周波数、ファイル名、ファイルパスなどを受け取り、内部変数として保持します。 -
plot(mode='original')
2行のグラフウィンドウを作成し、上段に波形、下段にFFT解析結果を描画します。
引数mode
により、"original"(生データ)または "averaged"(平均化波形)のどちらかの波形をプロットします。 -
_print_waveform_statistics(data)
波形データの統計量(最大値、最小値、ピーク・トゥー・ピーク値、DC成分)を計算し、コンソールに出力します。 -
_get_fundamental_frequency(data, rate)
FFTを実行して、指定したフィルタ範囲内で最も大きな振幅を持つ周波数を基本周波数として検出します。 -
_plot_waveform(ax)
生の波形データをプロットします。- グラフの軸(x軸)の表示範囲は、ユーザ設定(manualかautoか)に従って決定。
- FFT解析から得られた基本周波数を用いて、x軸の表示範囲を自動的に設定する場合もあります。
-
_plot_averaged_waveform(ax)
基本周波数を基に、波形を複数周期に分割し、各周期の波形を平均化して1周期分の平均波形を生成。- 平均化した波形を10周期分連結して表示します。
- サンプルデータの位相合わせ(DC値付近の零交差点検出)も行っています。
-
_plot_fft(ax)
FFT解析を実行し、FFT結果を対数スケール(dB表示)でグラフにプロットします。- 選択した窓関数を適用してFFT解析を行い、FFT分解能やナイキスト周波数の制約を考慮します。
- 基本周波数および各高調波の振幅、ノイズフロア、THD(全高調波歪み)の計算と出力を実施。
- 必要に応じて、FFT解析結果をCSVファイルへエクスポートする機能も備えています。
- FFTグラフのx軸は対数スケールで、目盛りの生成やフォーマットも自動調整されます。
2.5 main関数
-
main()
- Tkinterを使ってファイル選択ダイアログを表示し、ユーザがCSVファイルを選択します。
- 選択したCSVファイルから、時間(秒)と電圧のデータを読み込み、サンプリング周波数を計算します。
- 時間軸の単位をミリ秒に変換し、WaveformPlotterクラスのインスタンスを生成します。
- ユーザ設定に基づいた波形描画モードで、グラフ(波形およびFFT解析結果)を描画します。
Discussion