[R] FFT (fast fourier transform) function

Bill Simpson wsi at gcal.ac.uk
Wed May 31 09:35:15 CEST 2000



On Tue, 30 May 2000, mike olsen wrote:

> I'm having trouble with the fast fourier transform function ("fft").  Apparently, I'm not understanding what R's function is actually doing, let me show you with the example in the R manual:
> 
> if I put in:
> 
>     y <- 1:4
>     fft(x)
I think you mean
fft(y)

> i'll get this back:
> 
> 10+0i    -2+2i    -2+0i    -2-2i
> 
> this is what I'm assuming:
> 
> R is interpreting the increasing values of y to have an associated value that is incremented as x increases (a plot will show y against an index, so in this case we have something like y=x over the interval 1 to 4).
> The real value returned represents the coeffient of the cosine value, the imaginary value that of the sine, for n=0 to N-1 where N is the number of data points and n is the coeffient inside the sine/cosine terms, so that the output would be interpreted as:
> 
> 10 - 2 cos(2 pi*x) + 2 sin (2 pi * x) -2 cos (4 pi * x) -2 cos(6 pi * x) - 2 sin (6 pi * x)
> 
> which looks nothing like y=x over the interval (1,4).
> 
> Basically, I want to be able to fit fast fourier transforms to several sets of empirical data. Controlling the period would also be important here, and the R function does not seem to have a way of handling that.  I would appreciate any information on what this function is actually doing, or information on other R packages that are able to do transforms.

I don't think you have questions about *R's* fft, but about ffts in
general. I suggest you read a book on the fft. Try ch 18 of
Bracewell, The Fourier transform and its applications.

BTW R's output is correct for this example, see Bracewell p.366. Note that
you will have to multiply R's output by 1/n to get Bracewell's values.
(Some implementations of fft do this multiplication, and in others the
ifft is left to do it)

Another suggestion is to try comp.dsp, where a lot of fft questions are
posted and answered.

Bill

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list