预编码技术

2023-10-30

预编码的基本原理

TD-LTE下行传输采用了MIMO-OFDM的物理层构架,通过最多4个发射天线并行传输多个(最多4个)数据流,能够有效地提高峰值传输速率。LTE的物理层处理过程中,预编码是其核心功能模块,物理下行共享信道的几种主要传输模式都是通过预编码实现的。
在MIMO系统中,当发射端不能获得任何信道状态信息(CSI,Channel State Information)时,各个并行数据流均等地分配功率与传输速率并分别采用全向发射的方式,就可以获得最优的性能。假设MIMO的信号模型可以由式(3-1)表示:
这里写图片描述
式中,r、H、s和n分别表示接收信号向量、信道矩阵、发送信号向量和加性噪声向量。
此时系统容量可以表示为
这里写图片描述
式中,det()表示矩阵的行列式,INT表示NT维单位阵,r表示总发射功率与噪声方差之比, 为H的共轭转置,NT为发射天线数量, 为HH的第个非零特征值。
开环MIMO的链路性能在很大程度上受到接收算法的影响。当接收机采用了ZF或MMSE等简单的线性处理算法时,开环MIMO的差错概率性能往往较差。采用SIC(Sucssesive Interference Cancellation)等干扰抵消算法时,能够有效地改善差错概率性能,但是又会引起接收机计算复杂度的增加。开环MIMO实际上相当于只在接收端采用与信道相匹配的方式进行接收,而发送信号并未与信道相匹配。
由式(3-2)可知,MIMO信道可以等效为多个并行的子信道。MIMO系统所能支持的最大数据流数由信道矩阵的秩决定,而每个数据流的传输能力由与之对应的奇异值决定。如果发射机能够通过某种方式获得一定的CSI(可以是瞬时值,也可以是短期或中长期统计信息),就可以通过一定的预处理方式对各个数据流加载的功率、速率乃至发射方向进行优化,并有可能通过预处理在发射机预先消除数据流之间的部分或全部干扰,以获得更好的性能。在预编码系统中,发射机可以根据信道条件,对发送信号的空间特性进行优化,使发送信号的空间分布特性与信道条件相匹配,因此可以有效地降低对接收机算法的依赖程度。即使采用简单的ZF或MMSE等线性处理算法,也能够获得较好的性能。
预编码可以采用线性或非线性方法,但由于复杂度等方面的原因,在目前的无线通信系统中一般只考虑线性预编码。经过线性预编码之后,MIMO信号模型表示为
这里写图片描述
式中,F为线性预编码矩阵。
MIMO的信道容量可以改写为
这里写图片描述
发射机可以通过上下行信道之间的互易性或通过UE反馈方式获取CSI。基于发射机获得的CSI,预编码系统可以根据信道所能支持的并行传输流数量,将有限的发射功率分配给能够有效传输的数据流,从而避免发射功率的浪费。从理论角度考虑,可以根据每个子信道的传输能力,按照类似注水定理的原则对每个数据流的功率分配进行优化,以提高MIMO链路的信道容量,同时可以通过自适应调制编码的方式使每个子信道的传输速率最大化。在TD-LTE中采用了自适应编码调制的方式,可以根据最多两个等效子信道的信道质量选择适当的调制编码方案以实现吞吐量的最大化。
根据所选择的优化目标与具体的接收机检测算法的区别,预编码器的理论设计准则可以采用最小奇异值准则(MSV-SC,Minimum Singular Value Criterion)、均方误差准则(MSE-SC,Minmum Square Error Criterion)、最大容量准则(MC-SC,Maximum Capacity Criterion)与最大似然准则(ML-SC,Maximum Likelihood Criterion)等。
这里写图片描述
信道矩阵的SVD(Singular Value Decomposition)分解可以表示为
这里写图片描述
根据文献的研究结论,在无记忆独立同分布的Rayleigh信道中,如果限定预编码矩阵为酉矩阵,则MSV、MSE与MC准则下的最优线性预编码器都是信道矩阵SVD分解之后得到的V矩阵的前NS列。需要说明的是,最优线性预编码器并不唯一。
根据预编码所使用的预编码矩阵集合的特点,可以将预编码分类为非码本方式的预编码和基于码本的预编码。所谓码本,是指有限个预编码矩阵所构成的集合,基于码本的预编码中,可用的预编码矩阵只能从码本中选取。而非码本方式的预编码中,并不对可选用的预编码矩阵的个数进行限制,因此预编码矩阵可以是任何符合设计规则与应用条件限制的矩阵,而并不限于取自某个特定的码本。

