• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

DSP is bad!

Tasks vary; sometimes an LR24 or LR48 is sufficient to separate the bands in a speaker. Using a subtractive filter on an LR24 results in a phase-linear crossover with no problem of prolonged pre-ringing and very little signal delay. Correction of the frequency response itself can be achieved with simple IIR equalization.

The image below shows a signal from the output of a subtractive crossover implemented using an 8th-order Butterworth filter with a crossover frequency of 3 kHz.

Subtractive B4.png


The signal delay is only 400 µs, and the transition time is approximately 250 µs. This results in a linear phase.
By the way, judging by the measurements in the subtractive crossover there is no need to have a power reserve in each band, which allows for more complete use of the output power without the risk of clipping in the band.

In general, when there is no pressing need for a very steep crossover, a subtractive filter is a very attractive solution for achieving a linear phase in the crossover.
 
Imo, subtractive IIR crossovers are a heck of a lot of work compared to an easy-peasy linear-phase xover.
In Sigma Studio it is done very easily, below is a three-way subtractive crossover LR24, the required delay for this filter to work is only 79 samples.
For LR48 you will need 158 delay samples.
Screenshot_4.png


And this is the resulting step response and impulse of this crossover, the sum of all three bands.


Line.png
 
Last edited:
So for a little more mag ripple, much less heavy-handed time domain correction occurs, with fewer taps.
Like said earlier, my theory is the time domain overcorrection is akin to some kind of residual noise always being applied to signal. But I could be full of shit...

I also want to explore windowing the measurement, to reduce the time window the FIR filter tries to correct, and hopefully put more taps back into play to get back frequency resolution.

Another, hope that all made sense.

Thank you. I wanted to be clear about what you were talking about before responding. You are right, with long FIR filters there is a risk of overcorrection resulting in more ripple. Shorter filters are simply unable to perform that correction, so the risk of overcorrection is limited. I said risk because poor time domain performance (i.e. pre and post ringing) is not necessarily a feature of long FIR filters compared to short. Rather, it is a feature of poor filter design - attempting to correct bad measurements, failure to appropriately window a measurement, or doing stupid things like some of what I have done in the past ;) Using short FIR taps limits you from even attempting those corrections in the first place. A bit like your risk of dying from a 200mph car crash is zero if you drive a 1960 VW Beetle because your vehicle is incapable of reaching those speeds in the first place.

BTW what filter design software are you using?
 
The sad thing is that despite the very high order passive crossovers and very expensive drivers most Gauder loudspeakers have not really smooth responses and also have surprisingly low SPL limits, exemplary:



He had always good connection to the German audio magazines though (I think he even had worked for one in his youth), I remember in an old issue the magazine congratulating him on getting his PhD title. Which shows again that even good education is not a guarantee for people to avoid following wrong paths.
 
In Sigma Studio it is done very easily, below is a three-way subtractive crossover LR24, the required delay for this filter to work is only 79 samples.
For LR48 you will need 158 delay samples.
View attachment 478381

Very nice. I've seen a number of folks having good results with Sigma Studio.
What were the two xover frequencies?

I guess you're familiar with G Gerberchin's papers on subtractive xovers?
Would you attempt a subtractive design for a 5-way?
 
Thank you. I wanted to be clear about what you were talking about before responding. You are right, with long FIR filters there is a risk of overcorrection resulting in more ripple. Shorter filters are simply unable to perform that correction, so the risk of overcorrection is limited. I said risk because poor time domain performance (i.e. pre and post ringing) is not necessarily a feature of long FIR filters compared to short. Rather, it is a feature of poor filter design - attempting to correct bad measurements, failure to appropriately window a measurement, or doing stupid things like some of what I have done in the past ;) Using short FIR taps limits you from even attempting those corrections in the first place. A bit like your risk of dying from a 200mph car crash is zero if you drive a 1960 VW Beetle because your vehicle is incapable of reaching those speeds in the first place.

BTW what filter design software are you using?

Yep. The limited frequency resolution by default avoids overcorrection of magnitude ripple and whatever phase anomalies goes with those corrections, if such amount to anything.
In Acourate, are measurements windowed down to some time interval to exclude reflections from being corrected? Or I guess I should ask how does Acourate apply long filters globally?

The graphs and FIR filters I've been showing in this thread come from Crosslite+. I use it and EclipseAudio's FirDesigner.
CL+ has become my go-to FIR generator because it has an incredibly easy workflow (once its mastered -- not so easy). Ironically, I use FirD for IIR work...it has the best damn auto-IIR I've encountered.
 
