基于小波熵的Matlab程序

时间:2021-04-23 09:54:00

这是我在做Motor Image EEG Classification 的时候,需要用的,希望能帮到其他小伙伴。

代码及注释

load  data.mat  % 加载数据
x = data;
wpt = wpdec(x,4,'db3'); % 小波包分解,4是层数,db3为小波基,参数可改
plot(wpt); % 绘制分解树形图

 for j = 1:2^4 % 4层分解,16组系数
        E(j) = sum(abs(wprcoef(wpt,[4,j-1])).^2); % 能量求和
    end
E1 = sum(E);
dim = length(E);
for j= 1:dim
    p(j)= E(j)/E1;
end
Shang= -sum(p.*log(p)); % 熵的定义式