# [R] fft inverse display help

rkevinburton at charter.net rkevinburton at charter.net
Wed Oct 1 16:56:17 CEST 2008

Generate the square wave:

genseq <- function()
{
x <- numeric(4*365)
s <- seq(as.Date("2005-01-01"), as.Date("2008-12-31"), by="month")
ob <- as.vector(s[c(10,22,34,46)] - as.Date("2005-01-01"))
oe <- as.vector(s[c(11,23,35,47)] - as.Date("2005-01-01"))
for(.index in 1:length(ob))
{
x[ob[.index]:(oe[.index] - 1)] <- 1
}
return(ts(x, frequency=365))
}

Take the fft of the series generated:

series <- genseq()
series <- ts(c(series, rep(0, nextn(length(series)) - length(series))), frequency = 365)
fs <- fft(series)

Filter the response. Pick any two frequencies:

ff <- complex(length(fs))
ff[9] <- fs[9]
ff[5] <- fs[5]

Include the DC component:

ff[1] <- fs[1]

Take the inverse

fi <- fft(ff, inverse=TRUE) / length(ff)

Plot

plot(fi)

Notice that the plot is the Re vs. Im on the x and y axis' respectively.

Now notice the difference if I plot the inverse fft

plot(fft(fs/length(fs), inverse=TRUE))

My question was simply the "automatic" mode that 'plot' seems to be taking. In the first instance Re vs. Im and the second series vs. Time.

Kevin

---- Dieter Menne <dieter.menne at menne-biomed.de> wrote:
>  <rkevinburton <at> charter.net> writes:
>
> >
> > So iis what you are saying n plotting the list of compliex numbers 'R'
> recognizes the non-symmery and plots
> > it differently (Re vs. Im) rather than versus Time?
>
> Mmm... don't fully understand what you mean, mainly because your program example
> did not run and I had do some guessing what your problem was.
>
> Dieter
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help