• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Speaker extended impedance (audio to HF) bench

Yoghourt

Member
Joined
Apr 7, 2026
Messages
12
Likes
5
Hi all,
Here is an open-source python bench to measure speaker impedance extending above audio frequencies. It requires budget hardware only, while keeping high accuracy, and goes up to ~3MHz
Github repository - extended_speaker_impedance

Lately, I got interested in checking effective impedance of a classical speaker (dome tweeter) above audio frequencies till MHz range. As per Vance Dickason book for instance or less old technical/scientific literature, expected voice coil behavior is somewhat non linear inductive and potentially a bit non linear resistive, and some parasitic intercoil capacitance appearing at HF. Ok, but in real life of a real speaker (not a dummy load), what does HF impedance look like?
Since context is not professional-grade lab, what is available to DIYer to do that? Above audio frequencies mean above what REW covers. MHz range means way above audio interfaces. So we're left with more common and rather entry-level hardware equipment : USB scope with native probes, common signal generator. To be of interest (enough freq points, reproducible results, accurate and realiable-enough results), such measure requires bench automation, careful calibration procedure, and proper deemedding of the bench from Zspeaker.

So here it is, as 1 script for single measurement and 1 script for post-processing of calibrations and DUT measurements. It uses :
  • a test fixture with a test resistance, similar to REW impedance measure apparatus.
  • PicoScope 2204A acquisition
  • A >10MHz sine generator (picsoscope 2204A generator is only 100kHz and 2Vp). I borrowed a calibrated one >10MHz allowing 8Vp. Key carac is stability IMHO.
  • frequency log sweep measurement (step by step, not a continuous sweep)
  • FFT-based sub-bin frequency and complex amplitude extraction (need to reject noise & distorsions, and solid FFT sub-bin methodology), with averaging
  • de-embedding of probe mismatch, test fixture effects, and interconnect parasitics
  • final Bode / Nyquist impedance visualization
Of course, bench operates on complex amplitudes throughout the workflow, rather than relying on gain only subtraction. Magnitude-only approaches lead to 40-60dB slopes artefacts from systematic phase errors.

Here is the result with a Cabasse Yawl speaker, starting from 1kHz up to 3MHz. Each run takes 20-30 minutes.
speaker_overview.png

I also add here a photo of the test fixture.
test-fixture (photo).jpg


The bench was checked :
- on 2 dummy loads 50R, against calibrated DC kelvin measure => bench accuracy ~1%, plot provided in the github repository
- against careful calibrated capa measure for open conditions (shown as lines below, with capa impedance capped by fictional R aligned to observed noise floor). In these conditions, Zopen uncertainty (bench noise floor) or LF artifacts are not an issue since HiZ parallel impedance in a freq domain where speaker impedance is much lower hence dominates.
Of course, python development up to final cal+dut measurement set required quite a number of runs, leading to reproducibility verification on the fly.
Even if I made usage of generative IA to draft the python bench and better the output plots info, no blind stuff here : I reworked or at least checked (and often corrected) all the code and formulas.

open_cal_overview.png
On top of the zoomed picture with Nyquist planes, the bench generates the unzoomed spearker impedance w.r.t.bench Zshort and Zopen, allowing to appreciate immediately DUT raw measure (without probes deembedding) w.r.t. bench stand-alone serial impedance Zshort and max reliable resistance/magnitude values that come with Zopen plot.


bench+speaker_overview.png
 
"At the end of the day", The speaker impedance effectively shows non-linear voice coil inductance which seems to linearize above some 100s of kHz, intercoil capa in MHz range.
Variable resistance in midrange would require more understanding. And the surprise Re(Z) roll-off at 130kHz going down to 0 while Im(Z) is inductive and varying at fast on a short freq range.
But that is another story than the bench itself
:) Regards,
Y.
 
My pet bat has just fallen off the ceiling.
And we know physical things with L or C or R can gain different impedances when you go to extreme frequencies, as none are pure reactance or resistances...
 
Sorry for your bat?
Please understand "going to 0" as going underflow. Don't hesitate to get a look at post-processing code and feedback.
 
Point is, what is to be gained at hundreds or thousands of kilohertz?
You bat killer, you... I'm calling the RSPCA.
 
IRL HF electrical load impedance jokes one should expect and cope with.
Purpose is of course not at all about sonic things (anyway my cat did not seem really perturbated, which shows practically that usual dome tweeter efficiency falls "quickly" in ultrasonic).

If I keep with Dickason's book exemple, a number of short claims are made about >audio range (eddy currents, intercoil capa, etc.). Then all the topic get flushed in the toilet by claim "anyway amplifiers work only to 100kHz max". No IRL HF curve is exhibited, no backing article behind those claims. How frustrating. Ok this is not a recent book. In more modern literature? Not better I found. In other words : don't care, don't look, don't ask. Meeeh... How can this be, since modern analog amplifier structure, for instance, works (gain>0dB) easily till 1-10MHz?
If I can measure, then I can appreciate impact either from amplifier or speaker design side. Maybe model it to ease impact analysis if I feel the need to. And either take scientifically oriented steps one-way or another, rather than black-magic-non-portable tweaks.
 
Last edited:
Back
Top Bottom