| diffenv {seewave} | R Documentation |
Difference between two amplitude envelopes
Description
This function estimates the surface difference between two amplitude envelopes.
Usage
diffenv(wave1, wave2, f, channel = c(1,1), envt = "hil", msmooth = NULL, ksmooth = NULL,
plot = FALSE, lty1 = 1, lty2 = 2, col1 = 2, col2 = 4, cold = 8,
xlab = "Time (s)", ylab = "Amplitude", ylim = NULL, legend = TRUE, ...)
Arguments
wave1 |
a first R object. |
wave2 |
a second R object. |
f |
sampling frequency of |
channel |
channel of the R objects, by default left channel (1) for each object. |
envt |
the type of envelope to be used: either "abs" for absolute
amplitude envelope or "hil" for Hilbert amplitude envelope. See |
msmooth |
a vector of length 2 to smooth the amplitude envelope with a
mean sliding window. The first component is the window length
(in number of points). The second component is the overlap between
successive windows (in %). See |
ksmooth |
|
plot |
logical, if |
lty1 |
line type of the first envelope (envelope of |
lty2 |
line type of the second envelope (envelope of |
col1 |
colour of the first envelope (envelope of |
col2 |
colour of the second envelope (envelope of |
cold |
colour of the surface difference. |
xlab |
title of the time axis. |
ylab |
title of the amplitude axis. |
ylim |
range of amplitude axis. |
legend |
logical, if |
... |
other |
Details
D is a Manhattan distance (l1 norm).
Envelopes of both waves are first transformed as probability mass functions (PMF).
Envelope difference is then computed according to:
D = \frac{\sum{|env1-env2|}}{2}, with D \in [0,1].
Value
The difference is returned. This value is without unit.
When plot is TRUE, both envelopes and their difference surface are
plotted on the same graph.
Note
This method can be used as a relative distance estimation between different envelopes.
Author(s)
Jerome Sueur sueur@mnhn.fr.
References
Sueur, J., Pavoine, S., Hamerlynck, O. & Duvail, S. (2008) - Rapid acoustic survey for biodiversity appraisal. PLoS ONE, 3(12): e4065.
See Also
env, corenv, diffspec,
diffwave
Examples
data(tico) ; tico <- tico@left
data(orni) ; orni <- orni@left
# selection in tico of two waves with similar duration
tico2<-tico[1:length(orni)]
diffenv(tico2,orni,f=22050,plot=TRUE)
# smoothing the envelope gives a better graph but slightly changes the result
diffenv(tico2,orni,f=22050,msmooth=c(20,0),plot=TRUE)