What is the Hilbert Bode transform?

If you browsed the SoundEasy tabs and menus, you have seen Hilbert Bode transform options here and there. Is it really necessary? I’m inclined to say yes, but it depends on what are you trying to do. If you just want to design an enclosure for a subwoofer, there is no need to apply the Hilbert Bode transform. However, if you want to design a passive crossover for a multi-driver loudspeaker, it is mandatory, as it will compensate for potential phase misalignment.

Starting a SoundEasy project

Before we get to the transformation part, we first need to start a project. For the purposes of this article, we will use a 2 way design :

  • Seas CA18RNX mid-woofer. (Amazon affiliate paid link)
  • Vifa XT25TG30-04 tweeter. (Amazon affiliate paid link)
  • 15 liter bass reflex enclosure.
  • 68 mm port (52 Hz tuning frequency).

In conclusion, we need to create 2 driver files : a woofer and a tweeter, with all the specs filled out. This means:

  • Frequency response (amplitude).
  • Impedance.
  • T/S parameters (not all are needed).
  • Hilbert Bode Transform.

hilbert bode transform 4 tabs

Each one of those tabs must be filled with the appropriate information, and then we can save the driver files. Before starting any measurements, please make sure you have correctly set the frequency ranges in preferences. If not, you could have mismatches in frequency ranges when you start the project, and you will have a very bad time. I don’t know why it happens, but this is what worked for me.

Amplitude Model

Measure the frequency response of each in individual speaker. Make sure you mount the speakers in the enclosure, (not half space measurement, or something else).

Since this is a bass reflex enclosure, you will have to do a near-field measurement for the speaker and the port, apply baffle step correction, and finally, a gated far-field measurement. After you are done with all the scaling and splicing (more info here), the end response will not appear in the driver editor. As a result, you need to copy the master buffer to “0” (which is the driver file).

master buffer to driver file

Focusing our attention to the tweeter, you only need to make a far-field gated frequency response measurement, which is automatically plotted in the driver file. I used a 22 μF capacitor, to protect the tweeter when measuring.

T/S parameters

Do the impedance measurements in free-air for each driver, and extract the basic T/S parameters for the mid-bass and the tweeter. Using the added mass method or the box method, find the full T/S parameters of the mid-bass. Concerning the tweeter, you can use the spec sheets to fill the rest of the parameters. More details on T/S parameter extraction here.

Impedance model

We need to override the impedance previously plotted to find the T/S parameters, because we need the impedance of the drivers when they are placed inside the box. The tweeter impedance should look the same, because the tweeter is capsulated. My advice is to not remove the tweeter from the box in the first place, and calculate the T/S parameters with the tweeter mounted to the box. In conclusion, do another impedance measurement for the mid-bass.


Finally, we completed the first 3 tabs of the driver file, now we can move on to the Hilbert Bode transform.

Hilbert Bode transform

What is the point of this transform? The transformation is applied to the frequency + phase response, and the impedance + phase response, and the effects include :

  • Determines the acoustic center of the driver.
  • Calculates minimum phase response for SPL and Impedance.
  • Repairs poorly executed phase measurements.
  • Extends the measured response. For example, we measured 5 Hz – 20 kHz, but our graph is all the way up till 100 kHz.

Amplitude transform

Let’s start with the tweeter. Go to the Hilbert Bode transform tab and click the “Amplitude” and “Phase” buttons right under “SPL Reference”. Now we can see the graphs.

hilbert bode transform amplitude phase

Since the tweeter was measured using a gated method, we know that the response under 200-250 Hz is not valid. The “High-Pass Tail” and the “Low-Pass Tail” mark the start and the end of the measured response. Beyond that, the transform will calculate the rest of the response until it reaches the end of the graph (5 Hz – 100 kHz). We know that our response is accurate 300 Hz – 20 000 Hz. As for the slope, 12 dB / octave seems reasonable. Then, go ahead and click “Amplitude” and “Phase” buttons under  “SPL Hilbert Bode”.

HBT correction

The SPL looks OK, but the phase response is quite off. We need to alter the slopes, until we get the measured phase match the corrected phase. Tinker with the slopes at the best of your abilities :

  • The High-Pass tail Slope modifies the lower part of the phase (at the lower frequencies).
  • The Low-Pass Tail Slope modifies the upper part of the phase (at the higher frequencies).

Do this by trial and error until you find a nice match. Use the “Clear” button if too many plots clutter the graph. I found a nice match at 15 dB slope.

phase adjustment

Below 200 Hz the phase doesn’t match but that is not of concern since it’s not tweeter territory. Now we have to match the upper part of the graph. When I say upper, I’m referring to the upper frequencies. Once again, by trial and error, modify the “Low-Tail Pass” slope, until we get a satisfactory result.

HBT phase match

Finally, the phase matches nicely, which means the Hilbert Bode transform for the tweeter is complete.

Amplitude Hilbert Bode transform for the mid-bass

The process for the mid-bass is similar, but it involves finding the acoustic center of the driver. This corresponds to the position of the voice coil, which is further back (horizontally) than the voice coil position of the tweeter. Following the steps described in the tweeter section, I went ahead and input 25 Hz and 20000 Hz with both 18 db slopes.

mid bass HBT

The result is way off and needs quite a lot of adjustment. One note here : don’t take the 200 – 400 Hz range as any reference, since that is the range were we spliced responses, merged near-field responses, and it’s very prone to error.

mid bass HBT2

After quite some fiddling with the slopes, I was definitely on the right track. But now it’s time to adjust the distance slider. Click the “Include distance in Phase Plots” and set the distance somewhere between 1 cm and 2 cm (or more, depending on the size of the speaker).

mid bass HBT acoustic center

Finally, the two phase responses overlap nicely. Also, we can tell the acoustic center of the driver, which is at 1.1 cm.

Impedance transform

This is done in the exact same way as with the amplitude transform. Instead you use the buttons on the right : Modulus and Phase instead of Amplitude and Phase. I set the tails to 5 Hz and 20 000 Hz. After that, I fiddled with the slopes until the plots overlapped. This is fairly easy and not as tedious as the amplitude part.

HBT impedance

Most likely the Low-Pass tail will have a negative value. Anyway, it shouldn’t take many tries to match the plots.


After finishing with the Hilbert Bode transform for both amplitude and impedance, for both the mid-bass and the tweeter, we need to save the drivers. Go to the T/S Editor and select the driver type (Tweeter / Woofer) and save the file accordingly. These will be used later on when you start a project.


  1. Image source : link.