IIR-based crossover: no thanks! IIR-based crossover: no thanks! - diyAudio
Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

Digital Line Level DACs, Digital Crossovers, Equalizers, etc.

IIR-based crossover: no thanks!
IIR-based crossover: no thanks!
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Thread Tools Search this Thread
Old 29th July 2012, 11:49 PM   #1
steph_tsf is offline steph_tsf  Belgium
diyAudio Member
steph_tsf's Avatar
Join Date: Mar 2008
Default IIR-based crossover: no thanks!


Did you know that a Linkwitz-Riley XO can deliver a perfectly reconstructed phase? From the attached .jpg it gets obvious that we are going to live a few more decades with Linkwitz-Riley crossovers, this time using FIRs.

The 4th-order LR (two cascaded 2nd-order Butterworth) exhibits a fair low amount of preshoot and ringing.

The phase and the amplitude are perfectly reconstructed, when adding the lowpass and the highpass.

This is something an analog Linkwitz-Riley XO cannot do.
This is something a digital IIR-based Linkwitz-Riley XO cannot do.

I went on www.linkwitzlab.com
Over there I have not found such FIR-based Linkwitz-Riley. Can somebody explain this to me? Where is it located?

Such FIR-based Linkwitz-Riley is easy to obtain.
You decide how many taps your FIR will be (101 taps in our case).
You decide about the sampling frequency (48 kHz) and the -3dB lowpass frequency (3400 Hz).

You apply the module function of the Butterworth lowpass, in function of the frequency.

You cascade two such module functions.

Code is here:

If Me.Lowpass_List.SelectedIndex = 7 Then 'Butterworth

Me.F_Label.Text = "F-3dB(Hz)"
Me.Order_List.Enabled = True
Me.Double_Box.Enabled = True

If Me.Order_List.SelectedIndex = 1 Then
n0 = 1
d0 = 1
d2 = 0
d4 = 1
d6 = 0
d8 = 0
d10 = 0
d12 = 0
End If

For i = 0 To N
F = FS * (i / N)
Fr = F / Fcut
GAIN(i) = n0 / ((d0 + d2 * Fr ^ 2 + d4 * Fr ^ 4 + d6 * Fr ^ 6 + d8 * Fr ^ 8 + d10 * Fr ^ 10 + d12 * Fr ^ 12)) ^ 0.5
If Me.Double_Box.Checked = True Then GAIN(i) = GAIN(i) * GAIN(i)
PHASE(i) = 2 * Math.PI * (MID * i / N) 'take FIR delay in account for the phase

End If

The above code builds the iDFT GAIN array and iDFT PHASE array. Watch out the phase, it got defined as a pure delay equal to half the FIR delay.

You then execute the iDFT.

As result you obtain the time-domain impulse response, that you regard as the required lowpass FIR coefficients.

The complementary highpass gets computed, basing on the lowpass FIR coefficients.
The highpass FIR is the lowpass FIR with negative sign, with one notable exception which is the FIR midpoint highpass, where one must obey the rule:

highpass FIR midpoint = (1.00 - lowpass FIR midpoint)

This way, the reconstruction (lowpass + highpass) will equal a Dirac occurring on the FIR midpoint. Meaning that the reconstruction is perfect in amplitude, and in phase.

Add some windowing function if you want, and you are done.

IIR-based crossover: no thanks!

Any comments welcome.
Attached Images
File Type: jpg iDFT XO Butterworth 2 double (=LR4).jpg (181.1 KB, 203 views)

Last edited by steph_tsf; 30th July 2012 at 12:04 AM.
  Reply With Quote
Old 30th July 2012, 08:30 AM   #2
tvrgeek is offline tvrgeek  United States
diyAudio Member
Join Date: Dec 2009
Location: Md
Very nice. Lots of thought. Now for the monkey wrench. Drivers. I can't remember the last time I had a mathematically symmetrical crossover in amplitude, let alone phase. We need to sum the results of the acoustic output of drivers at close to where they are very non-linear. All a big bag of tradeoffs. Active makes it easier, as you are not dealing with variable impedance of the load, the amp has to do that. Still, offset crossover points and different slopes are what I usually wind up with. ( DCX on bench).

So, how to use your analysis to include the asymmetry from the drivers? I believe, though have not played with it, Bodizio UE tries to do this. No idea if it is as comprehensive as you explain in your approach.
  Reply With Quote
Old 30th July 2012, 09:35 AM   #3
s3tup is offline s3tup
diyAudio Member
s3tup's Avatar
Join Date: Dec 2004
Location: Israel
Inverse of driver's impulse response multiplied by impulse response of this filter = perfect slope for the xover...
The missing link between lead and gold in alchemist's world was BS and commerce.
  Reply With Quote
Old 30th July 2012, 10:21 AM   #4
Trevor White is offline Trevor White  Australia
diyAudio Member
Join Date: Jun 2009
where are the phase responses ??
  Reply With Quote


IIR-based crossover: no thanks!Hide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
active crossover: fir vs iir netchris Everything Else 3 29th July 2008 09:14 AM
PC crossover with IIR filters, affordable? thadman Multi-Way 9 19th April 2007 11:06 AM
IIR filters type 1 or 2 what is best? JensRasmussen Digital Source 14 22nd April 2004 09:23 PM
need help with IIR filter theChris Digital Source 0 13th March 2004 12:47 AM
Does anyone know of a IIR directx crossover/filter/eq plugin? Mark Hathaway Digital Source 1 30th November 2002 01:45 PM

New To Site? Need Help?

All times are GMT. The time now is 10:47 PM.

Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.
Copyright ©1999-2017 diyAudio