[R] R question about spectrum metric

Niels Waller niels.waller at vanderbilt.edu
Sun Jul 18 01:03:53 CEST 2004

Dear R community,

I would like to conduct a simulation study that involves the 
generation and recovery of times series spectra.  Spectrum analysis 
is a new area for me so I am very much in the crawling stage at this point.

I am having difficulty understanding the output of the spec.pgram (or
function. Specifically, I do not understand the metric of the results.  In
simulation the recovered coefficients correlate  .99 with the generating 
coefficients, so everything appears in order -- accept for my 
confusion regarding the metric of the recovered coefficients.

I have written a function (makeWave) to generate the series. I then call
function with the required arguments. Next I analyze the resulting series
spec.pgram and compare the results with the generating coefficients 
(at the appropriate frequencies).  In a small simulation study the
and recovered coefficients correlated .99 -- however the metric of the two 
sets of coefficients differ by several orders of magnitude.

I would be very happy to send the actual code of this simulation 
(less than 2 pages of code) to anyone who could help me understand how 
to scale my recovered coefficients to the metric of the generating
Specifically, I am looking for a general solution to the scaling problem (if
one exists).

Thank you in advance for any and all help.

Niels Waller
Vanderbilt University
R 1.9.1
Windows XP

##FUNCTION:   makeWave
##Purpose:    to generate periodic time series (no white noise)
## c0        :: coefficient for frequency 0
## c.n       :: vector of (complex) coefficients for frequencies 1...+n
## cminus.n  :: vector of (complex) coefficients for frequencies 1...-n
## N         :: number of time points in generated wave
## f         :: fundamental frequency of wave

makeWave<-function(c0, c.n, cminus.n, N, f){
k<-1:N  #k = time point
w <- 2*pi*f
   for(t.i in 1:N){   ## over time t.i
      x[t.i] <- c0 
          for(j in 1:length(c.n)){   ## over frequency j
          temp<-temp +  c.n[j] * exp(1i*w*j*t.i) + 
                        cminus.n[j] * exp(1i*w*j*t.i) 
 x  ##  composite wave

More information about the R-help mailing list