Hi LAD,
I have a technical question regarding the FIL equalizer
(by Fons Adriaensen).
The code uses Mitra-Regalia lattice filter (as described
in [1]). After reordering things here and there I see it's
indeed the case (surprise!).
[1] might be hard to get, but there is [2] with a lot of
details too, especially for bandwidth.
The only remaining point that I don't get is the bandwidth
manipulations. [1] uses for its parameter 'a' ('_s2' in FIL)
the formula:
a = (1 - tan(Omega/2)) / (1 + tan(Omega/2))
'Omega' being I don't really know what (-3dB notch bandwidth
for a gain of 0 maybe, if I read the paper correctly).
FIL uses bandwith expressed in octave and does:
_s2 = (1-b)/(1+b)
with:
b = bandwidth * 7 * (f0/fs) / sqrt(gain)
('f0' is the center frequency of the equalizer, 'fs'
is the sampling rate)
Reading [2] we see the factor 'sqrt(gain)' ('gain' is 'K')
that we find in the FIL's formula (specifically the formula
for k2 at page 13, after equation (17)).
But the "bandwidth * 7 * (f0/fs)" remains a total mistery
to me. It seems to be 'gamma' as found in [2], but 'gamma'
is way more complicated than what we see in FIL's code.
So the questions are:
- can someone explain to me what this bandwidth computation means?
- how it is derived starting from a bandwidth expressed in octave?
- And if we use the notations of [1] and [2] how do we relate it
to Omega or the various versions found in [2]? (which one is it by
the way? I thought it was the "at the bandedge frequencies the gain
is 'gain/2 dB'" one but it's not the case) (I wrote a little program
to plot things and as far as my program is correct bandedge frequencies
don't have a gain of 'gain/2 dB')
Regards,
Cédric.
[1] P. A. Regalia and S. K. Mitra, “Tunable Digital Frequency Response
Equalization Filters,” IEEE Trans. Acoust., Speech, Signal Process.,
vol. ASSP-35 (1987 Jan.).
[2]
http://www.musicdsp.org/files/EQ-Coefficients.pdf