Hi Fons On Tue, May 11, 2010 at 4:19 PM, Fons Adriaensen <fons@xxxxxxxxxxxxxxx> wrote: > On Tue, May 11, 2010 at 03:36:08PM -0700, Mark Knecht wrote: > >> 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. > > So you want a set of filters with the following properties: > > 1. each filter has a frequency response with a shape that allows > an intuitive interpretation as a 'bandpass', i.e. a range of > frequencies, and > Yes, a specific (small) range of frequencies and some ability to see if the energy meets some minimum level of interest. > 2. the sum of the filter outputs equals the original input. > This is not really a requirement, but if they did then I'd have a more visual demonstration that the process was working. > This is a *hard* problem. Basically none of the classical filter > types have these properties. There are filter sets that can do > this but they are quite esoteric. > > 'Ringing' is not really a problem here, each of the individual > filters may ring, as long as this is cancelled by the others > when you add the outputs. Not sure I totally agree with this as it assumes that in the end I listen to the reconstituted sum of all the filters. On the other hand, if I listen to only a few then without the other 'negative' contributions I end up hearing the ringing in the few I'm listening to. > > An FFT will provide a set of filters having property (2), but > each filter has a sin(x)/x shape, which is not really a bandpass. > You can 'improve' the shape by windowing, but that destroys (2). > And anyway using an FFT like this is a 'block' operation - how > a sample is treated depends on its position within the block. > Windowing requires overlapping blocks, and they won't add up > to the original input. > I think also that an FFT assumes some sort of longer-term steady state repetitive nature which isn't in the stock data. I could take a representative sample - the last 1000 bars, and then treat that as if it was a repeating cycle and extract frequencies. I'm not sure what that will do for me and the sample points are likely to introduce lots of new artifacts. Still, worth thinking about. <SNIP> > > Now if the purpose of the filtering is to extract 'features' of > the data, you really don't need property (2). And given the > nature of stock market data, I suspect that classic audio filters > are not the right way to extract such features. I'd have a look > at wavelet filters for example. > > Ciao, > Will do. Thanks. Cheers, Mark _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/listinfo/linux-audio-user