Poor man’s equalizer with a few digital bandpass filters – how to overlap band edges

audiodigital filterdsp

I am trying to implement an equalizer in an FPGA. It's not hifi or anything so 3 or 4 bands should cut it.

So I have a low, band, and high pass filter covering the entire voice spectrum (0-4kHz in this case since my sampling freq is 8kHz. Each of these filters have considerably slow rolloff (around 300Hz to go from stop to pass band) because I want to minimize the number of coeefficients needed for the filter

My question is how much should the rolloff parts of the filters overlap each other so that no frequency is lost or attenuated more than the others. It seems like, assuming the rolloffs are over the same frequency range with the same slope, then their midpoints should be the intersection point, but I cannot prove this rigorously. Are there common methods for this?

Best Answer

I'm not sure what you mean by the "midpoint" of a rolloff slope, but it probably isn't relevant anyway.

What you generally want is to make the -3 dB points of two adjacent filters (one low-pass and one high-pass) have the same frequency. This means that if you feed that frequency into both filters and then combine the results again, the output will be the same level as the input (0 dB overall gain). This is because doubling a voltage (i.e., adding two copies of the same voltage) is equivalent to +6 dB of gain.

As long as the "order" of the two filters is the same (they have the same rolloff slope), the gain will be flat across the entire transition band of frequencies.

EDIT:

What I said above about doubling the voltage is +6 dB of gain is true, but that isn't actually relevant here.

What's really going on is this: The -3 dB point of a filter is where the output has half the power of the input signal, which means that the output voltage is \$\frac{1}{\sqrt{2}}\$ × the input voltage. The -3 dB point is also where the output signal is phase shifted by 45° — it lags by 45° in the low-pass filter and leads by 45° in the high-pass filter. This means that the outputs of the two filters have a total phase shift of 90° relative to each other.

When you add two sinewaves that have the same amplitude and a 90° phase shift, you don't get double the voltage — you get \$\sqrt{2}\$ × the voltage. You also get a waveform that has a phase midway between the two signals being added.

So, the final amplitude is \$\frac{\sqrt{2}}{\sqrt{2}}\$ × the original input voltage, and the final phase is midway between +45° and -45°, or 0°. In other words, you get the original sinewave back exactly.