[comp.dsp] What transform to use to get good audio spectra?

kuusama@news.funet.fi.tut.fi (Kuusama Juha) (10/01/90)

I'd like to see into audio data (50 kHz sampling rate) with qood resolution
in frequency. While the normal Fourier methods give easily very good results
in the high end of the spectrum, the low frequency resolution is very poor.

(Audio data is presented with a logarithmic scale. For example 1024 point
FFT gives frequency resolution of 24.4 Hz, which is more than 400 points
in the top octave (10-20 kHz), put no point below 24 Hz, one point (!) in
the lowest audio octave (20-40 Hz), etc.)

The question: does anybody have a transform that gives the spectrum at
user definable points, at points evenly spaced on logarithmic scale or
something? 

I can use about everything adequately commented: a reference, Matlab function,
C or Pascal code...

Please mail or post your gems!
--
 Juha Kuusama, kuusama@korppi.tut.fi

cpenrose@sdcc13.ucsd.edu (Christopher Penrose) (10/02/90)

In article <1990Oct1.130615.5802@funet.fi> kuusama@news.funet.fi.tut.fi (Kuusama Juha) writes:
>The question: does anybody have a transform that gives the spectrum at
>user definable points, at points evenly spaced on logarithmic scale or
>something? 

With a large enough table size, the phase vocoder can find the actual 
instantaneous frequencies of a signal (as averaged within the table size).
Using a table size of 4096 or 8192 works fairly well for me.  You can find
a good phase vocoder in the book:

Elements of Computer Music
F. Richard "Dick" Moore
Prentice-Hall

toma@hpsad.HP.COM (Tom Anderson) (10/09/90)

> I'd like to see into audio data (50 kHz sampling rate) with qood resolution
> in frequency. While the normal Fourier methods give easily very good results
> in the high end of the spectrum, the low frequency resolution is very poor.

> (Audio data is presented with a logarithmic scale. For example 1024 point

I asked a similar question a while back and got this excellent reply:

Try looking at "An Algorithm and Architecture for Constant-Q Spectrum
Analysis," by Gary W. Schwede.  "Q" refers to the ratio of bandwidth
to frequency, sometimes called the "quality" of a filter.
Constant Q <==> logarithmic frequency.

The paper is in the Proceedings of the IEEE International Conference
on Acoustics, Speech, and Signal Processing (ICASSP), April 1983, pp.
1384-1387.

Tom Anderson      toma@hpsad.hp.com    "It's only hardware"