1.预编码技术的概念

对于空间复用,LTE既支持开环方式的空间复用(发端未知CSI),也支持闭环方式的空间复用(发端已知CSI)

对于LTE中闭环方式的空间复用(即预编码系统)中,发射机可以根据信道条件,对发送信号的空间特性进行优化,使发送信号的空间分布特性与信道条件相匹配,因此可以有效地降低对接收机算法的依赖程度。即使采用简单的ZF或MMSE等线性处理算法,也能够获得较好的性能。

2.预编码技术的分类

预编码可以分为线性预编码和非线性预编码两种。

非线性预编码设计复杂,常见的有污纸编码,通常需要对N个相关的非线性方程组做处理。

因为非线性复杂度高,在终端的译码算法复杂,因此LTE中采用线性预编码技术。

线性预编码在接收端通过一些线性检测手段即可译码,主要有:线性迫零(包括一些常见的BD算法、波束成型方法等)、信道求逆等。

线性预编码操作可以按其预编码矩阵的获得位置划分为两大类预编码方式:基于非码本的预编码操作和基于码本的预编码操作,两者具有不同的处理流程,分别如下图所示。

非码本预编利用了信道的互易性特性

(1)eNode B根据上行发送信号获得上行信道信息,并基于信道互易性,获得下行信道信息

(2)利用所获得的信道信息进行矩阵分解,生成所需的预编码矩阵。

(3)非码本方式的预编码矩阵的选择取决于eNode B的具体实现算法,不需要通过下行控制信令通知所用的预编码矩阵。为了使UE能够进行相干解调,需要发送专用导频使UE估计预编码后的等效信道。其中,专用导频也经过了与业务数据相同的预编码处理。

码本预编没有利用信道的互易性特性

设计通信系统时,可以用若干个预编码矩阵构成一个码本,这一码本的内容是发射机和接收机都是确知的。

( 预编码矩阵码本的构建方式有多种,如:基于天线选择的码本,基于发射自适应阵列(TxAA)模式的码本,基于离散傅里叶变换(DFT)的码本,随机码本等。)

(1)UE根据公共导频(CRS)测量下行信道,得到信道矩阵。
(2)基于预先设定的码本,UE可以按照某种优化准则,从码本中选择与当前信道条件最为匹配的预编码矩阵,并通过反馈链路将其标号PMI反馈给eNode B。
(3)根据所推荐的PMI,UE同时还需要计算出使用该PMI后的信道质量,并上报信道质量指示(CQI)。UE计算PMI和CQI的过程中,都需要考虑自身的接收处理算法。 (4)eNode B在下行传输过程中,将以(4)UE上报的预编码矩阵标号(PMI)为参考对数据进行预编码。考虑到eNode B在下行使用的预编码矩阵可能与UE上报的PMI不一致,为了保证UE能够获知预编码后的等效信道并对下行数据进行相干解调,基于码本的预编码方式不要求使用专用导频,但是需要通过某种方式告知接收端当前所使用的预编码矩阵。

注:    LTE系统中的FDD模式下,下行和上行传输分配在不同的频带上,所以信道状态指标CSI和预编码矩阵不能从上行信道探测导频得到,但可以以反馈方法得到。因此FDD模式下使用基于码本的方式进行预编码

相比于FDD模式,在TDD模式下,利用TDD系统信道对称性,能直接反馈信道,量化以及差分反馈等。信道状态指标CSI和预编码矩阵信息可以直接从上行信道探测导频取得,因此TDD使用基于非码本的方式进行预编码。

3. 预编码技术的数学表示

如图所示:在发射端利用已知的空间信道信息进行预处理操作,从而进一步提高用户和系统的吞吐量。

