analyze_spectrum_polar
Overview
analyze_spectrum_polar performs FFT-based spectrum analysis with polar (phase) visualization. This tool is particularly useful for distinguishing between noise (random phase) and deterministic distortion (coherent phase).
Syntax
from adctoolbox import analyze_spectrum_polar
# Basic usage
result = analyze_spectrum_polar(signal, fs=100e6, show_plot=True)
# With custom parameters
result = analyze_spectrum_polar(signal, fs=100e6, harmonic=5,
window='blackman', nfft=8192)
Parameters
signal(array_like) — Input ADC signalfs(float) — Sampling frequency in Hzharmonic(int, default=9) — Number of harmonics to analyzewindow(str, default=’blackman’) — Window functionnfft(int, optional) — FFT lengthshow_plot(bool, default=False) — Display polar plotax(matplotlib axis, optional) — Axis for plotting
Returns
Dictionary containing spectrum metrics (same as analyze_spectrum) plus:
phase— Phase spectrum in radiansphase_unwrapped— Unwrapped phase for easier analysis
Key Features
Polar visualization: Magnitude vs. phase plot reveals noise vs. distortion
Phase coherence: Deterministic signals have fixed phase, noise has random phase
Memory effects: Phase deviations indicate signal-dependent errors
Use Cases
Distinguish thermal noise from harmonic distortion
Identify memory effects in pipelined ADCs
Analyze settling errors and inter-symbol interference
See Also
analyze_spectrum— Standard spectrum analysis
References
IEEE Std 1241-2010, “IEEE Standard for Terminology and Test Methods for ADCs”