[LAU] [Sort of OT] Ringing in filters
markknecht at gmail.com
Tue May 11 22:36:08 UTC 2010
On Tue, May 11, 2010 at 3:12 PM, Fons Adriaensen <fons at kokkinizita.net> wrote:
> On Tue, May 11, 2010 at 02:43:43PM -0700, Mark Knecht wrote:
>> This is not specifically about LAU stuff, at the first level
>> anyway, but it could be one of these days maybe.
>> Mostly for fun and to keep my old brain exercised I'm playing with
>> coding a DSP multiband equalizer. The thing basically works, actually
>> works pretty well with more or less steady state data, but it doesn't
>> look at all good with big transients mostly due to ringing in my lower
>> range band pass filters.
>> Does anyone know of any reasonably simple papers talking about
>> sorting out this sort of design problem?
>> I suspect someone like Steve Harris has forgotten more than I'll
>> ever know about subject like this but I'm not sure he's here anymore.
>> Maybe there's someone else who's available to talk to me off list?
> What type of filter are you using and with which parameters ?
> Ringing is a natural effect with some filters, it depends mainly
> on how 'steep' a filter is. How it looks is not that important,
> what matters is how it sounds.
So far just Butterworth - 2 & 3 pole. 2 pole is a big improvement over 3.
If I was using this to adjust actual audio data then I'd completely
agree with you - trust my ears.
Actually though, as a test of an idea I had and just because I've got
the data here, I'm using stock market data, decomposing the data into
bands of energy if you will, and then summing the bands back together
to see how close I come to the original data. It works fairly well
most of the time, but stock data can have big directional moves at
times which appears as a big transient event. When those events
complete then the slower filter bands ring and cause large
displacements in the output.
One thought it pre-processing the data going into each filter to
ensure that it doesn't contain too much high frequency data. I suspect
this is probably done in physical designs anyway. Another is to do
some error correction along the way and adjust the ways things are
summed to reduce error in the final output.
Once my design gets better I'll use something like an R-Squared
computation to tell me more about the accuracy of the signal over time
but for now the results are so far off visually that it's clear I need
to do something very different.
I suspect since I just hacked a bunch of code together in an area that
I've not touched since my junior year at university some number of
decades ago that there are some really basic things I could do to
improve my results. I was thinking about tearing into the code for
something like Jamin to look at what's done there. Maybe there are
better examples for me to use though?
More information about the Linux-audio-user