Matlab中向量的谱熵和谱能量

ute*_*ngr 3 matlab fft entropy spectrum frequency-domain

我将使用光谱能量和光谱熵作为基于窗口的时间序列数据的特征。但是,我对在线使用的公式有些困惑,尤其是关于特殊熵。

我使用了 Matlab 中的熵,但这不适用于时间序列数据。它只是给我所有的零。http://www.mathworks.nl/help/images/ref/entropy.html 此版本的测试窗口熵结果 = 0

然后我用了这个版本。 http://www.mathworks.com/matlabcentral/fileexchange/28692-entropy 测试窗口此版本的熵结果 = 4.3219

在将 imhist 应用于数据窗口(p = imhist(aw1(:));)后,我还尝试了 -sum(p.*log2(p))。这是从在线帮助中得到的。
此版本的测试窗口熵结果 = 0.0369

他们都报告了不同的值。

对于光谱能量,我使用的是 fft 系数的平方和。sum(abs(fft(data-window)).^2)

任何机构都可以给我任何正确版本的建议吗?

ede*_*der 5

对于谱熵,步骤是:

  • 计算功率谱密度(PSD)
  • 规范化 PSD
  • 计算熵??(P)log2(P),其中 P = PSD

    P=sum(abs(fft(data-window)).^2)
    %Normalization
    d=P(:);
    d=d/sum(d+ 1e-12);
    
    %Entropy Calculation
    logd = log2(d + 1e-12);
    Entropy(inc) = -sum(d.*logd)/log2(length(d));
    
    Run Code Online (Sandbox Code Playgroud)