熵:我们更喜欢更高还是更低的熵?

信息处理 自习 信息论
2022-02-05 10:39:16

的熵 给出了编码给定源字母表的平均码字长度。即,它是对源中的信息进行编码所需的每个符号的平均位数。为长度为的消息。产生消息的系统的熵取决于唯一符号的数量,公式为,其中是唯一符号的数量。位/符号。对于另一个不同的消息,具有个唯一符号,位/符号。我有 2 个问题H(S)S1=101101...NkH(S)=lnkkH(S1)=log(2)=0.69S2k=8H(S2)=log(8)=2.07

  1. 有没有办法确定的最小字长例如,这里 = 2。nNS1=(10)(11)(01)n
  2. 希望系统的熵最大化,所以那么我应该更喜欢个符号吗?我们更喜欢哪个熵 - 具有更高熵的消息,因此这就是我们更喜欢更高调制的原因吗?H(S1)<H(S2)k=8
1个回答

您似乎有一些误解,我将尝试澄清这些误解,同时也尝试帮助您解决问题。

的熵给出了编码给定源字母表的平均码字长度。即,它是对源中的信息进行编码所需的每个符号的平均位数。H(S)

虽然这是真的,但我认为这并不是看待熵的更有启发性的方式。将熵视为源的固有属性。熵测量了源产生的每条消息的平均信息。

打个比方,把源想象成一个带按钮的黑盒子;每次你按下按钮,消息源都会告诉你一些事情。高熵源将始终(不一定总是)产生让您说“哇!太棒了”的消息。大多数时候,低熵源会很无聊。

现在,Shannon 证明了可以找到从源消息到比特的编码,因此每条消息所需的平均比特数等于熵。这就是为什么您的上述陈述在技术上是正确的。请注意,作为典型的香农,他实际上并没有告诉我们如何设计这样的编码器(但他提供了一些提示)。

为长度为 [...] 的消息,熵 bits/symbol。S1=101101...NH(S1)=log(2)=0.69

现在你可以看到这个说法没有意义。是一条消息,因此它不能有熵。它所拥有的是信息要找到相应源的熵,您需要查看其消息集(字母表)及其概率分布。如果源有内存,您还必须考虑到这一点。S1

有没有办法确定的最小字长例如,这里nNS1=(10)(11)(01)n=2

我不确定你在这里问什么,但我会猜测一下。Shannon 给我们的关于源编码的提示之一是,有效的编码需要我们收集许多源消息并将它们编码在一起。这相当于定义一个具有不同字母表(其元素是原始符号的串联)和不同概率分布的新源。

您似乎在问是否要朝另一个方向移动:将源字母分解为更简单的符号。对于消息为 0 和 1 字符串的源,您始终可以使用字母将其定义为源,但这样做时必须小心,因为您可能需要引入内存到源头。{0,1}

例如,假设您有一个带有字母的源。要将其重新定义为带有字母的源,您需要引入一种机制来避免原始源无法生成的{00,01,11}{0,1}0,0,1,0

希望系统的熵最大化,所以,那么我应该更喜欢符号吗?我们更喜欢哪个熵 - 具有更高熵的消息,因此这就是我们更喜欢更高调制的原因吗?H(S1)<H(S2)k=8

这个问题对我来说没有多大意义,因为给定的源具有给定的熵(请记住,熵是源的固有属性)。那么,有什么可以最大化呢?

现在,如果让您在两种来源之间进行选择,其中一种具有更高的熵,那么您应该做什么也不清楚。你想达到什么目标?

从试图尽可能压缩消息的源编码器(压缩器)的角度来看,最好使用低熵源。例如,输入单色图像的 PNG 压缩器将能够对它们进行大量压缩。

从通信工程师的角度来看,你要做的是将信源的信息内容与信道的容量相匹配。

也许你的意思是这样的:记住香农说我们需要将源消息组合在一起以实现更大的编码效率。这个过程也将导致更大的熵源——但这意味着每条消息有更多的比特,那么这怎么能更好呢?!

为了澄清这一点,请考虑具有字母和概率分布的二进制源。尽管这个源是低熵的(它的大部分消息都很无聊),但它很难压缩:每条消息仍然需要一个位!{0,1}{0.9,0.1}

假设您重新定义此源以具有 1024 条消息,每条消息每条 10 位,并计算新的概率分布。您会发现一些新的 10 位消息比其他消息更有可能。然后,您可以使用(例如)霍夫曼算法来找到接近熵的编码。

因此,从这个角度来看,重新定义源以具有更大的熵更好,因为您将能够找到更好的编码器。

关于高阶调制——这在这个问题中根本不起作用。