corspec {seewave}R Documentation

Cross-correlation between two frequency spectra

Description

This function tests the similarity between two frequency spectra by returning their maximal correlation and the frequency shift related to it.

Usage

corspec(x, y, range, plot = TRUE, plotval = TRUE,
method = "spearman", col = "black", colval = "red",
cexval = 1, fontval = 1, xlab = "Frequency (kHz)",
ylab = "Coefficient of correlation (r)", ...)

Arguments

x a first data set resulting of a spectral analysis obtained with spec or meanspec (not in dB).
y a second data set resulting of a spectral analysis obtained with spec or meanspec (not in dB).
range range of x and y (in kHz).
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.

Details

It is important not to have data in dB.
Successive correlations between x and y are computed when regularly shifting y towards lower or higher frequencies.
The maximal correlation is obtained at a particular shift (frequency offset). This shift may be positive or negative.
The corresponding p value, obtained with cor.test, is plotted.
Inverting x and y may give slight different results, see examples.

Value

If plot is FALSE, corspec returns a list containing four components:

r the successive correlation values between x and y.
rmax the maximum correlation value between x and y.
p the p value corresponding to rmax.
f the frequency offset corresponding to rmax.

Author(s)

Jérôme Sueur jerome.sueur@ibaic.u-psud.fr

References

Hopp, S. L., Owren, M. J. and Evans, C. S. (Eds) 1998. Animal acoustic communication. Springer, Berlin, Heidelberg.

See Also

spec, meanspec, corspec, covspectro, cor, cor.test.

Examples

data(tico)
# compare the two first notes spectra
a<-spec(tico,f=22050,wl=512,at=0.2,plot=FALSE)
c<-spec(tico,f=22050,wl=512,at=1.1,plot=FALSE)
op<-par(mfrow=c(2,1), mar=c(4.5,4,3,1))
spec(tico,f=22050,wl=512,at=0.2,col="blue",type="l")
par(new=TRUE)
spec(tico,f=22050,wl=512,at=1.1,col="green",type="l")
legend(x=8,y=0.5,c("Note A", "Note C"),lty=1,col=c("blue","green"),bty="o")
par(mar=c(5,4,2,1))
corspec(a,c,range=c(0,11.025),type="l",
  ylim=c(-0.25,0.8),xaxs="i",yaxs="i",las=1)
par(op)
# different correlation methods give different results...
op<-par(mfrow=c(3,1))
corspec(a,c,range=c(0,11.025),
  type="l",xaxs="i",las=1, ylim=c(-0.25,0.8))
title("spearmann correlation (by default)")
corspec(a,c,range=c(0,11.025),
  type="l",xaxs="i",las=1,ylim=c(0,1),method="pearson")
title("pearson correlation")
corspec(a,c,range=c(0,11.025),
  type="l",xaxs="i",las=1,ylim=c(-0.23,0.5),method="kendall")
title("kendall correlation")
par(op)
# inverting x and y does not give exactly similar results
op<-par(mfrow=c(2,1),mar=c(2,4,3,1))
corspec(a,c,range=c(0,11.025),type="l")
corspec(c,a,range=c(0,11.025),type="l")
par(op)

[Package seewave version 1.2 Index]