th {seewave} | R Documentation |
Compute the entropy of a temporal envelope.
th(env, breaks)
env |
a data set resulting of an envelope obtained
using |
breaks |
'breaks' argument of |
Temporal entropy is calculated according to:
S = -sum(ylogy)/log(N)
with:
y = relative amplitude of the i envelope point,
and
sum(y) = 1
and N = number of envelope points.
A single value varying between 0 and 1 is returned. The value has no unit.
The temporal entropy of a noisy signal with many amplitude modulations
will tend towards 1 whereas the temporal entropy of quiet signal
will tend towards 0.
Note, however, that a sustained sound with an almost
flat envelope will also show a very high temporal entropy except if
you compute the entropy on the distribution obtained with the histogram. See examples.
Jerome Sueur, George Zhan for the idea and implementation of the
argument breaks
.
# 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")