This free online oscilloscope, signal generator and spectrum analyzer runs in your web browser. Generate a sine, square, triangle or sawtooth wave, or switch to your microphone, then view the signal as a waveform (time domain) or as a spectrum (frequency domain). Turn the rounded knobs to change frequency, amplitude, time per division and volts per division, and read the measured frequency, period, peak-to-peak voltage and RMS voltage below the screen.
Tip: drag a knob up or down, use the mouse wheel while it is selected, or use the arrow keys. Double-click a knob to reset it.
What you can do with this tool
- Oscilloscope: see sine, square, triangle and sawtooth waves in the time domain, with time/div, volts/div and a rising-edge trigger.
- Signal generator: set the frequency from 20 Hz to 20 kHz and the peak amplitude from 0 to 1 V (normalised).
- Spectrum analyzer: see an FFT of the signal on a logarithmic frequency axis from 20 Hz to 20 kHz, with the peak frequency and level read out in dBFS.
- Microphone input: look at real sounds such as a whistle, tuning fork or musical note. Audio is processed in your browser and is not uploaded.
How to use the online oscilloscope
- Press ON / OFF. Pick a Source: one of the four generator waveforms, or Microphone.
- Turn Frequency and Amplitude to set the generated signal. With the microphone selected, the Amplitude knob becomes the input gain.
- Turn Time / div until one or two cycles fill the screen, and Volts / div until the wave fits vertically.
- Keep Trigger on for a steady trace. Press Hold to freeze the screen and count divisions.
- Click Spectrum analyzer to see which frequencies are present in the signal.
Reading frequency and voltage on the oscilloscope
Count the grid divisions and multiply by the knob setting:
- Period T = (divisions per cycle) x (Time/div). Frequency f = 1 / T.
- Peak-to-peak voltage Vpp = (divisions from bottom to top) x (Volts/div). The peak voltage is half of Vpp.
- The readouts under the screen calculate the same values from the signal so you can check your own reading.
How the spectrum analyzer works
A spectrum analyzer uses a Fast Fourier Transform (FFT) to split a signal into its frequency components. A pure sine wave shows one peak at its frequency. Square, triangle and sawtooth waves show a peak at the fundamental frequency plus peaks at its harmonics (multiples of that frequency). The vertical axis is in dBFS, where a full-scale sine wave reads 0 dB, and each 20 dB step is a factor of 10 in amplitude. The horizontal axis is logarithmic, so each octave takes the same width.
Waveform formulas and harmonics
For a wave with peak amplitude A and frequency f (period T = 1/f), the ideal values are:
| Waveform | Equation or shape | RMS (ideal) | Harmonics (relative to fundamental) |
|---|---|---|---|
| Sine | y(t) = A sin(2πft) | A / √2 = 0.707 A | None |
| Square | +A for half of T, -A for the other half | A | Odd only, amplitude 1/n: 3rd = -9.5 dB, 5th = -14.0 dB, 7th = -16.9 dB |
| Triangle | Ramps from -A to +A and back | A / √3 = 0.577 A | Odd only, amplitude 1/n²: 3rd = -19.1 dB, 5th = -28.0 dB |
| Sawtooth | Ramps from -A to +A, then drops | A / √3 = 0.577 A | All harmonics, amplitude 1/n: 2nd = -6.0 dB, 3rd = -9.5 dB |
Worked examples
1. Reading a sine wave. Set Source = Sine, Frequency = 1 kHz, Amplitude = 0.5 V, Time/div = 0.2 ms and Volts/div = 0.2 V. The period is 1 ms, which is 1 ms / 0.2 ms = 5 divisions per cycle. Vpp = 2 x 0.5 V = 1.0 V, which is 5 divisions from bottom to top. The Vrms readout is 0.5 / √2 = 0.354 V.
2. Harmonics of a square wave. Set Source = Square and Frequency = 1 kHz, then open the spectrum analyzer. You should see the fundamental at 1 kHz and smaller peaks at 3 kHz, 5 kHz and 7 kHz, about 9.5 dB, 14 dB and 17 dB below the fundamental. There are no even harmonics.
3. Finding the pitch of a sound. Choose Microphone, allow access, and whistle or play a note. In the spectrum view the tallest peak is the pitch. The note A4 shows a peak near 440 Hz.
Limits of this tool
- The scale is normalised. 1.0 on the voltage scale is full scale, not a calibrated volt, and dBFS is not sound pressure level.
- The generator covers 20 Hz to 20 kHz and is limited by your browser sample rate (usually 44.1 or 48 kHz). Everything above half that rate cannot be shown.
- Browsers make square, triangle and sawtooth waves band-limited, so edges show small ripples and high harmonics are weaker than ideal.
- The microphone input depends on your device. Phones and laptops may filter low frequencies, so do not use it for precise measurement.
- It does not replace a real oscilloscope for probing circuits.
Frequently asked questions
Is this a real oscilloscope?
No. It is a software oscilloscope that draws the generated waveform, or your microphone signal, on a scope-style screen. It is designed for learning how frequency, amplitude, time/div, volts/div and triggering work.
Is my microphone audio uploaded or recorded?
No. The microphone signal is analysed inside your browser and is not sent to any server. Your browser will ask for permission first, and you can block it at any time.
Why does the spectrum of a square wave show many peaks?
A square wave is made of a fundamental plus odd harmonics. Each peak is one of these components, and its height falls as 1/n.
Why is my waveform not steady?
Turn Trigger on, so each sweep starts at the same point of the wave, or press Hold to freeze the display.
What is the maximum frequency?
The generator goes up to 20 kHz. What you can see also depends on the Time/div setting and your browser sample rate.
Why do I hear a sound?
The generated wave is also sent to your speakers at a low level. Untick "Speaker sound" to see it silently. The microphone is never played back, to avoid feedback.
Why does the microphone show 50 or 60 Hz?
Mains hum from nearby electronics and wiring is often picked up. It shows as a peak at your mains frequency and its harmonics.