Why not IIR filters + a global phase linearization by FIR

For the people who are implementing the crossover described in the document attached to message #105, here is the schematic for the optimized version described on the final page of that document.
Hi Greg, i've been trying to build this version as a double check, and maybe 56Hz question solver, vs what I've built.
But I can't reconcile this version to the paper. it appears to me that this version has high and low outputs swapped vs the paper????
 
Here's the 8th Bessel based LPF & derived 2nd HPF that I get. While I'm clearly able to see how the phase alignment gets better with increasing order, my delay seems to happen at 337 samples, which is, once again, equivalent to the 7ms max delay of the Bessel. Please note that I'm simulating only one MDS (12B/octave).


1673116100360.png
 
Mark, are you now ready to answer my question from the other thread...?

"Why not IIR filters + a global phase linearization by FIR"

//
haha... :) not sure if you're joking or not !
Cause Isn't that what i tried to do with the thread opener...and then learned the pre-ring i thought was a problem from doing so, was mainly a measurement issue?

But in fairness to myself, the erroneous case I laid out against IIR filters + global linearization, was aimed at electrical filters only......not a speaker's acoustic output.
For electrical filter's only, sure IIR+linearize if you want (as I learned) .....
.....or make it really easy and just use lin-phase xovers to begin with, if you already have the capability to linearize phase.

For a speaker, I doubt I'll ever get convinced global FIR is a good idea....unless it's a full-ranger. Too much tune to a spot imo.
Driver by driver rules!
 
I agree, congrats and thanks. It's the highest order, flat phase IIR xover, I've seen .....(but i'm a total IIR amateur)

And you make a good point about freedom from potential pre-ring of lin-phase....especially given the inevitable physical separation of subs and mains, in live sound.
(That said though, I've never heard any pre-ring with LR24 lin-phase LR xovers at 100Hz, no matter the physical separation.)

What delay are you getting for the GB 4th? I'm getting a tad over 12ms, on a qsys test rig.
Oh, and with OSM, do you know how to delete all measurements at once? thx.
Looks like I'm a little tied up this weekend but following when I can. Re ringing, I think it's not pre ringing but post ringing, I would think of it along the lines of the difference between a Bessel tuned sealed subwoofer compared to a 4th order Butterworth reflex, the sealed box will not accentuate the cuttoff frequency like the reflex does, now if there was an infra sub, 4th order Butterworth low passed, below the reflex, it should cancel the ringing of the sub as the ringing should be equal but of opposite phase, but only if they are time aligned and of equal level at the measurement location, any deviation from that and one or the other may show ringing to some degree. Now it may be that if they are 180 degrees out of phase, say due to path length difference between them at the crossover point, the ringing would no longer cancel but would be in phase and reinforce. More than happy to be put right on this in the present company:).
Re GB4, I'm getting 12ms but may need to do some more fine tuning.
 

TNT

Member
Joined 2003
Paid Member
haha... :) not sure if you're joking or not !
Cause Isn't that what i tried to do with the thread opener...and then learned the pre-ring i thought was a problem from doing so, was mainly a measurement issue?

But in fairness to myself, the erroneous case I laid out against IIR filters + global linearization, was aimed at electrical filters only......not a speaker's acoustic output.
For electrical filter's only, sure IIR+linearize if you want (as I learned) .....
.....or make it really easy and just use lin-phase xovers to begin with, if you already have the capability to linearize phase.

For a speaker, I doubt I'll ever get convinced global FIR is a good idea....unless it's a full-ranger. Too much tune to a spot imo.
Driver by driver rules!
OK, my intention was not to rub it in. But I think that threads seldom get closure. Now, my question was about... using IIR for XO and EQ - as wild as you need and just dont care about phase - then, when satisfied, you do one (1) global phase as the icing of the cake.

//
 
OK, my intention was not to rub it in. But I think that threads seldom get closure. Now, my question was about... using IIR for XO and EQ - as wild as you need and just dont care about phase - then, when satisfied, you do one (1) global phase as the icing of the cake.
I do apologize for the way that your thread got hijacked. My intent in introducing the linear-phase crossover was to show that there are IIR crossovers available that do not even need that global phase correction. The answer to your specific question, though, may hinge on the amount of phase correction that is required. It can potentially lead to some long FIR or large IIR filters. But I see no obvious reason that it can't be made to work, as long as the phase anomalies aren't too severe.
 
