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
How to design a graphic equalizer
Started by ●August 23, 2005
Reply by ●August 23, 20052005-08-23
"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
Reply by ●August 23, 20052005-08-23
#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. :)
Reply by ●August 28, 20052005-08-28
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. Isthere>> 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 frequencybins>> even using large length FFT. The frequency precision is roughly >> influencing. >> >> 2.Use FIR filter bank. Design ten band-pass filters, apply gains ineach>> band, then sum then together in time domain. But still for lowfrequency>> 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
Reply by ●August 28, 20052005-08-28
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
Reply by ●August 29, 20052005-08-29
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
Reply by ●August 29, 20052005-08-29
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