详解基于深度学习的两种信源信道联合编码

概述

经典端对端无线通信系统如下图所示:

信源 xx使用信源编码,去除冗余得到比特流 ss

对 ss进行信道编码(如 Turbo、LDPC 等)得到 yy,增加相应的校验位来抵抗信道噪声。

对比特流 yy进行调制(如 BPSK、16QAM 等)得到 zz,并经物理信道发送。

接收端对经信道后的符号 \bar{z}zˉ 进行解调、解码操作得到 \bar{x}xˉ。

根据定义信道方式不同,基于深度学习的信源信道联合编码(Deep JSCC)可以分为两类。

第一类,受无编码传输的启发,将信源编码、信道编码和调制联合设计为编码器。

系统模型如下图所示:

第二类,将通信系统中的调制、噪声信道、解调模块抽象为离散的二进制信道。

系统模型如下图所示:

第一种模型称为基于物理信道的符号编码,第二种称为基于抽象信道的比特编码。

另一方面,信源可根据其是否具有结构化特征划分为两类:

  • 结构化信源,如图像、视频。
  • 非结构化信源,如高斯信源。

结构化信源是 Deep JSCC 的主要研究场景。由于神经网络对结构化数据具有强大的特征获取能力,并且有针对各种结构化数据设计的网络结构的出现。

因此,Deep JSCC 相较于传统设计更具有优势。

图像/视频等具有空间拓扑结构信源适合 CNN 网络结构,文本/语音等具有时间序列化结构信源适合 RNN 网络结构。

对于非结构化信源,Deep JSCC 则稍显羸弱。因为非结构化信源内部相关性弱,难以去除冗余。

基于物理信道的符号编码

结构化信源

Gunduz 团队1 提出了一个传输高分辨率图像的 Deep JSCC 框架。
发送端和接收端都使用 CNN 网络,并在训练时加入了高斯白噪声和瑞利衰减噪声。
提出的 Deep JSCC 框架如下图所示:

实验表明,从 PSNR 和 SSIM 数据来看,提出的信源信道联合编码比信源信道分离方案更优,在低信噪比的信道环境下,优势尤其明显。

Gunduz 团队2 在前一个方案的基础上,提出将噪声反馈模块融入传输系统,以增强编解码器对变换信噪比的鲁棒性。

解码器将一部分经过噪声信道的接收到的符号 \bar{z}zˉ 反馈给编码器,编码器根据 \bar{z}zˉ 重新计算信噪比,并对编解码网络参数进行改进,以适应变换的信噪比环境。

其通信方案如下图所示:

Jankowski3 提出了一种使用 Deep JSCC 来进行图像检索的方案,先提取图像特征,然后使用 Deep JSCC 编码传输图像特征子,接收端接收解码特征子并基于特征对图像进行检索。

系统架构如下图所示:

非结构化信源

Saidutta4 提出了一种应用双编码解码结构的 Deep JSCC 方案对高斯信源进行编码传输。
训练时采用 MSE 优化器。

系统架构如下图所示:

在前面工作的基础上,Saidutta5 提出了基于变分自编码器对高斯信源编码的 Deep JSCC 方案,通过假设接收信号和重构信号的高斯统计特性,给出了正则化 MSE 损失的可变上限证明。

Xuan6 提出了一种基于 RNN 对高斯信源编码的 Deep JSCC 方案。

其不需要获取信源的先验信息,并在理论上证明了 Deep JSCC 的有效性,同时证明了基于深度学习的编码器与基于混沌动态系统(Chaotic Dynamical System)的编码函数之间的相似性。

系统框架如下图所示:

基于抽象信道的比特编码

与传统符号流的 Deep JSCC 方案不同,二进制信道下传输离散比特流无法计算反向传播梯度。因此,离散信道的嵌入也比物理信道的嵌入更为复杂。

