从简单的信道预计说起

从简单的信道预计说起

     前面写了关于CP在OFDM中的应用,主要是记录一点零星的想法而已,今天突然想写点关于信道特性方面的东西。原因有下面几点:

       1)信道在仿真中的地位不容置疑,不同信道的条件下的仿真是很多课题的重点,自己差点儿还没入门。

       2)正由于没入门,所以仅仅能从最简单的信道预计说起,当然也会谈到CP的问题,毕竟是由于仿真CP对OFDM影响才激发了自己去看相关的材料。

       3)还有一个原因,写文章是整理思维的一个过程。

       4)最后,Mark离我远去的智牙,疼ing!

      先让我们回想下一些小知识点:

       1)信号经过多条小径到达,每条径幅度和相位随机,我们得知其幅度是服从瑞利分布,相位是均匀分布,有经典的Jakes模型以及各种改进算法来仿真(当中是考虑了多普勒频移)。 

       2)无线环境中的信道模型常常是多径(大径)的(直射径和反射、散射等),因为多径带来了频率选择性,所谓频率选择性,就是信道对不同频率的信号成分施加不同的影响。

       3)另外,假设又外加移动的条件,那么我们的信道就是时变的了,时变就会带来频域弥散,也就是俗称的多普勒频移  

       4)所以,我们总会把无线信道建模为线性时变信道。

    

     我们从最简单的多径信道開始,我们仿真有两条径,每条径并没有衰落,就是一个固定的加权值,我们先看一个样例

<span>从简单的信道预计说起</span>

接下来我们用程序来验证下:

clear all
close all

tx_data = [1 0 0 0];
data_delay = [0 1 0 0];
rx_data = tx_data + data_delay;

fft_tx = fft(tx_data)
fft_rx = fft(rx_data)



结果例如以下:

<span>从简单的信道预计说起</span>

事实上我上面的程序验证是很很easy的一个,假设你把数据改动为[1 2 3 4]就肯定不是这种结果了。问题出在哪呢?这就要从公式(2)说起了,什么样的DFT才干产生那样的结果呢?回想DSP我们能够知道,循环移位也就是周期移位才干产生公式(2)的效果,那为什么上面的程序没有循环移位又出现了正确结果呢?那是由于上面数据[1 0 0 0]线性移位和周期移位效果等同,为了验证我们来改动一下上面的数据,最好还是就拿无辜的[1 2 3 4]来看看

clear all
close all

tx_data = [1 2 3 4];
data_delay_linear = [0 1 2 3];
data_delay_period = [4 1 2 3];
rx_data_linear = tx_data + data_delay_linear;
rx_data_period = tx_data + data_delay_period;

fft_tx = fft(tx_data)
fft_rx_linear = fft(rx_data_linear)
fft_rx_period = fft(rx_data_period)



结果例如以下:

<span>从简单的信道预计说起</span>

非常明显仅仅有循环移位叠加后的结果才满足一般的信道特性,比如k=1,(-2+2i)*H(1)=(-2+2i)*(1-i)=4i。我们在接收端仅仅要获得了H(k)的各个值,就非常easy补偿信道带来的损失了。

  

    好了,让我们回到OFDM上来,我们把经过星座映射后的符号放置在不同的IFFT_BIN上,也就是用不同的频率来发送,在 前面博文循环前缀在OFDM中应用(一)中我们已经说明,经过信道无非是每一个频率经过H(k)的加权而已,这种话我们就不须要用那么复杂的均衡技术了,仅仅须要预计出H(k)的值,然后逆运算就能够恢复原来的符号了,我们是用了循环前缀这一技术才干达到上面所说的效果,在那篇博文中我们是从 循环前缀变线性卷积为循环卷积 来证明的,可是并没有说明为什么就变换成功了,今天希望直观的理解一下。如今有了上面简单的样例,我们能够看出一点端倪。还是拿无辜的[1 2 3 4 ]来说明(在此CP长度取3):

                                  <span>从简单的信道预计说起</span>

