DSP Xover project (part 2) - Page 98 - diyAudio
Go Back   Home > Forums > Source & Line > Digital Line Level

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

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
Reply
 
Thread Tools Search this Thread
Old 22nd April 2013, 02:29 PM   #971
diyAudio Member
 
Join Date: Aug 2003
Location: Santa Cruz, California
Quote:
Originally Posted by kazam View Post
Paal, there was a breakthrough yesterday so I can now generate biquad coefficients that replicate all the channels of the LX521.

Next I want to include a FIR block, minimum phase of course , in anticipation of individual driver variation compensation.
Why a FIR block for driver compensation, as opposed to a nice set of biquads?
  Reply With Quote
Old 22nd April 2013, 03:28 PM   #972
diyAudio Member
 
Join Date: Feb 2013
Quote:
Originally Posted by DSP_Geek View Post
Why a FIR block for driver compensation, as opposed to a nice set of biquads?
Because I'm under the impression that a lot more taps are available for the FIR implementation as opposed to the biquads.

The figures I remember are 8500 FIR taps or 120 biquads. 120 biquads equals 480 poles/zeros.

This might be totally wrong of course and I'm happy to stand corrected!

/K
  Reply With Quote
Old 22nd April 2013, 06:42 PM   #973
diyAudio Member
 
Join Date: Aug 2003
Location: Santa Cruz, California
Quote:
Originally Posted by kazam View Post
Because I'm under the impression that a lot more taps are available for the FIR implementation as opposed to the biquads.

The figures I remember are 8500 FIR taps or 120 biquads. 120 biquads equals 480 poles/zeros.

This might be totally wrong of course and I'm happy to stand corrected!

/K
Nick has the final figures of course, but you want to keep in mind that a FIR tap is not nearly the same thing as a biquad for filtering power: FIRs and IIRs are quite different beasts. As a *VERY* rough estimation, an n-long FIR will have a frequency resolution of about Fs / n, so at 44100 sampling rate a 100 tap FIR will be able to correct at a resolution of not much more than 440 Hz. So if you have a peak at 550 Hz, say, you want a 400 tap FIR to get the necessary 110 Hz resolution, whereas a single IIR can clean that up for you nicely.

Now the FIR can correct an entire spectrum within its limitations, of course, whereas you'd need an IIR for each anomaly, but the point remains. There's a more subtle point -- speakers (NOT rooms) are minimum-phase systems in the physical world, so their impulse responses will be infinite (within the limitations of measurement noise), whereas FIR correction will truncate the correction impulse so the two won't match exactly in the time domain. You can get arbitrarily close with longer FIRs, but then we're back to the starting point in the above paragraph.

BTW, a biquad would have two poles (denominator) and two zeros (numerator).
  Reply With Quote
Old 23rd April 2013, 08:12 AM   #974
diyAudio Member
 
Join Date: Feb 2013
Good points, DSP_Geek!

Right now I'm using only biquads in my optimization routine. I have a desired frequency response and then I generate an amplitude response from sets of 5 coefficients:

H(z) = ( b0 + b1*z1 + b2*z2 )/( 1 + a1*z1 + a2*z2 ) where z1 = z^(-1) and so on.

The filter is a cascade of biquads so if I choose 4 biquads I will have 20 coefficients. Then I compute an error function in the LSQ sense and minimize this error. Results are good, I can get great accuracy. As you noted speakers are minimum-phase so therefore I do not care about the phase response. It is simply the Hilbert transform of the amplitude response. See Wikipedia

Of course there is a delay between the elements as the physical distance between the phase centers are different but this will be compensated with a delay in the DSP.

My reasoning behind the FIR block was to keep the zeros inside the unit circle to still have a minimum phase system but give the optimization routine some more degrees of freedom. I have not tested this so can't say if it will work. Since the code is already written it's pretty easy to test though.

In short:

Poles inside unit circle for stability. Two per biquad.
Zeros inside unit circle for minimum delay. Two per biquad plus one per FIR tap. Added in conjugate pairs to keep system real.

As for digital room correction I will abstain from this and use bass management instead to avoid exciting room modes. A couple of notches will suffice I guess. This is a much later experiment though as I have to actually finish my speakers first in order to put them in a room...

/K
  Reply With Quote
