Skip to content
Technical Documentation

Transfer Function & Coherence

Understand how AudioMap measures system response using dual-channel FFT analysis, H1 estimation, and coherence-weighted processing

What is a Transfer Function?

A transfer function H(f) describes how a system modifies a signal at each frequency. It captures both magnitude changes (how much louder or quieter) and phase shifts (how much the signal is delayed) across the entire audible spectrum.

AudioMap measures the transfer function by comparing what was sent to the speakers (the source signal) with what was received by the microphones (the measured signal), using dual-channel FFT analysis.

The Formula

H(f) = Y(f) × conj(X(f)) / |X(f)|²

Where Y = receiver (microphone), X = source (reference signal)

What You Get

Magnitude Response

How much each frequency is amplified or attenuated by the system. Displayed in dB — the frequency response curve you see in AudioMap's main display.

Phase Response

How much each frequency is delayed (in degrees). Critical for crossover alignment, subwoofer integration, and multi-way speaker systems.

Coherence

How reliably the output relates to the input at each frequency. Values near 1.0 mean the measurement is trustworthy; low values indicate noise, reflections, or nonlinearity.

Measurement Signal Flow

1

Signal Generator

Pink noise output to speakers

2

Reference Capture

Source signal recorded (physical or virtual)

3

Microphone Capture

Room response recorded at mic position

4

Dual-Channel FFT

Both signals transformed to frequency domain

5

H1 Estimation

Transfer function computed with coherence

Technical Specifications

MethodComplex FFT division

SIMD-optimized (4x parallel)

Safe DivisionThreshold: 1e-10

Below threshold defaults to unity

H1 EstimatorWelch method

Power-domain magnitude averaging

Phase Conventionatan2(Im, Re)

Wrapped at ±180°

Data Pipeline3-stage

Raw → temporal averaged → smoothed

Freshness TrackingAtomic counter

uint64 generation counter

H1 Estimator Details

AudioMap uses the H1 estimator, which minimizes noise on the output (microphone) signal. This is the correct choice for acoustic measurements where the noise is predominantly at the receiver.

H1(f) = Gxy(f) / Gxx(f)

Gxy = cross-spectral density, Gxx = source auto-spectral density

Magnitude: Power-domain averaging sqrt(avg(|H|²)) — immune to phase cancellation
Phase: From complex-averaged H1 — preserves true phase relationship
Wavelet TF: CWT, CQT, and Superlet modes support multi-column H1 estimation within each wavelet frame