[4G&5G专题-47]:物理层-多天线MIMO技术、层映射、预编码矩阵-程序员宅基地

技术标签: 通信-4G/5G/6G基础  层映射  4G/5G  预编码Precoding  MIMO  自适应编码矩阵  

目录

第1章 物理层架构

1.1 物理层内部功能协议栈

1.2 5G NR下行选项A

1.3 5G NR下行选项B

1.4 NR的物理层数据处理过程概述

第2章 多天线MIMO技术回顾

第3章 层映射Layer mapping

3.1 什么是“流” stream?

3.2 什么是“层” Layer ?

3.3 什么是“层”映射

3.4 码字Code Word到“层”Layer的映射

3.5 层映射后的困境

第4章 预编码矩阵Precoding

4.1 MIMO信号在空口的叠加原理

4.2 接收方后处理,发送方不做任何处理

4.3 发送方预处理

4.4 无线信道传输的权重矩阵H与预编码矩阵

4.5 自适应预编码矩阵与码本Codebook

4.6 码本的选择策略?

第5章 单载波预编码矩阵的原理

5.0 说明

5.1 没有编码矩阵时多天线的发送与接收的困境

5.2 接收端解码策略(实际系统未采用)

5.3 发送端预编码策略(实际系统采纳)

5.4 终端如何计算H预编码矩阵PMI

5.5 如何传递H矩阵




第1章 物理层架构

对本节的注解:

本章节内容的作用在于:从宏观感受物理层层映射、预编码矩阵在整个物理层协议栈中的位置和作用,无需深究每个环节。主体内容从第2章节开始。

1.1 物理层内部功能协议栈

1.2 5G NR下行选项A

1.3 5G NR下行选项B

1.4 NR的物理层数据处理过程概述

(1)信道编码与交织:处于计算机通信领域,这是计算机的底盘和擅长的地方。

(2)调制解调: 二进制序列到复指数子载波序列的映射过程,这是从计算机领域到数字信号处理DSP领域的跨越! 从计算机通信领域向数字无线通信领域的跨越!从此处开始进入数字信号处理领域!

(3)多天线技术的层映射

(4)扩频预编码(仅仅用于上行,可选): 这是数字无线通信领域,在相同的频率资源,由“单一”空间向"码分"空间的跨越。

(5)多天线MIMO技术的预编码:这是数字无线通信领域中,在相同的频率资源,由“单一”空间向"分层"空间的跨越。

(6)无线资源映射RE mapping: 这是数字无线通信领域,这是由串行的时间域并行的频率域的跨越。

(7)数字波束赋形:这是数字无线通信领域中,相同的频率资源,由“全向”空间向“波束局部”空间的跨越。

(8)OFDM变换(时域到频域的转换):这是各个独立的频域子载波信号到时域信号的转换,这是无线通信领域中,从频域信号时域信号的跨越!

(9)RF射频调制:这是在无线通信领域中,由数字无线通信领域模拟无线通信领域的跨越!!!

本文探讨的是:第3步和第5步,多天线技术相关的层映射与预编码矩阵。

多天线MIMO技术,LTE与NR是一致的,本文不做区分。

第2章 多天线MIMO技术回顾

MIMO技术和OFDM技术一起并称为LTE的两大最重要物理层技术。

OFDM是调制技术和频分复用技术,关注的是:在发送端,如何利特定带宽、包含N多个子载波的基带无线信号,并行承载不同用户的二进制比特数据,然后通过单根天线构建的单个无线信道发送;在接收端,如何利用通过单根天线把单个无线信道接收下来的基带信号,把不同子载波上承载的不同用户的二进制数据能分离出来的技术。

MIMO是多天线技术和空分复用技术,关注的是:使用多根天线,在发送端和接收端的物理空间中,使用相同频率的高频载波,构建多个相互不干扰的、空间正交的、物理无线信道,同时在收发双方的物理层之间,构建多个并行的逻辑无线信道,通过这些逻辑无线信道和物理无线信道来发送经过OFDM调制的多个数据流。目的是:增加系统的用户容量、或增加单用户的最大速率、或提升单用户的抗干扰的能力

