TypicalUserName
Newbie level 3
Hi! I'm beginner in DSP area and I want to implement 10 band equalizer with additional Q - control (width of the band) and maybe even center frequency point control (extension to parametric EQ), if it doesn't complicate things too much. Boost should be in +/- 12 to 18dB range. EQ will be run on ADSP-BF548 (Blackfin).
Here are some questions for you guys:
1. What model should I choose(IIR or FIR)?
I've been googling about this a bit and it seems that standard way (and possibly the simplest?) is to use a bunch of BP filters and one LP and HP and sum their outputs together. As filter type it seems that IIR is used mostly for this type of application.
I wanted to use FIR in my case, because it's simplest to implement but I saw 2 possible problems when playing around in Mathlabs FDATOOL.
-A high number of coefficients is needed to achieve desired response ( I hope I wasn't unnecessarily too picky when designing signal response curve).
-Response for each band pass filter looks strange for me. At around -60db there is a very 'hilly' region instead of smooth rolloff and I don't know if this can reasonably affect audio signal. Maybe it doesn't matter what's the shape of band-pass filter response below like 24db or so?
IIR seems to be a good choice here because you don't have much coefficients to get desired results. And response curve looks very flat with sharp rolloffs.
-But there is a problem with coefficients, if single form is implemented. DENs are like in the range of 100 and NUMs are in the range of 10^-24. When you take in account that I can use only integer data format (for some reason this blackfin is very uncomfortable with floats) a problem with overflowing arises. This can be (I think) avoided if you use 2nd order of IIR filter and then you make a cascade of them. This just complicates implementation and maybe it's equal to the simple FIR from a standpoint of performance.
So again, FIR or IIR?
2. How to implement Q and center frequency point control?
-These two must be hidden in coefficients and I have no idea how to control them in some analytic way. A 2D lookup table with different Qs and center freq. points with interpolation sounds like a bad idea.
Here are some questions for you guys:
1. What model should I choose(IIR or FIR)?
I've been googling about this a bit and it seems that standard way (and possibly the simplest?) is to use a bunch of BP filters and one LP and HP and sum their outputs together. As filter type it seems that IIR is used mostly for this type of application.
I wanted to use FIR in my case, because it's simplest to implement but I saw 2 possible problems when playing around in Mathlabs FDATOOL.
-A high number of coefficients is needed to achieve desired response ( I hope I wasn't unnecessarily too picky when designing signal response curve).
-Response for each band pass filter looks strange for me. At around -60db there is a very 'hilly' region instead of smooth rolloff and I don't know if this can reasonably affect audio signal. Maybe it doesn't matter what's the shape of band-pass filter response below like 24db or so?
IIR seems to be a good choice here because you don't have much coefficients to get desired results. And response curve looks very flat with sharp rolloffs.
-But there is a problem with coefficients, if single form is implemented. DENs are like in the range of 100 and NUMs are in the range of 10^-24. When you take in account that I can use only integer data format (for some reason this blackfin is very uncomfortable with floats) a problem with overflowing arises. This can be (I think) avoided if you use 2nd order of IIR filter and then you make a cascade of them. This just complicates implementation and maybe it's equal to the simple FIR from a standpoint of performance.
So again, FIR or IIR?
2. How to implement Q and center frequency point control?
-These two must be hidden in coefficients and I have no idea how to control them in some analytic way. A 2D lookup table with different Qs and center freq. points with interpolation sounds like a bad idea.