Horn Loudspeaker Simulation part 2: Adding a Driver
In Part 1 we simulated the radiation impedance and horn throat impedance. To make a complete horn speaker, we need to add a driver, a rear chamber and a front chamber. Let's first look at the driver and how we can simulate it.
Moving Coil Driver
I will not go into much theory here, it is covered in the book. But let's have a quick look at the equivalent circuit of a moving coil driver, below.

From left to right, we have the input voltage to the driver, e_g, electrical impedance simulated by Re and Le, the electromechanical coupling Bl, mechanical losses represented by Rms, moving mass (excluding air mass) Mmd, suspension compliance Cms, and the diaphragm area Sd, coupling the mechanical and acoustical domains. Finally, we have Za, the acoustical load. Having three domains it a bit inconvenient, so we can convert everything to the acoustical domain, for instance:

In the end, we want to calculate the equivalent Thevenin source driving the acoustic load:

I will show how to calculate ps and Zs in the code. It can be done in several ways, one way involves T-matrices, but I'll show a method that hopefully is easier to follow.
|
% Define frequency range % Define driver parameters (MKS units) % Define input voltage %% Calculations % Driver calculations % 2. Calculate total mechanical impedance % 3. Calculate total acoustical source impedance |
Horn Loudspeaker
A simple front-loaded horn has a front chamber and a rear chamber.

The acoustical equivalent schematic for this configuration is similar to the driver equivalent above, with the front and rear chambers added as acoustic compliances.

Cab is the rear chamber compliance, and Caf is the front chamber compliance. Zal is the throat impedance of the horn. The compliance of an air volume is
![]()
The impedance of a compliance is
![]()
The acoustic load is the horn throat impedance Zal in parallel with the impedance of Caf, and this combination in series again with the impedance of Cab. We need to know the volume velocity into this load, which we can use to find the pressure at the horn throat, which again enables us to find the volume velocity into the throat, and from there we find the power radiated by the horn (assuming the horn is lossless). So, step by step: The front load is
![]()
The rear load is just the impedance of Cab, so the total acoustic load is
![]()
The volume velocity is
![]()
From this we find the pressure at the horn throat as the pressure across Z_f
![]()
And we find the throat volume velocity from that:
![]()
This is all basic application of Ohm's law for acoustical impedances. Finally we find the acoustical power into the horn:
![]()
In code, the calculations look like this:
| % 4. Calculate the acoustic source pressure
ps = eg*Bl ./ (Sd * Ze); % Front and rear chamber calculations % Calculate radiation impedance % Calculate horn matrix % Calculate and normalize throat impedance % Total load impedance % Volume velocity into the load % Power into the load |
We can now convert power to pressure by assuming that all the power is radiated into the 2pi hemisphere we assumed when calculating the radiation impedance.
![]()
![]()
![]()
This gives the SPL response at the 1m referene distance. Below I have plotted the SPL response overlaid the response calculated by Hornresp. (A function to import Hornresp data into Matlab is included with the files.)

Since we have the volume velocity from the driver, it's easy to calculate the diaphragm velocity, and from that the diaphargm displacement:
![]()
Below is the displacement plotted against the Hornresp results, again a good match.

Finding the electrical impedance is a bit more involved, we basically work our way back from the acooustical load impedance, convert it to mechanical impedance, add the mechanical impedance of the moving system, then convert it to electrical impedance, and finally add the blocked impedance from Re and Le.
| Zma = Zal * Sd^2; Zmt = Zma + Zm; Zem = Bl^2 ./ Zmt; Zet = Zem + Ze; |
The resulting electrical impedance is shown below, also comparing

For reference, here is the Hornresp input screen for the above horn. The exported Hornresp record is also included in the files. Note that it must be simulated with the Resonances Masked option (Tools -> Options), since we are simulating with the very simple acoustic compliance model for the front and rear chambers.

The .m files for this post can be found here.