Why not IIR filters + a global phase linearization by FIR

Maybe I was a little unclear. I wanted to say that there is probably not so much to be gained using an 8th order Bessel over using a fourth order one from the rolloff point of view.
In most cases that I have seen, 4th-order rolloff (24dB/octave) is sufficient. But in the case of the Bessel-derived MDS crossover, the motivation for using higher orders is that the approximation of linear phase gets better as the order increases. Bessel filters of order less than 4 actually don't work very well as MDS filters. At 4th-order the performance is just starting to get good. Sixth-order and 8th-order are quite good, and beyond that performance continues to improve but only slightly. I use 8th-order in my own system.
 
No, the Gaussian version uses a true mathematical Gaussian "Bell Curve" in the time domain:

x(t) = [1/(sqrt(2·pi·sigma)]exp[-t²/(2·sigma²)]

This is truncated on both ends when the amplitude falls below some suitably low threshold. The delay in the time domain is only to make the zero-phase Gaussian waveform causal.

The time-domain Gaussian produces another Gaussian in the frequency domain:

X(f) = exp[-½(2·pi·sigma·f)²]

You can rearrange the X(f) equation to solve for the value of sigma that produces X(f) = ½ at the desired value of f, then substitute that into the x(t) equation to create the time-domain impulse response and FIR filter coefficients.
Yes, I get that, but as I'm on MATLAB (and not QSys or thereabouts), I'm not using the FIR method and just happened to start directly from the frequency domain with the -6dB at 100 samples, using 'gausswin()'.

My plots were dB / logarithmic earlier, so maybe you didn't get to see the bell correctly. However, on the crossover graph, I was using a 1381 sample delay. The following is what I get without the delay. Is this the way it's supposed to look ?

Please note that it's not 'Frequency', but sample count.
1673021458680.png
 
Last edited:
Affirmative.
Thank you for confirming that. Since everything is discrete (time, freq), it was easier to get on in the frequency domain with samples disguised as 'frequency'. However, I understand that this is not a "proper" filter, but it gives the idea. Thank you again.
I wanted to say that there is probably not so much to be gained using an 8th order Bessel over using a fourth order one from the rolloff point of view.
I believe you're referring to the roll-off in the transition region for the same cutoff frequency. (Green = 8, Yellow = 4, 100Hz cutoff).

1673024455790.png
 
Just could do with getting a GB_B4x4 working as I think for live sound applications it would be the most useful of them all, manageable amount of delay, lower delay than any FIR that comes even close to the performance, filters steep enough and a solid replacement for the industry standard LR24.
Also free of ringing when not 100% summed in the acoustic domain unlike the LR filters.
I think it is very much you that deserves the congratulations :)
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.
 
So I had to join the party and see if I could build Greg's MDS xover in qsys.
Following along on conversations between you guys, i think i have it working ok.
Biggest issue seems to be I have qsys stock B-T high-passes to work with, that maybe don't match up fully.
(There's also a bewildering set of 4 options for B-T low pass...(no clue on all this B-T stuff)

Anyway, I've also used this as a chance to play around with Open Sound Meter, seeing how it is working for SubSoniks.

Here's measurements using a pair of MDS 8th order B-T high-passes, to make the high-pass, and then the low pass.
OSM Bessel 8th 10th 16th.JPG


There's probably mistakes in my qsys setup, but the delay block timing i needed for 8th order/4th order, matched what Greg says, 9.06ms, in post #273
What bugs me though, is the qsys B-T hpf needed to be at 56 Hz, for the derived lowpass to be -6dB at 100Hz. I was expecting around 76 Hz from posts. (hope that made sense)

I made a delay controller that's adjusts all the delays together, and I just zero in on the delay that makes phase go flat on the cascaded hpf (with constant delay removed)
Works pretty neat, I also tried 10th order (about 20.8ms delay) and 16th order (about 26.7ms) .
Not that much difference from 8th order, other than phase traces improved a bit, and the low-pass gets a little bit steeper. Will post if anyone wants....
 
Sorry, Bessel-Thomson.

Low pass options are:
-3dB cutoff,
natural cutoff
I used -3dB at 56 Hz with 9.06ms single delays, to get xover at -6dB @ 100Hz.

High-pass options, which i understand even less are:
-3dB Flat Group Delay
-3dB Mirror Magnitude
Natural Mirror Magnitude
Natural Phase Match
 
I guess i'll try to find out how qsys low-pass Bessels compare to other dsp's..

Other than the 56Hz question, and smallish realized order differences between traces you guys have posted and what I'm getting, the qsys schematic seems to work fine, for whatever order Bessel low-pass. I see like you say, that odd orders work fine too.

Can the subtractive method work the other way, starting with a high-pass to first derive the low-pass, (and then finally the high-pass) ?
Just curious....
 
Can the subtractive method work the other way, starting with a high-pass to first derive the low-pass, (and then finally the high-pass) ?
Just curious....
Unfortunately, no. A Bessel lowpass filter exhibits "maximally flat delay" at 0 Hz, so the linear-phase portion is right where we need it to be, becoming more nonlinear at frequencies we don't care about. A Bessel highpass filter approaches maximally flat delay at infinite frequency, so the phase response at the relatively low frequencies that we care about, both lowpass and highpass, is nonlinear.
 
Unfortunately, no. A Bessel lowpass filter exhibits "maximally flat delay" at 0 Hz, so the linear-phase portion is right where we need it to be, becoming more nonlinear at frequencies we don't care about. A Bessel highpass filter approaches maximally flat delay at infinite frequency, so the phase response at the relatively low frequencies that we care about, both lowpass and highpass, is nonlinear.
Thank you! How Bessels work is beginning to make some sense .... nice explanation.:)
 
Mr. Berchin, I tried the 4th Bessel-based version of your method. My delay seems to be 222 samples at 48kHz. Am I aligned ?
My formula gives 288 samples for those circumstances. Keep in mind that my formulae are all determined empirically from spot-checks at a few frequencies. So your 100 Hz case may deviate from that number.

The easiest way to determine the correct number of delay samples is to observe the response of the highpass section at some very low frequency like 10Hz. The delay that produces the greatest attenuation at 10Hz is the one to use.