Learn R Programming

seewave (version 1.1)

corenv: Cross-correlation between two time wave envelopes

Description

This function tests the similarity between two time wave envelopes by returning their maximal correlation and the time shift related to it.

Usage

corenv(wave1, wave2, f, smooth = 20, plot = TRUE, plotval = TRUE,
method = "spearman", col = "black", colval = "red",
cexval = 1, fontval = 1, xlab = "Time (s)",
ylab = "Coefficient of correlation (r)", ...)

Arguments

wave1
data describing a first time wave.
wave2
data describing a second time wave.
f
sampling frequency of wave1 and wave2.
smooth
smoothes the envelopes of wave1 and wave2 by averaging the number of points selected.
plot
logical, if TRUE plots r values against frequency shift (by default TRUE).
plotval
logical, if TRUE adds to the plot maximum r value and frequency offset (by default TRUE).
method
a character string indicating which correlation coefficient is to be computed ("pearson", "spearman", or "kendall") (see cor).
col
colour of r values.
colval
colour of r max and frequency offset values.
cexval
character size of r max and frequency offset values.
fontval
font of r max and frequency offset values.
xlab
title of the frequency axis.
ylab
title of the r axis.
...
other plot graphical parameters.

Value

  • If plot is FALSE, corenv returns a list containing four components:
  • rthe successive correlation values between x and y.
  • rmaxthe maximum correlation value between x and y.
  • pthe p value corresponding to rmax.
  • fthe time offset corresponding to rmax.

Details

Successive correlations between the envelopes of wave1 and wave2 are computed when regularly sliding forward and backward wave2 along wave1. The maximal correlation is obtained at a particular shift (time offset). This shift may be positive or negative. The higher smooth is set up, the faster will be the computation but less precise the results will be. The corresponding p value, obtained with cor.test, is plotted. Inverting wave1 and wave2 may give slight different results.

See Also

spec,covspectro, cor, cor.test.

Examples

Run this code
data(orni)
# cross-correlation between two echemes of a cicada song
wave1<-cutw(orni,f=22050,from=0.3,to=0.4,plot=FALSE)
wave2<-cutw(orni,f=22050,from=0.58,to=0.68,plot=FALSE)
corenv(wave1,wave2,f=22050,type="l",ylim=c(-0.7,1.1))

Run the code above in your browser using DataLab