【信息论安全】:信源编码定理

一. 介绍

在点对点的通信中,信源编码定理(source coding theorem)满足可达性和可逆性。当信道是无噪声时,那么Y=X,这时就不需要信道编码。但是,信源编码依旧是有效的,可以提高数据传输效率,信源编码的单位通常是bits/source symbol。

信源编码其实跟我们通常所说的数据压缩(data compression)很类似。信源整个可能序列记为U^k,根据典型集理论,只有部分序列是有效的。讲这些有效的序列编号从1~|A|,由此可得:

i\in[1,|A|]

信源编码端:

当从有效序列u^k\in A中抽取信源符号时,信源编码则输出对应的下标。

否则,输出一个固定的常数。

译码端:

当收到一个下标i时,则输出集合A中对应的序列。

二. 信源编码定理

信息论比较关注可靠传输的界限,接下来我们将从理论上证明存在对应的信源编码方案。

2.1 统计堆理论

信源编码会用到一个有意思的理论,叫做统计堆理论(binning)。输入一个序列u^n\in U^n,我们将其随机放到一个搁架里面,在同一个搁架里面的物体下标均一致。如果以上过程是按照均匀且随机的形式进行分配的,那么该过程称之为random binning。

借助选择引理(selection lemma),当以上分配过程的平均错误率接近于0时,也就可以说明信源编码的错误率趋近于0.

2.2 信源编码与压缩率

将一个离散无记忆的信源记作:

(U,P_U)

其中P代表概率分布。信息与通信理论告诉我们压缩后的长度不能太短,其界限跟U的香农熵是一样的,也就是可达的压缩率为:

换句话说可达的压缩率需要满足:

R\geq H(U)

解释:

根据随机统计堆理论(random binning),当把信源序列随机映射到有限数量的搁架里面时,只要搁架的数量大于:

2^{(kH(U))}

则可以保证每个搁架里面只会存在一个序列,不会有重复的情况出现,也就是发生这种情况的概率很小,则可以保证译码不会出错。

三. 信源编码方案设计

\epsilon>0且是一个很小的数,k\in N^*是一个正整数,R>0为压缩率。将信源编码方案C_k记作:

(2^{kR},k)

2.1 统计堆

从信源中选取典型集:

u^k\in T_\epsilon^k(U)

我们将典型集中的一个序列随机放入一个搁架中,搁架的编号(index)为:

[1.2^{kR}]

此过程可以看成如下函数:

e:U^k\to [1,2^{kR}]

此映射规则全局公开。

2.2 编码过程

给定一个序列u^k时,当序列属于典型集,也就是:

u^k\in T_\epsilon^k(U)

则利用映射函数生成m,如下:

m=e(u^k)

如果非典型集序列,则可以直接输出m=1

2.3 译码过程

给定一个消息m,译码为\hat u^k,其满足两个条件:

\hat u^k\in T_\epsilon^k(U)\quad e(\hat u^k)=m

第一个条件要求属于典型集。第二个条件要求编码和译码结果一致且唯一。

如果不满足任何一个条件,则输出错误“?”。

四. 理论分析

以上解释的信源编码方案的平均错误概率记为:

E[P_e(C_k)]

将发生译码错误的事件分成两种情况可得:

第一个事件代表编码前的序列不属于典型集。

第二个事件代表译码后的序列不在有效的集合中。

由此平均错误概率可以表示为:

E[P_e(C_k)]=P[\epsilon_0\cup \epsilon_1 ]

根据并集定理(union bound)可得:

先来分析下第一个事件。

根据信息论中的渐近等分性(AEP),第一个非典型集的概率很小,如下:

接着分析下第二个事件。

我们主要考虑错误概率的上界,如下:

第一个等号:将该事件表示为求和

第一个不等号:关注两个不同的序列编码后是相同的值概率,也就是位于同一个搁架里面

第二个等号:每个架子的概率

第二个不等号:求和的情况与典型集的大小一样

第三个不等号:典型集的定义

最后一个不等号:P总概率求和为1

根据以上讨论,我们需要让压缩率满足:

R>U(U)+\delta(\epsilon)

这样就可以保证:

最后可得统计堆理论的平均错误概率满足:

