[R] estimate phase shift between two signals

David Stoffer dsstoffer at gmail.com
Fri Jun 6 03:40:03 CEST 2008


help(spec.pgram) - then look at the examples at the bottom of the page



Dylan Beaudette-3 wrote:
> 
> Hi,
> 
> Are there any functions in R that could be used to estimate the
> phase-shift 
> between two semi-sinusoidal vectors? Here is what I have tried so far,
> using 
> the spectrum() function -- possibly incorrectly:
> 
> 
> # generate some fake data, normalized to unit circle
> x <- jitter(seq(-2*pi, 2*pi, by=0.1), amount=pi/8)
> 
> # functions defining two out-of-phase phenomena
> f1 <- function(x) jitter(sin(x), amount=0.25)
> f2 <- function(x, a) jitter(sin(x + a), amount=0.25)
> 
> # compute y-values
> # we are setting the phase shift arbitrarily
> s <- pi/1.5632198
> y1 <- f1(x)
> y2 <- f2(x, s)
> 
> 
> # plot:
> plot(x, y1, type='p', col='red', cex=0.5)
> lines(lowess(x, y1, f=0.25), col='red')
> 
> points(x, y2, col='blue', cex=0.5)
> lines(lowess(x, y2, f=0.25), col='blue')
> 
> 
> # generate time series object
> comb.ts <- ts(matrix(c(y1, y2), ncol=2))
> 
> # multivariate spectral decomposition
> spec <- spectrum(comb.ts, detrend=FALSE)
> 
> # but how to interpret the phase estimate?
> mean(spec$phase)
> 
> the mean 'phase' as returned from spectrum() does not seem to match the
> value 
> used to generate the data... Am I mis-interpreting the use or output from 
> spectrum() here? If so, is there a general procedure for estimating a 
> phase-shift between two noisy signals? Would I first have to fit a smooth 
> function in order to solve this analytically?
> 
> Thanks in advance,
> 
> 
> 
> -- 
> Dylan Beaudette
> Soil Resource Laboratory
> http://casoilresource.lawr.ucdavis.edu/
> University of California at Davis
> 530.754.7341
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
> 


-----
The power of accurate observation is commonly called cynicism 
by those who have not got it.  George Bernard Shaw
-- 
View this message in context: http://www.nabble.com/estimate-phase-shift-between-two-signals-tp17653636p17682957.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list