"Clay S. Turner" <CSTurner@WSE.Biz> wrote in message
> Hello Curl,
> The trick is to use FIR decimating filters, as the low frequency
> get called very often and therefore use few cycles. Try looking up
> quadrature mirror filters. They should do the trick for you.
> "Curl" <Mr.Bilou@microsoft.fr> wrote in message
> > Hello !
> > I would like to perform ***real-time*** octave analysis with my
> > (100 Mips, audio signal @ 48kHz).
> > Althought i already implement FFT, I will do it with IIR
> > (I know the avantages of FIR decimator, but I dont think it will
> > usefull in this particular case). The "method" is to apply a
> > for the higher octave, and
> > decimate by 2 for the next octave.
> > I already designend the band-pass and the anti-aliasing low-pass
> > filter (each 4 biquads). I should do this way : (Hope you will see
> > this correctly)
> > sample : 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9,...
> > oct:
> > 8kHz : x , x , x , x , x , x , x , x , x , x , x
> > 4kHz : x , _ , x , _ , x , _ , x , _ , x , _ ,
> > 2kHz : _ , x , _ , _ , _ , x , _ , _ , _ , x ,
> > 1kHz : _ , _ , _ , x , _ , _ , _ , _ , _ , _ , _ , x
> > For 8kHz octave, I have to take into account all samples
> > For 4kHz octave, 1 sample every 2
> > For 2kHz octave, 1 sample every 4
> > For 1kHz octave, 1 sample every 8
> > ...
> > It seem's easy, But i have problem to implement that.
> > From 48 kHz to 500Hz I need to apply 7 anti-aliasing filters (or
> > times the same filter !)
> > I need to apply 7 bandpass filters (or 7 times the same bandpass
> > filter) for the octaves 125 Hz to 8 kHz.
> > I do not have enough cycles to do that in interrupt.
> > I think the trick is to perform a part during interrupt, and the
> > outside the interrupt . (or allow the codec interrupt to be
> > interrupted by itself).
> > Well, any advice , tricks , method are welcome !! :o)
> > Thank you
> > Pierre
There was a Bruel & Kjaer application note many years ago describing
exactly how this works, for their real time 1/3 octave audio analyzer.
I thought I had a copy, but I can't find it. Basically, as long as you
double the processing power needed to deal with the top band, you have
to do all the lower bands by decimating and interleaving. The other
is to design N filters to cover the top octave, then simply reuse them
after successive decimation to cover all the lower octaves.