Computes complex demodulate of a given series around a given central frequency using multiple taper techniques. Returns amplitude, phase, and complex demodulate.
demod.dpss(x,centreFreq,nw,blockLen,stepSize=1,wrapphase=TRUE,...)
Time series, required to be contiguous.
Frequency around which to demodulate.
Parameter controlling time-bandwidth.
Length of sub-block to use; demodulate is computed on each block in turn.
This is a proposed option that sets the index step size between blocks. Currently this must be set to 1 and changes in step size have not been implemented.
If true, routine wraps phases around +/-360 degree boundaries.
Additional arguments. Currently only includes depreciated arguments
Thomson, D.J. (1995). The Seasons, Global Temperature, and Precession. Science, Volume 268, pp. 59--68.
Bloomfield P. (2000). Fourier Analysis of Time Series. 2nd edition. Wiley New York, pp. 97--130.
data(CETmonthly)
nJulOff <- 1175
xd <- ts(CETmonthly[,"temp"],deltat=1/12)
demodYr <- demod.dpss(xd,centreFreq=1,nw=3,blockLen=120,stepSize=1)
phase <- demodYr$phase
offsJul <- 3*360/365
phaseAdj <- phase
phaseAdj[1:nJulOff] <- phase[1:nJulOff] + offsJul
yr <- (time(xd)+1658)[1:length(phase)]
plot(yr, phaseAdj, type="l", lwd=2,
ylab="Phase of the Year in Degrees",
xlab="Gegorian calender date")
lines((1:nJulOff)/12+1659, phase[1:nJulOff], col="red")
fit <- lm( phaseAdj ~ yr)
abline(fit, lty=2, col="blue")
cat(paste("Precession Estimate: ",fit$coef[2]*60*60,digits=6," (arcseconds/yr)\n",sep=""))
Run the code above in your browser using DataLab