# Code initially written by Rob Kass, revised by Patrick Foley.
# First read in the temperature data, and assign column names.
temperatureDF <- read.table("data/temp.dat",col.names=c("Temp","Time"))
temperature <- temp$Temp
time <- temp$Time
# Now we make the Periodogram, found in figure 18.4.
# Our periodogram looks slightly different from that in the book.
# The book rescales energies.
n <- length(temperature)
# Now we recenter temperature around 0 (otherwise the periodogram
# would have a (possibly large) component at 0 which could dwarf the
# interesting spectral behavior).
centeredtemperature <- temperature - mean(temperature)
# We find the total energy, take the fourier transform, and scale to
# appropriate energy.
totalVariance <- sum(centeredtemperature^2)
temperatureDFT <- fft(centeredtemperature)
dftEnergies <- abs(temperatureDFT)^2
R2s <- dftEnergies / sum(dftEnergies)
jpeg("figure18.4.jpg")
frequencies <- 0:(n/2) / n
plot(frequencies,
R2s[1:((n/2)+1)],
type = "l",
xlab = "Frequency",
ylab = "Energy")
dev.off()