从简单的信道预计说起

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

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

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

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

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

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

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

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

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

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

    

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


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

clear all
close alltx_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)

 
 结果例如以下: 

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

clear all
close alltx_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)

 
 结果例如以下: 

非常明显仅仅有循环移位叠加后的结果才满足一般的信道特性,比如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):

                                  

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

事实上能够这么总结:从总体上宏观的看,我们的信号经过信道肯定是与信道的冲激响应作线性卷积的,就好比上面无辜的[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就是以信道带宽的代价来减少接收端的复杂度。

                

 
 

转载于:https://www.cnblogs.com/mengfanrong/p/4493633.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python input函数赋值法_赋值法 - 静雅斋数学 - 博客园

前言赋值法是高中数学中比较常用的一种方法,使用“赋值法”的数学素材和知识点,散落在高中数学的几乎各个章节中,现对其进行整理,以便于学习。比如学习函数时可以赋值法给出单调性,奇偶性,周期性等&#xf…

ActiveMQ 的连接和会话

要了解 connection 和 session 的概念&#xff0c;可以先从 ConnectionState 和 SessionState 入手&#xff1a; // 省略部分代码 public class ConnectionState {ConnectionInfo info;private final ConcurrentHashMap<TransactionId, TransactionState> transactions …

IOS开发之页面切换

从一个ViewController切换到另一个ViewController有下面几种方法&#xff1a; &#xff08;1&#xff09;addsubview方法切换视图self.view addSubview:(加载的新页面);相应的 [self.view removeFromSuperview];移除添加的view&#xff08;2&#xff09;self.view insertSubvie…

python模拟购物车购物过程_Python基于数列实现购物车程序过程详解

要求1、启动程序后让用户输入余额&#xff0c;并打印商品列表2、用户通过输入编号购买商品3、用户选择商品购买后&#xff0c;根据余额判断成功或者失败&#xff0c;给出对应提示4、可以随时退出&#xff0c;退出后打印账号余额以及购买的商品列表构思1、首先&#xff0c;用户余…

Time

问题 : Time时间限制: 1 Sec 内存限制: 128 MB题目描述Digital clock use 4 digits to express time, each digit is described by 3*3 characters (including”|”,”_”and” “).now given the current time, please tell us how can it be expressed by the digital clock…

正则表达式怎样匹配 不包含特定字符串的字符串

正则表达式匹配公式为&#xff1a;^((?!XXX).)*$&#xff0c; XXX为字符串。转载于:https://www.cnblogs.com/lixiaolun/p/5627254.html

ffmpeg 同宽度 画中画_FFmpeg中overlay滤镜用法-水印及画中画

1. overlay 技术简介overlay 技术又称视频叠加技术。overlay 视频技术使用非常广泛&#xff0c;常见的例子有&#xff0c;电视屏幕右上角显示的电视台台标&#xff0c;以及画中画功能。画中画是指在一个大的视频播放窗口中还存在一个小播放窗口&#xff0c;两个窗口不同的视频内…

shutil

高级的 文件、文件夹、压缩包 处理模块 1、shutil.copyfileobj(fsrc, fdst[, length])  将文件内容拷贝到另一个文件中 import shutil shutil.copyfileobj(open(old.xml,r), open(new.xml, w)) 2、shutil.copyfile(src, dst)  拷贝文件 shutil.copyfile(f1.log, f2.log) #目…

Android surfaceview详解

周末看《精通Android游戏开发》(Pro Android Games)&#xff0c;里面讲到游戏的框架&#xff0c;其中一个重要的概念surfaceview,觉得不是很理解&#xff0c;于是花了一点时间研究了下&#xff0c;写下自己的心得。surface&#xff0c;这个单词的意思是浮在表面的&#xff0c;那…

查看操作系统的UUID

UUID 是系统的唯一识别码&#xff0c;永远不会重复&#xff0c;比较有用。Windows 篇在命令提示符下输入wmic 再输入csproduct 或 csproduct list fullwmic:rootcli>csproduct list fullLinux 篇&#xff0c;&#xff08;以 CentOS为例&#xff09;yum install epel-release…

ThinkPhp学习06

一、简单学习修改用户信息模块 1、编写UserAction.class.php 1 <?php2 3 class UserAction extends Action{4 public function index(){5 $mM(User);6 $arr$m->select();7 $this->assign(data,$arr);8 …

Spring MVC @SessionAttributes注解

SessionAttributes原理 默认情况下Spring MVC将模型中的数据存储到request域中。当一个请求结束后&#xff0c;数据就失效了。如果要跨页面使用。那么需要使用到session。而SessionAttributes注解就可以使得模型中的数据存储一份到session域中。 SessionAttributes参数 1、name…

C# 关于MVC框架的简单实例(计算器)

一、需求分析 实现效果 二、实现步骤 步骤一&#xff1a;新建项目--->Web---->空模板 步骤二&#xff1a;添加控制器 步骤三&#xff1a;根据控制器名称添加视图 步骤四&#xff1a;添加Models模型 编写具体的方法 using System;using System.Collections.Generic;using…

JS函数

函数&#xff1a; 函数是由事件驱动或者当它被调用时执行的可重复色代码块。 <head> <script> function hanshu() { alert("你好&#xff01;"); } </script> </head><body> <button οnclick"hanshu()">点击</but…

the python interpreter is in_the python interpreter is in - 百度学术

152.6Khttp://www.web.mit.edu/18.417/OldFiles/doc/pydocs/ext.pdfweb.mit.edu全网免费224.9Khttp://www.logos.t.u-tokyo.ac.jp/~eddieh/Python-Docs-2.3.4/ext.pdflogos.t.u-tokyo.ac.jp全网免费224.9Khttp://www.logos.ic.i.u-tokyo.ac.jp/~eddieh/Python-Docs-2.3.4/ext.p…

windows下安装subversion

前言&#xff1a; 最近在写windows版本下svn hooks(钩子) post-commit的实现。所以会需要在windows下安装相应的subversion。经过一番查询后&#xff0c;决定使用VisualSVN Server和TortoiseSVN 来实现windows下subversion的安装。相应的安装包已放到相关的百度云盘&#xff0…

QMake Automatic Dependencies

qmake SUBDIRS Project Automatic DependenciesHere’s what I searched for, before figuring out how to get SUBDIRSdependencies working using qmake:“qmake export compiler flags”“qmake export defines”“qmake export includepath”“qmake build dependent proje…

apache安装配置

1.安装步骤&#xff1a; 解压源文件&#xff1a; 1 tar zvxf httpd-2.2.21.tar.gz 2 cd httpd-2.2.213 ./configure --prefix/usr/local/apache2 --enable-so --enable-rewrite 4 make5 make install 运行./configure 命令进行编译源代码&#xff0c; --prefix/usr/local/apach…

单片机机器周期怎么计算公式_单片机的机器周期计算

单片机的机器周期计算~2007-08-31 10:32 这么个最简单的问题&#xff0c;总是忘记&#xff0c;日了&#xff0c;现在干脆给记下来&#xff0c;以后再忘记的话就看一看好了。1、时钟周期时钟周期T又称为状态周期&#xff0c;是时序中最小的时间单位。具体计算就是1/fosc。也就是…

数据库---初识sql语句

初识sql语句 SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型&#xff1a; DDL语句 数据库定义语言&#xff1a; 数据库、表、视图、索引、存储过程&#xff0c;例如CREATE DROP ALTERDML语句 数据库操纵语言&a…