信噪比和位深

参考资料:A Mathematical Theory of Communication

信号和噪声

  • 信号
  • 信号在空间中传播,经过的道路称为信道,信道中可能含有大量噪声源
    • Fourier变换和中心极限定理可知,对于大量独立、同分布的噪声源\eta_i(t),在任意时刻t\eta(t) = \sum_i \eta_i(t)接近于Gauss变量
    • 如果信道具有独立、加性的噪声,那么

          \[ Y(t) = X(t) + \eta(t), \]

          \[ \mathbb{E}[Y(t)^2] = \mathbb{E}[X(t)^2] + 2\mathbb{E}[X(t)] \cdot \mathbb{E}[\eta(t)] + \mathbb{E}[\eta(t)^2]. \]

      进一步,如果噪声的均值为0,那么信号和噪声混合后的平均功率S + N,等于信号的平均功率S,加上噪声的平均功率N
    • 因此,我们考虑噪声和随机过程中的加性Gauss白噪声,\eta(t) \sim \mathcal{N}(0, N)

Shannon熵、微分熵

  • Shannon熵中,我们可以得到,Shannon熵给出了最小平均长度的最佳估计——无论信息如何压缩,其长度下界为Shannon熵。因此,Shannon熵可以视为信息量
    • 离散情形 –> Shannon熵

          \[ H(X) = -\sum_{i = 1}^n \mathbb{P}(x_i)\log_2\mathbb{P}(x_i), \text{ where } \sum_{i = 1}^n \mathbb{P}(x_i) = 1. \]

    • 连续情形 –> 微分熵

          \[ h(X) = -\int_{-\infty}^{+\infty} p_X(x)\ln p_X(x)dx, \text{ where } \int_{-\infty}^{+\infty} p_X(x)dx = 1. \]

    • Gauss变量的微分熵

          \begin{equation*}\begin{split} h(X) &= \int_{-\infty}^{+\infty} p_X(x)\bigg[\frac 12\ln(2\pi\sigma^2) + \frac{(x - \mu)^2}{2\sigma^2}\bigg]dx \\ &= \frac 12\ln(2\pi\sigma^2) + \frac{1}{2\sigma^2} \cdot \sigma^2 \\ &= \frac 12\ln(2\pi e\sigma^2). \end{split}\end{equation*}

      注意,当0 < 2\pi e\sigma^2 < 1时,我们有h(X) < 0。微分熵可以为负,而Shannon熵一定为非负,所以二者具有本质的不同
  • 数字信号、模拟信号
    • 数字信号为离散情形,通常以2为底数,单位为bit(比特)
    • 模拟信号为连续情形,通常以自然常数e为底数,单位为nat(奈特)
    • 由对数的换底公式可知,Shannon熵、微分熵取不同底数只相差常数倍。在下面的计算中,为了方便起见,我们以e为底数
  • 信息传输率为

        \[ R = h(Y) - h(Y|X). \]

    进一步,信道容量为信息传输率的理论极限,

        \[ C = \sup_{p_X} R. \]

    • 信源发送的信号为X,目的端接收的信号为Y。因此,信息传输率可以视为目的端接收到的信息量h(Y),减去损耗的信息量h(Y|X)
    • Shannon熵中,我们固定信源、遍历编码,得到最小平均长度,所以它反映了信源的特征。在这里,我们固定信道、遍历信源,得到信道容量,所以它反映了信道的特征
  • 计算Y = X + \eta的信道容量
    • 条件概率密度函数

          \begin{equation*}\begin{split}  \mathbb{P}(Y \leq a|X = x) &= \int_{-\infty}^a p_{Y|X}(y|x)dy, \\ \mathbb{P}(Y \leq a, X = x) / \mathbb{P}(X = x) &= \mathbb{P}(\eta \leq a - x, X = x) / \mathbb{P}(X = x) \\ &= \mathbb{P}(\eta \leq a - x) \\ &= \int_{-\infty}^{a - x} p_\eta(y)dy.  \end{split}\end{equation*}

      因此,p_{Y|X}(y|x) = p_\eta(y - x)
    • 条件熵

          \[ h(Y|X = x) = -\int_{-\infty}^{+\infty} p_\eta(y - x)\ln p_\eta(y - x)dy = h(\eta), \]

          \[ h(Y|X) = \int_{-\infty}^{+\infty} p_X(x)h(\eta)dx = h(\eta). \]

    • 信息传输率、信道容量

          \begin{equation*}\begin{split} R &= h(Y) - h(\eta), \\ C &= \bigg(\sup_{p_X} h(Y)\bigg) - h(\eta). \end{split}\end{equation*}

      因此,我们需要最大化微分熵,这是一个最优化问题

