Forums

How to design a graphic equalizer

Started by dingke1980 August 23, 2005
I am doing a software project about a ten-band graphic equalizer. Is there
any solutions about how to design it? Currently, I have the following
ideas:

1.Use FFT, apply different gains to each frequency bin. But for low
frequency band like 31.25Hz, 62.5Hz, 125Hz, there are few frequency bins
even using large length FFT. The frequency precision is roughly
influencing.

2.Use FIR filter bank. Design ten band-pass filters, apply gains in each
band, then sum then together in time domain. But still for low frequency
band like 31.25Hz, 62.5Hz, 125Hz, the filter length will be very large. I
don't know how to cope with this problem.

3.Use IIR filter bank. Which may greatly reduce the filter length. But
another concern appears. IIR filter is not a linear phase filter.
Furthermore, it may unstable after processing many audio frames.

Please help me. :)





		
This message was sent using the Comp.DSP web interface on
www.DSPRelated.com
"dingke1980" <dingke1980@hotmail.com> wrote in message 
news:3sKdnV-xibiXhZbeRVn-gw@giganews.com...
>I am doing a software project about a ten-band graphic equalizer. Is there > any solutions about how to design it? Currently, I have the following > ideas: > > 1.Use FFT, apply different gains to each frequency bin. But for low > frequency band like 31.25Hz, 62.5Hz, 125Hz, there are few frequency bins > even using large length FFT. The frequency precision is roughly > influencing. > > 2.Use FIR filter bank. Design ten band-pass filters, apply gains in each > band, then sum then together in time domain. But still for low frequency > band like 31.25Hz, 62.5Hz, 125Hz, the filter length will be very large. I > don't know how to cope with this problem. > > 3.Use IIR filter bank. Which may greatly reduce the filter length. But > another concern appears. IIR filter is not a linear phase filter. > Furthermore, it may unstable after processing many audio frames. > > Please help me. :) >
Hello, Years ago Motorola did an app note on how to do this with the DSP56001 You can find it here: http://www.soundart-hot.com/files/pdf/dsp/appnotes/APR2-d.pdf IHTH, Clay
#3 is the standard method.  Analog graphic equalizers aren't linear phase 
either, and they are widely used.  There is even some debate as to whether 
linear phase is the best approach for audio, especially with low frequencies. 
As for stability, if you break the implementation into 10 individual biquads in 
cascade (which is very natural to do with a 10-band equalizer), stability 
shouldn't be too large a problem.

-- 
Jon Harris
SPAM blocker in place:
Remove 99 (but leave 7) to reply

"dingke1980" <dingke1980@hotmail.com> wrote in message 
news:3sKdnV-xibiXhZbeRVn-gw@giganews.com...
>I am doing a software project about a ten-band graphic equalizer. Is there > any solutions about how to design it? Currently, I have the following > ideas: > > 1.Use FFT, apply different gains to each frequency bin. But for low > frequency band like 31.25Hz, 62.5Hz, 125Hz, there are few frequency bins > even using large length FFT. The frequency precision is roughly > influencing. > > 2.Use FIR filter bank. Design ten band-pass filters, apply gains in each > band, then sum then together in time domain. But still for low frequency > band like 31.25Hz, 62.5Hz, 125Hz, the filter length will be very large. I > don't know how to cope with this problem. > > 3.Use IIR filter bank. Which may greatly reduce the filter length. But > another concern appears. IIR filter is not a linear phase filter. > Furthermore, it may unstable after processing many audio frames. > > Please help me. :)
Thanks for your information. I have tried with the Motorola's application
note. To construct a graphic equalizer, a set of 10 IIR bandpass filters
are used. The total audio response would be the summation of each filter.
But without any gain applying, the reconstructed audio is far different
from the original one. Many ripples exist. How to solve this problem?