近年来,神经网络离散化7和离散自编码器8的发展,为上述难点提供了解决思路。针对离散化神经网络的问题,一个简单的方法是使用得分函数估计器替代梯度9。由于该估计方差较高,一部分工作提出了不同的公式和控制变量来解决该问题10。

另外,为了达到使离散随机变量连续化的目的,Jang 和 Maddisonet 分别提出了 Gumbel-Softmax 分布11和 Concrete 方案12。

结构化信源

Choi13 提出了一种使用离散自编码器对图像进行抽象信道的比特编码方案。为了保留编码的硬离散性,使用了多样本变分下界目标,用于获得低变差梯度。

系统结构如下图所示:

其使用图像及其二进制表示的互信息的变分下界来训练模型,以获得更好的鲁棒性。

Song14 提出了新的正则化方法 IABF(Infomax Adversarial Bits Flip) ,以增强 NECST 的压缩和纠错能力,提升鲁棒性。并提出了新的损失函数,实现了网络对高维数据更有效的优化。

Shao15 基于轻量级 CNN 网络提出了可部署到计算能力有限的移动设备中的低功耗 Deep JSCC。

系统架构如下图所示:

Farsad16 提出了基于 RNN 结构的 Deep JSCC 方案,以对文本信源进行编码传输。采用里德-所罗门(ReedSolomon)码对信道进行编码;结果表明,当编码比特较短时,该方案比传统方法具更低的单词错误率。

系统架构如下图所示:

非结构化信源

Carpi17 提出了一种基于强化学习的 Deep JSCC 方案,采用了比特位翻转解码(bitflipping decoding)、残差信念传播(residual belief propagation)和锚解码(anchor decoding)三种算法,让解码器由数据驱动去学习最佳的解码策略。

以上就是详解基于深度学习的两种信源信道联合编码的详细内容,更多关于基于深度学习的两种信源信道联合编码的资料请关注我们其它相关文章!

(0)

