[R] FFT - (STATS) - is this correct?
Rolf Turner
r.turner at auckland.ac.nz
Wed Jul 30 23:15:19 CEST 2008
On 30/07/2008, at 11:14 PM, <renata.camargo05 at ntlworld.com> wrote:
> Hello,
>
> I have calculated the fourier transform of the series enclosed at
> the end of this message, by doing:
>
> library(stats)
> x <- readLines("file1.txt")
> x.num <- as.numeric(x)
> ft.x.num <- fft(x.num)
>
> My question is: why is the first value (Real) of ft.x.num that big?
> (954.833870) all the other values are much smaller. Am I doing
> something wrong?
>
> Could you please help me to understand that?
Just look at the definition of the discrete Fourier transform:
n
X(omega) = SUM x_t * exp(i*omega*t)
t=1
(The mailer will probably mess up that expression and put everything
out of alignment;
if only these <expletive deleted> mailers would leave well enough
alone and simply
transmit plain ascii files and display the results in a fixed width
font .....
Anyway, I hope you can read it.)
The point is that the fast Fourier transform calculates the discrete
Fourier transform
at each of the ``Fourier'' frequencies omega_j = 2*pi*j/n, j =
0, ..., n-1. The result is,
as you noted in your follow-up email ``palindromic'' --- X(omega_{n-
j}) = X(omega_j)^*
where ``*'' indicates complex conjugate.
At omega_0 = 0 you obviously get X(omega_0) = sum(x) --- that's where
the value 954.833870
comes from. Just execute sum(x) to check this.
If you want to understand the discrete Fourier transform, I suggest
you read Peter Bloomfield's
book ``Fourier Analysis of Time Series --- An Introduction'' (2nd
ed.), Wiley Series in
Probability and Statistics, 2000.
cheers,
Rolf Turner
P.S. BTW doing ``library(stats)'' is silly; the stats library is
loaded automatically
when R is started.
R. T.
######################################################################
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}
More information about the R-help
mailing list