小小知识点(四十八)——发送端已知CSI,基于预编码技术,进一步提高MIMO系统和用户的吞吐量的更多相关文章

  1. 小小知识点(四十七)——发送端已知CSI,基于注水算法的功率分配方法,实现功率受限下的信道容量最大化

    1. 注水算法的使用条件和推导 注水算法是根据某种准则,并根据信道状况对发送功率进行自适应分配,通常是信道状况好的时刻,多分配功率,信道差的时候,少分配功率,从而最大化传输速率.实现功率的“注水”分配 ...

  2. 小小知识点(十八)U盘中病毒了,System Volume Information文件夹删除不掉

    win+R调出命令窗口后搜索cmd,启用cmd命令编辑器,并输入以下命令: attrib "H:\System Volume Information" -s   //这句话可以选择 ...

  3. 第四十八个知识点:TPM的目的和使用方法

    第四十八个知识点:TPM的目的和使用方法 在检查TPM目的之前,值得去尝试理解TPM设计出来的目的是为了克服什么样的问题.真正的问题是信任.信任什么?首先内存和软件运行在电脑上.这些东西能直接的通过操 ...

  4. 《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)

    1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...

  5. NeHe OpenGL教程 第四十八课:轨迹球

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. SQL注入之Sqli-labs系列第四十七关,第四十八关,第四十九关(ORDER BY注入)

    0x1 源码区别点 将id变为字符型:$sql = "SELECT * FROM users ORDER BY '$id'"; 0x2实例测试 (1)and rand相结合的方式 ...

  7. abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十二(四十八)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  8. Unity 游戏框架搭建 2019 (四十八/四十九) MonoBehaviourSimplify 中的消息策略完善&关于发送事件的简单封装

    MonoBehaviourSimplify 中的消息策略完善 在上一篇,笔者说,MonoBehaviourSimplify 中的消息策略还有一些小问题.我们在这篇试着解决一下. 先贴出来代码: usi ...

  9. SpringCloud微服务实战——搭建企业级开发框架(四十八):【移动开发】整合uni-app搭建移动端快速开发框架-使用第三方UI框架

      uni-app默认使用uni-ui全端兼容的.高性能UI框架,在我们开发过程中可以满足大部分的需求了,并且如果是为了兼容性,还是强烈建议使用uni-ui作为UI框架使用.   如果作为初创公司,自 ...

随机推荐

  1. uni-app获取当前位置

    uniapp获取当前城市: 官方api:uni.getLocation()获取当前的地理位置.速度. 在微信小程序中,当用户离开应用后,此接口无法调用,除非申请后台持续定位权限:当用户点击“显示在聊天 ...

  2. shell 并发执行任务

    #!/bin/bash # ref: https://blog.csdn.net/spch2008/article/details/51433353 token(){ pid=$ # 判断是否有传入p ...

  3. oracle 用TRUNCATE替代DELETE

    当删除表中的记录时,在通常情况下, 回滚段(rollback segments ) 用来存放可以被恢复的信息. 如果你没有COMMIT事务, ORACLE会将数据恢复到删除之前的状态(准确地说是恢复到 ...

  4. zoj 3859 DoIt is Being Flooded (MFSet && Flood Fill)

    ZOJ :: Problems :: Show Problem 这题开始的时候想不到怎么调整每个grid的实际淹没时间,于是只好找了下watashi的题解,发现这个操作还是挺简单的. ZOJ3354 ...

  5. hdu 3982 Harry Potter and J.K.Rowling (半平面交 + 圆与多边形交)

    Problem - 3982 题意就是给出一个圆心在原点半径为R的圆形蛋糕,上面有一个cherry,对蛋糕切若干刀,最后要求求出有cherry的那块的面积占整个蛋糕的多少. 做法显而易见,就是一个半平 ...

  6. Error: Cannot find module 'webpack/bin/config-yargs' 报错原因, webpack@4.X踩的坑~

    1 .使用webpack@4.32.2时, 当我通过package.json的script去执行webpack-dev-server时, 报以下错误:  Error: Cannot find modu ...

  7. Cisco 交换机笔记

    最近使用 Cisco L3(C3560X), L2(2960) 交换机搭建了 VLAN 环境,其中包括了 VLAN 的配置, VLAN 间的路由等,在此写篇笔记记录下. VLAN 结构 L3 Swit ...

  8. Python--day46--mysql存储过程(不常用)(包含防sql注入)

    一.存储过程: 优点:只要传很少的数据到数据库就可以了  缺点:dba管理数据库的时候可能会对数据库进行了更改了那一坨sql语句. 二.创建存储过程: 1.简单 创建存储过程: Python中使用结果 ...

  9. 《Spring 5官方文档》 Spring AOP的经典用法

    原文链接 在本附录中,我们会讨论一些初级的Spring AOP接口,以及在Spring 1.2应用中所使用的AOP支持. 对于新的应用,我们推荐使用 Spring AOP 2.0来支持,在AOP章节有 ...

  10. linux kgdb 补丁

    目前为止我们看到的 2 个交互式调试方法( 使用 gdb 于 /proc/kcore 和 kdb) 都缺乏 应用程序开发者已经熟悉的那种环境. 如果有一个真正的内核调试器支持改变变量, 断点 等特色, ...