E[P_e(C_k)]\leq \delta_\epsilon(k)

根据选择引理,理论上一定可以找到一种编码方案,使其满足:

P_e(C_k)\leq \delta_\epsilon(k)

其中\epsilon是一个很小的数,也就是压缩率需要满足:

R>H(U)

反过来可逆性也是一样的。推导如下:

对熵进行讨论:

五. 小结

(1)子带编码

将连续信源产生的输出用多个带通滤波器进行滤波,只要这些滤波器是按照镜像滤波器成对设计的,这些滤波器的输出相加就可以无失真恢复原信号。信号进入带通滤波后再分别进行编码,各个子带的频谱特性相对平坦一些,样点之间的相关性减小,加之不同子带在进行编码时可以根据它的重要性分配不同的比特数,因此可以压缩编码数据。

(2)基于信源模型假定的编码方法

如果信源特性可以采用某种数学模型描述,那么基于这个模型进行压缩编码,可以获得更高的编码效率。

例如:语音信号可以用语音产生的声道模型进行描述,因而只要对估计出的声道模型参数和激励信号进行编码,接收端就可以重新合成出与原信号感觉上相类似的信号,这就是声码器技术。由于全极点声道模型抓住了语音信号共振峰特性的本质,计算上十分简捷,因此以线性预测为中心的一大类声码器在语音信号压缩编码方面取得了很大成功。包括:LPC 声码器、CELP 声码器、多带激励(MBE)声码器等。

基于声码器技术,压缩语音编码数据率的效率是非常高的,例如将 64Kbps 的 PCM 语音信号压缩到 8Kbps左右时,恢复语音的音质还可以是透明的;压缩到600bps时,恢复语音的可懂度还能接近100%。

(3)变换域编码

将连续信源产生的输出采用某种正交变换进行变换,变换域中各个信号分量的相关性大大减小,于是可以根据各个分量的重要性进行量化编码,可以大幅度减小比特率。常用的正交变换有离散傅立业变换、离散余弦变换、小波变换等。这些变换都是可逆的,接收端采用逆变换对于在变换域量化编码的结果进行逆变换,就可近似恢复原信号。这些编码算法在图像压缩编码,网络安全设计等方面取得了很大的成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/621596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS swift UISlider改变进度条的高度和圆形滑块的大小

