通信原理速成笔记(信息论及编码)
信息论基础
- 信息的定义与度量
信息是用来消除不确定性的内容。例如,在猜硬币正反的情境中,结果存在正反两种不确定性,而得知正确结果能消除这种不确定性,此结果即为信息。 - 单个事件的信息量:对于离散信源中的事件xi,若其发生概率为
,则信息量
,单位为比特(bit)。比如抛一枚均匀硬币,正面朝上概率
,那么正面朝上这一事件的信息量
。
- 信息熵:信息熵代表信源的平均不确定性,是信源中每个事件信息量的统计平均值。对于离散信源
,其概率分布为
,信息熵
。它反映了信源输出前的平均不确定性,也表示输出后每个符号携带的平均信息量。
- 信息熵计算示例:假设有一个离散信源,包含三个符号
,概率分别为
,
,
。
- 先计算每个符号的信息量:
,
,
。
- 再计算信息熵
:
。
- 用图表示如下:
- 先计算每个符号的信息量:
- 信息熵计算示例:假设有一个离散信源,包含三个符号
离散信源
|-- A (p = 0.5, I = 1bit)
|-- B (p = 0.3, I = 1.74bit)
|-- C (p = 0.2, I = 2.32bit)
信息熵 H(X) = 1.486bit
- 信道与信道容量
- 信道模型:信道是信息传输的通道。常见的如二进制对称信道(BSC),在该信道中,输入为 0 或 1,受噪声干扰会出现错误,设错误概率为
。即输入 0 时,以概率
输出 1,以概率
输出 0;输入 1 时,以概率
输出 0,以概率
输出 1。
- 二进制对称信道示例图:
- 信道模型:信道是信息传输的通道。常见的如二进制对称信道(BSC),在该信道中,输入为 0 或 1,受噪声干扰会出现错误,设错误概率为
输入 ------[噪声干扰,错误概率 p]------ 输出
| 0 |------------------| 0 (1 - p) | 1 (p) |
| 1 |------------------| 1 (1 - p) | 0 (p) |
信道分为无噪声信道(信息可准确传输)和有噪声信道(噪声干扰信号导致传输错误)。
- 信道容量:信道容量
指信道能够传输的最大平均信息速率,单位为比特 / 秒(bit/s)。对于带宽为
(Hz)的加性高斯白噪声(AWGN)信道,信道容量的香农公式为
,其中
是信号平均功率,
是噪声平均功率,
为信噪比。
- 此公式表明,增加信道带宽或提高信噪比可提升信道容量,但增加带宽受物理条件限制,提高信噪比面临成本问题。例如在光纤通信中,通过提高光信号功率(增大
)和降低噪声(减小
)来提升信噪比,进而提高信道容量,实现高速数据传输。
- 信道容量与信噪比关系示例图:以信道带宽
为例,绘制信道容量
随信噪比
变化的曲线。当
从 1 增大到 100 时,依据香农公式
,计算出不同
对应的
值。
- 此公式表明,增加信道带宽或提高信噪比可提升信道容量,但增加带宽受物理条件限制,提高信噪比面临成本问题。例如在光纤通信中,通过提高光信号功率(增大
| 1 | |
| 10 | |
| 100 |
| .
| .
| .
| .
| .
|.
|________________
信噪比(S/N)
可以看到,随着信噪比增大,信道容量逐渐增加,呈现对数增长趋势。
编码
- 信源编码
- 信源编码的目的:减少信源输出符号序列中的剩余度,提高符号的平均信息量,从而在不损失信息的前提下,用尽可能少的码元表示信源信息,达到数据压缩的目的。
- 常见的信源编码方法
- 香农编码:依据信源符号的概率分布进行编码。先将信源符号按概率从大到小排序,接着计算每个符号的累加概率,再将累加概率用二进制表示,取小数点后与该符号自信息量比特数相同的位数作为编码。例如,有三个信源符号
,概率分别为
,排序后,
的累加概率为 0,
为
,
为
,转换为二进制并取对应位数,得到
编码为 0,
编码为 10,
编码为 11。
- 香农编码示例图:假设有信源符号
,概率分别为
,
,
,
。
- 排序后:
- 香农编码:依据信源符号的概率分布进行编码。先将信源符号按概率从大到小排序,接着计算每个符号的累加概率,再将累加概率用二进制表示,取小数点后与该符号自信息量比特数相同的位数作为编码。例如,有三个信源符号
x_1 (0.4)
x_2 (0.3)
x_3 (0.2)
x_4 (0.1)
- 计算累加概率:
x_1:0
x_2:0.4
x_3:0.4 + 0.3 = 0.7
x_4:0.7 + 0.2 = 0.9
- 计算自信息量:
I(x_1)=-\log_20.4\approx1.32$bit
I(x_2)=-\log_20.3\approx1.74$bit
I(x_3)=-\log_20.2\approx2.32$bit
I(x_4)=-\log_20.1\approx3.32$bit
- 二进制表示累加概率并取对应位数编码:
x_1:0 (取1位,对应1.32bit,编码为0)
x_2:0.4 -> 0.0110011... (取2位,编码为01)
x_3:0.7 -> 0.1011001... (取3位,编码为101)
x_4:0.9 -> 0.1110011... (取4位,编码为1110)
- 用图表示如下:
| 信源符号 | 概率 | 累加概率 | 自信息量 | 编码 |
|---|---|---|---|---|
| X1 | 0.4 | 0 | 1.32bit | 0 |
| X2 | 0.3 | 0.4 | 1.74bit | 01 |
| X3 | 0.2 | 0.7 | 2.32bit | 101 |
| X4 | 0.1 | 0.9 | 3.32bit | 1110 |
- 哈夫曼编码:是一种最优前缀编码。构建哈夫曼树,将信源符号及其概率作为叶子节点,每次选取概率最小的两个节点合并为新节点,新节点概率为两节点概率之和,直至所有节点合并为根节点。从根节点到叶子节点的路径上,向左分支标记为 0,向右分支标记为 1,得到的路径编码就是该符号的哈夫曼编码。例如,对于信源符号
,概率分别为
,构建哈夫曼树后,
编码为 0,
编码为 10,
编码为 110,
编码为 111,能使平均码长最短,实现高效压缩。
- 哈夫曼编码示例图:对于信源符号
,概率分别为
,
,
,
。
- 构建哈夫曼树过程:
- 初始节点:
- 构建哈夫曼树过程:
x_1 (0.4)
x_2 (0.3)
x_3 (0.2)
x_4 (0.1)
- 第一次合并:选取
和
合并,新节点概率为
,此时节点:
x_1 (0.4)
x_2 (0.3)
新节点(0.3)
- 第二次合并:选取
和新节点 (0.3) 合并,新节点概率为
,此时节点:
x_1 (0.4)
新节点(0.6)
- 第三次合并:选取
和新节点 (0.6) 合并,得到根节点,概率为
。
- 编码过程:
- 从根节点到
:向左,编码为 0 。
- 从根节点到
:向右,再向左,编码为 10 。
- 从根节点到
:向右,再向右,再向左,编码为 110 。
- 从根节点到
:向右,再向右,再向右,编码为 111 。
- 从根节点到
- 用图表示如下:
1/ \0.4 0.6/ / \x1 0.3 0.3/ \x2 0.2/ \x3 x4
对应的编码:
| 信源符号 | 编码 |
|---|---|
| X1 | 0 |
| X2 | 10 |
| X3 | 110 |
| X4 | 111 |
- 信道编码
- 信道编码的目的:通过在信息码元中增加冗余码元,使接收端能够检测和纠正传输过程中出现的错误,提高信息传输的可靠性。
- 常见的信道编码方法
- 奇偶校验码:分为奇校验和偶校验。奇校验使编码后的码组中 1 的个数为奇数,偶校验使编码后的码组中 1 的个数为偶数。例如,对于信息码组 1011,采用奇校验时,添加校验位 1,得到编码后的码组 10111;采用偶校验时,添加校验位 0,得到编码后的码组 10110。接收端通过检查码组中 1 的个数是否符合奇偶性来判断是否出现错误。
- 汉明码:是一种能纠正一位错误的线性分组码。通过在信息位中插入校验位,形成特定的校验关系。例如,对于 4 位信息位
,可以添加 3 位校验位
,组成 7 位的汉明码
,通过特定的校验方程计算校验位的值。接收端根据校验方程对接收码组进行校验,若校验结果不为 0,则可确定错误位置并进行纠正。
- 汉明码校验示例图:假设信息位
。
- 确定校验位位置:校验位
在第 1 位,
在第 2 位,
在第 4 位。信息位和校验位排列为
。
- 计算校验位:
校验
、
、
、
,使这些位中 1 的个数为偶数,
。
校验
、
、
、
,使这些位中 1 的个数为偶数,
。
校验
、
、
、
,使这些位中 1 的个数为偶数,
。
- 编码后的汉明码为
。
- 接收端校验:假设接收码组为
,无错误时,各校验方程结果为 0 。若第 3 位
变为 0,接收码组为
。计算校验方程:
(对应
校验方程)结果不为 0 。
(对应
校验方程)结果不为 0 。
(对应
校验方程)结果为 0 。
- 根据
的值确定错误位置为第 3 位,可进行纠正。
- 用图表示如下:
- 确定校验位位置:校验位
信息位: 1 0 1 1
校验位计算:P1: 1 (使 1, 3, 5, 7 位 1 的个数为偶数)P2: 0 (使 2, 3, 6, 7 位 1 的个数为偶数)P3: 1 (使 4, 5, 6, 7 位 1 的个数为偶数)
- 循环码:是一种重要的线性分组码,具有循环移位特性,即任意一个许用码组经过循环移位后得到的码组仍为该码的一个许用码组。例如循环码组 1011000,循环左移一位得到 0110001,仍是该循环码码组。循环码有生成多项式
,通过信息多项式
与生成多项式
运算得到码多项式
,在光盘存储、数字通信等领域有广泛应用。
信息论与编码的应用案例
- 通信系统:在 5G 通信中,采用低密度奇偶校验码和极化码等信道编码技术来提高通信的可靠性。信源编码则用于压缩数据,提升频谱效率,从而实现高速、大容量的数据传输。
- 数据存储:在硬盘等数据存储设备中,运用纠错编码技术,确保数据在存储和读取过程中出现错误时,能够被检测和纠正,保证数据的完整性。
- 多媒体领域:以 MP3 音频编码为例,它依据信息论原理,去除人耳难以感知的信息,从而对音频数据进行压缩,大大减小了音频文件的大小,便于存储和传输。
- 网络安全:信息论为加密算法提供了理论支持。例如在区块链技术中,使用哈希编码来保证数据的不可篡改和安全性,通过复杂的数学运算和编码规则,确保信息在传输和存储过程中的完整性和保密性。
相关文章:
通信原理速成笔记(信息论及编码)
信息论基础 信息的定义与度量 信息是用来消除不确定性的内容。例如,在猜硬币正反的情境中,结果存在正反两种不确定性,而得知正确结果能消除这种不确定性,此结果即为信息。单个事件的信息量:对于离散信源中的事件xi&…...
云和恩墨亮相PolarDB开发者大会,与阿里云深化数据库服务合作
2025年2月26日,备受瞩目的阿里云PolarDB开发者大会于北京嘉瑞文化中心盛大举行,众多行业精英齐聚一堂,共襄技术盛会。云和恩墨作为阿里云重要的生态合作伙伴受邀参会。云和恩墨联合创始人兼技术研究院总经理杨廷琨与阿里云智能数据库产品事业…...
kafka consumer 手动 ack
在消费 Kafka 消息时,手动确认(acknowledge)消息的消费,可以通过使用 KafkaConsumer 类中的 commitSync() 或 commitAsync() 方法来实现。这些方法将提交当前偏移量,确保在消费者崩溃时不会重新消费已处理的消息。 以…...
final 关键字在不同上下文中的用法及其名称
1. final 变量 名称:final 变量(常量)。 作用:一旦赋值后,值不能被修改。 分类: final 实例变量:必须在声明时或构造函数中初始化。 final 静态变量:必须在声明时或静态代码块中初…...
PHP面试题--后端部分
本文章持续更新内容 之前没来得及整理时间问题导致每次都得找和重新背 这次整理下也方便各位小伙伴一起更轻松的一起踏入编程之路 欢迎各位关注博主不定期更新各种高质量内容适合小白及其初级水平同学一起学习 一起成为大佬 数组函数有那些 ps:本题挑难的背因为…...
Python 高精度计算利器:decimal 模块详解
Python 高精度计算利器:decimal 模块详解 在 Python 编程中,处理浮点数时,标准的 float 类型往往会因二进制表示的特性而产生精度问题。decimal 模块应运而生,它提供了十进制浮点运算功能,能让开发者在需要高精度计算…...
hbase相关问题处理
1.如果遇到ZK宕机,通过HTable和Connection两种连接方式获取数据,在实现原理和故障恢复上有何异同? 通过new HTable方式,则每次方法调用都会建立新的连接,而且会从zk获取表的元数据,会导致将业务的并发传导到zookeeper服务,会对全局所有依赖zookeeper服务的节点存在一定…...
Linux下的网络通信编程
在不同主机之间,进行进程间的通信。 1解决主机之间硬件的互通 2.解决主机之间软件的互通. 3.IP地址:来区分不同的主机(软件地址) 4.MAC地址:硬件地址 5.端口号:区分同一主机上的不同应用进程 网络协议…...
什么是“零日漏洞”(Zero-Day Vulnerability)?为何这类攻击被视为高风险威胁?
正文 零日漏洞(Zero-Day Vulnerability) 是指软件、硬件或系统中存在的、尚未被开发者发现或修复的安全漏洞。攻击者在开发者意识到漏洞存在之前(即“零日”内)利用该漏洞发起攻击,因此得名。这类漏洞的“零日”特性使…...
AI数据分析:用DeepSeek做数据清洗
在当今数据驱动的时代,数据分析已成为企业和个人决策的重要工具。随着人工智能技术的快速发展,AI 驱动的数据分析工具正在改变我们处理和分析数据的方式。本文将着重介绍如何使用 DeepSeek 进行数据清洗。 数据清洗是数据分析的基础,其目的是…...
把GB型材库放入solidwork中点击库无法应
1、文件夹的位置要选择对,如下图: 2、文件夹一定要嵌套三层,如下图...
【前端】XML,XPATH,与HTML的关系
XML与HTML关系 XML(可扩展标记语言)和 HTML(超文本标记语言)是两种常见的标记语言,但它们有不同的目的和用途。它们都使用类似的标记结构(标签),但在设计上存在一些关键的差异。 XML…...
IP-----动态路由OSPF(2)
这只是IP的其中一块内容,IP还有更多内容可以查看IP专栏,前一章内容为动态路由OSPF ,可通过以下路径查看IP-----动态路由OSPF-CSDN博客,欢迎指正 注意!!!本部分内容较多所以分成了两部分在上一章 5.动态路…...
《HelloGitHub》第 107 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、…...
leetcode_字典树 139. 单词拆分
139. 单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 思路: 定义状态: 设dp[i]表…...
计算机毕业设计Python+DeepSeek-R1大模型游戏推荐系统 Steam游戏推荐系统 游戏可视化 游戏数据分析(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
网络流算法: Dinic算法
图论相关帖子 基本概念图的表示: 邻接矩阵和邻接表图的遍历: 深度优先与广度优先拓扑排序图的最短路径:Dijkstra算法和Bellman-Ford算法最小生成树二分图多源最短路径强连通分量欧拉回路和汉密尔顿回路网络流算法: Edmonds-Karp算法网络流算法: Dinic算法 环境要求 本文所用…...
【Springboot】解决问题 o.s.web.servlet.PageNotFound : No mapping for *
使用 cursor 进行老项目更新为 springboot 的 web 项目,发生了奇怪的问题,就是 html 文件访问正常,但是静态文件就是 404 检查了各种配置,各种比较,各种调试,最后放弃时候,清理没用的配置文件&…...
Spring Boot 3.x 基于 Redis 实现邮箱验证码认证
文章目录 依赖配置开启 QQ 邮箱 SMTP 服务配置文件代码实现验证码服务邮件服务接口实现执行流程 依赖配置 <dependencies> <!-- Spring Boot Starter Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr…...
PostgreSQL10 物理流复制实战:构建高可用数据库架构!
背景 PostgreSQL 10 在高可用架构中提供了物理复制,也称为流复制(Streaming Replication),用于实现实例级别的数据同步。PostgreSQL 复制机制主要包括物理复制和逻辑复制:物理复制依赖 WAL 日志进行物理块级别的同步&…...
从零开始开发纯血鸿蒙应用之语音朗读
从零开始开发纯血鸿蒙应用 〇、前言一、API 选型1、基本情况2、认识TextToSpeechEngine 二、功能集成实践1、改造右上角菜单2、实现语音播报功能2.1、语音引擎的获取和关闭2.2、设置待播报文本2.3、speak 目标文本2.4、设置语音回调 三、总结 〇、前言 中华汉字洋洋洒洒何其多…...
RabbitMQ系列(五)基本概念之Queue
在 RabbitMQ 中,Queue(队列) 是存储消息的容器,也是消息传递的核心载体。以下是其核心特性与作用的全方位解析: 一、Queue 的定义与核心作用 消息存储容器 Queue 是 RabbitMQ 中实际存储消息的实体,生产者…...
奔图Pantum M7165DN黑白激光打印一体机报数据清除中…维修
故障描述: 一台奔图Pantum M7165DN黑白激光打印一体机开机自检正常,自检过后就不能工作了,按键面板无任何反应一直提示数据清除中…,如果快速操作的话也能按出菜单、功能啥的,不过一会又死机了,故障请看下图: 故障检修: 经分析可能是主板数据出现了问题,看看能不能快速…...
TP-LINK路由器如何设置网段、网关和DHCP服务
目标 ①将路由器的网段由192.168.1.XXX改为192.168.5.XXX ②确认DHCP是启用的,并将DHCP的IP池的范围设置为排除自己要手动指定的IP地址,避免IP冲突。 01-复位路由器 路由器按住复位键10秒以上进行重置操作 02-进入路由器管理界面 电脑连接到路由器&…...
神经网络代码入门解析
神经网络代码入门解析 import torch import matplotlib.pyplot as pltimport randomdef create_data(w, b, data_num): # 数据生成x torch.normal(0, 1, (data_num, len(w)))y torch.matmul(x, w) b # 矩阵相乘再加bnoise torch.normal(0, 0.01, y.shape) # 为y添加噪声…...
设计一个“车速计算”SWC,通过Sender-Receiver端口输出车速信号。
1. 需求分析 功能目标:根据车轮脉冲信号(轮速传感器输入)计算当前车速,并将结果通过Sender端口发送给其他SWC。 输入:轮速脉冲数(如WheelPulse,类型uint32)。 输出:车速(如VehicleSpeed,类型float32,单位km/h)。 触发方式:周期性计算(例如每10ms执行一次)。 2.…...
TCP/IP 5层协议簇:网络层(IP数据包的格式、路由器原理)
目录 1. TCP/IP 5层协议簇 2. IP 三层包头协议 3. 路由器原理 4. 交换机和路由的对比 1. TCP/IP 5层协议簇 如下: 2. IP 三层包头协议 数据包如下:IP包头不是固定的,每一个数字是一个bit 其中数据部分是上层的内容,IP包头最…...
1JVM概念
JVM(Java虚拟机)详解 1. 基本概念与作用 JVM(Java Virtual Machine)是Java程序的运行环境,负责将编译后的字节码(.class文件)解释或编译为机器指令执行,并管理内存、线程、安全…...
echarts柱状图不是完全铺满容器,左右两边有空白
目录 处理前:echarts柱状图不是完全铺满容器,左右两边有空白处理前:通过调整 grid 组件配置处理后效果修改代码:1. 调整 grid 组件配置原理解决办法 2. 处理 xAxis 的 boundaryGap 属性原理解决办法 3. 调整 barMaxWidth 和 barMi…...
ArcGIS Pro技巧实战:高效矢量化天地图地表覆盖图
在地理信息系统(GIS)领域,地表覆盖图的矢量化是一项至关重要的任务。天地图作为中国国家级的地理信息服务平台,提供了丰富且详尽的地表覆盖数据。然而,这些数据通常以栅格格式存在,不利于进行空间分析和数据…...
