[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
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list