seewave (version 2.2.3)

th: Temporal entropy

Description

Compute the entropy of a temporal envelope.

Usage

th(env, breaks)

Value

A single value varying between 0 and 1 is returned. The value has no unit.

Arguments

env

a data set resulting of an envelope obtained using env

breaks

'breaks' argument of hist to compute the entropy on the distribution obtained with an histogram.

Author

Jerome Sueur, George Zhan for the idea and implementation of the argument breaks.

Details

Temporal entropy is calculated according to:
$$S = -\frac{\sum_{i = 1}^{N} y_i log_2(y_i)}{log_2(N)}$$ with:
y = relative amplitude of the i envelope point,
and $$\sum_{i = 1}^{N} y_i = 1$$
and N = number of envelope points.

See Also

sh, csh, H

Examples

Run this code
# Temporal entropy of a cicada song
data(orni)
envorni<-env(orni,f=22050,plot=FALSE)
th(envorni)
# Smoothing the envelope might slightly change the result.
envorniS<-env(orni,f=22050,smooth=c(50,0),plot=FALSE)
th(envorniS)
# If we mute a part of the cicada song, the temporal entropy decreases
orni2<-mutew(orni,f=22050,from=0.3,to=0.55,plot=FALSE)
envorni2<-env(orni2,f=22050,plot=FALSE)
th(envorni2)
# The temporal entropy of noise tends towards 1
a<-noisew(d=1,f=8000)
enva<-env(a,f=8000,plot=FALSE)
th(enva)
# But be aware that the temporal entropy
# of a sustained sound also tends towards 1
b<-synth(f=8000,d=1,cf=2000,plot=FALSE)
envb<-env(b,f=8000,plot=FALSE)
th(envb)
# except if you use the distribution of the histogram
th(envb, breaks="Sturges")

Run the code above in your browser using DataLab