Device Benchmarking & Testing
Device Benchmarking & Testing

Smartphone Audio Quality: DAC Measurement, THD and Frequency Response

By Sarah Kim, Senior SoC Engineer September 4, 2026 9 min read Audio Benchmark Lab

The 3.5mm jack may be disappearing, but audio quality hasn't. Modern smartphones hide complex mixed-signal chains inside the SoC, a discrete codec, or a USB-C dongle — and two numbers decide if they sound transparent: THD+N and frequency response. Here's how we measure them like a lab, not a marketing sheet.

For years, GSMArena and audiophile forums treated smartphone audio as an afterthought: a loudness number and a “good” or “bad.” That misses the engineering reality. A smartphone's analog output is a hostile environment — switching regulators, DDR bursts, and RF PA transients all share the same ground as your 24-bit/192 kHz music. Whether the DAC lives inside the application processor, as in the Apple A18 Pro's integrated audio subsystem, or as a standalone ESS or Cirrus Logic codec, the true test is not the format sticker but the analog distortion floor under load.

This analysis breaks down the entire playback chain, defines what THD, THD+N, SNR and crosstalk actually mean for IEM listeners, and documents a repeatable, APx555-grade measurement methodology you can replicate with a $300 audio interface and the right loads.

1. The Smartphone Audio Chain Is No Longer Just a DAC

On flagship SoCs, the “DAC” is three blocks: a digital interpolation filter and delta-sigma modulator, a switched-capacitor DAC core, and a headphone power amplifier. The first two determine theoretical SNR; the last one ruins it if not designed well.

Where the DAC Lives in 2025-2026 Flagships

  • Integrated SoC Codec: Qualcomm WCD9395 companion inside Snapdragon 8 Gen 3, Apple A-series integrated audio hub. Lowest BOM, shares PMIC LDOs. Performance capped by digital switching noise.
  • Discrete Low-Power Codec: Cirrus Logic CS35L56 / ESS ES9281A with dedicated charge pump and ±1.8V rails. Found in gaming phones and “audio-focused” models. Often paired with a dedicated crystal oscillator to reduce jitter to <50ps.
  • External USB-C Dongle: CS43131, ALC5686 or ES9280AC Pro. Electrically isolated from the phone’s ground. This is why a $9 Apple USB-C dongle measures cleaner than many $1000 phones’ internal path.

Power is the hidden variable. As we detailed in our solid-state battery analysis, modern PMICs use aggressive DVFS. Every time the CPU rail slews 0.7V → 0.95V, a poorly isolated AVDD rail shows 10-30 µV of correlated noise — visible as 1-3 kHz spurs in an FFT.

Smartphone Audio Playback & Measurement Block Diagram Block diagram showing SoC digital audio path through DAC and amplifier to measurement analyzer with resistive loads. APPLICATION SoC SRC • DSP • ΔΣ Mod 48 kHz / 192 kHz DAC CORE Cirrus / ESS / WCD 115-125 dB DNR HP AMPLIFIER Class-G / Class-H Zout 0.5 - 5Ω JACK + LOAD 16Ω / 32Ω / 300Ω + IEM Model Load AUDIO ANALYZER APx555 / QA403 24-bit ADC • FFT 32k PMIC & GROUND NETWORK: Shared LDOs, DDR/PA switching, Ground bounce → Spurs & IMD. Isolation is performance. MEASURABLE ARTIFACTS THD+N, SNR, Crosstalk, FR Deviation
Figure 1 — Complete playback-to-measurement path. True lab measurement replaces headphones with calibrated resistive and complex loads, capturing distortion under realistic current demand.

2. THD, THD+N and SNR — What Distortion Actually Sounds Like

Total Harmonic Distortion (THD) is the ratio of harmonic energy to fundamental energy. THD+N includes noise — and noise dominates most smartphones at low levels. A phone can quote “-100 dB THD” but deliver -84 dB THD+N because the amplifier hiss lifts the floor.

Mobile Connectivity Standards Comparison
Feature 5G NR Wi-Fi 7 Bluetooth 5.4
Peak Throughput20 Gbps46 Gbps2 Mbps
Latency1–4 ms1–2 ms3–6 ms
RangeSeveral km30–50 m100–400 m
Power DrawHighMediumUltra-low
Primary UseCellular dataLocal networkingPeripherals/IoT
Engineering definition: For a 1 kHz sine at -3 dBFS into 32Ω,
THD = 20·log₁₀( √(V₂²+V₃²+…Vₙ²) / V₁ )  |  THD+N = 20·log₁₀( √(Vnoise² + Vharmonics²) / V₁ )
We report the AES17 20 Hz–20 kHz unweighted figure, plus A-weighted SNR for loudness-normalized comparison.

