When it comes to Digital Signal Processing, successfully creating crossovers can be tricky at first.  Linkwitz-Riley filters have a very important quality that when a highpass and lowpass filter with the same corner frequency are summed, they create a perfectly flat frequency response.   This is a useful quality, but because of how they work, the filters introduce phase shift.  Here I will discuss how to deal with this phase shift, and successfully create N-band crossovers using Linkwitz-Riley filters.

First of all, we need to look at the design of Linkwitz-Riley filters.  They are designed to have an attenuation of -6db at the corner frequency.  This introduces a phase shift of 90 degrees at the corner frequency.

From this point on when I refer to a LPF (Lowpass Filter) or HPF (Highpass Filter) it will be assumed to mean a Linkwitz-Riley filter.

The Base Case: 2-Band

Suppose we want to have two bands that crossover at 1kHz.  This is the simplest crossover we can have.  We create the low band by having a LPF at 1kHz, and the corresponding high band also at 1Khz.  In this case each filter creates a phase shift of 90 degrees at 1khz resulting in a total phase difference of 180 degrees.  In the case of a 2-band crossover, all we have to do is flip the phase of one band which is the equivalent of multiplying by -1.

This is trivial for the 2-band case, but things get more tricky when we add more bands.

Putting your toes in the water: 3-Band

Now suppose we want to split our signal into 3 bands.  As an example we will make the first crossover at 200Hz and the second crossover at 1kHz.  The first thing we will do is create the lower crossover by applying a LPF at 200Hz to the input signal and also a HPF at 200Hz to the input signal.  This is just like the 2-band crossover except we don’t invert the higher band… yet.  We must first split the higher band into two bands by running it through a LPF at 1kHz and also a HPF at 1kHz.  The output of the LPF at 1kHz becomes the mid band and the output of the HPF at 1kHz becomes the high band.  We will need flip the phase of the mid band so that it sums evenly with the low and high bands.

Everything should now sum back to a flat frequency response right?  Not quite.  You may or may not have noticed one small problem.  The mid band and high band experience a phase shift at 1kHz but the low band does not.  Luckily there is a useful filter called an allpass (we will call it APF).  Allpass filters are interesting in that they have a perfectly flat frequency response, but they create a phase shift at the desired frequency.  It just so happens that a second-order APF will create a phase shift of -180 degrees.  By applying an APF at 1kHz to the low band it will put it in phase with the mid and high band.  Now we can sum them all back together and we should have a perfectly flat frequency response.

Getting Fancy: 4-band

For the last example, lets suppose we want to split the signal into 4 bands: One crossover at 200Hz, the second at 1kHz, and the third at 5kHz.  Luckily, not much changes from the 3 band example.  Lets see how it can be done.

The first step is to take the high band from the previous example and split it using a LPF at 5kHz and a HPF at 5kHz.  This will give us the low-mid band and the new high band.  There are two important thing to note here.  The high band and high-mid band are 180 degrees out of phase with each other as a result of the linkwitz-riley filters, and the phase shift that those two bands experienced did not happen to the low or low-mid bands.  So how can we fix this phase craziness?  It’s quite simple actually.  The high band just needs to be inverted by multiplying the input by -1.  The low and low-mid bands each need to go through an APF at 5kHz.  This will introduce the phase shift equivalent to the high-mid and high bands.  Now each band can be summed together to create a perfectly flat frequency response.

End-Game: N-Band

The ultimate goal is to be able to create any number of crossovers as needed.  To do this we just need to realize a couple of rules from the previous two examples.  There are essentially two rules.

Every time you create a new split by passing the highest band through a LPF and HPF at frequency F, all of the bands lower than the input band must be passed through an APF at frequency F to ensure that every band has the same amount of phase shift.

The second rule is that, if you think of the bands being 1, 2, 3, 4, …, N (with 1 being the lowest frequency band and N being the highest frequency band), then the phase of every even band must be inverted.  This should be done last, after all of the filters have been applied.

In Conclusion

Multiband processing can seem a little complex at first, but once you understand how do 3 and 4 band crossovers, the reset will seem trivial.  Any number of crossovers can be created using this method (however the cost in processing power can be very high for anything more than a few bands).  I hope this sheds some light on this subject.  If you have any questions feel free to comment below or send me an email!

Sign up for our newsletter so you dont miss new deals and anouncements!

Please follow and like us:
Categories: AudioDSPProgramming

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Audio

Entropy II Released – VST and AU Plug-in

If you have been using Entropy and enjoy it’s features then I have good news for you.  Entropy II is out!  This version adds many new features such as tempo syncing, feedback filtering, and saturation.  Read more…

Audio

M4 Is Released – VST & AU Plug-in

M4 is finally finished and can now be purchased by heading over to our products page here! http://www.modernmetalproduction.com/products/ If you didn’t see our previous post, let me fill you in. M4 is a Multiband Compressor Read more…

D

Dplug For Developing VST Plugins on Linux

Developing VST Plugins for Linux is something that has always been of great interest to me personally.  There never seemed to be a framework that was easily portable to Linux aside from JUCE.  Why not Read more…