从而到达:在不增加频谱带宽的情况下,利用较大间距的天线阵列的阵元之间或波束之间的不相关性,为单用户提供多个不同的数据流,提高链路的容量和单用户的峰值速率。

或者说,MIMO要解决的是:在单个子载波上,能够复用和承载“多层”的数据,或者说在单个子载波上,通过幅度来“调制”多层的数据,可以认为是一种“幅度“复用或调制”的技术,它介于QAM调制与OFDM之间。

如下图所示:

MIMO的关键问题是:

多个OFDM调制的基带信号流stream1-4,虽然在基站内部的硬件上是不同的数据流,并通过各自不同的天线发送,但他们使用的是相同频率的高频载波信号,这4个流在空间传播中是叠加在一起的。

接收端收到的信号也是4个stream叠加后的信号StreamA-D, 如何从叠加后的StreamA-D恢复出来stream1-4是MIMO的关键与核心!!!这就是预编码矩阵的功效!!!预编码矩阵就是因为此而存在的。

预编码矩阵的本质是预先在每一路天线的信号上,进行一次信号的反向叠加,以抵消发送出去的信号在空间中的叠加,使得每一路接收天线接收到信号正好是两次叠加的效果,

详见:

《图解通信原理与案例分析-21:4G LTE多天线技术--天线端口、码流、分集Diveristy、波束赋形BF、空分复用MIMO、空分多址》

图解通信原理与案例分析-21:4G LTE多天线技术--天线端口、码流、分集Diveristy、波束赋形BF、空分复用MIMO、空分多址_文火冰糖的硅基工坊的博客-程序员宅基地_lte通信原理

第3章 层映射Layer mapping

3.1 什么是“流” stream?

是单个用户的数据被分离成多个在基站BBU内部和RRU内部进行独立处理数据流想象化的描述。

需要引起足够注意的是:

这里的流,实际上并不是计算机通信中常见的二进制数据流,而是经过QAM调制后的子载波信号流,是用数字信号表示的模拟的子载波信号的信号流!!!

在QAM调试后,每个子载波承载的是二进制比特流,而经过预编码矩阵后,每个载波不再是单一的承载0或1比特,是承载0和1的子载波的混合!!!

3.2 什么是“层” Layer ?

“层”就是经过预编码矩阵编码后的多个同频率的调制信号流在空间中形象化的描述。

就好像是高架桥,把空间分层多个相互不干扰的“层”一样。

而实际上,多个同频率的调制信号流stream在空间中是叠加在一起的,发送端对这4个数据流进行了预处理,而接收端根据发送端的预处理和自身收到的叠加在一起的信号,对信号在进行分离,还原出原先的多个同频率的调制信号流stream的信号。有点类似码分复用CDMA.

4T4R MIMO代表的是4个流,而不是物理上4个天线!!!

传输层的个数,即层数被称为“传输阶”或“传输秩(rank)”。传输秩是可以动态变化的。

3.3 什么是“层”映射

(1)“层”映射发生的时机:

  • 在QAM调制之后。

(2)“层”映射的输入:

  • 上图中的数字,代表的不是二进制比特,而是代表的承载二进制比特0和1的子载波的幅度值。
  • 上图中的数字序列,代表的不是二进制比特序列,而是代表的承载二进制比特0和1的15K子载波的幅度值的序列。

(3)“层”映射功能

按照支持的xMIMO中支持的MIMO“流”的数量x,把代表二进制比特序列的子载波的幅度值的序列,分成x组。

(4)“层”映射结果

以4T4R MIMO为例:

  • 得到了4个经过PSK/QAM调制后的15K子载波幅度值的序列。只不过,15K子载波的幅度是复数,且二进制数表示的幅度。
  • 每一个流独立的进行OFDM变换。
  • 每一个流有独立的IQ天线数据。
  • 每一个流有独立的天线发送与接收

