[R] Fourier Transform fft help
delic
kranius at optonline.net
Wed Sep 16 19:47:43 CEST 2009
After extensive research I found some information hinting at my freq array
being wrong. I thought that the data spanned -F/2 to F/2. It seems that I
should only plot the first half of the fft vector? Can anyone confirm or
shed some light on this?
One other thing I thought the magnitude should be 10 for 10* sin(2*pi*10*t),
my magnitudes are much higher.
delic wrote:
>
> 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-tp25475063p25477281.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list