set.seed(123)

library(oce)
## Loading required package: mapproj
## Loading required package: maps
## Loading required package: proj4
library(psd)
## Loading required package: fftw
## Loaded psd (0.4.1) -- Adaptive multitaper spectrum estimation.
Fs <- 1000
t <- seq(0, 0.296, 1/Fs)
x <- cos(2 * pi * t * 200) + rnorm(n=length(t))
xts <- ts(x, frequency=Fs)
par(mar=c(3, 3, 1, 1), mgp=c(2, 0.7, 0))
s <- spectrum(xts, spans=c(3,2), main="", log='no')
grid()
w <- pwelch(xts, plot=FALSE)
lines(w$freq, w$spec, col="red")

S <- pspectrum(x, x.frqsamp=Fs)
## Stage  0 est. (pilot) 
##  environment  ** .psdEnv **  refreshed
## detrending (and demeaning)
## Stage  1 est. (Ave. S.V.R. -13.9 dB) 
## Stage  2 est. (Ave. S.V.R. -32.5 dB) 
## Stage  3 est. (Ave. S.V.R. -36.4 dB) 
## Normalized  single-sided PSD  (PSD)  to single-sided PSD for sampling-freq.  1000
lines(S$freq, S$spec, col='blue')

S <- pspectrum(x, x.frqsamp=Fs, ntap.init=1, niter=2)
## Stage  0 est. (pilot) 
##  environment  ** .psdEnv **  refreshed
## detrending (and demeaning)
## Stage  1 est. (Ave. S.V.R. -14.3 dB) 
## Stage  2 est. (Ave. S.V.R. -30.8 dB) 
## Normalized  single-sided PSD  (PSD)  to single-sided PSD for sampling-freq.  1000
lines(S$freq, S$spec, col='darkgreen')

legend("topright", lwd=par("lwd"), title="Random + 200Hz",
       col=c("black", "red", "blue", "darkgreen"),
       legend=c("spectrum", "pwelech", "pspectrum default", "pspectrum modified"))

plot of chunk unnamed-chunk-1