FFT Analysis¶
The FFT Analysis feature provides real-time frequency domain analysis of waveforms. This guide covers how to use FFT analysis in the GUI.
Overview¶
Fast Fourier Transform (FFT) converts time-domain signals to frequency domain, revealing:
- Frequency components
- Harmonic content
- Noise characteristics
- Spectral purity
- Modulation analysis
Key Features¶
- Real-Time FFT: Updates with live view
- Multiple Windows: Hanning, Hamming, Blackman, etc.
- Peak Detection: Automatic peak finding
- Dual Display: Time and frequency domain together
- Export: Save FFT data and plots
- Customizable: Scale, units, and display options
Opening FFT Analysis¶
Using Control Panel¶
- Click FFT tab in left control panel
- FFT panel opens
- Configure settings
- Enable FFT display
Quick Access¶
- Toolbar → FFT button
- Or View menu → FFT Analysis
- Or
Ctrl+Fkeyboard shortcut
FFT Panel Controls¶
Source Channel Selection¶
Select Input Channel:
- Dropdown menu: C1, C2, C3, C4
- Choose channel to analyze
- Can also select Math channels
Requirements:
- Channel must be enabled
- Waveform must be captured
- Sufficient data points
Window Function¶
Purpose: Reduces spectral leakage
Available Windows:
- Rectangular: No windowing, best resolution
- Hanning: General purpose, good for most signals
- Hamming: Similar to Hanning
- Blackman: Low sidelobes, good for weak signals
- Bartlett: Triangular window
- Flat-top: Best for amplitude accuracy
Selection:
When to Use:
- Hanning: Default, good all-around
- Blackman: Finding weak signals near strong ones
- Flat-top: Accurate amplitude measurements
- Rectangular: Maximum frequency resolution
Display Options¶
Magnitude Scale:
- dB (Decibels): Logarithmic scale
- Linear: Linear amplitude scale
Toggle:
Frequency Scale:
- Linear: Equal frequency spacing
- Logarithmic: Equal spacing per decade
Phase Display:
- Displays phase spectrum
- Shows phase angle vs frequency
- Useful for filter analysis
FFT Display¶
Frequency Spectrum View¶
Main Display:
- X-axis: Frequency (Hz, kHz, MHz)
- Y-axis: Magnitude (dB or linear)
- Plot shows spectral content
Features:
- Grid overlay
- Peak markers
- Cursor measurements
- Zoom and pan
Dual View Mode¶
Show both time and frequency domain:
Layout:
┌─────────────────┬─────────────────┐
│ Time Domain │ Frequency │
│ Waveform │ Spectrum (FFT) │
└─────────────────┴─────────────────┘
Enable:
- View menu → Dual View
- Or checkbox in FFT panel
Split View Options¶
Vertical Split:
- Time domain on left
- FFT on right
- Wide format
Horizontal Split:
- Time domain on top
- FFT on bottom
- Tall format
Peak Detection¶
Automatic Peak Finding¶
Enable:
Settings:
- Number of peaks: 1-10
- Minimum height threshold
- Minimum peak separation
Peak Display¶
Peak Table:
Peak | Frequency | Magnitude
-----|--------------|----------
1 | 1.000 kHz | -10.5 dB
2 | 2.000 kHz | -25.3 dB
3 | 3.000 kHz | -35.1 dB
On Plot:
- Markers at peak frequencies
- Labels showing values
- Color-coded
Peak Analysis¶
Fundamental Frequency:
- Highest peak (usually)
- Base frequency of signal
Harmonics:
- Peaks at integer multiples
- 2f, 3f, 4f, etc.
- Indicates distortion
THD (Total Harmonic Distortion):
Where:
- H1 = fundamental
- H2, H3, etc. = harmonics
Live FFT¶
Real-Time Analysis¶
Enable Live View + FFT:
- Start Live View (
Ctrl+L) - Open FFT tab
- FFT updates in real-time
- Watch spectral changes
Frame Rate:
- Depends on FFT size
- Typical: 10-100 updates/sec
- Balances speed vs resolution
Dynamic Range¶
Auto-Scaling:
- Automatically adjusts Y-axis
- Keeps peaks visible
- Adapts to signal changes
Manual Range:
- Set min/max magnitude
- Fixed scale for comparison
- Better for monitoring
FFT Settings¶
FFT Size¶
Number of Points:
- 256, 512, 1024, 2048, 4096, 8192
- More points = better frequency resolution
- Fewer points = faster updates
Trade-offs:
Larger FFT:
✓ Better frequency resolution
✗ Slower computation
✗ Less time resolution
Smaller FFT:
✓ Faster updates
✓ Better time resolution
✗ Coarser frequency resolution
Frequency Range¶
Nyquist Limit:
Example:
- Sample rate: 1 GSa/s
- Max frequency: 500 MHz
Display Range:
- Full range: DC to Nyquist
- Custom range: Zoom to region of interest
Averaging¶
Enable Averaging:
Benefits:
- Reduces noise
- Smooths spectrum
- Better for weak signals
Types:
- Linear: Simple average
- Exponential: Weighted average, more recent data
Measurement Cursors¶
Frequency Cursors¶
Add Cursors:
- Right-click FFT display
- Select "Add Frequency Cursor"
- Or use cursor panel
Features:
- Measure specific frequencies
- Read magnitude at cursor
- Delta between cursors
Example:
Peak Markers¶
Auto-Markers:
- Automatically placed at peaks
- Track peak movement
- Show frequency and level
Manual Markers:
- Place at any frequency
- Measure harmonics
- Compare levels
Exporting FFT Data¶
Export Spectrum¶
File Formats:
- CSV: Frequency, magnitude, phase
- NPZ: NumPy format with metadata
- MAT: MATLAB format
To Export:
- FFT tab → Export button
- Choose format
- Select file location
- Save
CSV Format:
Frequency (Hz), Magnitude (dB), Phase (rad)
0.00, -80.5, 0.0
100.00, -65.2, 0.52
200.00, -55.1, 1.04
...
Export Plot¶
Save Image:
- PNG, PDF, SVG formats
- High resolution
- Include or exclude annotations
To Export:
- Right-click FFT display
- "Export Image"
- Choose format and settings
- Save
Applications¶
Frequency Measurement¶
Measure Signal Frequency:
- Capture waveform
- Enable FFT
- Enable peak detection
- Read fundamental frequency
Accuracy:
- Limited by FFT resolution
- Resolution = Sample Rate / FFT Size
- Example: 1 GSa/s / 8192 = 122 kHz resolution
Harmonic Analysis¶
Identify Harmonics:
- Look for peaks at multiples of fundamental
- Measure harmonic levels
- Calculate THD
Example:
Fundamental (f₀): 1.00 kHz @ -10 dB
2nd Harmonic (2f₀): 2.00 kHz @ -30 dB
3rd Harmonic (3f₀): 3.00 kHz @ -40 dB
Noise Analysis¶
Measure Noise Floor:
- Capture signal
- Enable FFT
- Look at regions without peaks
- Noise floor = baseline level
Signal-to-Noise Ratio:
Example:
- Peak: -10 dB
- Noise floor: -70 dB
- SNR: 60 dB
Modulation Analysis¶
AM (Amplitude Modulation):
- Carrier frequency peak
- Sidebands at carrier ± modulation frequency
FM (Frequency Modulation):
- Carrier and sidebands
- Sideband spacing = modulation frequency
- Bessel function pattern
Advanced FFT Features¶
Spectrogram View¶
Time-Frequency Display:
- Shows how spectrum changes over time
- Color map: frequency vs time vs magnitude
- Good for transient signals
Enable:
Features:
- Time on X-axis
- Frequency on Y-axis
- Color shows magnitude
- Waterfall effect
Power Spectral Density¶
PSD Mode:
- Power per frequency bin
- Units: V²/Hz or dBm/Hz
- Better for noise analysis
Enable:
Overlap Processing¶
Windowed Overlap:
- Consecutive FFTs overlap
- Smoother spectrum
- Better time resolution
Settings:
- 0%: No overlap
- 50%: Common choice
- 75%: Maximum smoothing
Troubleshooting¶
No FFT Display¶
Problem: FFT panel empty
Solutions:
- Ensure channel is enabled
- Capture waveform first
- Check FFT is enabled (checkbox)
- Verify sufficient data points
Noisy Spectrum¶
Problem: Spectrum very noisy
Solutions:
- Enable averaging
- Increase number of averages
- Use Blackman window
- Check for electromagnetic interference
Poor Frequency Resolution¶
Problem: Can't resolve close frequencies
Solutions:
- Increase FFT size (e.g., 8192 points)
- Use longer capture time
- Use rectangular window for best resolution
- Reduce frequency span (zoom in)
Spectral Leakage¶
Problem: Energy spreading to adjacent bins
Solutions:
- Use windowing function (Hanning, Blackman)
- Increase FFT size
- Adjust sample rate for integer periods
- Use flat-top window for amplitude accuracy
Tips and Best Practices¶
Window Selection¶
!!! tip "Choosing Windows" - General use: Hanning window - Amplitude accuracy: Flat-top window - Weak signals: Blackman window - Best resolution: Rectangular (no window)
FFT Size¶
!!! tip "Optimizing FFT Size" - Larger size: Better frequency resolution - Smaller size: Faster updates, better for live view - Common sizes: 1024, 2048, 4096 - Use power of 2 for fastest computation
Averaging¶
!!! tip "Using Averaging" - Always average for noise reduction - 10-100 averages typical - More averages = smoother spectrum - Exponential averaging for tracking changes
Measurement¶
!!! tip "Accurate Measurements" - Use peak detection for automatic measurement - Cursors for manual measurement - Enable averaging for stability - Check Nyquist limit (max freq = sample rate / 2)
Keyboard Shortcuts¶
| Shortcut | Action |
|---|---|
Ctrl+F |
Open FFT panel |
Ctrl+P |
Toggle peak detection |
Ctrl+A |
Toggle averaging |
Ctrl+D |
Toggle dual view |
Ctrl+E |
Export FFT data |
Example Workflows¶
Example 1: Measure Fundamental Frequency¶
Objective: Accurately measure signal frequency
Steps:
1. Capture waveform (Ctrl+C)
2. Open FFT tab
3. Select source channel
4. Enable peak detection
5. Read fundamental frequency from peak table
Result: f₀ = 1.0234 kHz
Example 2: Analyze Harmonics¶
Objective: Measure harmonic distortion
Steps:
1. Capture waveform
2. Enable FFT with Hanning window
3. Enable peak detection (find 5 peaks)
4. Identify fundamental and harmonics
5. Calculate THD from harmonic levels
Result:
f₀ = 1.00 kHz @ -10 dB (fundamental)
2f₀ = 2.00 kHz @ -35 dB (2nd harmonic)
3f₀ = 3.00 kHz @ -45 dB (3rd harmonic)
THD = 2.8%
Example 3: Find Interference¶
Objective: Identify unwanted frequency components
Steps:
1. Capture signal in FFT mode
2. Use Blackman window (good for weak signals)
3. Enable averaging (100 averages)
4. Look for unexpected peaks
5. Use cursors to measure interference frequency
Result: Interference at 50 Hz (power line)
Next Steps¶
- Visual Measurements - Measure FFT peaks with markers
- User Guide: Advanced Features - Programmatic FFT analysis
- Interface Guide - Learn all GUI controls
- Live View - Real-time FFT updates