Reply by Philippe Strauss●September 9, 20112011-09-09
On 5 sep, 20:13, robert bristow-johnson <r...@audioimagination.com>
wrote:
> On 9/5/11 10:09 AM, Robert Adams wrote:
>
> > Do a google scholar search on Sanjit Mitre. He wrote a paper on
> > equalization filters with independent parameters for boost/cut, q and
> > frequency. They are not log-symmetric but with a little hacking you
> > can make them so
>
... snip
>
> S. K. Mitra, K. Hirano, and S. Nishimura, �Design of Digital
> Bandpass/Bandstop Filters with Independent Tuning Characteristics�,
> Frequenz, Vol. 44, pp. 117-121, 1990.
>
> P. A. Regalia and S. K. Mitra, �Tunable Digital Frequency Response
> Equalization Filters,� IEEE Trans. Acoust., Speech, Signal Process.,
> vol. ASSP-35 (1987 Jan.).
also :
Parametric Digital Filter Structures
Udo Z�lzer, Thomas Boltze, an AES preprint of 1995, goes a bit farther
about parameter independance (for the cut case) from Regalia/Mitra
work.
I'm currently implementing it, will see how good it is (matlab rough
experiments are according to the theory).
Reply by robert bristow-johnson●September 5, 20112011-09-05
On 9/5/11 10:09 AM, Robert Adams wrote:
>
> Do a google scholar search on Sanjit Mitre. He wrote a paper on
> equalization filters with independent parameters for boost/cut, q and
> frequency. They are not log-symmetric but with a little hacking you
> can make them so
Bob, was Mitra the first to do this? (using an APF?)
i know that Hal Chamberlin's "State Variable Filter" is supposed to do
the same (separate Q and resonant frequency). anyway two papers with
Mitra's name in it that i remember seeing are:
S. K. Mitra, K. Hirano, and S. Nishimura, �Design of Digital
Bandpass/Bandstop Filters with Independent Tuning Characteristics�,
Frequenz, Vol. 44, pp. 117-121, 1990.
P. A. Regalia and S. K. Mitra, �Tunable Digital Frequency Response
Equalization Filters,� IEEE Trans. Acoust., Speech, Signal Process.,
vol. ASSP-35 (1987 Jan.).
and Dana Massie picked this up for an AES paper he did. also, fred
harris (of the windowing fame, caps are his) did this paper:
f. j. harris and E. Brooking, �A Versatile Parametric Filter using an
Imbedded All-Pass Sub-Filter to Independently Adjust Bandwidth, Center
Frequency, and Boost or Cut,� presented at the 95th Convention of the
AES (1993 Oct.), preprint 3757.
anyway, i suspect that using an APF with a lattice (the Regalia and
Mitra paper introduced normalized ladder APF instead of lattice) to have
separate control for Q and f0, existed before Mitra's papers, but i
cannot say for sure of any *published* account. without naming names, i
know of this as an unpublished, old technique (ca. 1980s) for
time-variant, sweepable filters used in music processing and music
synthesis apps. i don't think anyone will be able to patent the idea
because of prior art.
--
r b-j rbj@audioimagination.com
"Imagination is more important than knowledge."
Reply by Robert Adams●September 5, 20112011-09-05
On Sep 5, 6:54�am, "niarn" <niaren9@n_o_s_p_a_m.gmail.com> wrote:
> The textbook example illustrating that in general you can't connect two
> filters in parallel and expect that the response of the parallel connection
> is equal to (or close to) the sum of the individual responses is that you
> can create a very nice low-pass filter by a parallel connection of two
> all-pass filters.
>
> For shelving filters there are Matlab examples here:http://www.mathworks.com/matlabcentral/fileexchange/16568-bass-treble...
>
> There is a book by Udo Zolzer that in detail describes peaking and shelving
> filters. For low-frequency shelving or peaking you might want to look into
> other structures that the direct forms. For this, the Zolzer book is also a
> good reference.
> Cheers.
Do a google scholar search on Sanjit Mitre. He wrote a paper on
equalization filters with independent parameters for boost/cut, q and
frequency. They are not log-symmetric but with a little hacking you
can make them so
Reply by niarn●September 5, 20112011-09-05
The textbook example illustrating that in general you can't connect two
filters in parallel and expect that the response of the parallel connection
is equal to (or close to) the sum of the individual responses is that you
can create a very nice low-pass filter by a parallel connection of two
all-pass filters.
For shelving filters there are Matlab examples here:
http://www.mathworks.com/matlabcentral/fileexchange/16568-bass-treble-shelving-filter/content/shelving.m
There is a book by Udo Zolzer that in detail describes peaking and shelving
filters. For low-frequency shelving or peaking you might want to look into
other structures that the direct forms. For this, the Zolzer book is also a
good reference.
Cheers.
Reply by Vladimir Vassilevsky●September 4, 20112011-09-04
jungledmnc wrote:
> Thanks RBJ. The idea is to keep the filter coefficients constant with
> varying gain to save CPU power, because the gain is changed literally every
> sample. Also the dynamic engine would accept the filtered data as input, so
> it would be a really big save.
>
> Anyway I though about a simple solution for the shelf filters - just use
> allpass to get the same phase response. Then I would be summing signals in
> phase. I checked and the shelf filters look quite different than normal
> shelves, they have lower slope and they don't have the "resonant dip" (when
> amplifying). That may be good or bad, not sure yet. Anyway the constant
> phase could be advantageous I think.
>
> But the trouble is again that the amplification shape is different than
> attenuation shape. It's because the addition is not logarithmic, I guess.
> Any ideas, how to make the attenuation shape ok as well?
>
> Thanks,
> jungledmnc
>
> To Vladimir Vassilevsky: Stop acting like a spoiled kid...
Reply by jungledmnc●September 4, 20112011-09-04
Thanks RBJ. The idea is to keep the filter coefficients constant with
varying gain to save CPU power, because the gain is changed literally every
sample. Also the dynamic engine would accept the filtered data as input, so
it would be a really big save.
Anyway I though about a simple solution for the shelf filters - just use
allpass to get the same phase response. Then I would be summing signals in
phase. I checked and the shelf filters look quite different than normal
shelves, they have lower slope and they don't have the "resonant dip" (when
amplifying). That may be good or bad, not sure yet. Anyway the constant
phase could be advantageous I think.
But the trouble is again that the amplification shape is different than
attenuation shape. It's because the addition is not logarithmic, I guess.
Any ideas, how to make the attenuation shape ok as well?
Thanks,
jungledmnc
To Vladimir Vassilevsky: Stop acting like a spoiled kid...
Reply by Vladimir Vassilevsky●September 3, 20112011-09-03
jungledmnc wrote:
> Hi,
>
> I'm using biquads from rbj's cookbook and trying to create a low-shelf
> filter by combining dry signal with lowpassed signal for a purpose of a
> dynamic equalizer. Similar thing with the high-shelf via high-pass and peak
> via band-pass.
>
> It works quite well for amplification with peak filters:
> H_PEAK(z) = 1 + H_BANDPASS(z) * (g - 1)
> where g = 10^(gain_in_db/20)
> but I need to use 4x higher Q for the bandpass. Why is that?
>
> Now there are 2 problems:
> 1) With peak filter it works well with amplification, but not with
> attenuation. How to make the peak filter work with negative gains?
>
> 2) With shelf filters it doesn't work well at all. The resulting filters
> just have a very bad shape, primarily they are not steep at all. What am I
> doing wrong?
>
> Thanks in advance.
> Jungledmnc
Reply by robert bristow-johnson●September 3, 20112011-09-03
On 9/3/11 3:20 PM, jungledmnc wrote:
> Hi,
>
> I'm using biquads from rbj's cookbook and trying to create a low-shelf
> filter by combining dry signal with lowpassed signal for a purpose of a
> dynamic equalizer. Similar thing with the high-shelf via high-pass and peak
> via band-pass.
>
> It works quite well for amplification with peak filters:
> H_PEAK(z) = 1 + H_BANDPASS(z) * (g - 1)
> where g = 10^(gain_in_db/20)
> but I need to use 4x higher Q for the bandpass. Why is that?
i dunno. the meaning of Q is fudged a little for the peaking EQ in the
cookbook. it is fudged such that, with a fixed f0 and Q, a boost of N
dB is exactly canceled by a cut of N dB (with the same f0 and Q). the
result is a wire.
if you define Q of the peaking EQ to be the BPF Q (which is mixed with a
wire), the cut will not be symmetrical with the boost.
> Now there are 2 problems:
> 1) With peak filter it works well with amplification, but not with
> attenuation. How to make the peak filter work with negative gains?
>
> 2) With shelf filters it doesn't work well at all. The resulting filters
> just have a very bad shape, primarily they are not steep at all. What am I
> doing wrong?
uh, not using the shelving EQ filters as described in the cookbook?
you *can* get a shelving filter by just mixing a 2nd-order HPF or LPF
with a wire, but there is a phase-canceling issue that occurs on the
slope of the HPF or LPF. as your frequency moves farther down the slope
into the stopband of the filter, its phase is shifted beyond 90 degrees
and approaches 180 degrees phase shift. when that is mixed with the
output of the wire, you get destructive interference because the two
signals are of nearly opposite polarity.
--
r b-j rbj@audioimagination.com
"Imagination is more important than knowledge."
Reply by jungledmnc●September 3, 20112011-09-03
Hi,
I'm using biquads from rbj's cookbook and trying to create a low-shelf
filter by combining dry signal with lowpassed signal for a purpose of a
dynamic equalizer. Similar thing with the high-shelf via high-pass and peak
via band-pass.
It works quite well for amplification with peak filters:
H_PEAK(z) = 1 + H_BANDPASS(z) * (g - 1)
where g = 10^(gain_in_db/20)
but I need to use 4x higher Q for the bandpass. Why is that?
Now there are 2 problems:
1) With peak filter it works well with amplification, but not with
attenuation. How to make the peak filter work with negative gains?
2) With shelf filters it doesn't work well at all. The resulting filters
just have a very bad shape, primarily they are not steep at all. What am I
doing wrong?
Thanks in advance.
Jungledmnc