My question is about the use of many filters on a sound signal. I found the following transfer functions for the high cut, the low cut and the pass band filter :

  • H = K / (1 - x^2 + j.x/Q)

  • H = K / (1 - x^2 + j.x/Q) * x^2 * (-1)

  • H = K / (1 - x^2 + j.x/Q) * j.x/Q

with K = gain, Q = quality factor (set to 1.0 for the bandpass and 1/2^0.5 for the high and low cut), x = f/f0 (= signal frequency / filter frequency), H = multiplier (and it's a complex)

To "see" the effect of each filter, I draw the chart |H| = f(frequency), with |H| = modulus(H), and "play" with the values of K and Q. In a first time, when I draw individually the chart for each single filter, the result is as expected : 0. to 0.99 for the low cut filter, 0.99 to 0. for the high cut filter, and some "bell" charts from 0 to 1 to 0 for each pass band filter.

But now, my problem is about the result when I "combine" all those filters. My first idea was, for each frequency, to make the average of all the real parts and the average of all the imaginary parts of the filters filter at this frequency.

For exemple, if my spectral precision is 21.xxx Hz with 2048 samples (0 < k <2048) in my signal to analyze, I calculate the H for each filter with k = 1 => f = 21.xxx Hz and make the average of the reals and the average of the imaginary parts and consider the "global filtering result" at 21.xxx Hz is this average.Then, I make the same computing for k = 2, k=3 (...).

So I finally get an array[number of filters][k] of complex, and I compute the average of each colum as the "global multiplier" for each k.

But the result is not the one expected. The chart of the global |H| starts at 0, with a fast growing until 20Hz to a maximum around 0.3, then a "tray" slowly decreasing and a strong decreasing slope for the frequencies above 10 000 Hz.

I would have expected a signal with a "tray value" around 1 and not 0.3. Of course, if Q <<< 1, the "tray value" grows up, but it means my filters are not selective at all. So, what's wrong ? What's the rule to combine the effects of my filters ?

Thank you for all your answers.

  • 1
    $\begingroup$ can you describe what is your aim with "combining the filters"? $\endgroup$ – Maximilian Matthé Jun 27 '18 at 11:39
  • $\begingroup$ Of course : low cut filter + high cut filter + bandpass filter = equalizer. The aim is to make an equalizer. $\endgroup$ – Dr_Click Jun 27 '18 at 12:41
  • $\begingroup$ What do you mean by equalizer, an approximation of any frequency response? Also, since did not used phase when describing your result, do you care about phase? And lastly your transfer functions appear to be in the continues time, but equalizers are implemented in digitally in discrete time. $\endgroup$ – fibonatic Jun 27 '18 at 13:01
  • $\begingroup$ By equalization, I mean "correction" of a signal. For example : enhancing the frequencies from 40 to 80 Hz of the bass drum or lowering some frequencies of the piano above 2kHz... The aim is to "sculpture" the sound, taking account of the room, the instruments... $\endgroup$ – Dr_Click Jun 27 '18 at 13:52
  • $\begingroup$ More over, my spectral signal is a complex so, I won't only apply basicaly the modulus of the "equalizer" but I will have to take account of the real and the imaginary parts of the spectral signal and the real and imaginary parts of the multipliers, even if I still don't really know how I'll do it... $\endgroup$ – Dr_Click Jun 27 '18 at 14:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.