[R] Fourier Transform fft help

delic kranius at optonline.net
Wed Sep 16 19:13:43 CEST 2009


I wrote a script that I anticipating seeing a spike at  10Hz with the
function 10* sin(2*pi*10*t). 
I can't figure out why my plots  do not show spikes at the frequencies I
expect. Am I doing something wrong or is my expectations wrong?


require(stats)
layout(matrix(c(1,2,3), 3, 1, byrow = TRUE))
#SETUP
   n    <- 256 #nextn(1001) gives next power 2
   F    <- 100 #Hz -50 to 50 Hz
   dt   <- 1/F
   T    <- n*dt
   df   <- 1/T
   t    <- seq(0,T,by=dt)  #also try ts function
   t<-t[1:length(t)-1]
   freq <- 5 #Hz

#SIGNAL FUNCTION
   y     <- 10* sin(2*pi*10*t)   #10*sin(2*pi*freq*t) 
#FREQ ARRAY
   #f     <- seq(-F/2,F/2,by=df)
	f     <- F/2*seq(-1,1,length.out=n+1)
   f<-f[1:length(f)-1]
#FOURIER WORK
   Y     <- fft(y)
   mag   <- sqrt(Re(Y)^2+Im(Y)^2)
   phase <- atan(Im(Y)/Re(Y))
   Yr    <- Re(Y)
   Yi    <- Im(Y)

#PLOT SIGNALS
   plot(t,y,type="l",xlim=c(0,T)) 
   plot(f,Re(Y),type="l")
   plot(f,Im(Y),type="l")
-- 
View this message in context: http://www.nabble.com/Fourier-Transform-fft-help-tp25475063p25475063.html
Sent from the R help mailing list archive at Nabble.com.




More information about the R-help mailing list