(5)“层”与物理天线个数的关系

通常情况下,“层”与基站的物理天线的个数相等。

实际上,多个物理天线可以发送同一个层的信号,这称为单频网或发送分集。

因此物理天线的数目可以大于等于MIMO的“层”数。

(6)“层”映射意义

  • “层”映射后,把原先在时间上串行处理的子载波序列(承载的是二进制数据),变成了在时间上并行处理的N层的“流”。
  • “层”映射后,需要多套并行的硬件电路,并行地处理每一层的“流”。
  • “层”映射后,体现在RRU与BBU之间的CPRI链路上,就是一个小区有N组的天线数据。比如1T1R的小区,就只有1组IQ天线数据流,而4T4R的小区,就有4组IQ数据流。

(7)“层”映射面临的困境

  • 由于“层”映射发生在物理层编码、物理层调制解调之后,因此,每个流采用了相同的物理编码和调制策略,而不同的“层”的天线数据,在同一时刻,无线信道的状况有可能差异很大,因此无法实现,在同时时刻,不同的“层”之间采用不同的物理编码和调制策略。

如何解决上述困境呢? 

码字Code Word的概念应运而生!!!

3.4 码字Code Word到“层”Layer的映射

(1)什么是码子Code Word

码字Code Word是MAC层的引入的概念,是能够独立地、并行地进行编解码和调制解调的码流。

引入Code Word的结果

  • MAC与物理层之间,不再是一个串行的传输块TB比特流,而是有多个并行的传输块TB比特流。
  • “层”映射的输入,不在是单一的、调制后的子载波流,而是多个并行的调制后的子载波流。

引入Code Word的好处

  • 每个码子的传输块TB比特流可以进行独立的、并行的编解码与调制解调,迎合了不同MIMO“层” 有可能出现无线信道特性不一致,导致对编解码与调制方式需求不一致的情形。
  • 每个码子的传输块TB比特流可以进行独立的、并行的编解码与调制解调,提升了编码也解码的效率。

引入Code Word的缺点

  • 每个独立的Code Word,需要独立的硬件编解码与调制解调的硬件资源,无形中增加了硬件的成本与复杂度。

(3)Code Word的数量

理想情况下:

Code Word的数量与MIMO的“层”数一样,4层的MIMO, 就有4个Code Word,这种方式,相当于把“层”映射提到了MAC层。

但这种方式的缺点是增加了N组硬件编解码与调制解调的硬件资源,硬件的成本与复杂度

实际上,MIMO的不同“层”之间,同一时刻,虽然信道上有可能有差异,但并非完全不同。

LTE和NR的规范:

在规范中,采用了一种折中的方案:

既不是采用单个Code Word,也不是与天线的“层”数相同的Code Word,

而是,无论支持多少“层”的MIMO, 最大实现2个Code Word。

正如下图所示:

(4)Code Word到“层”的映射表

(4)2个Code Word到4“层”MIMO的映射表示意图

(5)2个Code Word到8“层”MIMO的映射表示意图

3.5 层映射后的困境

(1)编码调制后的基带子载波

至此,完成了把编码与调制解调后15K的子载波的特征序列(幅度序列)映射到不同的天线上,即不同的MIMO“层”上。

(2)不同小区的基带子载波,在高频调制后的情形

由于在不同的频谱资源上,则相互不干扰

(3)同一小区,不同“层的”基带子载波

由于不同“层”之间的15K“子载波”会被映射到相同的载波频率上,不同“层”的频谱是重叠的,因此不同“层”之间是相互影响的。

如果避免不同“层”之间的相互影响呢?

首先想到的是CDMA的码分多址

而这里采用的是采用的技术:称为“预编码矩阵”。

与CDMA不同,这里应对的是,每个15K载波模拟信号在空间的叠加!!!

第4章 预编码矩阵Precoding

4.1 MIMO信号在空口的叠加原理

