Newsgroups: comp.speech
Path: cantaloupe.srv.cs.cmu.edu!fs7.ece.cmu.edu!europa.eng.gtefsd.com!howland.reston.ans.net!spool.mu.edu!uwm.edu!daffy!uwvax!sinetnews!news.u-tokyo.ac.jp!wnoc-tyo-news!aist-nara!wnoc-kyo-news!atrwide!atr-la!lucke
From: lucke@itl.atr.co.jp (Helmut Lucke)
Subject: Re: Algorithm for DFT to log frequency scale, anyone?
In-Reply-To: Thanassi Protopapas's message of 12 Dec 1994 02:34:30 GMT
Message-ID: <LUCKE.94Dec16104403@atrq28.itl.atr.co.jp>
Sender: news@itl.atr.co.jp (USENET News System)
Nntp-Posting-Host: atrq28
Organization: ATR Interpreting Telecommunications Research Labs., Kyoto, JAPAN
References: <3cgcrm$c6@cat.cis.Brown.EDU>
Date: Fri, 16 Dec 1994 01:44:03 GMT
Lines: 67

In article <3cgcrm$c6@cat.cis.Brown.EDU> Thanassi Protopapas <protopap@bekas.cog.brown.edu> writes:

   I need to compute the audio spectrum of some speech signals on
   a logarithmic frequency scale (i.e., I want to evaluate the 
   Fourier transform on frequencies equidistant on a log scale).

Well, well. I see what you want to do, but I wouldn't call this
a Fourier transform. The Fourier transform is defined on linerarly
equidistant frequencies. Without this, many of its nice mathematical
properties are lost. I don't know what you need your spectrum for,
but it seems that a series of logrithmically spaced band-path
filters is really what you are looking for.

   An obvious way to do this is to compute via a regular FFT with
   LOTS of points and do some averaging at the high frequencies.
   A less obvious way is to do several FFTs, with relatively less
   points, but each after appropriately downsampling the speech
   and then, for each log region, use the most appropriate point
   set (I am not sure this is rigorous, or even appropriate).

If you do want something Fourier-transfrom-like, I would say
the following:

The DFT (discrete fourier transform) algorithm allows you to
calculate fourier coefficients for any frequency spacing you
want, so no problem here. The point about the FFT algorithm is
that for regualarily spaced frequencies partial results can
be reused and so the DFT can be calculated faster. However 
this advatage in computational efficiency is almost certainly
lost if you calculate the FFT on many, many points and
then downsample your spectrum, as you propose.

So I would simply use  the straightforward DFT algorithm
on the frequency-spacing that you require.

   I was wondering if there is any algorithm around that is designed
   to compute DFTs using such a nonlinear scale without requiring
   these discrete steps. Perhaps by taking the second approach (of
   multiple FFTs) to the limit, there is a procedure for N regular
   FFTs of one or few points to generate N estimates at log-spaced 
   frequencies. Does anyone know of such a thing? Does it make any
   sense at all to try and do that, or this this approach fundamentally
   flawed? 

Well, if you do many FFT's to the limit, than you are in fact
doing the straightforward DFT calculations. 

In case you don't know what I mean by DFT calculations, 
here is the formula (complex case):

DFT at frequency F =

some       sum      f(x) exp(x * omega)
const.  x=1,..,N


where    omega = 2 pi i F / sampling freq



--------------------------------------------------------------------
Helmut Lucke                                <lucke@itl.atr.co.jp>
ATR Interpreting Telecommunications Research Laboratories
2-2 Hikaridai, Seika-cho, Soraku-gun, Kyoto 619-02, JAPAN
Tel: +81-7749-5-1382 (direct)               Fax:   +81-7749-5-1308
     +81-7749-5-1301 (switchboard)
--------------------------------------------------------------------
