【问题标题】:Spectral Entropy and Spectral Energy of a vector in MatlabMatlab中向量的谱熵和谱能量
【发布时间】:2014-01-17 16:07:44
【问题描述】:

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

我使用了 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 系数的平方和。 总和(abs(fft(数据窗口))。^2)

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

【问题讨论】:

    标签: matlab fft entropy spectrum frequency-domain


    【解决方案1】:

    对于谱熵,步骤是:

    • 计算功率谱密度 (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));
      

    【讨论】:

      【解决方案2】:

      我已经计算了信号的谱熵。我遵循相同的步骤。但我没有添加那个 1e-12。你为什么添加那个 1e-12?您可以使用 sum(d) 代替 sum(d+1e-12)

      【讨论】:

        猜你喜欢
        • 2011-03-18
        • 1970-01-01
        • 1970-01-01
        • 2017-02-21
        • 2017-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多