2

将相空间划分为多个Alpha分区后,旨在找出该分区的好坏程度。从这个角度来看,我们需要找出源熵。现在,我用谷歌搜索了很多,但找不到源熵是什么。谁能解释一下:

  • 香农熵与源熵有何不同,源熵如何实现?

  • 如何计算通道容量?下面是计算数据 x 的香农熵的代码。如果修改以下代码以计算通道容量,我将有义务。

x = x(1:end);
    if nargin == 1        
        p = freq(double(x));
    else
        if numel(x) ~= numel(y)
            e = -1;
            warning('Sizes of vector do not match.');
            return;
        end
        y = y(1:end);
        p = joint_freq(double(x), double(y));
    end

    % Compute Shannon entropy
    xlogy(repmat(256, [length(p) 1]), p);
    e = -sum(p .* xlogy(repmat(256, [length(p) 1]), p));
  • 用较少的技术术语来说,Kolgomorov 熵和香农熵有什么区别?理解 Kolgomorov 复杂度返回的复杂度数的重要性/含义令人困惑。
4

1 回答 1

3

首先解决您的最后一个问题,Kolmogorov 熵是系统可以采取的可能轨迹的熵,即它是系统可能演化的“随机性”的度量。另一方面,香农熵是系统状态随机性的度量。x从您正在比较的事实y,而不是 的多个轨迹x到 的多个轨迹y,看起来您应该计算香农熵。

通常我们想要计算一种叫做互信息的东西,它是衡量我们的信号的熵或“随机性”在我们以其他信号为条件时减少了多少的量度。对于上面的代码,您正在尝试测量 中有多少熵x,或者x给定中有多少熵yx这两个值之间的区别在于我们通过了解发现了多少y。我们将这种不同称为互信息,或者,如果我们首先除以您正在查看的系列的时间长度,则称为通道容量。(源熵只是 的熵y,假设y是你的“源”)。

您的代码存在一些问题,如果不知道joint_freq. 要计算x给定的熵,y您应该采用联合概率分布的 2D 矩阵,计算当前x方向上的熵之和,然后还要沿剩余维度取平均值。

于 2012-07-20T12:19:56.873 回答