您好!下面是 MATLAB 代码示例,用于计算信号的包络熵:
function H = Envelope_Entropy(sig)
% 求取信号的包络
env = abs(hilbert(sig));
% 计算包络的直方图
binEdges = 0:0.05:max(env);
[N,bin]=histc(env,binEdges);
P=N/sum(N);
% 计算包络熵
H = -sum(P(P~=0).*log2(P(P~=0)));
end
该代码使用 hilbert
函数求取信号的包络,然后计算包络的直方图和包络熵。