| corspec | R Documentation | 
This function tests the similarity between two frequency spectra by returning their maximal correlation and the frequency shift related to it.
corspec(spec1, spec2, f = NULL, mel = FALSE, plot = TRUE, plotval = TRUE,
method = "spearman", col = "black", colval = "red",
cexval = 1, fontval = 1, xlab = NULL,
ylab = "Coefficient of correlation (r)", type="l",...)
| spec1 | a first data set resulting of a spectral analysis obtained
with  | 
| spec2 | a first data set resulting of a spectral analysis obtained
with  | 
| f | sampling frequency of waves used to obtain  | 
| mel | a logical, if  | 
| plot | logical, if  | 
| plotval | logical, if  | 
| method | a character string indicating which correlation coefficient is
to be computed ("pearson", "spearman", or "kendall")
(see  | 
| 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. | 
| type | if  | 
| ... | other  | 
It is important not to have data in dB.
Successive correlations between spec1 and spec2 are computed when regularly
shifting spec2 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 spec1 and spec2 may give slight different results, see examples.
If plot is FALSE, corspec returns a list containing four
components:
| r | a two-column matrix, the first colum corresponding to the frequency
shift (frequency x-axis) and the second column corresponding to the successive
r correlation values between  | 
| rmax | the maximum correlation value between  | 
| p | the p value corresponding to  | 
| f | the frequency offset corresponding to  | 
Jerome Sueur, improved by Laurent Lellouch
Hopp, S. L., Owren, M. J. and Evans, C. S. (Eds) 1998. Animal acoustic communication. Springer, Berlin, Heidelberg.
spec, meanspec, corspec,
covspectro, cor, cor.test.
## Not run: 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,at=0.2,col="blue")
par(new=TRUE)
spec(tico,f=22050,at=1.1,col="green")
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, 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,xaxs="i",las=1, ylim=c(-0.25,0.8))
title("spearmann correlation (by default)")
corspec(a,c,xaxs="i",las=1,ylim=c(0,1),method="pearson")
title("pearson correlation")
corspec(a,c,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)
corspec(c,a)
par(op)
## mel scale
require(tuneR)
data(orni)
orni.mel <- melfcc(orni, nbands = 256, dcttype = "t3", fbtype = "htkmel", spec_out=TRUE)
orni.mel.mean <- apply(orni.mel$aspectrum, MARGIN=2, FUN=mean)
tico.mel <- melfcc(tico, nbands = 256, dcttype = "t3", fbtype = "htkmel", spec_out=TRUE)
tico.mel.mean <- apply(tico.mel$aspectrum, MARGIN=2, FUN=mean)
corspec(orni.mel.mean, tico.mel.mean, f=22050, mel=TRUE, plot=TRUE)
## End(Not run)Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.