Learn R Programming

seewave (version 2.1.6)

th: Temporal entropy

Description

Compute the entropy of a temporal envelope.

Usage

th(env, breaks)

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.

Value

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

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
# NOT RUN {
# 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