基于码本的预编码

在实际的通信系统中,反馈信道所能支持的数据速率一般较为有限。为了降低反馈开销,文献[10]中提出了有限反馈条件下的预编码方案,即基于码本的预编码。设计通信系统时,可以用若干个预编码矩阵构成一个码本,这一码本的内容是发射机和接收机都是确知的。UE根据公共导频(CRS)测量下行信道,得到信道矩阵。基于预先设定的码本,UE可以按照某种优化准则,从码本中选择与当前信道条件最为匹配的预编码矩阵,并通过反馈链路将其标号反馈给eNode B。根据所推荐的PMI,UE同时还需要计算出使用该PMI后的信道质量,并上报信道质量指示(CQI)。UE计算PMI和CQI的过程中,都需要考虑自身的接收处理算法。
eNode B在下行传输过程中,将以UE上报的预编码矩阵标号(PMI)为参考对数据进行预编码。考虑到eNode B在下行使用的预编码矩阵可能与UE上报的PMI不一致,为了保证UE能够获知预编码后的等效信道并对下行数据进行相干解调,eNode B需要在下行控制信令中明确指示其所用的预编码矩阵。
码本的设计方法对预编码的性能有重要的影响,优化的码本设计应当考虑到天线阵列的形式以及信道条件等因素。如前所述,在无记忆独立同分布的Rayleigh信道中,MSV、MSE与MC准则下的最优线性预编码器都是信道矩阵SVD分解之后得到的V矩阵的前NS列,而在上述条件下V矩阵在酉空间中各向同性分布。因此,码本的设计可以描述为Grassmannian Subspace Packing问题,即在酉空间中寻找N个矩阵,使其中任意两个预编码矩阵所张成的子空间的最小距离最大化。按照这种原则设计的码本将均匀地分布在整个酉空间中。距离测度的选择取决于接收机使用的预编码矩阵选择准则,常用的距离测度包括以下两种。
(1)投影二范数距离:
这里写图片描述
适用于MSV-SC、MSE-SC(使用迹作为代价函数)与ML-SC。
(2)Fubini-Study距离:
这里写图片描述
适用于MC-SC与MSE-SC(使用行列式作为代价函数)。
基于码本的预编码方法不需要利用信道的互易性,因此不需要对射频链路的收/发对称性进行校准,同时对UE的上行传输能力也没有要求。此外,基于码本的CQI计算过程能够反映UE的处理算法,因而相对比较准确。但是,基于码本的预编码方法存在量化精度损失的问题,因此预编码矩阵不能与信道精确地匹配。随着码本大小的增加,基于码本的预编码的性能会有所提升,但是同时也应当考虑到PMI上报与下行控制信令的开销。

非码本方式的预编码

非码本预编码利用了信道的互易性特性,eNode B根据上行发送信号获得上行信道信息,并基于信道互易性,获得下行信道信息,利用所获得的信道信息进行矩阵分解,生成所需的预编码矩阵。非码本预编码方法在TDD系统中有突出的优势,减少了上行反馈的开销,有利于eNode B灵活选取预编码矩阵。非码本方式的预编码矩阵的选择取决于eNode B的具体实现算法,不需要通过下行控制信令通知所用的预编码矩阵。为了使UE能够进行相干解调,需要发送专用导频使UE估计预编码后的等效信道。其中,专用导频也经过了与业务数据相同的预编码处理。
如果eNode B能够及时地获得准确且完整的信道矩阵,则eNode B可以直接计算出与信道传输特性匹配的预编码矩阵。在上述条件下,非码本方式的预编码可以避免量化精度的损失,但是预编码的频域和时域颗粒度可能会对性能带来较为显著的影响。
非码本方式的预编码中,eNode B需要根据所获得的CSI选择预编码矩阵。对于TDD系统,CSI可以通过信道互易性或UE的反馈获得,对于FDD系统也可以利用信道中长期统计特性的对称性获取下行CSI,但是瞬时或短期CSI只能通过UE的上报获得。如果利用互易性获取瞬时或短期CSI,需要对射频链路的收/发对称性进行校准。如果UE的发射机数量少于接收机数量,则必须通过天线切换或其他方式使eNode B获得完整的CSI。如果eNode B通过UE反馈的方式获得CSI,则需要仔细考虑CSI的反馈开销。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

