信道估计(channel estimation)图解——从SISO到MIMO原理介绍
1. 引言
在所有通信中,信号都会通过一个介质(称为信道),并且信号会失真,或者在信号通过信道时会向信号中添加各种噪声。正确解码接收到的信号而没有太多错误的方法是从接收到的信号中消除信道施加的失真和噪声。为此,第一步是弄清信号经过的信道的特性。表征信道的技术/过程称为信道估计(channel estimation)。此过程将说明如下。
信道估计有很多不同的方法,但是基本概念是相似的。该过程如下进行。
i)设置一个数学模型,以使用“信道”矩阵将“发射信号”和“接收信号”相关。
ii)发射已知信号(我们通常将其称为“参考信号”或“导频信号”)并检测接收到的信号。
iii)通过比较发送信号和接收信号,我们可以找出信道矩阵的每个元素。
作为此过程的示例,这里简要介绍LTE中的此过程。当然,很多细节取决于实现(这意味着具体算法可能会因每个特定的芯片组实现而有所不同)。但是,总体概念将是相似的。
2. 通用算法
我们如何找出信道的属性?即,我们如何估计信道?从高的角度来看,可以如下图所示。此图显示以下内容:
i)我们嵌入了一组预定义信号(这称为参考信号)
ii)当这些参考信号通过信道时,它会与其他信号一起失真(衰减,相移,噪声)
iii)我们在接收方检测/解码接收到的参考信号
iv)比较发送的参考信号和接收的参考信号,并找到它们之间的相关性。
3. SISO的信道估计
现在让我们考虑LTE SISO的情况,看看如何估计信道属性(信道系数和噪声估计)。由于考虑的是SISO系统,因此参考信号仅嵌入到一个天线端口(端口0)中。资源图中的垂直线表示频域。因此,这里用f1,f2,f3 ... fn索引了每个参考信号。每个参考符号可以是一个复数(I / Q数据),可以如下所示进行绘制。左侧(发送侧)的每个复数(参考符号)被修改(失真)为右侧的每个对应符号(接收的符号)。信道估计是在左侧的复数数组与右侧的复数数组之间找到相关性的过程。
估计的详细方法可能非常取决于实现方式。这里将描述的方法基于开源:srsLTE(请参阅[1])
3.1 信道系数的估计
由于这里只有一根天线,因此每个发射参考信号和接收参考信号的系统模型可以表示如下。y()表示接收到的参考信号的数组,x()表示发送的参考信号()的数组,h()表示信道系数的数组。f1,f2,...只是整数索引。
我们知道x()是什么,因为给定了它,而y()也知道,因为它是从接收者处测量/检测到的。有了这些,我们可以很容易地计算出系数阵列,如下所示。
现在我们有了参考信号所在位置的所有信道系数。但是我们需要在所有位置(包括那些没有参考信号的点)处的信道效率。这意味着我们需要在没有参考信号的情况下找出那些位置的信道系数。为此,最常见的方法是对测得的系数数组进行插值。在srsLTE的情况下,它首先进行平均,然后对平均信道系数进行插值。
3.2 噪声的估计
下一步是估计噪声特性。从理论上讲,噪声可以如下计算。
但是,我们需要的是噪声的统计属性,而不是确切的噪声值。我们可以仅使用测得的信道系数和平均信道来估算噪声,如下所示(实际上,准确的噪声值没有太大意义,因为噪声值会不断变化,使用那些特定的噪声值没有用)。在srsLTE中,作者使用了这种方法。
4. 2 x 2 MIMO的信道估计
假设我们有一个如下所示的通信系统。x(t)表示发送信号,y(t)表示接收信号。当x(t)传输到空中(信道)时,它会变形并获得各种噪声,并且可能会相互干扰。因此接收到的信号y(t)不能与发射信号x(t)相同。
发射信号,接收信号和信道矩阵之间的关系可以用数学形式建模,如下所示。
在此等式中,我们知道值x1,x2(已知的发射信号)和y1,y2(检测/接收的信号)。我们不知道的部分是H矩阵和噪声(n1,n2)。
为简单起见,我们假设该信道中没有噪声,这意味着我们可以将n1,n2设置为0。(当然,在实际信道中总会存在噪声,估计噪声是信道估计中非常重要的一部分,但是我们在此示例中假设没有噪音,只是为了使其简单。稍后,当我有更好的知识以通俗的语言描述案件时,我将在案件中添加噪音)。
由于我们具有数学模型,因此下一步是传输已知信号(参考信号)并从参考信号中找出信道参数。
假设我们仅通过一个天线发送了幅度为1的已知信号,而另一个天线现在处于关闭状态。由于信号通过空气传播,并且接收方的两个天线都会检测到该信号。现在,假设第一个天线接收幅度为0.8的参考信号,第二个天线接收幅度为0.2的参考信号。有了这个结果,我们可以得出如下所示的一行信道矩阵(H)。
假设我们仅通过另一个(第二个)天线发送了幅度为1的已知信号,并且第一个天线现在处于关闭状态。由于信号通过空气传播,并且接收方的两个天线都会检测到该信号。现在,假设第一个天线接收到幅度为0.3的参考信号,第二个天线接收到幅度为0.7的参考信号。有了这个结果,我们可以得出如下所示的一行信道矩阵(H)。
够简单吗?我认为理解这个基本概念没有任何问题。但是,如果完全按照上述方法使用此方法,则可能会导致效率低下。根据上面解释的概念,应该有一个时刻,仅发送参考信号而没有实际数据,只是为了估计信道信息,这意味着由于信道估计过程,数据速率将降低。为了消除这种效率低下的问题,实际的通信系统会同时发送参考信号和数据。
现在的问题是“如何在同时传输参考信号和数据的同时实现上述概念?”。可以有几种不同的方法来执行此操作,并且不同的通信系统将使用一些不同的方法。
以LTE为例,我们使用如下所示的方法。在LTE中为2 x 2 MIMO的情况下,每个子帧具有用于每个天线的参考信号的不同位置。天线0的子帧发送了分配给天线0的参考信号,不发送分配给天线1的参考信号的信号。天线1的子帧发送了分配给天线1的参考信号的信号,不发送给参考天线的任何信号。为天线0分配的信号。因此,如果在两个接收器天线上解码为天线0的参考信号分配的资源元素,则可以估计h11,h12。(在这里,为了简单起见,我们还假设没有噪音)。如果在两个接收器天线上解码分配给天线1参考信号的资源元素,则可以估计h21,h22。
4.1 信道系数的估计
上面说明的过程是针对LTE OFDMA符号中的频域中的一个特定点测量 \(H\) 矩阵。如果您在对符号的其他部分进行解码的过程中照原样应用测量的H值,则解码的符号的准确性可能不尽人意,因为上一步中使用的测量数据会包含一定程度的噪声。因此,在实际应用中,对通过上述方法测得的 \(H\) 值进行某种后处理,在此后处理过程中,我们可以找出噪声的总体统计属性(例如,噪声的均值,方差和统计分布))。要记住的一件事是,在此过程中获得的特定噪声值本身并没有太多意义。从参考信号获得的特定值将与用于解码其他数据的噪声值(非参考信号)不同,因为噪声值是随机变化的。然而,那些随机噪声的总体特性可以是重要的信息(例如,在SNR估计等中使用)。
在继续之前,让我们再次简单地考虑一下数学模型。即使我们将系统方程式描述如下,其中包括噪声项,但这并不意味着您可以直接测量噪声。是不可能的。该方程式仅表明检测到的信号(y)包含噪声分量的某些部分。
因此,当我们测量信道系数时,我们使用了没有噪声项的设备,如下所示。
在LTE的特定应用中,我们在OFDM符号中有多个测量点(多个参考信号)。这些测量点在频域上表示。因此,让我们如下重写信道矩阵以指示每个信道矩阵的测量点。
现在,假设您已经测量了整个OFDM符号上的H矩阵,那么您将拥有多个 \(H\) 矩阵,如下所示,每个矩阵都以一个特定的频率指示H矩阵。
现在你有了一个 \(H\) 矩阵数组。该阵列由四个不同的组组成,每个组用不同的颜色突出显示,如下所示。
当应用后处理算法时,该算法需要分别应用于这些组中的每一个。因此,为简单起见,我将 \(H\) 矩阵的数组重新排列为多个独立数组(在本例中为4个数组),如下所示。
对于这些数组中的每一个,我将进行如下所示的相同处理。(每个芯片组制造商都可以应用稍微不同的方法,但是总体思路是相似的)。在下面说明的方法中,数据(每个频点中的信道系数阵列)使用IFFT进行处理,这意味着将dta转换为时域,从而生成标记为(2)的时域数据阵列。实际上,这是特定信道路径的脉冲响应。然后,我们对该时域数据应用特定的过滤(或加窗)。在此示例中,将某个点的数据替换为零,并创建标记为(3)的结果。您可以应用更复杂的过滤器或窗口,而不是这种简单的调零。然后,通过将滤波后的信道脉冲数据转换回频域,
通过对所有四个阵列执行相同的过程,您可以获得“估计信道系数阵列”的四个阵列。从这四个阵列中,您可以按以下方式重建估计信道矩阵的阵列。
4.2 噪声的估计
使用此估算的信道矩阵,您可以使用以下公式估算每个点的噪声值。这与本页开头的原始系统方程式相同,除了将H矩阵替换为“估计的H”矩阵外,现在我们知道除噪声值以外的所有值。因此,通过插入所有已知值,我们可以在每个测量点计算(估计)噪声值。
如果将此方程式应用于所有测量点,则将获得所有测量点的噪声值,并从这些计算出的噪声值中获得噪声的统计属性。如上所述,此处计算出的每个单独的噪声值没有太大意义,因为该值不能直接应用于解码其他信号(非参考信号),但是这些噪声的统计特性对于确定噪声而言可能是非常有用的信息。渠道的性质。
注意:如果您对在实际应用中如何使用此算法感兴趣,强烈建议阅读/尝试使用Ref [2]和[3]。
参考:
[1] srsLTE:\ srslte \ lib \ ch_estimation \ chest_dl.c-srslte_chest_dl_estimate_port()
[2] 信道估计(Mathworks,LTE工具箱)
[3] NR同步程序
[4] http://www.sharetechnote.com/html/Communication_ChannelEstimation.html#General_Algorithm
信道估计(channel estimation)图解——从SISO到MIMO原理介绍的更多相关文章
- 信道估计系列之LS
在无线通信系统中,系统的性能主要受到无线信道的制约.基站和接收机之间的传播路径复杂多变,从简单的视距传输到受障碍物反射.折射.散射影响的传播.在无线传输环境中,接收信号会存在多径时延,时间选择性衰落和 ...
- 信道估计之LS
在无线通信系统中,系统的性能主要受到无线信道的制约.基站和接收机之间的传播路径复杂多变,从简单的视距传输到受障碍物反射.折射.散射影响的传播.在无线传输环境中,接收信号会存在多径时延,时间选择性衰落和 ...
- Channel Estimation for High Speed Wireless Systems using Gaussian Particle Filter and Auxiliary Particle Filter
目录 论文来源 摘要 基本概念 1.时变信道 2.粒子滤波 3.高斯粒子滤波 4.辅助粒子滤波 比较 借鉴之处 论文来源 International Conference on Communicati ...
- 图解 CMS 垃圾回收机制原理,-阿里面试题
最近在整理JVM相关的PPT,把CMS算法又过了一遍,每次阅读源码都能多了解一点,继续坚持. 什么是CMS CMS全称 ConcurrentMarkSweep,是一款并发的.使用标记-清除算法的垃圾回 ...
- 图解 H5 与 WebView 数据通信原理
图解 H5 与 WebView 数据通信原理 Android / iOS / RN / Flutter H5 接受数据 自定义 schema H5 调用原生 API 拍照,扫码 原生 调用 H5 AP ...
- 利用光场进行深度图估计(Depth Estimation)算法之一——聚焦算法
前面几篇博客主要说了光场相机,光场相机由于能够记录相机内部整个光场,可以实现重聚焦(模糊线索)和不同视角的变换(视差线索),同时也可以利用这个特性进行深度估计(Depth Estimation). 先 ...
- 利用光场进行深度图估计(Depth Estimation)算法之二——匹配算法
光场相机由于能够捕获相机内部光线的强度和方向而得到整个光场,可以实现重聚焦(refocus)和视角变换等功能.进而可以进行深度估计获取深度图,前面说过利用重聚焦的图像进行深度估计,今天说一下利用不同视 ...
- WCF信道工厂Channel Factory
ChannelFactory<TChannel> 类 一个创建不同类型通道的工厂,客户端使用这些通道将消息发送到不同配置的服务终结点. 命名空间: System.ServiceModel ...
- 8条规则图解JavaScript原型链继承原理
原形链是JS难点之一,而且很多书都喜欢用一大堆的文字解释给你听什么什么是原型链,就算有图配上讲解,有的图也是点到为止,很难让人不产生疑惑. 我们先来看一段程序,友情提示sublimeText看更爽: ...
随机推荐
- 暴力破解-HTTP Basic认证
0x01 HTTP Basic认证介绍 基本认证 basic authentication ← HTTP1.0提出的认证方法 基本认证步骤: 1. 客户端访问一个受http基本认证保护的资源. 2. ...
- 读懂操作系统(x64)之堆栈帧(过程调用)
前言 上一节内容我们对在32位操作系统下堆栈帧进行了详细的分析,本节我们继续来看看在64位操作系统下对于过程调用在处理机制上是否会有所不同呢? 堆栈帧 我们给出如下示例代码方便对照汇编代码看,和上一节 ...
- node的events模块
events可以说是node实现异步的基石,也是其他几个常用核心模块api的异步方法的原型. var eventEmitter=require('events').EventEmitter; //va ...
- 第七篇:wed版语音机器人
wed版语音机器人: GitHub项目地址:https://github.com/Yang915/WebToy 特别说明:该项目在本机测试,通过浏览器调用系统麦克风(https请求),实际环境在Fir ...
- vue修改对象的属性值后页面不重新渲染
原文地址:vue修改对象的属性值后页面不重新渲染 最近项目在使用vue,遇到几次修改了对象的属性后,页面并不重新渲染,场景如下: HTML页面如下: [html] view plain copy &l ...
- 我的excel是2003版本的,里边有sheet1、sheet2两个工作表,当使用GetOleDbSchemaTable获取表Schema时,结果是4个,分别为: sheet1 sheet1$ sheet2 sheet2$
原帖地址:http://bbs.csdn.net/topics/310230098 ---------------------------------------------------------- ...
- 就为了一个原子操作,其他CPU核心罢工了
i++问题 "阿Q赶快回去吧,隔壁二号车间的虎子说我们改了他们的数据,上门来闹事了" 由于老K的突然出现,我不得不提前结束与小黑的交流,赶回了CPU一号车间. 见到我回来,虎子立刻 ...
- Web Scraper——轻量数据爬取利器
日常学习工作中,我们多多少少都会遇到一些数据爬取的需求,比如说写论文时要收集相关课题下的论文列表,运营活动时收集用户评价,竞品分析时收集友商数据. 当我们着手准备收集数据时,面对低效的复制黏贴工作,一 ...
- 第几天?(hdu2005)
第几天那个代码模板可以保存起来. #include<stdio.h> #include<math.h> #define PI 3.1415927 using namespace ...
- opencv3学习1:opencv3.4.10与vs2017环境配置
原教程网址:https://jingyan.baidu.com/article/dca1fa6f13bd55f1a44052b9.html 具体教程网上很多,我也相信大家的搜素能力,作为一个初入C++ ...