从上面这个图,我们能够看出来仅仅要信道冲激响应长度小于CP的长度,我们都能够把线性移位变成区间[1:4]内的循环移位,所以加了CP后的信号,经过信道传输后,我们接受端是会去掉CP那段长度的,这里还不够直观,为什么发送端加CP,接收端去掉CP就能实现循环卷积呢?好了,为了解决问题,让我们看看究竟什么是循环卷积和线性卷积,为了直观的理解,我不打算用DSP上的理论,我从一个更加直观的方面来说。

<span>从简单的信道预计说起</span>

事实上能够这么总结:从总体上宏观的看,我们的信号经过信道肯定是与信道的冲激响应作线性卷积的,就好比上面无辜的[1 2 3 4]样例一样,各个时延版本号的加权和(这里都加权都是1而已),可是当我们从局部微观的看,我们不仅仅关心区间[1:4],那么一个非常显然的事实就摆正面前:在这个局部我们做的是循环卷积。

好了,我们如今的思绪差点儿相同理清了,总结下:我们把星座映射后的符号X=[X1,X2...,Xn]经过IFFT运算后,得到了时域信号x=[x1,x2...,xn],我们加上CP后变成x',把它变成‘宏观’的信号经过信道,总体上是一个线性卷积没错!可是在原始时域信号x那个小区间内,却始终保持的是循环卷积(仅仅要CP长度大于信道冲激响应长度),那么我们就能够利用手段来获取信道特征H(k),每一个k就对于每一个子载波上的符号Xk,所以一个频率选择性信道就变成了多个平坦的信道了。

后记:书上简单的一句:CP把线性卷积变成循环卷积,事实上我觉得更好的理解就是:宏观的线性卷积变成局部的循环卷积,毕竟我们接收端会去除CP,也就是说我们始终关心的还是那个局部,由于那个区间才是我们IFFT变换得来的,所以CP就是以信道带宽的代价来减少接收端的复杂度。

                



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119153.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • stm32cubemx使用教程pdf_库乐队完全新手教程

    stm32cubemx使用教程pdf_库乐队完全新手教程前言:本系列教程将对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用所用工具:1、芯片:STM32F407ZET6/STM32F103ZET62、STM32CubeMx软件3、IDE:MDK-Keil软件4、STM32F1xx/STM32F4xxHAL库知识概括:通过本篇博客您将学到:PWM工作原理…

  • flume使用教程_三阶魔方初级入门教程详细图解

    flume使用教程_三阶魔方初级入门教程详细图解文章目录1.Flume概述1.1Flume定义1.Flume概述1.1Flume定义  

    2022年10月24日
  • gdi+ 高速绘制透明窗体

    gdi+ 高速绘制透明窗体

  • vector二维数组初始化赋值_vector实现二维数组的赋值

    vector二维数组初始化赋值_vector实现二维数组的赋值一。二维vector初始化1.采用构造函数vector&lt;vector&lt;int&gt;&gt;vec(10,vector&lt;int&gt;(8));//10行8列,全部初始化为零2.添加元素(每次添加一行)inta[]={1,2,3,4};vector&lt;int&gt;ivec(a,a+4);//数组初始化vector,见最下面(…

  • windows环境下用c++实现socket编程

    windows环境下用c++实现socket编程一、什么是Socketsocket即套接字,用于描述地址和端口,是一个通信链的句柄。应用程序通过socket向网络发出请求或者回应。sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);前两种较常用。基于TCP的socket编程是采用的流式套接字。(1)SOCK_STREAM表示面向连接的

  • 网站在线漏洞检测_md5码生成

    网站在线漏洞检测_md5码生成系统管理员通常从svn/git中检索代码,部署站点后通常首先会生成该站点所有文件的MD5值,如果上线后网站页面内容被篡改(如挂马)等,可以比对之前生成MD5值快速查找去那些文件被更改,为了使系统管理员第一时间发现,可结合crontab或nagios等工具。分享一例[url=http://www.jbxue.com/jb/python/]python[/url]结合[url=http://w…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号