# This is an R-script that demonstrates how a random curve consists # of a number of cosine and sine curves with random amplitudes. # The script can be run in the R-environment, freely available from # http://cran.r-project.org (Mac/Linux/Windows). # To run, save the file as 'FT.R' in a path that R reads from # and type 'source("FT:R")' # Rasmus E. Benestad, Boulder, Aug. 14, 2001. # Set up data matrix representing random amplitudes, and split between # cosine and sine: A <- rnorm(100); dim(A) <- c(50,2) # Set up matrix and vector holding the results; x holds the random curve and # y the different cosine+sinus components. x <- rep(0,1000); y <- matrix(rep(x,50),50,1000) # Define the basis frequency of the cosine and sine curves: the largest # frequency corresponds to one cycle for the whole curve: w <- pi*seq(0,2,length=1000) # Colour scheme for the graphics: redblue <- rgb( c(seq(1,0.1,length=30),rep(0,20)), rep(0,50), c(rep(0,20),seq(0.1,1,length=30)) ) # Carry out the construction of the random curves: for (i in 1:50) { y[i,] <- ( A[i,1]*cos(i*w) + A[i,2]*sin(i*w))/sqrt(i) x <- x + y[i,] } # Produce the graphics to show the results plot(x,type="l",lwd=3,ylim=c(-30,10)) text(500,-7.5,"= sum of ...",cex=1.75,font=2) for (i in 1:50) lines(y[i,] -10 -i/2.5,col=redblue[i])