Perfect Reconstruction 3 Band Filter Bank with JUCE DSP



Hey JUCE Community,
is it possible to create a perfect reconstruction 3 band filter bank with the dsp module of JUCE and if yes can anybody give me an example of how to do it?


Hi! Did you find the answer for this? I’m also looking for more information about it.


Linkwitz Riley Crossover will give best results for 3 band filter. If you do one filter Highpass and one filter Lowpass to create your upper and lower band then literally subtract them from your original source to create your mid band. Then the sum of all three bands will be your original (give or take floating point error). Always done my own implementations but I think it’s a form of butterworth filter,


I am also thinking about creating a plug-in with multiband processing.
What I have figured out so far, is that for a 3-band filter the best approach is to use two linkwitz riley filters (HP1 + LP1) with the same cut-off frequency, so the split the signal perfectly into two bands: both in parallel will act as an All-pass filter AP1. To get a third band, one of the two bands has to be split the same way: two LR filters (HP2 + LP2). For the whole system to act as an all-pass again, the other (non-split) band has to be filtered with the same all-pass (AP2) to make sure the phases match. So here the whole system will introduce some phase shifts (all-pass).

The “1-minus LP + HP” approach will reconstruct your input signal perfectly, however, as LP and HP introduce phase shifts, the mid band might not have a desired frequency response (depending on LP and HP). And using LR LP+HP with different cut-off frequencies, will make you lose that one benefit of LR, which is a perfect frequency response (0dB) at the crossover frequency when using both in parallel.