文章目录 1.改变进度条的高度(亲测有效)2.改变圆形滑块的大小(亲测有效) 1.改变进度条的高度(亲测有效) import UIKitclass CustomSlider: UISlider {// 设置轨道高度var trackHeight: CGFloat 10// 重写…

Navicat 16 for MySQL:打造高效数据库开发管理工具

随着数据的快速增长和复杂性的提升,数据库成为了现代应用开发中不可或缺的一部分。而在MySQL数据库领域,Navicat 16 for MySQL作为一款强大的数据库开发管理工具,正受到越来越多开发者的青睐。 Navicat 16 for MySQL拥有丰富的功能和直观的界…

Jenkins-Maven Git

整合Maven 安装GIT #更新yum sudo yum update #安装git yum install git 安装Maven插件,在插件管理中心: 配置仓库 配置密码认证 我们可以在这个目录下看到Jenkins 帮我们拉取了代码 /env/liyong/data/docker/jenkins_mount/workspace/maven-job 配置maven打包…

启英泰伦推出「离线自然说」,离线语音交互随意说,不需记忆词条

离线语音识别是指不需要依赖网络,在本地设备实现语音识别的过程,通常以端侧AI语音芯片作为载体来进行数据的采集、计算和决策。但是语音芯片的存储空间有限,通过传统的语音算法技术,最多也只能存储数百条词条,导致用户…

Elasticsearch 索引文档时create、index、update的区别【学习记录】

本文基于elasticsearch7.3.0版本。 一、思维导图 elasticsearch中create、index、update都可以实现插入功能,但是实现原理并不相同。 二、验证index和create 由上面思维导图可以清晰的看出create、index的大致区别,下面我们来验证下思维导图中的场景&…

照片删除了怎么恢复回来

照片,对我们来说,这两个字眼再熟悉不过了,每一张照片都包含无比重要的意义,相信在大家的心目中,这些包含意义的照片都是无价的。怎样找回删除的照片? 既然这些照片对我们来说意义非凡,那如果不小…

c++多久会被Python或者新语言取代?

c多久会被Python或者新语言取代? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&am…

方法重写。

altinsert 静态方法和非静态方法不一样 重写只与非静态方法有关 重载是指在一个类中定义多个同名的方法或者函数,但是这些方法或者函数的参数列表不同,即参数的类型、个数或者顺序不同。当调用这个同名方法或者函数时,编译器会根据实际传入的…

Elasticsearch的基本功能和使用

Elasticsearch ,简称为 ES,是一款非常强大的开源的高扩展的分布式全文 检索引擎,可以帮助我们从海量数据中快速找到需要的内容,它可以近乎实时的 存储、检索数据.还可以可以实现日志统计、分析、系统监控等功能. 官网:https://www.elastic.c…

QT+jenkins window环境实现一键自动化构建打包签名发布

jenkins + QT 自动化构建打包 1.官网下载地址: Jenkins download and deployment,下载最新版本的安装包并安装。安装过程中,会要求你输入端口号并记住。 2.java下载地址:Java Downloads | Oracle,下载最新版本的安装包并安装。 3.浏览器输入网址:127.0.0.1: port, port为…

【Docker】镜像的构建与上传下载阿里云

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Docker实战》。🎯🎯 &…

C++ Primer 6.4 函数重载 知识点+练习题

C Primer 6.4 函数重载 定义重载函数重载和const形参const_cast和重载重载与作用域练习题 定义重载函数 void lookup(int a); void lookup(double b); void lookup(int a,double b); 此三个函数构成函数重载,具体调用时根据传入实参进行匹配void lookup(int a); bo…

【iOS】UIColor、CGColor、CIColor的区别和联系

编者在实验室小组的指导下,仿写了许多App,其中UI的颜色模仿也是令人头痛的点。设计颜色一般使用UIColor类方法直接获取颜色: 有时会使用 (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alph…

代码随想录算法训练营day8|344.反转字符串、541.反转字符串II、54.替换数字、151.翻转字符串里的单词、55.右旋转字符串

344.反转字符串 541. 反转字符串II 卡码网:54.替换数字 151.翻转字符串里的单词 卡码网:55.右旋转字符串 344.反转字符串 建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用…

2023.1.13 关于在 Spring 中操作 Redis 服务器

目录 引言 前置工作 前置知识 实例演示 String 类型 List 类型 Set 类型 Hash 类型 ZSet 类型 引言 进行下述操作的前提是 你的云服务器已经配置好了 ssh 端口转发即已经将云服务器的 Redis 端口映射到本地主机 注意: 此处我们配置的端口号为 8888 可点击下…

jmeter如何做接口测试?

Jmeter介绍&测试准备: Jmeter介绍:Jmeter是软件行业里面比较常用的接口、性能测试工具,下面介绍下如何用Jmeter做接口测试以及如何用它连接MySQL数据库。 前期准备:测试前,需要安装好Jmeter以及jdk并配置好jdk环…

小知识分享2

文章目录 1.TCP/IP协议2.四次挥手断开连接3.TCP的三次握手和四次挥手4.在什么情况下需要设置WINS Proxy?5.用户与用户账户有什么不同?为什么需要使用用户账户? 1.TCP/IP协议 1、TCP/IP、Transmission Control Protocol/internet Protocol,传…

杨中科 EFCORE 第三部分 主键

主键 自增主键 1、EF Core支持多种主键生成策略:自动增长;Guid;Hi/Lo算法等。 2、自动增长。 优点:简单; 缺点: 数据库迁移以及分布式系统中(多数据库合并,会有重复主键值)比较麻烦;并发性能差(大并发情况下,为了保证…

函数栈桢的创建和销毁

函数栈桢的创建和销毁 一、解决的问题二、认识常用的寄存器及其指令操作三、函数栈桢解析三、回答问题 一、解决的问题 1.局部变量是怎么创建的?  2.为什么局部变量的值是随机值?  3.函数是怎么传参的?传参的顺序是怎样的?  4.…

python24.1.14while循环

当条件结束时间未知时,while循环比for循环更合适 实践