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)