多天线MIMO空分复用是指:不同数据流的天线信号,其载波的频率是完全相同的,频谱宽度也是完全重叠在一起的,与CDMA码分多址类似。

因此,空分复用使得在相同的带宽下,传输的数据成倍的增加,频谱利用率也成倍的增加。

但是,也很显然,因为这里的数据流的载波频率是完全相同的,是同频的信号,因此在频率上是无法的区分开的,滤波器滤波器(区分有保护间隔的不同频点的信号)和快速傅里叶变换(区分部分重叠的不同频点的子载波的信号)都不起作用。

因此,需要一种新的技术手段来区分同一个接收天线中接收的信号来自于哪些发送天线,每个发送天线的信号的是什么?

正弦波的参数有:频率、相位、幅度。

既然频率分不了,能不能通过幅度来区分呢?或者说信号的能量呢?答案是肯定的,这就是本文的重点!!!

同频的信号,他们时域上有混合在了一起,其实是无法区分开来的,但能通过一定的技术手段,是可以获取该信号的幅度的!

如果能够知道,接收天线接收到的信号能量/幅度中,不同发送天线所占的能量/幅度比重Hi.j. 通过解方程组,就可以获取每一路发送天线中信号的能量。

以2T2R的MIMO为例:

(1)假设:

  • X1, X2为发送方的调制后的信号
  • Y1, Y2为接收方的解调前的信号
  • 期望的目标是Y1=X1, Y2 = X2;
  • S1和S2为发送天线发送基带信号的能量/幅度
  • h11,h21为基带信号S1在不同路径上衰减的比例; 
  • h21,h22为基带信号S2在不同路径上衰减的比例。

(2)接收信号R1和R2为发送信号S1和S2在空间中的叠加

  • h11*S1 + h12*S2 = R1
  • h21*S1 + h22*S2 = R2

(3)信号在无线信道中叠加矩阵表达式为:

S * H = R

其中矩阵H表示为发送信号与接收信号在无线信道中的传输特性矩阵。

(4)如何确保Y=X呢?

  • 方案1:在接收端处理
  • 方案2:在接收端处理

备注:

上述数学运算的关键是:S1和S2都是实数,R1和R2也是实数,即它们都是子载波信号的幅度值,而不是二进制0和1比特序列!!!

4.2 接收方处理,发送方不做任何处理

(1)发送方处理

S = X

(2)信号在空间的叠加

R = S * H

R = S * H = X * H

(3)接收方处理

所以:Y = R * H^{-1}

因为R = S * H = X * H

所以:Y = X * H * H^{-1} = X

所以:Y = X

(4)结论

与就是说,只需要知道多天线的信号在空间的传输特性H,接收端就可以通过其接收到的信号与传输特性矩阵的逆矩阵H^{-1}相乘,就可以在接收端得到发送端的发送信号X。

LTE/NR并没有采用此策略,而是采用了发送方预处理的策略。

4.3 发送方处理

(1)发送方预处理

S = X * H^{-1}

(2)信号在空间的叠加

R = S * H

R = S * H = X * H^{-1} * H = X

(3)接收方发不处理

所以:Y = R

因为:R = X

所以:Y = X

(4)结论

与就是说,只需要知道多天线的信号在空间的传输特性H,发送端就可以对其要发送的信号X与传输特性矩阵的逆矩阵H^{-1}相乘的预处理,接收端不需要任何操作,在接收端皆可以直接还原出发送的信号X。

LTE/NR并采用了此策略!!!

4.4 无线信道传输的权重矩阵H与预编码矩阵

从上述的分析可以看出,MIMO的关键和核心是从信号发送端多天线到信号的接收端的多天线之间的无线信道的特性,即无线信道传输的权重矩阵H。

发送端通过对发送的信号X与传输特性矩阵的逆矩阵H^{-1}相乘的预处理,从而使得接收端不需要进行任何处理,就可以直接还原出发送的信号X。

传输特性矩阵的逆矩阵H^{-1},在这里有一个专有的名字:预编码矩阵。