OK, my intention was not to rub it in. But I think that threads seldom get closure. Now, my question was about... using IIR for XO and EQ - as wild as you need and just dont care about phase - then, when satisfied, you do one (1) global phase as the icing of the cake.

//
Thx TNT,
No sir, not the best idea imo.
It's similar to the regions of a completed loudspeaker that are suitable for EQ, like shown in REW's help file on minimum phase.
Same principle for phase. Fixes need to be used where fixes are possible imo.
Which for me building multi-ways means minimum phase EQ's at the driver level, and phase linearization at the xover level.
 
I've never compared the two in any formal sense, but I guess it's not surprising.
Yes, it's kind of intuitive, as the Bessel delay being largely flat, has almost the same value at DC (max value) and at the -6dB point (matching value at crossing).

Now, my question was about... using IIR for XO and EQ

The main difference is that an IIR can give linear phase within the passband (e.g. Bessel) but anyone who wants it outside would need to use FIR and/or suffer longer delay. And since the difference is mainly outside the passband, the variation in performance would depend on the attenuation of the filter.
 
Last edited:
Now, my question was about... using IIR for XO and EQ - as wild as you need and just dont care about phase - then, when satisfied, you do one (1) global phase as the icing of the cake.
The way you have phrased the question seems a bit like "we'll fix that in the mix". That is the part that is less advisable. There is no appreciable difference between an FIR linear phase crossover like mark uses and an IIR equivalent slope crossover "linearized" with an add on FIR filter to flatten the phase / counteract the group delay. If a linear phase crossover is available it makes sense to use it from a simplicity standpoint. But there are occasions like correcting an existing passive loudspeaker where that is not an option.

By only correcting phase and group delay in the speaker crossover what you get at your ears in room at low frequencies is not such a nice response as it is in an electronic transfer function graph. Correcting for changes in that with a sensible and non brute force approach can have just as much (if not more) of an audible impact than the effects of the crossover by itself. A long FIR filter is really the only way to do that electronically, at which point latency and where the filters come in the chain starts to become more irrelevant.
 
The Berchin 8x4 crossover also works as expected, but the crossing has risen from 100Hz to 129Hz, like @SubSoniks was having earlier. It now becomes obvious that scaling the LPF to 77Hz would bring the cutoff back to 100Hz, with an alignment delay of 9.0ms, as was seen in post #289.

Now, I guess the 8th Bessel could be replaced with a Gaussian filter replica to get the "more linear" phase characteristics, as originally intended.
 

Attachments

  • 1673164365001.png
    1673164365001.png
    4.9 KB · Views: 41
Last edited:
Member
Joined 2008
Paid Member
I am following this topic with interest, since I own a Symetrix 8x8 DSP - which allows FIR only with 1024 tap max. With the provided schematic a few posts back, I think it is possible to implement the filter like this in Symetrix:

1673177466298.png


The gains and inversions are hidden in the mixer blocks. I need to try to download it and test if it works like it should. How difficult would it be to implement a full 3 or 4 way crossover for given frequencies? Or would it make better sense to use this for the lowest band only and then FIR above? The lowest crossover frequency in the 3/4 way would be somewhere around 150 - 250 Hz, the next higher one around 600 - 800 Hz and the third point at 3k6 if DCX464 would be used on the horn.
 
I am following this topic with interest, since I own a Symetrix 8x8 DSP - which allows FIR only with 1024 tap max....The lowest crossover frequency in the 3/4 way would be somewhere around 150 - 250 Hz.
I think you might be able to manage a 250Hz Gaussian with 1024 taps. Here's a 1023-point Gaussian FIR for 100Hz if you want to try. I think the delay would then be 512 samples. But I suggest getting the Bessel to work first, as it makes things much easier.
 

Attachments

  • Gauss1023.zip
    3 KB · Views: 36
  • Like
Reactions: 1 user