First, to ensure uniform cancellation of out-of-phase signals during the transient response, it's necessary to have the same delay from the HF and MF drivers at the listening position. Simply put, it's crucial to align the acoustic centers of the speakers.
I agree but trying to get accurate in room LF measurements for sub to main timing is extremely difficult. I just went through an exercise using 6 different timing measurement methods (2 MSO programs, REW Wavelets, REW delayed impulse response method, REW alignment tool, and "nearfield measurements and a tape measure" and I got 6 different answers and this was with co-located subs and mains which is a best case scenario. DIRAC DLBC and using nearfield measurements and a tape measure gave the same result so I went with that. To me the inherent lack of accuracy of LF in room measurements and their interpretation (align peak, beginning, zero crossing, or ?) is one of the biggest obstacles to good sub alignment and the only real solution is taking everything outside which is not possible in many cases.
 
What were the two xover frequencies?
300Hz and 3kHz.

I guess you're familiar with G Gerberchin's papers on subtractive xovers?
No, I'm not familiar.

Would you attempt a subtractive design for a 5-way?
I don't see any major problems with five bands in terms of implementing a subtractive crossover. I do see many problems later, when mixing these five bands via a microphone.
I don't do more than three way.

I have a client who is building a four-band active speaker using LR24 subtractive crossovers with crossover frequencies of 150Hz, 800Hz, and 4500Hz.

By the way, I'm not against FIR correction and crossover; it's a very convenient tool, especially if you're implementing both frequency response correction and a crossover function simultaneously. I simply pointed out that long FIR filters have a number of characteristics that require certain conditions to be met for a good final result. Also, if signal delay is a very undesirable effect, but linear phase is desired, subtractive crossovers can significantly reduce signal delay with a linear phase. After that, it's up to each individual to decide what's most important for their specific needs.
 
Last edited:
I agree but trying to get accurate in room LF measurements for sub to main timing is extremely difficult.
Yes, it's not easy. The room will affect the measurements...
Try using step response and acoustic sync in REW to synchronize the speaker centers. That is, switch to single-channel measurement mode in REW using acoustic sync to measure the phase of the acoustic signal. Measure the entire bandwidth of all speakers and observe the step response. By varying the delay in the midrange and high frequencies, achieve as consistent a step response front as possible.
степ.pngстеп 2.pngстеп 3.png

This method only works for phase-linear crossovers.
 
Yep. The limited frequency resolution by default avoids overcorrection of magnitude ripple and whatever phase anomalies goes with those corrections, if such amount to anything.
In Acourate, are measurements windowed down to some time interval to exclude reflections from being corrected? Or I guess I should ask how does Acourate apply long filters globally?

Yes, the primary tools are windowing and psychoacoustic smoothing. And you can also do other things if you wish, e.g. exclude correction for certain frequency bands. Or you could apply different windowing for different bands. Or you could take a quasi-anechoic measurement and correct that.

The graphs and FIR filters I've been showing in this thread come from Crosslite+. I use it and EclipseAudio's FirDesigner.
CL+ has become my go-to FIR generator because it has an incredibly easy workflow (once its mastered -- not so easy). Ironically, I use FirD for IIR work...it has the best damn auto-IIR I've encountered.

Haha, of course it's easy once you master it! It's like learning to ride a bike. You'll fall over a few times but once it clicks, there is no problem. I have been looking at FirD a bit lately. After all, the author is Australian.
 
below is a three-way subtractive crossover LR24, the required delay for this filter to work is only 79 samples
At what sample rate?

What I've generally done is use IIR filters to set the magnitude response and then generate an (approximately) allpass FIR filter for time domain correction. It's very simple to generate a phase linearization filter for "textbook" crossovers that sum to allpass: just truncate the impulse response of the equivalent allpass representation at some length that yields acceptable magnitude response ripple and then reverse it in time.

Doing this for your example crossover suggests that the delay is a bit higher than the subtractive filter technique for what I'd consider acceptable ripple, however. A 256-sample filter (delay of 255 samples) at 44.1kHz has a ripple of about ±0.018dB. A 512-sample filter is about ±0.000006dB (for those who like overkill ;)).
 
What I've generally done is use IIR filters to set the magnitude response and then generate an (approximately) allpass FIR filter for time domain correction. It's very simple to generate a phase linearization filter for "textbook" crossovers that sum to allpass: just truncate the impulse response of the equivalent allpass representation at some length that yields acceptable magnitude response ripple and then reverse it in time.
In my humble opinion, this is justified when the speakers have a passive crossover and we want a linear phase. If we initially have an active crossover, I believe it's much more convenient to use a linear-phase crossover, as a flat phase makes it very easy to align the acoustic centers at the listening position based on step response. However, not all DSPs allow the use of a linear crossover, and then, yes, things become more complicated when aligning the bands.
 
Glad bmco asked what sample rate...
i can't help but look to see how simple lin-phase crossovers compare to subtractive, so i was going to ask about sample rate too.

Here's the sample delay, 79 samples @ 48kHz, 24dB/oct lin phase complementary.
Impulse summed, mag summed..
1758920912232.png


And same again , but Step instead of impulse. (i can't show linear-scale impulse and step in same graph with this software)
1758921030544.png



Here' the schematic of the processing flow.
1758921886942.png


Like said, I'm lazy...it works.
 

Attachments

  • 1758921731119.png
    1758921731119.png
    26.3 KB · Views: 20
In my humble opinion, this is justified when the speakers have a passive crossover and we want a linear phase. If we initially have an active crossover, I believe it's much more convenient to use a linear-phase crossover, as a flat phase makes it very easy to align the acoustic centers at the listening position based on step response. However, not all DSPs allow the use of a linear crossover, and then, yes, things become more complicated when aligning the bands.
This makes a ton of sense to me.
I think what bmco might be doing (please correct/elaborate), is just implementing inverse all-pass for the "textbook filters" applied. Which seems valid.
That said, I totally agree best practice is to simply use lin=phase xovers to begin with.


fwiw, I almost never look at step for aligning acoustic centers, which we know is a fixed time adjustment.
For lin-phase work it's easy, just time align the easy to identify impulse peaks.
Bloody awful for min-phase time alignment though...tell me where the hell the impulse starts rising lol, which is what needs fixed time alignment
 
Yes, the primary tools are windowing and psychoacoustic smoothing. And you can also do other things if you wish, e.g. exclude correction for certain frequency bands. Or you could apply different windowing for different bands. Or you could take a quasi-anechoic measurement and correct that.

We are definitely on the same page. As my interest is in speaker building, with little interest in room tuning, I'm sure you can see how I value the best quasi-anechoic tuning I can come up with in DIY fashion. Hence, shorter FIR filters really add to the game, .......when they still can make necessary anechoic corrections.

Haha, of course it's easy once you master it! It's like learning to ride a bike. You'll fall over a few times but once it clicks, there is no problem. I have been looking at FirD a bit lately. After all, the author is Australian.
You aussies rock at audio !...better take a good look lol
 
Here's the sample delay, 79 samples @ 48kHz, 24dB/oct lin phase complementary.
Can you show how the frequency response behaves below -24 dB?

Overall, the result is quite good; I never thought you could get such a frequency response with 79 samples. Your FIR filter synthesis program is excellent.

Below the subtractive LR24 frequency response is down to -50 dB.

Screen.png


fwiw, I almost never look at step for aligning acoustic centers, which we know is a fixed time adjustment.

I use frequency response correction at the listening point taking into account the influence of the room, so the alignment of the acoustic centers of the speakers at the listening point is relevant for me.

For lin-phase work it's easy, just time align the easy to identify impulse peaks.
It is much more convenient for me to focus on the front of the step respos, as I showed earlier, in the pictures of the step everything is very clearly visible.
 
If we initially have an active crossover, I believe it's much more convenient to use a linear-phase crossover, as a flat phase makes it very easy to align the acoustic centers at the listening position based on step response.
IIR + FIR phase linearization is equivalent to pure linear phase FIR for in-phase crossovers (e.g. Linkwitz-Riley). You can get exactly[1] the same step response either way. Some hardware DSP units have significant restrictions on the total number of FIR taps, so using a global phase correction filter at the input along with IIR filters may be the best option in those cases. I use a Raspberry Pi and software DSP so I have no practical limit on the number of taps nor where the filters are applied; I just do things the way I described because I prefer it that way.

Crossover filters for real drivers must be mixed phase if a linear phase acoustic result is desired. Rather than making the driver flat well above/below the crossover frequency and then applying a linear phase filter, I find it easier and more efficient to shape the response to closely match the target slopes using minimum phase IIR filters and then apply a phase linearization filter derived from the idealized target.

Here's an ideal 3-way LR4 (24dB/oct) crossover implemented as IIR + FIR phase linearization (48kHz sample rate, 300Hz and 3kHz crossover frequencies, 256-tap FIR filter):
Magnitude responses (three different zoom levels, with the last one zoomed way in to show the ripple)—
lin_phase_lr4_mag_1.png lin_phase_lr4_mag_2.png lin_phase_lr4_mag_3.png
Impulse (normalized) and step (not normalized) responses—
lin_phase_lr4_impulse.png lin_phase_lr4_step.png

[1]: For the pedants—"exact" in this case really means "arbitrarily close to exact".
 
IIR + FIR phase linearization is equivalent to pure linear phase FIR for in-phase crossovers (e.g. Linkwitz-Riley). You can get exactly[1] the same step response either way. Some hardware DSP units have significant restrictions on the total number of FIR taps, so using a global phase correction filter at the input along with IIR filters may be the best option in those cases.

How do you do that? I am guessing: (1) create IIR XO's (2) sum them (3) extract excess phase (4) design an AP filter that corrects excess phase (5) convolve them to check?
 
How do you do that? I am guessing: (1) create IIR XO's (2) sum them (3) extract excess phase (4) design an AP filter that corrects excess phase (5) convolve them to check?
I use the free, old, and unsupported but still working Dephonica crossover program. You can chose IIR and there is a button to "linearize". Could not be easier.
 
Back
Top Bottom