登录/注册

香农编码

更多

好的,我们来详细解释一下香农编码(Shannon Coding)。

香农编码是由信息论的奠基人克劳德·香农在其开创性论文《通信的数学原理》(1948年)中提出的一种信源编码方法。它是一种最早的、基于符号出现概率进行编码以获得高效数据压缩的方法,其核心思想是:为概率更大的符号分配更短的码字,为概率更小的符号分配更长的码字,从而降低平均码长。

香农编码的核心原理与步骤

  1. 符号概率:

    • 给定一个离散无记忆信源(DMS),它包含一系列符号 {s1, s2, ..., sn}
    • 每个符号 si 有一个已知的、独立的发生概率 p(si),并且所有概率之和为 1:∑ p(si) = 1
  2. 概率排序:

    • 将符号按照其发生的概率进行降序排列(概率大的在前,概率小的在后)。这是关键一步。
    • 排序后的符号序列记为 {s1, s2, ..., sn},满足 p(s1) ≥ p(s2) ≥ ... ≥ p(sn)
  3. 计算累加概率:

    • 计算每个符号的累加概率(Cumulative Probability) F(si)
    • 累加概率 F(si) 定义为所有排在 si 前面的符号的概率之和(不包括 si 本身的概率):
      • F(s1) = 0 (因为前面没有符号)
      • F(s2) = p(s1)
      • F(s3) = p(s1) + p(s2)
      • ...
      • F(si) = p(s1) + p(s2) + ... + p(si-1)
      • F(sn) = p(s1) + p(s2) + ... + p(sn-1)
  4. 确定码长:

    • 计算每个符号 si 所需的码字长度 L(si)。香农规定,L(si) 应满足以下不等式:
      • ⌈ -log₂(p(si)) ⌉ ≤ L(si) < ⌈ -log₂(p(si)) ⌉ + 1
    • 更常用的、直接的确定方式是取:
      • L(si) = ⌈ -log₂(p(si)) ⌉
    • 其中 ⌈ x ⌉ 表示对 x 向上取整(即不小于 x 的最小整数)。-log₂(p(si)) 表示该符号所含的自信息量。码长 L(si) 不小于该符号的信息位数。
  5. 将累加概率转换为二进制:

    • 将步骤 3 中计算出的每个符号的累加概率 F(si) 转换为二进制小数形式(即 0.b1b2b3...)。
    • 这个二进制表示可能需要无限位才能精确表示,但我们只取前 L(si) 位(步骤 4 计算出的长度)。
  6. 截取码字:

    • F(si) 的二进制表示的前 L(si) 位小数部分(去掉小数点前的 0 后),作为符号 si 的香农码字。

关键特点与讨论

简单示例

假设信源有符号 A, B, C, D,概率分别为 p(A)=0.5, p(B)=0.3, p(C)=0.15, p(D)=0.05

  1. 排序 (降序): A (0.5), B (0.3), C (0.15), D (0.05)
  2. 计算累加概率:
    • F(A) = 0
    • F(B) = p(A) = 0.5
    • F(C) = p(A) + p(B) = 0.5 + 0.3 = 0.8
    • F(D) = p(A) + p(B) + p(C) = 0.5 + 0.3 + 0.15 = 0.95
  3. 计算码长:
    • L(A) = ⌈ -log₂(0.5) ⌉ = ⌈ 1 ⌉ = 1
    • L(B) = ⌈ -log₂(0.3) ⌉ ≈ ⌈ 1.737 ⌉ = 2
    • L(C) = ⌈ -log₂(0.15) ⌉ ≈ ⌈ 2.737 ⌉ = 3
    • L(D) = ⌈ -log₂(0.05) ⌉ ≈ ⌈ 4.322 ⌉ = 5
  4. F(si) 转换为二进制并截取前 L(si) 位:
    • A: F(A) = 0 -> 二进制 0.0000... -> 取前 1 位 -> **0**
    • B: F(B) = 0.5 -> 二进制 0.1000... -> 取前 2 位 -> **10**
    • C: F(C) = 0.8 -> 二进制 0.11001100... (0.8 = 0.1100₂循环) -> 取前 3 位 -> **110**
    • D: F(D) = 0.95 -> 二进制 0.11110011... (0.95 ≈ 0.11110₂) -> 取前 5 位 -> **11110** (精确计算 0.95 二进制为无限小数 0.111100110011...,取前5位得 11110)
  5. 香农码表:
    • A: 0
    • B: 10
    • C: 110
    • D: 11110

验证前缀码: 可以看到,没有码字是另一个码字的前缀(0不是10、110、11110的前缀;10不是110、11110的前缀;110不是11110的前缀)。

