Sunday, 26 April 2015

wavelet - How to calculate CWT shannon entropy?


I am trying to calculate shannon entropy of CWT. I am not sure if I am doing it right. Assume that $W(a_i,t), i=1;2;...;M$ is a set of wavelet coefficients. The Shannon wavelet entropy is calculated by:
$E=-\sum_{i=1}^{M}d_i log(d_i)$ $\rightarrow$ where $d_i=\frac{|W(a_i,t)|}{\sum_{j=1}^{M}W(a_j,t)}$

I am confused how to calculate $E$. for example I have a coefficient matrix with size of $M\times N$, $M$ is scales number and $N$ is time segments. first I have to calulate $d_i$, this is my main problem. this is the wavelet coefficient matrix :
$W_{M\times N} = \begin{pmatrix} w_{a_1,1} & w_{a_1,2} & \cdots & w_{a_1,N} \\ w_{a_2,1} & w_{a_2,2} & \cdots & w_{a_2,N} \\ \vdots & \vdots & \ddots & \vdots \\ w_{a_M,1} & w_{a_M,2} & \cdots & w_{a_M,N} \end{pmatrix}$


hmm i am pretty sure i am wrong, can anyone help? for example tell me how can i calculate $d_4$?
Here I have right a little Matlab script to calculate shannon entropy of CWT.
Is it right or wrong? and what should I do?


 [M,N]=size(coeffs);
for js=1:M
Ej(js)=sum(abs(coeffs(js,:)));
end;
Etot=sum(Ej);

Pj=Ej./Etot;
%shannon entropy
shan_entr=-sum(Pj.*log(Pj));

Answer



Yes. Your code does compute the same thing as the formula from the paper.


No comments:

Post a Comment

readings - Appending 内 to a company name is read ない or うち?

For example, if I say マイクロソフト内のパートナーシップは強いです, is the 内 here read as うち or ない? Answer 「内」 in the form: 「Proper Noun + 内」 is always read 「ない...