> >"dingke1980" <dingke1980@hotmail.com> wrote in message >news:3sKdnV-xibiXhZbeRVn-gw@giganews.com... >>I am doing a software project about a ten-band graphic equalizer. Is
there
>> any solutions about how to design it? Currently, I have the following >> ideas: >> >> 1.Use FFT, apply different gains to each frequency bin. But for low >> frequency band like 31.25Hz, 62.5Hz, 125Hz, there are few frequency
bins
>> even using large length FFT. The frequency precision is roughly >> influencing. >> >> 2.Use FIR filter bank. Design ten band-pass filters, apply gains in
each
>> band, then sum then together in time domain. But still for low
frequency
>> band like 31.25Hz, 62.5Hz, 125Hz, the filter length will be very large.
I
>> don't know how to cope with this problem. >> >> 3.Use IIR filter bank. Which may greatly reduce the filter length. But >> another concern appears. IIR filter is not a linear phase filter. >> Furthermore, it may unstable after processing many audio frames. >> >> Please help me. :) >> > >Hello, > >Years ago Motorola did an app note on how to do this with the DSP56001 > >You can find it here: > >http://www.soundart-hot.com/files/pdf/dsp/appnotes/APR2-d.pdf > >IHTH, >Clay > > > > >
This message was sent using the Comp.DSP web interface on www.DSPRelated.com
dingke1980 wrote:
> Thanks for your information. I have tried with the Motorola's application > note. To construct a graphic equalizer, a set of 10 IIR bandpass filters > are used. The total audio response would be the summation of each filter. > But without any gain applying, the reconstructed audio is far different > from the original one. Many ripples exist. How to solve this problem?
One method is to treat the IIR coefficients as a nonlinear optimization problem. Take either the IIR coefficients directly, or the frequency center, Q and gain of each bandpass filter, 30 independant variables in all for 10 IIR bandpass filters, and optimize for unweighted or weighted maximum peak or average ripple in your desired pass-band magnitude response. Note that you may need to re-optimize for each graphic equalizer setting, depending on how closely you want the magnitude response to match that of the control knob heights. IMHO. YMMV. -- rhn A.T nicholson D.o.T c-O-m
Yes. In theory it is true. But it's hard for me to solve this nonlinear
optimaztiona problem. Is there any easy solution?




>One method is to treat the IIR coefficients as a nonlinear optimization >problem. Take either the IIR coefficients directly, or the frequency >center, Q and gain of each bandpass filter, 30 independant variables in >all for 10 IIR bandpass filters, and optimize for unweighted or >weighted >maximum peak or average ripple in your desired pass-band magnitude >response. Note that you may need to re-optimize for each graphic >equalizer setting, depending on how closely you want the magnitude >response to match that of the control knob heights. > > > >IMHO. YMMV. >-- >rhn A.T nicholson D.o.T c-O-m > >
This message was sent using the Comp.DSP web interface on www.DSPRelated.com
A simple approach is make Q wider than it needs to be so that you don't get 
between-band ripple.  Of course, the cost is that if 2 adjacent slides are both 
at say +6dB, the actual response will considerably greater than 6dB between 
them.  Some digital graphic EQs give the user the option as to how wide to make 
the filters, e.g. wide/normal/narrow, and let them decide what they want.

BTW, analog graphic EQs don't solve this problem, they just pick a reasonable 
width and live with the resulting issues (ripple and/or non-matching gain when 
consecutive sliders are raised/lowered).

-- 
Jon Harris
SPAM blocker in place:
Remove 99 (but leave 7) to reply

"dingke1980" <dingke1980@hotmail.com> wrote in message 
news:w-WdnYM2S6ahEo_eRVn-oA@giganews.com...
> > Yes. In theory it is true. But it's hard for me to solve this nonlinear > optimaztiona problem. Is there any easy solution? > > > > >>One method is to treat the IIR coefficients as a nonlinear optimization >>problem. Take either the IIR coefficients directly, or the frequency >>center, Q and gain of each bandpass filter, 30 independant variables in >>all for 10 IIR bandpass filters, and optimize for unweighted or >>weighted >>maximum peak or average ripple in your desired pass-band magnitude >>response. Note that you may need to re-optimize for each graphic >>equalizer setting, depending on how closely you want the magnitude >>response to match that of the control knob heights. >> >> >> >>IMHO. YMMV. >>-- >>rhn A.T nicholson D.o.T c-O-m >> >> > > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.com