预编码技术 的相关文章

  • 10年老技术人员:C++ 该如何快速入门?

    C 是一门面对对象的语言 我们如何学习呢 其实任何的难题都是多种简单的部分通过复杂的关系组合在一起 学语言 最关键的是理解而不是运用 高中的时候 老师给出的公式 都是告诉我们用就好了 不用去了解它怎么来的 但是语言不一样 你如果只会用那你是
  • 到底是学JAVA好还是.net,未来哪个前景好?

    Java就目前来看 前景绝对没有问题 从语言排行榜来看 Java从未跌出前3 Java目前主要占据两个领域 服务端开发 以及安卓开发 尤其是在安卓开发领域 绝对是牢牢地霸占第一的位置 首先java有着非常广泛的市场应用 WEB开发 安卓应用
  • 【零知ESP8266教程】AP模式下WIFI UDP协议通信示例

    本帖主要讲解ESP8266 WIFI功能关于UDP协议网络传输的应用 这里演示了ESP8266在AP模式下UDP通信的示例 1 硬件 零知ESP8266开发板 2 软件 1 代码如下 文件 udp server ino by 零知实验室 u
  • 数组的添加和删除过滤方法总结es6 filter()

    es6 filter 数组过滤方法总结 Array every x gt x 是每一个都要满足 Array some x gt x 是有一个满足 Array find findIndex 返回符合条件的第一个值 Array filter 过
  • python接收易语言数据中文乱码

    易语言代码 book name 发送到发 txt 提交信息 引号 book name 引号 引号 编辑框 下载 内容 引号 到文本 网页 访问 对象 http 127 0 0 1 8000 download 1 提交信息 Content T
  • 当了程序员才知道的事情

    坐在靠墙角的程序员王二狗 如果这哥们键盘敲的啪啪响 时不时面带笑容 很可能是在跟前台 测试 UI 美工 产品的小美眉聊今天又发现楼下新开的餐馆 如果嘴角带弧度 手不放在键盘上而是一直抓着鼠标擦滚轮且显示器角度靠内 那一定是摸鱼刷某乎 如果这
  • python 编码

    1 ASCII Unicode和UTF 8 计算机只能处理数字 如果要处理文本 就必须把文字转换为数字 因为计算机是美国人发明的 因此最早只有127个字母被编码到计算机里 包含大小写英文字母 数字和一些符号 这个编码表被称为ASCII编码
  • 在Java中如何判断字符串的编码格式

    最近 我一直试图寻找一种判断Java程序中字符串编码格式的方法 同时 也查找了很多资料 设计了一个的程序 美中不足的是该方法对仅含有数字和英文字母的字符串无效 原理 ASCII GBK UTF 8对数字和英文字母的编码相同 对其它字符编码不
  • Go语言值不值得学,发展前景怎么样?

    我学习了java和golang java用了5年 无限感慨java的生态 工业级的语言 无数的解决方案 不管你是做互联网还是传统行业的开发用java开发总能解决一切很多的问题 国内巨头阿里巴巴更是把java推向了极致 golang作为一个新
  • d指针在Qt上的应用及实现

    Qt为了使其动态库最大程度上实现二进制兼容 引入了d指针的概念 那么为什么d指针能实现二进制兼容呢 为了回答这个问题 首先弄清楚什么是二进制兼容 所谓二进制兼容动态库 指的是一个在老版本库下运行的程序 在不经过编译的情况下 仍然能够在新的版
  • 算法——因子和阶乘

    题目描述 输入正整数n 2 lt n lt 100 把阶乘n 1x2x3x xn分解成素因子相乘的形式 从小到大输出各个素数 2 3 5 的指数 你的程序应忽略比最大素因子更大的素数 否则末尾会有无穷对个0 样例输入 5 53 样例输出 5
  • HTTP协议实例详解

    HTTP是一个应用层协议 由请求和响应构成 是一个标准的客户端服务模型 HTTP通常承载于TCP协议之上 有时候也承载于TLS或SSL协议层之上 这个时候 就成了常说的HTTPS 默认HTTP的端口号为80 HTTPS的端口号为443 缺点
  • 聊一聊全景图

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 作者 李洋 前段时间学习了ThreeJS项目里边关于全景图的案例之后 自己动手练习了一下 实现了两个全景图的例子 分别如下 WebGLRender 球型全景图 WebGLRender
  • 打造高大上的Canvas粒子动画

    首先来看下我们准备要做的粒子动画效果是怎么样的 是这样 或者是这样 甚至是这样 很酷炫 那如何去实现类似上面的粒子动画甚至根据自己的喜好去做更多其他轨迹的动画呢 请看下面详细的讲解 技术选择 因为粒子数量很多 而且涉及到图像像素处理 所以这
  • 基础连接已关闭解决办法

    最近微信公众号功能莫名其妙的出问题 在调腾讯和百度接口就出问题 也不知道哪里抽风 只要调用外部接口 POST或者GET提交 准备出错 提示基础连接已关闭 httpWebRequest请求错误 基础连接已经关闭 连接被意外关闭 研究很久很久
  • 转:使用DOS命令chcp查看windows操作系统的默认编码以及编码和语言的对应关系

    代码页是字符集编码的别名 也有人称 内码表 早期 代码页是IBM称呼电脑BIOS本身支持的字符集编码的名称 当时通用的操作系统都是命令行界面系统 这些操作系统直接使用BIOS供应的VGA功能来显示字符 操作系统的编码支持也就依靠BIOS的编
  • python读取csv中所遇到的中文编码问题

    由于本人准备学习使用一些机器学习算法 第一个是DecisionTree 然后使用到了西瓜案例 因为涉及到讨厌的编码问题 所以找了好多办法去尝试读取csv文件 1 pandas pandas可谓是神奇 用python学习机器学习不可缺少的一个
  • java入门的第一个程序代码 hello world

    很多人说 学Java真的很难 其实 这是真的 但是高薪之所以为高薪 就是因为它比普通的活难的多 今天是我第一篇的博客 我还是想鼓励想学java技术的小伙伴一起来学 很多事只有去做了 你才能知道自己能不能成功 好了 接下来看Java入门的第一
  • 计算机中的二进制表示-4和5

    十进制 二进制 5 00000000 00000000 00000000 00000101 4 11111111 11111111 11111111 11111100 负数的二进制如何得出 相信正数的二进制表示大家都懂 但是这个 4怎么来的
  • C#有像Java ThreadLocal的类似实现吗?

    在C 中 可以使用 ThreadLocal

