sh {seewave} | R Documentation |
This function computes the Shannon or Renyi entropy of a frequency spectrum
sh(spec, alpha = "shannon")
spec |
a data set resulting of a spectral analysis obtained
with |
alpha |
a character string, by default |
. Shannon spectral entropy is calculated according to:
S = -sum(ylogy)/log(N)
. Simpson or Gini-Simpson spectral entropy (or index) is computed according to:
GS = 1 - sum(y^2)
. Renyi spectral entropy of order alpha is calucalted according to:
R = (1/(1-alpha)) * log2(sum(y^alpha))
with
alpha >= 0
alpha !=1
y = relative amplitude of the i frequency,
sum(y) = 1
and N = number of frequencies.
A numeric vector of length 1 is returned. The value has no unit.
The Shannon entropy scaled between 0 and 1 is also known as Pielou's evenness index
The Shannon spectral entropy of a noisy signal will tend towards 1 whereas the Shannon spectral entropy of a pure tone signal will tend towards 0. See Han et al. for details regarding the Renyi entropy.
Jerome Sueur and Laurent Lellouch
Han, NC, Muniandy SV, Dayou J (2011) Acoustic classification of
Australian anurans based on hybrid spectral-entropy approach. Applied
Acoustics.
Nunes RR, Almeida de MP, Sleigh JW (2004) -
Spectral entropy: a new method for anesthetic adequacy.
Revista Brasileira de Anestesiologia, 54, 413-422.
Renyi A (1961) - On measures of information and entropy. Proceedings
of the 4th Berkeley Symposium on Mathematics, Statistics and
Probability 1960. pp. 547-561.
Simpson EH (1949) - Measurement of diversity. Nature, 163, 688.
a<-synth(f=8000,d=1,cf=2000,plot=FALSE) speca<-spec(a,f=8000,at=0.5,plot=FALSE) ## Shannon spectral entropy sh(speca) # [1] 0.2336412 b<-noisew(d=1,f=8000) specb<-spec(b,f=8000,at=0.5,plot=FALSE) sh(specb) # close to 1 ## Renyi spectral entropy sh(speca, alpha=2) sh(speca, alpha=3)