iTranslated by AI
How to Use the KEYSIGHT EDUX1052G Oscilloscope
This article is created for the major experiment (theme: Optoelectronics) for 3rd-year students of the Applied Physics Major, College of Engineering Sciences, University of Tsukuba.
The creator is Hayato Yamamoto (Sekiguchi-Hayada Lab, 1st year Master's program), a TA for the 2025 academic year.
The Markdown version of this article, PDF version of the text, circuit diagrams, and layouts can be viewed on the GitHub below.
The oscilloscope used is the KEYSIGHT EDUX1052G.
The manual can be downloaded from here.
This oscilloscope is an excellent device that, in addition to basic waveform observation, allows for function generator capabilities (waveform generation) and frequency response measurement all in one unit.
Since oscilloscopes from other manufacturers can also be used for measurements in a similar way, I hope you find this useful for your research from next year onwards.
About Probes
Probes are used to establish an electrical connection between the oscilloscope and the object under measurement. Generally, a thin rod-shaped probe is used, but depending on the object or the frequency band being measured, a BNC cable may be connected directly.
Probe Magnification
Probes have a switch to toggle magnification. Usually, 1:1 and 10:1 are available, but in this experiment, let's fundamentally perform measurements at 10:1. The reason is to keep the probe's input impedance as high as possible to minimize the impact on the circuit and signals.
While many oscilloscopes have an input impedance of about 1 MΩ, setting the probe to 10:1 allows the input impedance to be increased tenfold to 10 MΩ. Correspondingly, the signal voltage becomes 1/10th, so it is displayed by amplifying it 10 times inside the oscilloscope.
Oscilloscope Side Settings
First, select the channel for which you want to change the probe magnification. Here, let's select Ch1 as an example.

Method 1 for checking probe magnification
Next, select Probe on the right side of the screen and change the magnification to the same value as the probe.
If you neglect this step, incorrect voltage or gain will be displayed, so be sure to check this as part of the setup.

Method 2 for checking probe magnification
Probe Compensation
An important setting for oscilloscope setup is probe compensation. Capacitance (capacitor components) exists in the cables and the input section of the oscilloscope. If this is not canceled out, the probe itself acts as an LRC filter, preventing accurate measurements.
Therefore, it is necessary to add a series capacitor component to cancel out the capacitance.
Reference Material
Compensation Method
First, connect the probe you want to compensate to the terminals at the bottom of the oscilloscope as shown in the figure.

How to connect the probe
Next, press the selection button for the connected channel and confirm that the button is lit. Then, press the Auto Scale button in the upper right, and a square wave should be displayed. Now the preparation for compensation is complete.

Procedure for probe compensation
The probe is equipped with a compensation trimmer (see figure). By adjusting this, you adjust the series capacitance. Please adjust it so that the edges are at an appropriate angle and an ideal square wave is obtained. Once it is sufficiently adjusted, you are good to go.

Adjusting to the optimal shape
How to Observe Waveforms
I will explain how to observe waveforms, which is the most basic function of an oscilloscope.
First, as a fundamental premise, the horizontal axis (x-axis) represents the time axis, and the vertical axis (y-axis) represents the voltage axis. Think of it as a graph of

Represented by time and voltage axes
How to Adjust Axes
From here, we will adjust the waveform into a shape that is easy to see. As an example, we will use the square wave used for probe compensation. First, press the Auto Scale button, just as we did during compensation. You should see a reasonably organized waveform displayed.

An example of a displayed waveform
Next, suppose you want to see the edge part in more detail. To expand or shrink the voltage axis, adjust the large knob in the center of the control panel (labeled Vertical). Pressing the knob toggles between coarse and fine adjustment modes.
To change the voltage offset (center height), adjust the knob below it with the ▲▼ symbols. Pressing it resets the offset to zero.
Adjustments in the time axis direction are made in the section labeled Horizontal. The large knob on the left is for scaling, and the small knob on the right is for the time offset. Pressing each of them allows for switching modes or resetting the offset, similar to the voltage axis controls.

Adjustment of voltage and time axes
Trigger Settings
The most important setting for mastering an oscilloscope is the trigger. The trigger is a function for stably displaying voltage that varies over time. Without proper trigger settings, the waveform will appear erratic and unstable, making it practically useless for measurement. It is an essential feature for capturing the waveform you want to measure reliably. While there are many modes, here we will focus on the most basic settings for handling low frequencies.
First, although there are several trigger modes, we will use the most common one: the Edge Trigger. Edge triggers can detect either a rising or a falling edge, but it's generally best to select the one that detects a rising edge. Pressing the Trigger button at the far right of the operation panel will display the trigger settings screen. Select Edge for Trigger Type and choose the icon that looks like an upward-facing diode for Slope.

Adjusting the trigger
Next, set the trigger source. This selects the waveform to which the trigger will be applied. In this case, select <span style="color:#FF7C33; ">Ch1</span>. If you are using the built-in function generator for your measurements, you may also select "Wave Gen" as the source.
Finally, adjust the trigger level. By adjusting the knob labeled Trigger at the far right, you will see an orange bar move up and down. This horizontal line is called the trigger level, and only waveforms that cross this voltage will be captured and displayed.
Once the trigger is correctly set, the waveform will be displayed stably.
Measuring Values
There are many times when you want to check the voltage or frequency of the displayed waveform, but reading the scale every time is tedious. Therefore, digital oscilloscopes have functions that display the frequency, period, peak-to-peak voltage, or RMS value.
Pressing the Meas button opens the Measurement mode in the sidebar. From there, select the Source and then the Type. You can fix the display at the bottom by pressing the select knob or Add Measurement. You can add up to five measurement data points.

How to measure waveform characteristics

Characteristics of multiple sources can be viewed simultaneously
Pausing the Waveform Display
To pause the waveform display, press the RUN/STOP button in the upper right. The waveform will then stop, and the button should turn red.
To resume, simply press the RUN/STOP button again.
Frequency Response Analysis (FRA)
FRA (Frequency Response Analyzer) refers to a device that investigates the frequency response of equipment, and this function is implemented in the oscilloscope used in this experiment. By analyzing the frequency characteristics of amplifiers and other devices, it is possible to quantitatively evaluate the frequency range that can be amplified. As an ideal characteristic, it is desirable for it to extend straight from low frequencies to high frequencies. For example, if the frequency response of a headphone amplifier is narrower than the human audible range, the sound may seem muffled or tinny. Also, if it has a characteristic that is strong only in low frequencies, low sounds like bass or bass drums will be emphasized.
Basic Setup
First, open Analyze → Features and select FRA. A graph will then be displayed on the left.

FRA Setup Method 1
Next, attach the probes to the device under test (DUT). Opening Setup will display the directions, so connect them as shown. Specifically, connect GenOut and <span style="color:#FF7C33; ">Ch1</span> to the input, and Ch2 to the output.

FRA Setup Method 2 (Screen displayed when Setup is pressed)
Return to the FRA Setup screen and adjust the parameters for measurement. Enter the lower and upper limits of the frequency you want to measure in Start Freq and Stop Freq. For example, if you want to measure the audible range, around 10 Hz to 20 kHz would be desirable.
Amplitude adjusts the size of the input sine wave. While adjusting it within a range that doesn't clip (distort), keep in mind that if it's too small, noise will become dominant, preventing accurate measurement. Check beforehand what signal level will not clip.
Output Load is fine as 50 Ω for now. Points indicates the number of measurement points; more points allow for more precise measurement, but measurement time will increase accordingly. For the audible range, about 200 to 300 points should be sufficient.
How to Interpret Results
Gain is shown as a <span style="color:#157EFB; ">blue line</span>, and Phase is shown as a <span style="color: red; ">red line</span>. The x-axis is frequency, and the unit for gain is dB, which is a dimensionless quantity represented by

An example of FRA results [Device under test: A DIY guitar effect pedal found at home]
How to Save Results
Refer to the section "How to Save Data" > "Saving FRA Results".
Fast Fourier Transform (FFT)
Fast Fourier Transform (FFT) is an algorithm that efficiently computes the Discrete Fourier Transform on a computer (Wikipedia). It allows you to decompose a measured waveform into its frequency components.
Basic Setup
Invoking FFT is simple. Just press the FFT button at the bottom.
Once pressed, the FFT settings screen will appear. You can adjust the Span to set the width of the frequency range to be displayed, and the Center to set the frequency at the center of the screen.
Note that detailed analysis, such as calculating the distortion rate, is not possible here. If you need more in-depth analysis, please refer to the section "FFT using Python" later in this article.

Example display of FFT results; increasing the time range in this way improves the frequency resolution of the FFT
Techniques for High Resolution
The frequency resolution of an FFT (the measure of how finely frequencies can be separated and analyzed) basically depends on the reciprocal of the analysis time
However, the number of samples (the number of data points analyzed by the FFT) is often fixed for each oscilloscope (for example, a maximum of 50,000 points for the EDUX1052G). If the time window is widened too much, the sampling frequency
For example, in the figure above, when there is 20 ms per grid, the total time window displayed across the screen is 200 ms. Thus, the sampling frequency
In summary, increasing the time window improves frequency resolution, but over-extending it reduces the sampling frequency and lowers the maximum analysis frequency. Conversely, making the time window too small results in coarse frequency resolution, meaning only very high frequencies can be analyzed. When performing an FFT on an oscilloscope, it is important to find a setting that satisfies both the target frequency band and the required resolution by balancing the time window and sampling frequency.
For reference, if the time window is short, the resolution will decrease, and the peak will have long tails, as shown in the image below.

If the waveform display range is narrow, the frequency resolution decreases
FFT using Python
The most straightforward and logical way to obtain the FFT results of a waveform is likely by using Python. Since I have no coding skills at all, I asked ChatGPT to write the code for me through several interactions. The model used was o3-mini-high.
I have prepared two ways to run it: using Google Colab and running it in a local environment.
The method using Google Colab is available here.
If you want to run it in a local environment, please download and use the script from here.
How to Save Data
There are many situations where you may want to save results for data analysis or for your experimental reports. Since this oscilloscope (like most models) allows for recording as well as observation, I encourage you to make use of this feature for more in-depth discussion.
Saving Waveform Data
Before performing any operations on the oscilloscope, first insert a USB flash drive into the USB port on the front panel.
Next, press the Save/Recall button. A screen like the one shown below will appear; select CSV from the Format menu.

How to save waveform data as CSV
You can choose the save directory in Save to. The USB flash drive should be selected by default, so you can generally use it as is.
Additionally, you can set a filename of your choice under File Name.
In Settings, you can adjust the number of samples to be recorded. If you intend to perform an FFT based on the recorded waveform, setting this to the maximum of 50,000 will help extend the Nyquist frequency, allowing for FFT analysis across a wider range of frequencies (don't forget to widen the time window as well).
Finally, press Press to Save to save the results to the USB flash drive. Note that a larger number of samples will result in a longer saving time.
Furthermore, if you record a waveform while the oscilloscope's FFT function is active, the FFT results will be included in the CSV file following the waveform data.
If you wish to save waveform data using the same settings in the future, it is convenient to use the Save to USB button on the right side of the operation panel, which allows for instant saving.

Quick saving with the same settings by pressing "Save to USB"
Saving FRA Results
First, insert a USB flash drive just as you did when saving waveforms, and then select FRA data from the Format menu (see the figure below).

How to save FRA results
[Appendix A] Running Python Scripts on Google Colab
Overview of Procedures
- Access the page where the script is located
- Save a copy to your own account
- Configure user setting parameters
- Execute the script
- Upload the file using the file selection button at the end of the code
- Check the results
Detailed Procedures
1. Access the page where the script is located
- Click the link below to access the Google Colab page where the script is hosted.
2. Save a copy to your own account
- Once the page is displayed, select "File" → "Save a copy in Drive" from the top-left menu.
- The copied file will be saved in the "Colab Notebooks" folder within your Google Drive.
3. Configure user setting parameters
- After opening the copied script, configure the user setting parameters described in each cell according to your environment.
*Detailed explanations of parameters are omitted here. Just perform the necessary settings.
4. Execute the script
- Select "Run all" from the "Runtime" menu at the top of the screen, or click the play button on the left side of each cell to execute them sequentially.
5. Upload files
- Scroll down to the "Choose Files" button at the end of the script.
- Click the button and select the file you want to upload.
6. Check the results
- After uploading the file, the execution results of the script will be displayed below.
[Appendix B] Python Script and its Explanation
The script can be downloaded from GitHub.
What it can do
-
Waveform Plotting
- Raw measurement data (original mode): Plots the acquired waveform data as is.
- Averaged waveform (averaged mode): Extracts each period based on the fundamental frequency and plots the averaged waveform.
-
FFT Analysis
- Analyzes the frequency components of the measured waveform and displays them in an FFT graph.
- Performs detection of the fundamental frequency, evaluation of harmonic components, and calculation of THD (Total Harmonic Distortion).
- It is also possible to export FFT results to a CSV file if necessary.
1. How to Use
1.1 Preparing CSV Files
-
File Format:
- Optimized for using CSV data exported from Keysight oscilloscopes. Therefore, the first two lines of the CSV file are skipped as headers.
1.2 Executing the Script
- When you run the script, a Tkinter file selection dialog will appear.
- Select the target CSV file.
- After loading the file, the script automatically performs waveform plotting and FFT analysis, then displays the graphs.
- Waveform statistics (max, min, peak-to-peak, DC component) and FFT analysis results (fundamental frequency, harmonic ratios, noise floor, THD, etc.) will be output to the console.
1.3 Changing User Setting Parameters
- You can change settings such as the following in the "User-configurable parameters" section at the beginning of the script:
-
Waveform Plotting Mode:
WAVEFORM_PLOT_MODE-
"original": Plots raw measurement data. -
"averaged": Plots a waveform averaged based on the fundamental frequency.-
num_cycles_user: Number of cycles of data to be averaged.
-
-
-
Graph Axis Settings:
- Select
"manual"or"auto"for the display range of the x-axis and y-axis of the waveform and FFT graphs. - In manual mode, you can set them manually using
MANUAL_WAVEFORM_XLIM,MANUAL_FFT_XLIM, andMANUAL_FFT_YLIM.
- Select
-
FFT Analysis Settings:
- Type of window function (e.g.,
"hann","hamming","rectangular", etc.). - Maximum display order of harmonics (
MAX_HARMONIC_ORDER). - CSV output of FFT results (
Export_FFT_Result). - Filter settings applied before FFT analysis (
min_freq_temp,max_freq_temp).
- Type of window function (e.g.,
-
Waveform Plotting Mode:
2. Script Operation Details
2.1 Imported Modules
- numpy: Used for numerical calculations and FFT analysis.
- matplotlib: Used for graph display of waveforms and FFT results.
- tkinter: Used for displaying the file selection dialog.
- math, os, csv: Used for auxiliary calculations, file operations, and CSV output.
2.2 User Setting Parameters
- Parameters that users can change according to their environment are listed at the beginning of the script. Examples include waveform display mode, automatic/manual setting of graph axes, selection of FFT window functions, and filter settings (high-pass/low-pass frequencies).
2.3 Helper Functions
-
format_frequency(freq)
Converts frequency values into a string format: "xxx.xx Hz" for values under 1000 Hz, and "x.xxxx kHz" for 1000 Hz or more. -
fft_tick_formatter(x, pos)
Formats the x-axis ticks of the FFT graph into numeric or "k" notation (e.g., 100, 500, 1k, 5k, etc.). -
generate_fft_ticks(lower, upper)
Lists values like 1×10^n or 5×10^n as ticks within the specified range. The minimum and maximum values are always included. -
ordinal(n)
Returns the English ordinal suffix (st, nd, rd, th) for an integer. Used for displaying harmonic orders and other notations.
2.4 WaveformPlotter Class
This class uses the loaded waveform data to perform the following processes:
-
Constructor (
__init__)
Receives data loaded from the CSV (voltage, time), sampling frequency, filename, file path, etc., and stores them as internal variables. -
plot(mode='original')
Creates a two-row graph window, plotting the waveform on the top row and the FFT analysis results on the bottom row.
Based on themodeargument, it plots either the raw measurement data ("original") or the averaged waveform ("averaged"). -
_print_waveform_statistics(data)
Calculates statistics of the waveform data (maximum, minimum, peak-to-peak value, DC component) and outputs them to the console. -
_get_fundamental_frequency(data, rate)
Performs an FFT to detect the frequency with the largest amplitude within the specified filter range as the fundamental frequency. -
_plot_waveform(ax)
Plots raw waveform data.- The display range of the graph axis (x-axis) is determined according to user settings (manual or auto).
- In some cases, the x-axis display range is automatically set using the fundamental frequency obtained from the FFT analysis.
-
_plot_averaged_waveform(ax)
Divides the waveform into multiple cycles based on the fundamental frequency and averages them to generate a one-cycle average waveform.- Displays 10 cycles of the averaged waveform concatenated together.
- Also performs phase alignment of the sample data (zero-crossing detection near the DC value).
-
_plot_fft(ax)
Executes FFT analysis and plots the results on a logarithmic scale (dB display).- Applies the selected window function for FFT analysis, taking into account constraints such as FFT resolution and the Nyquist frequency.
- Calculates and outputs the fundamental frequency, amplitude of each harmonic, noise floor, and THD (Total Harmonic Distortion).
- Includes a feature to export FFT analysis results to a CSV file if necessary.
- The x-axis of the FFT graph is on a logarithmic scale, with automatic adjustment of tick generation and formatting.
2.5 main Function
-
main()
- Displays a file selection dialog using Tkinter for the user to select a CSV file.
- Reads time (seconds) and voltage data from the selected CSV file and calculates the sampling frequency.
- Converts the time axis units to milliseconds and creates an instance of the
WaveformPlotterclass. - Draws the graphs (waveform and FFT analysis results) in the waveform plotting mode based on user settings.
Discussion