随机推荐

  • Spring Boot 中的 KafkaTemplate 是什么,原理,如何使用

    Spring Boot 中的 KafkaTemplate 是什么 原理 如何使用 Kafka 是一个流行的分布式消息系统 它可以用于在应用程序之间传递消息 Spring Boot 提供了对 Kafka 的支持 我们可以使用 Spring B
  • org.springframework.beans.factory.UnsatisfiedDependencyException异常问题的解决

    最近学了IDEA和SpringBoot MyBatis了 正所谓学以致用 于是用所学的来做项目 单元测试时报了下面的异常 Caused by org springframework beans factory UnsatisfiedDepe
  • WPF 在XAML中通过控件事件改变另一控件属性

    使用WPF进行开发 很多时候是要注意UI和后台代码的分离 尤其是要改变WinForm中的事件驱动机制 可是近期的开发遇到了这样一个问题 就是当一个控件的事件触发时 改变同级别的另一控件的属性 文字能力实在单薄 还是通过具体例子来说吧 首先
  • 深度学习训练模型的硬件条件

    之前热衷于学习理论知识 目前想跑代码了发现不知道从何下手 自己电脑上搭建的平台基本就是个摆设 因为跑不起来呀 今天我们就来看看想做深度学习应该怎么下手 首先了解下基础知识 1 深度学习用cpu训练和用gpu训练的区别 1 CPU主要用于串行
  • linux 上运行jxbrower出现的问题

    最近做了一个jxbrower抓取微信公众号文章的程序 想着挂在linux上定时运行 布上去却有几个问题这边总结一下 我得服务器是ubuntu16版本的 1 在linux无桌面的版本运行需要用x server运行 2 就是linux的Chro
  • L2-1 包装机PTA

    一种自动包装机的结构如图 1 所示 首先机器中有 N 条轨道 放置了一些物品 轨道下面有一个筐 当某条轨道的按钮被按下时 活塞向左推动 将轨道尽头的一件物品推落筐中 当 0 号按钮被按下时 机械手将抓取筐顶部的一件物品 放到流水线上 图 2
  • qt中drawline函数的参数_Qt--基础图形绘制

    一 基础图形绘制 A Qt图形系统中的关键角色 QPainter Qt中的画家 能够绘制各种基础图形 拥有绘图所需的画笔 画刷 字体 QPaintDevice Qt中的画布 画家的绘图板 所有的QWidget类都继承自QPaintDevic
  • (小白学java)Java 循环结构

    Java中有三种主要的循环结构 while 循环 do while 循环 for 循环 while 循环 和c很像了 不多写了 public class demo public static void main String args in
  • Javascript设计模式-10-迭代器模式

    Javascript设计模式 10 迭代器模式 简介 提供一种方法 顺序访问一个聚合对象中各个元素 而又不需要暴露该方法中的内部表示 迭代器模式可以把迭代的过程从业务逻辑中分离出来 在使用迭代器模式之后 即使不关心对象的内部构造 也可以按顺
  • 个人养老话题

    中国家庭的财富保卫战有三大战场 1 生娃 2 买都市圈里的好房子 3 买好股 好基
  • 【RSA】RSA加密、解密、签名与验证

    前言 最近要做iOS SDK的联网授权 涉及到数据安全验证 因此想到使用RSA进行签名和验证 授权主要流程如下 1 客户方前往我方开放平台注册授权 得到AppId和AppSecret 2 客户方集成SDK 调用Register接口传入App
  • 【数据采集】获取网站数据(二)

    获取网站数据 二 1 常用的数据采集python库 Beautiful Soup https www crummy com software BeautifulSoup bs4 doc zh pyspider http docs pyspi
  • 领域建模概述

    0 概述 在软件工程中 有两个高阶的工作的分别是架构和建模 如果把写代码比喻成施工 那么架构和建模就是设计图纸 相比编码 那么建模的确是对设计经验和抽象能力要求更高的一种技能 本文主要探讨一下对领域建模相关知识的理解 1 什么是领域建模 1
  • 算法:通过迪杰斯特拉(Dijkstra)算法,求出图中任意顶点到其他顶点的最短路径

    请看如下的示例图 该图有 V1 V7 七个顶点 每个顶点之间的距离 路径走向如图所示 假设这是一幅地图 我们很多时候都需要搜路径 比如从家到公司的路线图 也就是说 家是一个点 公司是另一个点 上图的各个点可以想象成分岔路口 当然 如果你不在
  • 安装Apache Atlas遇到的错误

    安装apache atlas 启动atlas server报错 查看logs atlas 20220524 115239 out文件 Caused by org springframework beans factory Unsatisfi
  • mysql从视图中获取字段值_MYSQL中视图的使用

    1 什么是视图 执行一条SQL 将结果集保存在一张虚拟表中 2 为什么要使用视图 重复利用SQL语句 简化SQL查询 快速取数据 只用知道表的部分结构 保护数据 根据特定授权 更改数据格式和表示 视图可返回与底层表的表示和格式不同的数据 注
  • maven私有仓库nexus3.5搭建与使用

    maven私有仓库nexus3 5搭建与使用 参考网址 http blog csdn net clj198606061111 article details 52200928 http www cnblogs com jingmoxukon
  • leetcode刷题日志4.0

    目录 前言 1 三个数的最大乘积 2 错误的集合 3 机器人能否返回原点 4 最长连续递增序列 5 验证回文串 II 6 交替位二进制数 前言 五一假期结束了 大家玩的开心吗 不过我们还得回到我们的日常生活学习工作当中 那今天我就分享一下我
  • 性能测试最佳实践的思考,7个要点缺一不可!

    性能测试是软件开发和应用过程中至关重要的环节 它是评估系统性能 稳定性和可扩展性的有效手段 可以确保软件在真实环境中高效运行 在现代技术快速发展的时代 性能测试的重要性愈发显著 性能测试在软件开发和应用过程中的重要性不可低估 它是保障用户体
  • 预编码技术

    预编码的基本原理 TD LTE下行传输采用了MIMO OFDM的物理层构架 通过最多4个发射天线并行传输多个 最多4个 数据流 能够有效地提高峰值传输速率 LTE的物理层处理过程中 预编码是其核心功能模块 物理下行共享信道的几种主要传输模式