diffenv: Difference between two amplitude envelopes

View source: R/seewave.r

diffenvR 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 wave (in Hz). Does not need to be specified if embedded in wave.

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 env.

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 env.

ksmooth

kernel smooth via kernel. See env.

plot

logical, if TRUE plots both envelopes and their surface difference (by default FALSE).

lty1

line type of the first envelope (envelope of wave1).

lty2

line type of the second envelope (envelope of wave2).

col1

colour of the first envelope (envelope of wave1).

col2

colour of the second envelope (envelope of wave2).

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 TRUE adds a legend to the plot.

...

other plot graphical parameters.

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)

seewave documentation built on Oct. 19, 2023, 5:07 p.m.

Related to diffenv in seewave...