I have been working through the paper entitled "Audio Filter Banks" by J.O. Smith ( http://dafx09.como.polimi.it/proceedings/papers/paper_92.pdf ) attempting to replicate the results presented in the paper. I am ultimately wanting to re-create the real signal non-uniform filter bank illustrated in Figure 11. My question has two main parts. The description for creating the complex non-uniform filter bank (in Figure 4) is a little vague in that there is no real definition of what the complex signal is, how the spectrum filters are applied and how the 128 times interpolation is achieved. I can replicate aspects of this figure, but not simultaneously. So my questions is: has anyone implemented figure 4 in Matlab and is you able to share your solution? In the second part of my question, which is more general, I do like the simplicity that this approach for a filter bank implementation proposes, but I have not found any other research documents that follow on from this and as a consequence was wondering if there is a fundamental flaw in the method proposed to implement a multi-channel non-uniform filter bank? I realise that as this question stands it is a little vague, but please ask questions and I will attempt to clarify what I am trying to ask. I have a number of Matlab/Octave scripts that I can share if that helps. Thanks Andy _____________________________ Posted through www.DSPRelated.com
Audio FFT Filter Banks
Started by ●May 5, 2014
Reply by ●May 5, 20142014-05-05
i remember seeing this paper a few years ago and i did not completely grok the "Basic Idea" (as depicted in Fig 1): "FFT implementation of one frame of the simple octave filter bank of Fig. 2 on page 3. Successive frames are nonoverlapping (rectangular window advances its full length each frame)." while it may not be as efficient, i think it's better to split into these constant-Q filter banks in the time domain first, so you have, say, 8 or 10 different octave outputs, then frame (with 50% overlapping frames) and FFT each octave output separately. the frame rate for each octave output is proportional to the frequency range of that output, so the lower octaves have a slower frame rate than the upper octaves. also decimation may be applied to the lower octaves. (the effect of this is that the FFT size is the same for each octave output.) this is a lot like what them wavelet and filterbank people do. it's multirate. i'm a big fan of JOS, but i don't entirely get this. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge." On 5/5/14 8:55 AM, ajr61 wrote:> I have been working through the paper entitled "Audio Filter Banks" by J.O. > Smith ( http://dafx09.como.polimi.it/proceedings/papers/paper_92.pdf ) > attempting to replicate the results presented in the paper. I am ultimately > wanting to re-create the real signal non-uniform filter bank illustrated in > Figure 11. > > My question has two main parts. > > The description for creating the complex non-uniform filter bank (in Figure > 4) is a little vague in that there is no real definition of what the > complex signal is, how the spectrum filters are applied and how the 128 > times interpolation is achieved. I can replicate aspects of this figure, > but not simultaneously. So my questions is: has anyone implemented figure 4 > in Matlab and is you able to share your solution? > > In the second part of my question, which is more general, I do like the > simplicity that this approach for a filter bank implementation proposes, > but I have not found any other research documents that follow on from this > and as a consequence was wondering if there is a fundamental flaw in the > method proposed to implement a multi-channel non-uniform filter bank? > > I realise that as this question stands it is a little vague, but please ask > questions and I will attempt to clarify what I am trying to ask. I have a > number of Matlab/Octave scripts that I can share if that helps. > > Thanks > > Andy > > > > _____________________________ > Posted through www.DSPRelated.com
Reply by ●May 6, 20142014-05-06
Thanks for the comments and pointers Robert, As luck (and the various laws of engineering) would have it, I managed to replicate what I was trying to achieve with regard to (Figure 4) 30 minutes after posting to comp.dsp despite working on it for a number of days! So, I now have a complex non-uniform filter bank based on an aliased sinc function, but with poor stop-band performance (as shown by JOS). I will now proceed with the the Dolph-Chebychev implementation. Going back to my second question, I am still interested in looking at alternatives. Computational performance is less of an issue for me it is more the technical specification - I am wanting to minimise amplitude and phase distortions to the signals passing through the filter-bank. I have read quite a bit about the different approaches (QMF, Constant Q, Gammatone, Wavelets etc.) and was thinking of exploring the constant-Q and wavelet approaches in parallel to get a feel for the relative performance (and also the computational complexity to a lesser degree). Are you aware of any simple Matlab implementations of the constant-Q non-uniform filter-bank that I can use to compare with the JOS STFT based filterbank? I can obviously create from scratch, but would take advantage of any existing code if available. Regards Andy> >i remember seeing this paper a few years ago and i did not completely >grok the "Basic Idea" (as depicted in Fig 1): "FFT implementation of one >frame of the simple octave filter bank of Fig. 2 on page 3. Successive >frames are nonoverlapping (rectangular window advances its full length >each frame)." > >while it may not be as efficient, i think it's better to split into >these constant-Q filter banks in the time domain first, so you have, >say, 8 or 10 different octave outputs, then frame (with 50% overlapping >frames) and FFT each octave output separately. the frame rate for each >octave output is proportional to the frequency range of that output, so >the lower octaves have a slower frame rate than the upper octaves. also >decimation may be applied to the lower octaves. (the effect of this is >that the FFT size is the same for each octave output.) this is a lot >like what them wavelet and filterbank people do. it's multirate. > >i'm a big fan of JOS, but i don't entirely get this. > > >-- > >r b-j rbj@audioimagination.com > >"Imagination is more important than knowledge." > > > >On 5/5/14 8:55 AM, ajr61 wrote: >> I have been working through the paper entitled "Audio Filter Banks" byJ.O.>> Smith ( http://dafx09.como.polimi.it/proceedings/papers/paper_92.pdf ) >> attempting to replicate the results presented in the paper. I amultimately>> wanting to re-create the real signal non-uniform filter bank illustratedin>> Figure 11. >> >> My question has two main parts. >> >> The description for creating the complex non-uniform filter bank (inFigure>> 4) is a little vague in that there is no real definition of what the >> complex signal is, how the spectrum filters are applied and how the 128 >> times interpolation is achieved. I can replicate aspects of thisfigure,>> but not simultaneously. So my questions is: has anyone implementedfigure 4>> in Matlab and is you able to share your solution? >> >> In the second part of my question, which is more general, I do like the >> simplicity that this approach for a filter bank implementationproposes,>> but I have not found any other research documents that follow on fromthis>> and as a consequence was wondering if there is a fundamental flaw inthe>> method proposed to implement a multi-channel non-uniform filter bank? >> >> I realise that as this question stands it is a little vague, but pleaseask>> questions and I will attempt to clarify what I am trying to ask. I havea>> number of Matlab/Octave scripts that I can share if that helps. >> >> Thanks >> >> Andy >> >> >> >> _____________________________ >> Posted through www.DSPRelated.com >_____________________________ Posted through www.DSPRelated.com