将相位空间分配到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));
答案 0 :(得分:3)
首先解决您的上一个问题,Kolmogorov熵是系统可能采用的轨迹的熵,即它是系统可能演化的“随机性”的度量。另一方面,香农熵是衡量系统状态随机性的指标。从您将x
与y
进行比较的事实,而不是x
到y
的多个轨迹的多个轨迹,看起来您应该计算香农熵。
通常我们想要计算一种称为互信息的东西,这是衡量当我们在某些其他信号上调节信号时,信号的熵或“随机性”减少了多少。对于上面的代码,您尝试衡量x
中的熵数量,或x
给定y
中的熵数量。这两个值之间的差异在于我们通过了解x
了解了y
的内容。我们称之为互信息,或者,如果我们首先除以您正在查看的系列的时间长度,则称为信道容量。 (源熵只是y
的熵,假设y
是你的“来源”。)
您的代码存在一些问题,如果不了解joint_freq
的实现,我无法准确知道它们是什么。要计算x
给定y
的熵,您应该采用联合概率分布的二维矩阵,计算x
方向上的熵总和,但是也采取了剩余维度的平均值。