因此,预编码矩阵的系数与无线信道质量是相关的,不同的信道质量,预编码矩阵也是不相同的。随着终端与基站之间的方位的变化,其无线信道的传输特性是要发生变化的。如下图所示:

现在的问题是:

(1)发送端如何知道无线信道的质量呢?

(2)发送端又如何知道预编码矩阵的系数呢?

第一个问题,其实比较简单:

如果基站是发送端,这基站通过终端上报的CQI知道信道的质量,根据CQI选择特定预编码矩阵。

如果基站是接收端,可以通过检测上行参考信号的信噪比,获得无线信道的质量,然后通过下行控制信道通知终端按照什么样的预编码矩阵。

第二个问题,LTE和NR系统中采用了预先定义好的64种信道这两环境下的预编码矩阵,这个预先定义好的预编码矩阵,称为码本Codebook。

4.5 自适应预编码矩阵与码本Codebook

在基站与终端,均存储一套包含若干个(LTE和NR中定义了64个)预编码矩阵组成的码本Codebook,这样接收机可以根据估计信道质量中,选择其中一个预编码矩阵。

发送端,根据接收端检测到的无线信道质量,动态的选择预编码矩阵,我们称之为自适应预编码矩阵

如下是码本Codebook的案例:

4.6 码本的选择策略?

第5章 单载波预编码矩阵的原理

5.0 说明

(1)MIMO是用于业务信道PD-SCH的子载波,而不是应用于其他公共控制信道的子载波

(2)可以通过公共控制信道传递信号,用于接收端计算H矩阵

(3)可以通过公共控制信道传递接收端计算得到的H矩阵

为了简化MIMO原理的讨论,下面的讨论做了如下的假设:

  • 以单个15K子载波为例,因此忽略OFDM多载波复用
  • 以15K基带信号发送和接收为例,因此忽略高频调制与解调
  • 忽略QAM调制阶数,幅度最大值为例。
  • 忽略QAM相位调制,采用0相位

5.1 没有编码矩阵时多天线的发送与接收的困境

5.2 接收端解码策略(实际系统未采用)

虽然此种方案可行,但这种方案增加了接收端的复杂度,考虑到降低终端的成本和功耗,是此种方案并没有被采用。
 

5.3 发送端预编码策略(实际系统采纳)

得益于接收端的启示:解码时,乘以一个H的逆矩阵,就可以得到逻辑天线端口接收到的信号幅度,就等于逻辑天线端口发送信号的幅度。

能否在发送端预先、提前乘以一个H的逆矩阵,这样接收端就不需要解码了,逻辑天线端口接收到的信号幅度,就等于逻辑天线端口发送信号的幅度。

即:LRx = LTx * H * H^{-1} = H^{-1} * H = LTx

详见如下示意图:

5.4 终端如何计算H预编码矩阵PMI

在下行公共信道中,预留部分信道(子载波)用于单独传送层1和层2的数据,这样就避免不同载波信号的干扰,用于测量不同天线信号的衰减。计算H矩阵和其逆矩阵。

5.5 如何传递H矩阵

终端通过PU-CCH信道的UCI上报如下终端的如下信息:

  • CQI = Channel Quality Indicator;信道质量指示

CQI用来反映下行PDSCH的信道质量。用0~15来表示PDSCH的信道质量。0表示信道质量最差,15表示信道质量最好。

  • RI = rank indication;秩指示;

RI用来指示PDSCH的有效的数据层数。用来告诉eNB,UE现在可以支持的CW(Code Word码字)数。也就是说RI=1,1CW。RI>1,2 CW。
RI指示传输层,该UE能够区分的数目。只有当RI> 1,空间复用可被支持。对于空间复用,CQI是基于每码字的报告。

  • PMI = Precoding Matrix Indicator;预编码矩阵指示;

PMI用来指示码本集合的index。


其他参考:

百度文库

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/HiWangWenBing/article/details/114101724

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签