Old 23rd April 2013, 05:54 PM   #975
paalj is offline paalj  Norway
diyAudio Member
 
Join Date: Nov 2005
Location: Norway
Quote:
Originally Posted by kazam View Post
Paal, there was a breakthrough yesterday so I can now generate biquad coefficients that replicate all the channels of the LX521.

Next I want to include a FIR block, minimum phase of course , in anticipation of individual driver variation compensation.
Kazam,
That was good news. So now you just have to wait for a Najda software update
For now I have just pulled out the usb and started listening

best,
Paal
  Reply With Quote
Old 23rd April 2013, 06:20 PM   #976
chaparK is offline chaparK  Luxembourg
diyAudio Member
 
Join Date: Apr 2010
Location: Luxembourg
Quote:
Originally Posted by kazam View Post
The filter is a cascade of biquads so if I choose 4 biquads I will have 20 coefficients. Then I compute an error function in the LSQ sense and minimize this error. Results are good, I can get great accuracy.
That sounds good!
How do you sample the desired frequency response? On a log scale?
Otherwise I suppose it's an iterative process (?).
So how do you move poles and zeros? Are you trying all possible combinations and keep the best one, or are you gradually approaching the optimal placement based on some rule?

Quote:
Originally Posted by paalj View Post
Kazam,
That was good news. So now you just have to wait for a Najda software update
It's being looked at

Quote:
Originally Posted by paalj
For now I have just pulled out the usb and started listening
Indeed, after all the tweaking, one might forget that the initial aim is listening to music
__________________
Najda DSP
  Reply With Quote
Old 23rd April 2013, 11:04 PM   #977
chaparK is offline chaparK  Luxembourg
diyAudio Member
 
Join Date: Apr 2010
Location: Luxembourg
I'm looking now at custom biquads.
Can someone post here a set of coefficients so that I can see how the formatting is looking like?

What I have in mind for now is as exemplified below:

Code:
N                  ; Number of biquads
b0                 ; First biquad coef set
b1
b2
a1
a2
b0                 ; Second biquad
...
...
b0                 ; Nth biquad
b1
b2
a1
a2
So all coefficients are normalized with respect to a0 (= 1).

Would that be compatible with the files you're otherwise dealing with?
__________________
Najda DSP
  Reply With Quote
Old 24th April 2013, 01:54 AM   #978
zoula is offline zoula  Canada
diyAudio Member
 
Join Date: Aug 2006
Location: Montreal
Hi Nick,

Glad your working on custom biquad, But if I can make a little sugestion on the interface of your software, It would be nice if you can undock the graphs windows so that you can fine tune more easily without having to change the tabs back and forwards...

Thank you
  Reply With Quote
Old 24th April 2013, 06:09 AM   #979
diyAudio Member
 
Join Date: Feb 2013
Quote:
Originally Posted by chaparK View Post
That sounds good!
How do you sample the desired frequency response? On a log scale?
Otherwise I suppose it's an iterative process (?).
So how do you move poles and zeros? Are you trying all possible combinations and keep the best one, or are you gradually approaching the optimal placement based on some rule?
I've tried both log and lin scale. Log scale is preferable as it gives better weighting across the band.

I use a genetic algorithm: Wikipedia

/K
  Reply With Quote
Old 24th April 2013, 06:45 AM   #980
JLOP is offline JLOP  France
diyAudio Member
 
Join Date: Sep 2011
Location: Luxembourg
So now DSP stands for DNA Sound Processing. You and CharpaK are running for the Nobel Prize ? (;-)
  Reply With Quote

Reply


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
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
DSP Xover project chaparK Digital Line Level 141 3rd July 2011 10:16 AM
Help Please for simple active Xover project dcathro Analog Line Level 4 9th September 2010 05:47 AM
Violet DSP Evolution - an Open Baffle Project cuibono Multi-Way 211 18th May 2010 02:26 AM
Software digital DSP ... Xover/filters/EQ ?? JinMTVT Digital Source 2 8th October 2004 06:02 AM
DSP card & proper xover for heathkit 859A speaker cabinet x. onasis Multi-Way 6 22nd April 2003 07:39 PM


New To Site? Need Help?

All times are GMT. The time now is 06:33 PM.


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

Content Relevant URLs by vBSEO 3.3.2