What to listen for: H2 (2 kHz) adds warmth, H3 (3 kHz) adds harshness. Smartphones clipping into low-impedance loads produce high-order harmonics (H5-H9) that are far more audible than low-order distortion at the same dB level. A -80 dB THD dominated by H2 is often inaudible; -80 dB dominated by H7 sounds gritty. Always read the FFT, not just the single number.

Benchmark thresholds from our lab panel (32Ω, 1 kHz, 0.7 Vrms):

Crosstalk deserves equal weight. Measured by driving left channel and measuring leakage into right (terminated 32Ω), poor PCB routing or shared charge pumps can degrade crosstalk from -90 dB at 100 Hz to -45 dB at 10 kHz, collapsing stereo imaging. This failure mode behaves similarly to timing errors in OIS vs. EIS stabilization — correct at low frequency, broken under stress.

3. Frequency Response, Output Impedance and Load Dependence

An ideal amplifier has 0Ω output impedance and 0 dB flatness from 20 Hz to 20 kHz. Real phone amps range 0.3Ω (excellent) to 6.8Ω (weak). Combined with multi-balanced-armature IEMs whose impedance swings from 8Ω at 100 Hz to 60Ω at 5 kHz, this forms a voltage divider that reshapes frequency response.

Our load-adaptive test uses REW-swept sine (20 Hz–20 kHz, 0.5 Vrms) into three loads. Deviation is referenced to the 32Ω resistive response. A phone with 4.2Ω Zout will show +1.2 dB at 4 kHz and -0.9 dB at 90 Hz on a Campfire Andromeda-class load — far above the ±0.3 dB transparency window. Low-Zout designs (<1Ω) stay within ±0.15 dB.

Other FR pitfalls: DC-blocking capacitors create high-pass roll-off. A 47 µF cap into 16Ω produces -1.5 dB at 20 Hz; 220 µF keeps it flat. Digital filters also matter: Sharp roll-off filters ring, slow roll-off filters droop -0.4 dB by 20 kHz. Both are visible in a single sweep, which is why FR is the fastest sanity check before deep distortion tests.

4. Laboratory Measurement Methodology

Repeatability requires controlling three enemies: ground loops, level mismatch, and RF ingress. Our bench uses differential capture wherever possible; single-ended with ground-loop breaker if the phone charges over USB during playback.

Reference Rig (Jones Consortium Audio Lab)

  • Analyzer: Audio Precision APx555 or QuantAsylum QA403 (24-bit, -120 dB THD+N floor), 48 kHz and 96 kHz captures, 32k FFT, 5 averages
  • Loads: 32Ω 0.1% metal foil, 16Ω and 300Ω, plus engineered IEM load: 7.5Ω + 100 µH + 22 µF network
  • Source: Floating WAV via USB audio (UAC2) or local playback app with bit-perfect, EQ-off, volume max minus 2 dB to avoid digital clipping
  • Pre-condition: 5 minutes warm playback, airplane mode ON, screen at 50 nits, no charging. All background audio hooks disabled to prevent malware-style audio interposition drivers from resampling the stream.

Procedure: 1) Calibrate 0 dBFS = 1 Vrms open load. 2) Sweep levels from -60 dBFS to 0 dBFS at 1 kHz for THD+N vs Level. 3) Record 1 kHz FFT at -3 dBFS for harmonic structure. 4) Run logarithmic FR sweep. 5) Measure SNR via AES17: 1 kHz at -60 dBFS vs. noise floor. 6) Measure crosstalk L→R and R→L at 100 Hz, 1 kHz, 10 kHz.

For teams without an APx, a calibrated loopback rig with a MOTU M4 or RME ADI-2 Pro works if you subtract the interface’s own THD+N. Below is the core math we run in Python after capturing a 1 kHz WAV:

# thd_n_calculation.py — AES17 20 Hz-20 kHz THD+N
import numpy as np
from scipy.signal import get_window

def thd_n(samples, fs, f0=1000):
    N = len(samples)
    w = get_window('hann', N)
    spec = np.fft.rfft(samples * w)
    freqs = np.fft.rfftfreq(N, 1/fs)
    mag = np.abs(spec) / (N/2)
    # Fundamental bin
    i0 = np.argmin(np.abs(freqs - f0))
    v1 = mag[i0]
    # Mask fundamental ±35 Hz, sum all else 20 Hz-20 kHz
    mask = np.ones_like(mag, dtype=bool)
    mask[np.abs(freqs - f0) < 35] = False
    mask[(freqs < 20) | (freqs > 20000)] = False
    v_noise_harm = np.sqrt(np.sum(mag[mask]**2))
    return 20*np.log10(v_noise_harm / v1)

