Phase Frequency Analyzer
Live magnitude · phase · group delay from your microphone, computed via FFT. Toggle between wrapped (±180°) and unwrapped phase display, smooth across frames, and capture a snapshot to compare a before/after measurement — drop in an EQ or filter between captures and see exactly how it shifts the phase and group delay.
Reading Phase & Group Delay
This phase frequency analyzer measures the time offset that every frequency in your signal sees as it passes through a system — a speaker, a filter, a room, or a digital signal processor. Phase response and group delay are the key outputs: group delay is the audible consequence of phase shift, telling you how long a wave-packet around each frequency is delayed in seconds (or milliseconds). Together, magnitude and phase fully characterise a linear time-invariant (LTI) system's transfer function. The tool plots all three derived quantities — magnitude (dB), phase (degrees), and group delay (ms) — from a live microphone signal analysed via the FFT, making it practical for real-world audio measurement without any additional software.
Wrapped vs unwrapped
FFT-derived phase is wrapped to ±180° (or ±π radians) because atan2 only produces values in that range. As you scan up the spectrum, the true phase often passes through ±180° boundaries and "wraps" to the other side — producing the saw-tooth look on the wrapped plot. The Unwrap phase toggle detects those jumps (phase discontinuities greater than 180°) and adds or subtracts 360° to subsequent points so the underlying continuous phase trajectory becomes visible. Unwrapped phase is what you need to compute group delay and to compare the phase distortion introduced by different filter topologies.
Group delay = −d(phase) / d(ω)
Group delay is the negative slope of the unwrapped phase curve plotted against angular frequency ω. A flat (constant) phase slope gives flat group delay — meaning all frequencies are delayed by the same amount, which preserves a transient's waveshape. A varying (frequency-dependent) group delay smears transients differently across the spectrum: the high-frequency attack of a snare drum and its low-frequency body arrive at the listener at different times, reducing punch and clarity. Crossover networks and loudspeaker systems are common sources of group delay that audio engineers measure and compensate. You can verify a period–frequency relationship used in this context with the period to frequency converter.
The before/after workflow
Start the mic with a clean broadband signal — pink noise played through your monitors, a logarithmic sine sweep, or a known test track. Click Capture snapshot (A). The current magnitude, phase, and group delay are stored as a yellow dashed overlay on all three plots. Now insert an EQ, crossover, digital filter, or room correction plugin in your signal chain and watch how the live curves move relative to the snapshot. The filter phase response is immediately visible in the phase plot: a minimum-phase EQ will shift phase smoothly without introducing extra delay; a linear-phase EQ will produce constant group delay but possibly with pre-ringing and latency; an analogue-modelled EQ will show its characteristic all-pass phase behaviour around each boosted or cut band.
Why is the phase plot so noisy?
Phase is only well-defined where there's energy. At frequencies with very low magnitude, the bin's complex value is essentially zero plus noise, and its angle (the phase estimate) is random. The Smoothing control applies exponential averaging to the complex spectrum across frames (complex-domain averaging avoids the wraparound artefacts you'd get from averaging phase angles directly). 75 % smoothing is a good default for steady-state signals; for transient material or fast-changing filters, drop it to 30 % so you don't blur rapid phase changes. The FFT window function also matters: a Hann window gives a good balance between spectral leakage suppression and frequency resolution, while a Blackman window further reduces leakage at the cost of slightly wider main lobes.
Why isn't my phase changing when I move my hand?
Phase only changes meaningfully when the spectrum's energy moves between frequency bins, or when something in the signal chain is delaying or spectrally shifting the signal. A steady-state tone has a constant phase per bin. Voice and music have rapidly-varying, mostly noise-like instantaneous phase — phase analysis is most useful with controlled excitation signals (calibrated pink noise, swept sine tones, or impulse responses captured in a system like the FFT frequency analyzer) rather than arbitrary program material.
Frequently Asked Questions
My group-delay plot bounces around wildly. Is that broken?
Why does my microphone need echo cancellation off?
echoCancellation: false, noiseSuppression: false, autoGainControl: false in its getUserMedia constraints to disable them.