平均码长: L_avg = (0.5*1) + (0.3*2) + (0.15*3) + (0.05*5) = 0.5 + 0.6 + 0.45 + 0.25 = 1.8 比特/符号 信源熵: H(S) = -(0.5*log₂(0.5) + 0.3*log₂(0.3) + 0.15*log₂(0.15) + 0.05*log₂(0.05)) ≈ 1.6477 比特/符号 满足 1.6477 ≤ 1.8 < 2.6477

总结

香农编码是一种基于符号概率分布、利用累加概率构造二进制前缀码的信源编码方法。它为大概率符号分配短码,小概率符号分配长码,其平均码长满足香农第一定理。虽然在实际压缩效率上不如霍夫曼编码等最优方法,但它是信息论发展史上第一个具体的变长编码方案,奠定了信源编码的理论基础,其核心思想(概率映射)影响深远。

毫米波通信技术之香农香农定理

香农定理是所有通信制式最基本的原理,它描述了有限带宽、有随机热噪声信道的最大传输速率与信道带宽、信号噪声功率比之间的关系。

2023-09-11 11:47:51

频域中的奈奎斯特-香农定理

在上一篇介绍奈奎斯特-香农定理的文章中,我们看到当以每个周期不提供至少两个样本的频率对波形进行采样时,正弦波的频率特性将无法挽回地丢失。换句话说,如果我们以低于奈奎斯特速率的频率进行采样,我们就无法完美地重建正弦曲线。

2023-05-18 11:02:11

奈奎斯特-香农定理:了解采样系统

奈奎斯特采样定理,或更准确地说是奈奎斯特-香农定理,是支配混合信号电子系统设计的基本理论原则。

2023-05-16 14:11:24

嵌入式软件之c语言编码规范

嵌入式软件之c语言编码规范

资料下载 www2021 2021-10-28 18:13:32

一种编码解码模式的肺分割算法

中输入多尺度图像,使用残差网络结枃作为编码模块,在扩展网络深度的冋时不造成网络退化问题;此外,在编码和解码之间利用空洞空间金字塔池化(ASPP)充分提取上文多尺度信息;最后利用级联操作,将捕捉到的信息与

资料下载 佚名 2021-04-13 10:46:58

基于双编码器网络结构的CGAtten-GRU模型

为了解决序列到序列模型中编码器不能充分编码源文本的问题,构建一种基于双编码器网络结构的Cgatten-GRU模型。2个

资料下载 佚名 2021-04-01 15:10:47

编码器基础理论与实现方法、应用综述

自编码器是深度学习中的一种非常重要的无监督学习方法,能够从大量无标签的数据中自动学习,得到蕴含在数据中的有效特征。因此,自编码方法近年来受到了广泛的关注,已成功应用于很多领域,例如数据分类、模式识别

资料下载 佚名 2021-03-31 11:24:55

如何使用FPGA实现信道编码

信道编码发展迅速, 应用越来越广泛, 而信道编码的好坏对众多工程技术领域的发展有着重要影响,所以对信道编码的研究工作有着非常重要的意义。本论文从

资料下载 佚名 2020-08-18 17:11:10

香农解码器:PWM DAC的(更快)替代品

读者会认出著名的克劳德·埃尔伍德·香农(Claude Elwood Shannon),他被广泛誉为“信息论之父 ” ,也是许多发现和发明的鼻祖。其中包括一个优雅而开创性的(首次发表于1948年

2022-12-07 14:44:49

元宇宙:冲破5G的上限

香农三大定理是信息论的基础理论。香农三大定理是存在性定理,虽然并没有提供具体的编码实现方法,但为通信信息的研究指明了方向。

2021-12-02 10:51:35

基于matla对香农公式仿真

基于matla对香农公式仿真陕西理工学院课程设计第PAGE 1 页 共NUMPAGES 8 页引言香农公式表明,信道的带宽或信道中的信噪比越大,则信息的极限传输速率就越高。

2021-08-17 07:22:30

信道编码的发展历程介绍

介绍下信道编码的发展,希望能起到借鉴的作用。信道编码,也叫差错控制编码,是所有现代通信系统的基石。几十年来,信道

2021-02-23 15:16:06

信道编码你想知道的都在这

信道编码香农定理编码效率卷积编码Turbo

2021-01-14 06:01:38

香农时代信息产业发展面临的十大挑战数学问题

徐文伟在演讲中说道,基于七十多年前的香农定理,信息产业才有了五十多年的高速发展,并发明了一代又一代的通信产品。在未来二三十年里,人类社会将进入万物感知、万物互联和万物智能的智能社会,并由此催生新的新的工作、生产和生活模式,这些都与七十年前

2020-11-20 17:33:21

关于LDPC编码的全面了解

一.LDPC编码介绍 1.为什么要用LDPC编码,LDPC编码相对其他编码

2020-11-02 13:56:16

7天热门专题 换一换
相关标签