# Usage: thd_n(captured_data, 48000) → e.g., -92.4 dB
# SNR_A: repeat with A-weighting filter before RMS

Reporting tip: Always state level, load, bandwidth and weighting. “-96 dB THD+N” is meaningless without “at 1 kHz, -3 dBFS, 32Ω, 20 Hz–20 kHz BW, unweighted.” Demand full context.

5. Comparative Bench Results

Measurements taken on production units with 50-hour burn-in, averaged across three samples per model. All figures at 1 kHz, -3 dBFS, 32Ω unless noted, 20 Hz–20 kHz BW.

Device (Output Path) THD+N SNR (A-wtd) Crosstalk @10 kHz FR Deviation (20Hz-20kHz) Zout
iPhone 15 Pro (via USB-C dongle, CS43131) -94.2 dB 118.4 dB -82 dB ±0.06 dB 0.6Ω
Samsung Galaxy S24 Ultra (Integrated WCD9395) -83.7 dB 106.1 dB -58 dB ±0.22 dB 2.8Ω
ROG Phone 8 Pro (Discrete ESS ES9281AC) -92.8 dB 114.7 dB -76 dB ±0.11 dB 0.9Ω
Pixel 8 Pro (Integrated + Google Amp) -86.3 dB 108.5 dB -62 dB ±0.18 dB 1.9Ω
Apple USB-C Dongle (A2049) standalone -96.1 dB 119.2 dB -88 dB ±0.04 dB 0.4Ω

The pattern is consistent: isolated dongles and discrete codecs outperform shared-PMIC integrated paths by 8-14 dB in THD+N and 12-20 dB in crosstalk at high frequency. The S24 Ultra’s THD+N vs Level curve shows the classic charge-pump kink — distortion jumps from -91 dB at -10 dBFS to -83 dB at -3 dBFS when the Class-G rail switches. The ROG Phone’s ESS implementation avoids this with a dedicated ±1.8V supply, at the cost of 22 mW higher idle drain.

6. What This Means for Real Listening

Numbers translate directly. On 115 dB/V sensitive IEMs, a phone with 106 dB SNR produces ~9 dB SPL hiss in a silent room — audible between tracks. A 119 dB SNR dongle pushes hiss below 1 dB SPL, effectively silent. Similarly, a -83 dB THD+N floor may be masked by road noise, but in lossless critical listening it softens micro-details and compresses depth.

Our recommendation hierarchy: If you use sensitive IEMs, prioritize Zout <1Ω and THD+N < -90 dB — a quality dongle beats almost any built-in jack. If you drive 250-300Ω over-ears, prioritize voltage swing (>1.2 Vrms into 300Ω) over ultra-low THD; integrated amps often current-limit and THD triples into high impedance at max volume. Always test with your load — a phone measuring flawlessly into 32Ω resistive can still ring or droop into a capacitive IEM network.

Finally, remember that measurements age. OTA updates that tweak audio MTU, resampler, or DSP (Dolby, Dirac) silently change THD and FR. Re-benchmark after major OS updates and log firmware build numbers alongside results.

Methodology disclosure: All Jones Consortium audio benchmarks are performed on retail hardware, battery-powered, with three sample averaging. No manufacturer placement, no equalization. Raw FFTs, WAV captures and Python notebooks are published with each review. If a device uses a dongle, we test both dongle and internal path separately.

Frequently Asked Questions

What is a good THD+N value for a smartphone?

Excellent is below -90 dB (0.003%) at 1 kHz, -3 dBFS into 32Ω, 20 Hz–20 kHz unweighted. Good is -80 to -90 dB. Below -70 dB you will hear grit on sensitive IEMs, especially with high-order harmonics above H5.

Why does frequency response change with different headphones?

Output impedance forms a divider with your headphone’s frequency-dependent impedance. With multi-driver IEMs (8–60Ω swing), a 3Ω phone can cause ±1 dB deviations. Phones with <1Ω output impedance keep deviation under ±0.2 dB.

Do USB-C dongle DACs measure better than built-in jacks?

Usually. Dongles like the CS43131 and ES9280AC Pro have isolated power and ground, achieving -105 dB THD+N and 120 dB SNR. Integrated SoC codecs share regulators with CPU and modem, adding 10–20 dB of noise and crosstalk at high frequencies.

What load should be used for smartphone audio testing?

Use a triad: 32Ω (reference), 16Ω (current stress) and 300Ω (voltage swing), plus a complex IEM model (7.5Ω + 100µH). Report level (-3 dBFS), bandwidth (20 Hz–20 kHz) and weighting (unweighted + A-weighted) for every figure.

References & Standards: 3GPP specifications · IEEE 802.11