求解最优化问题

  • 求解最优化问题的第一种方法是Lagrange乘子法。对于离散情形,我们需要多元函数和偏导数;对于连续情形,我们需要泛函和变分
    • (离散情形 –> Shannon熵)目标函数为

          \[ H(p_1, \ldots, p_n) = -\sum_{i = 1}^n p_i\ln p_i. \]

      约束条件为

          \[ \varphi_1 = \sum_{i = 1}^n p_i - 1 = 0. \]


      •     \[ L = H(p_1, \ldots, p_n) + a\varphi_1. \]

        那么,

            \begin{equation*}\begin{split}  0 &= \frac{\partial L}{\partial p_i} = -\ln p_i - 1 + a, \\ 0 &= \frac{\partial L}{\partial a} = \varphi_1.  \end{split}\end{equation*}

      • 由第一个方程,所有p_i都相等。由第二个方程,p_1 = \cdots = p_n = \frac 1n
    • (连续情形 –> 微分熵)目标泛函为

          \[ h(p) = -\int_{-\infty}^{+\infty} p(x)\ln p(x)dx. \]

      约束条件为

          \begin{equation*}\begin{split} \varphi_1 &= \int_{-\infty}^{+\infty} p(x)dx - 1 = 0, \\ \varphi_2 &= \int_{-\infty}^{+\infty} x^2p(x)dx - \sigma^2 = 0. \end{split}\end{equation*}


      •     \[ L = h(p) + a\varphi_1 + b\varphi_2. \]

        那么,

            \begin{equation*}\begin{split} 0 &= \delta L = \int_{-\infty}^{+\infty} [-\ln p(x) - 1 + a + bx^2]\delta pdx, \\ 0 &= \frac{\partial L}{\partial a} = \varphi_1,\; 0 = \frac{\partial L}{\partial b} = \varphi_2. \end{split}\end{equation*}

      • 由第一个方程,

            \[ -\ln p(x) -1 + a + bx^2 = 0,\; p(x) = e^{-1 + a + bx^2}. \]

        由其余的方程,

            \[ p(x) = \frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{x^2}{2\sigma^2}}. \]

      • 之所以增加二阶矩的约束条件,是因为平均功率是已知的。如果不增加约束条件,那么p为不可积的常数;如果增加一阶矩的约束条件,那么p为指数函数,它至多在实数轴的一个方向上可积
  • 求解最优化问题的第二种方法是使用KL散度,它通常用于深度学习,比如降噪扩散概率模型(Denoising Diffusion Probabilistic Model,DDPM)
    • KL散度、交叉熵(Cross Entropy,CE)

          \begin{equation*}\begin{split} D_{KL}(Y || X) &= \int p_Y(\ln p_Y - \ln p_X),\\ CE(Y, X) &= -\int p_Y\ln p_X. \end{split}\end{equation*}

      因此,

          \[ D_{KL}(Y || X) = -h(Y) + CE(Y, X). \]

    • 由Jensen不等式,KL散度非负,

          \[ D_{KL}(Y || X) = -\int p_Y\ln\bigg(\frac{p_X}{p_Y}\bigg) \geq -\ln\bigg(\int p_Y\frac{p_X}{p_Y}\bigg) = 0. \]

      等式成立当且仅当p_Y = p_X。因此,KL散度可以用于衡量两个概率分布之间的接近程度。在Shannon熵中,证明最小平均长度的下界为Shannon熵,恰好使用了KL散度非负
    • 对于约束条件\mathbb{E}[Y^2] = \sigma^2,取\eta' \sim \mathcal{N}(0, \sigma^2)。利用KL散度非负,

          \[ h(Y) \leq CE(Y, \eta'). \]

      同时,交叉熵为

          \begin{equation*}\begin{split} CE(Y, \eta') &= \int p_Y\bigg[\frac 12\ln(2\pi\sigma^2) + \frac 12\frac{x^2}{\sigma^2}\bigg] \\ &= \frac 12\ln(2\pi\sigma^2) + \frac{1}{2\sigma^2}\mathbb{E}[Y^2] \\ &= \frac 12\ln(2\pi e\sigma^2). \end{split}\end{equation*}

      因此,当p_Y = p_{\eta'}时,即Y \sim \mathcal{N}(0, \sigma^2)时,h(Y)达到最大值

Shannon公式和信噪比

  • 现在,我们回到信号和噪声中的讨论。X的平均功率为S\eta的平均功率为NY的平均功率为S + N
    • 噪声和随机过程可知,当X \sim \mathcal{N}(0, S)\eta \sim \mathcal{N}(0, N)时,我们有Y \sim \mathcal{N}(0, S + N)。此时,h(Y)达到最大值,信道容量为

          \[ C = \frac 12\ln[2\pi e(S + N)] - \frac 12\ln(2\pi eN) = \frac 12\ln\bigg(1 + \frac SN\bigg). \]

    • 只有发送Gauss噪声时,信息传输率才能达到信道容量。如果发送有意义的信号,那么信息传输率小于信道容量
    • 大量独立、同分布的噪声混合,得到Gauss噪声;Gauss噪声和Gauss噪声混合,仍然得到Gauss噪声。因此,Gauss噪声是一种在混合下最均匀的噪声
  • 设模拟信道的带宽为W
    • 根据换能器和数字信号处理,从模拟信号到数字信号需要进行采样
    • 根据频率响应和采样率,我们用Nyquist采样率2W来采样
    • 最终,我们可以得到数字信道的Shannon公式(我们将底数重新变为2

          \[ C = 2W \times \frac 12\log_2\bigg(1 + \frac SN\bigg) = W\log_2\bigg(1 + \frac SN\bigg)\; (bit/s). \]

    • 模拟信道的带宽是指W,单位为Hz;数字信道的带宽是指C,单位为bit/s。数字信道基于模拟信道,它的带宽既取决于模拟信道的带宽W,也取决于信噪比S / N
  • 采样是在时间上的离散化,量化是在空间上的离散化。量化会产生量化噪声,我们可以计算量化信噪比
    • 设信号的取值范围为[-A, A]。如果信号均匀分布,那么信号的平均功率为

          \[ S = \int_{-A}^A x^2 \cdot \frac{1}{2A}dx = \frac 13A^2. \]

    • 现在,我们用n位二进制数来表示信号
      • 将区间分为K = 2^n段,每段的长度为h = 2A / K

            \[ [-A + ih, -A + (i + 1)h],\; 0 \leq i \leq K - 1. \]

      • n位二进制数映射到每段的中心点x_i = -A + (i + 1/2)h,每段的值判决为中心点,量化噪声的平均功率为

            \begin{equation*}\begin{split}  N &= \sum_{i = 0}^{K - 1}\int_{-A + ih}^{-A + (i + 1)h} (x - x_i)^2 \cdot \frac{1}{2A}dx \\ &= K \times  \int_{-h / 2}^{h / 2} x^2 \cdot \frac{1}{2A}dx \\ &= \frac{K}{2A} \cdot \frac{1}{12}h^3.  \end{split}\end{equation*}

    • 最终,量化信噪比为

          \[ \frac SN = \frac 8K \cdot \frac{A^3}{h^3} = \frac 8K \cdot \frac{K^3}{8} = 2^{2n}.  \]

  • 因为量化信噪比的动态范围大,所以我们以10为底数取对数,单位为B(贝)

        \[ \log_{10} \frac SN = 2n\log_{10}2 \approx 0.6n\; (B). \]

    在实际应用中,我们再乘以10,单位为dB(分贝)

        \[ 10\log_{10} \frac SN \approx 6n\; (dB). \]

  • 对于二进制数,我们通常认为0、1出现的概率相等(即1/2),1位二进制数的Shannon熵恰好为1bit。因此,量化使用的二进制位数n称为位深,单位为bit
    • 对于CD格式,位深为16bit,量化信噪比约为96dB
    • 对于老式的电子游戏音乐,位深为8bit,量化信噪比约为48dB