相关推荐

  • android如何设置小区广播默认信道(50与60并支持双卡)

    要求设置默认信道50与60,并支持双卡. 在PhoneApp.java文件中增加code: 在文件开头部分import 包: 复制代码 代码如下: import android.provider.Telephony; import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo; import android.content.ContentValues; import android.database.Cursor; 2.在文件

  • 分布式监控系统之Zabbix 使用SNMP、JMX信道采集数据的原理解析

    前文我们了解了zabbix的被动.主动以及web监控相关话题,回顾请参考https://www.jb51.net/article/200679.htm:今天我们来了解下zabbix使用SNMP和JMX信道采集数据的相关话题: 1.SNMP协议介绍 SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议,SNMP是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议,用于网络管理的协议,SNMP主要用

  • 详解基于深度学习的两种信源信道联合编码

    概述 经典端对端无线通信系统如下图所示: 信源 xx使用信源编码,去除冗余得到比特流 ss. 对 ss进行信道编码(如 Turbo.LDPC 等)得到 yy,增加相应的校验位来抵抗信道噪声. 对比特流 yy进行调制(如 BPSK.16QAM 等)得到 zz,并经物理信道发送. 接收端对经信道后的符号 \bar{z}zˉ 进行解调.解码操作得到 \bar{x}xˉ. 根据定义信道方式不同,基于深度学习的信源信道联合编码(Deep JSCC)可以分为两类. 第一类,受无编码传输的启发,将信源编码.信

  • 详解基于redis实现的四种常见的限流策略

    目录 一.引言 二.固定时间窗口算法 三.滑动时间窗口算法 四.漏桶算法 五.令牌桶算法 一.引言 在web开发中功能是基石,除了功能以外运维和防护就是重头菜了.因为在网站运行期间可能会因为突然的访问量导致业务异常.也有可能遭受别人恶意攻击 所以我们的接口需要对流量进行限制.俗称的QPS也是对流量的一种描述 针对限流现在大多应该是令牌桶算法,因为它能保证更多的吞吐量.除了令牌桶算法还有他的前身漏桶算法和简单的计数算法 下面我们来看看这四种算法 二.固定时间窗口算法 固定时间窗口算法也可以叫做简单

  • 详解IOS 单例的两种方式

    详解IOS 单例的两种方式 方法一: #pragma mark - #pragma mark sharedSingleton methods //单例函数 static RtDataModel *sharedSingletonManager = nil; + (RtDataModel *)sharedManager { @synchronized(self) { if (sharedSingletonManager == nil) { sharedSingletonManager = [[sel

  • 详解Swift model 解析的两种方法

    详解Swift model 解析的两种方法 1. 常规解析方法 //懒加载声明一个LJNewsModel为数据的数组 lazy var ljArray : [LJNewsModel] = [LJNewsModel]() //MARK:-- 数据获取和解析 extension NewsViewController{ func requestNetData(){ /* 打印json数据 */ LJDownLoadNetImage.request("GET", url: "http

  • 详解Nginx 和 PHP 的两种部署方式的对比

    详解Nginx 和 PHP 的两种部署方式的对比 2种部署方式简介 第一种 前置1台nginx服务器做HTTP反向代理和负载均衡 后面N太服务器的Nginx做Web服务,并调用php-fpm提供的fast cgi服务 此种部署方式最为常见,web服务和PHP服务在同一台服务器上都有部署 第二种 前置1台nginx服务器做Web服务 后面服务器只部署php-fpm服务,供nginx服务器调用 前置1台nginx服务器,在调用后面多例php-fpm服务时,也可以做到负载均衡 如下图 : 对比 从系统

  • 详解java Collections.sort的两种用法

    Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static <T extends Comparable<? super T>> void sort(List<T> list) { list.sort(null); } public static <T> void sort(List<T> list, Comparator<? super T> c) {

  • 详解Spring集成Redis的两种方式

    目录 一.使用Jedis方式集成 1.增加依赖 2.配置项 3.配置连接池 4.测试 使用spring-data-redis 1.引入依赖 2.配置项 3.使用 4.可能会遇到的坑 哨兵和集群 总结: 在工作中,我们用到分布式缓存的时候,第一选择就是Redis,今天介绍一下SpringBoot如何集成Redis的,分别使用Jedis和Spring-data-redis两种方式. 一.使用Jedis方式集成 1.增加依赖 <!-- spring-boot-starter-web不是必须的,这里是为

  • 详解QTreeWidget隐藏节点的两种方式

    目录 简述 方法一:直接隐藏式 方法二:间接隐藏式 结尾 简述 关于QTreeWidget隐藏节点有两种方式,一种是直接隐藏,一种是间接隐藏,但是两种方式各有差异,下面请听具体解说. 方法一:直接隐藏式 Qt助手里面提供了QTreeWidgetItem::setHidden方法,我们可以调用setHide(false)直接隐藏当前item.但是调用此方法会隐藏该节点下面的所有子节点. 图 1-1: 我们通过图1-2看到,调用此方法会将自己所有的孩子节点都给隐藏了,如果有这种需求的直接调用此方法即

  • 详解Java合并数组的两种实现方式

    最近在写代码时遇到了需要合并两个数组的需求,突然发现以前没用过,于是研究了一下合并数组的方式,总结如下. 1.System.arraycopy()方法 (1) 解析 通过阅读JDK源码,我可以知道方法原型如下: public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); 其中: src是源数组 srcPos是源数组复制的起始位置 dest是目标数组 destP

  • 详解vue-router传参的两种方式

    Vue Router 是 Vue.js 官方的路由管理器.它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌.包含的功能有: 嵌套的路由/视图表 模块化的.基于组件的路由配置 路由参数.查询.通配符 基于 Vue.js 过渡系统的视图过渡效果 细粒度的导航控制 带有自动激活的 CSS class 的链接 HTML5 历史模式或 hash 模式,在 IE9 中自动降级 自定义的滚动条行为 vue-router传参两种方式:params和query params.query是什么? p

随机推荐