小小知识点(三十九) 正交频分复用OFDM的基本原理及实现
引言
符号间干扰(ISI)是无线传输系统设计中需要考虑的因素,采用什么样的处理方法取决于数据传输速率或等效传输带宽来决定
(1)若数据速率低且与信道最大延迟相比符号持续时间较长,那么就可能无需任何均衡技术处理ISI
(2)若数据速率或通信距离增加,ISI变得越来越严重,如数据以100Mb/s的速率在最大延迟为10us的信道上传输,那么ISI将扩展100个符号,这时就必须借助均衡技术。另外,OFDM技术提供了让数据以较高的速率在较大延迟的信道上传输的另一种途径。
OFDM的基本思想
把一个高速率的数据流分解成许多低速率的子数据流以并行方式在许多子信道上传输。
OFDM的基本原理

注:离散傅里叶变换公式,源自《The descret fourier transfer theorys algorithms applications 》by D.Sundararajan
IDFT

DFT


其中Sn,k是映射的IQ复信号
(注:详细的说明见《宽带无线通信》中的第四部分OFDM)
保护间隔和循环前缀
OFDM把输入的高速率数据流串并转换到N个并行的子信道中,使得每个用于调制子载波的数据符号周期扩大为原始数据符号周期的N倍,时延扩展与符号周期的比值同样也降低N倍。
GI:为最大限度的消除符号间干扰ISI,可以在每个OFDM信号块之间插入保护间隔(Guard Interval,GI),而且该保护间隔长度Tg一般要大于无线信道的最大时延扩展,这样一个符号的多径分量就不会对下一个符号造成干扰。

CP:当保护间隔内,不插入任何信号,即是一段空闲的传输时段。然而在这种情况下,由于多径传播的影响,则会产生信道间干扰(ICI),即子载波间的正交性遭到破坏,不同的子载波之间产生干扰。为消除多径造成的ICI,OFDM符号需要在保护间隔内插入循环前缀(cycle prefix,CP)

CP可以充当保护间隔,从而消除ISI。因为它的存在使得前一个符号多径的副本都落在后一个符号的CP范围内,从而消除两个符号间的干扰;由于OFDM符号的一部分呈现周期性,将信号与信道冲击响应的线性卷积转换成循环卷积,个子载波将保持正交性,从而防止ICI。
OFDM的基本参数的选择




小小知识点(三十九) 正交频分复用OFDM的基本原理及实现的更多相关文章
- centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课
centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/ind ...
- 对正交频分复用OFDM系统的理解
OFDM系统 正交频分复用OFDM(Orthogonal Frenquency Division Multiplexing)是一种多载波调制技术. 基本思想:在发送端,它将高速串行数据经过串并变换形成 ...
- NeHe OpenGL教程 第三十九课:物理模拟
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Java进阶(三十九)Java集合类的排序,查找,替换操作
Java进阶(三十九)Java集合类的排序,查找,替换操作 前言 在Java方向校招过程中,经常会遇到将输入转换为数组的情况,而我们通常使用ArrayList来表示动态数组.获取到ArrayList对 ...
- Gradle 1.12用户指南翻译——第三十九章. IDEA 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- SQL注入之Sqli-labs系列第三十八关、第三十九关,第四十关(堆叠注入)
0x1 堆叠注入讲解 (1)前言 国内有的称为堆查询注入,也有称之为堆叠注入.个人认为称之为堆叠注入更为准确.堆叠注入为攻击者提供了很多的攻击手段,通过添加一个新 的查询或者终止查询,可以达到修改数据 ...
- 第三百三十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式
第三百三十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式 我们自定义一个main.py来作为启动文件 main.py #!/usr/bin/en ...
- “全栈2019”Java第三十九章:构造函数、构造方法、构造器
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形
原文:WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形 说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘> ...
随机推荐
- oracle自动选择索引
如果表中有两个以上(包括两个)索引,其中有一个唯一性索引,而其他是非唯一性. 在这种情况下,ORACLE将使用唯一性索引而完全忽略非唯一性索引. 举例: SELECT ENAME FROM EMP W ...
- Laravel实现找回密码及密码重置的例子
https://mp.weixin.qq.com/s/PO5f5OJPt5FzUZr-7Xz8-g Laravel实现找回密码及密码重置功能在php实现与在这里实现会有什么区别呢,下面我们来看看Lar ...
- U盘还原系统
相信现在不少的人已经开始使用U盘作为启动盘来安装系统,说起来这可比用光盘装系统可是方便多了.毕竟U盘可以随身携带,至于光盘嘛,就不多说了. 可是还有许多人对U盘安装系统还是有些陌生的感觉. ...
- Android本地数据存储: Reservoir
一:前言 今天做项目,准备使用本地存储,把一些数据存在本地磁盘上,比如用户名.密码这样的.其实大家都知道,这种情况最常用的就是SharedPreferences了,我也不例外,脑子里第一个想到的就是用 ...
- hdu 3466 Proud Merchants(有排序的01背包)
Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ...
- 如何查看linux中的ssh端口开启状态
netstat -anp |grep 22 netstat -anp |grep sshlsof -i :22
- Python--day27--几个内置方法:__repr__()/__str__()/__del__()/__call__()/__getitem__/__setitem/delitem/__new__/__eq__/__hash__
repr方法() 双下方法__str__: 打印对象就相当于打印对象.__str__ __repr__(): __repr__是__str__的备胎,没有__str__的时候,就调用__repr__: ...
- js(三) ajax异步局部刷新技术底层代码实现
ajax 异步 javaScript and xml 开发五步骤: 1. 创建对象 XMLHttpRequest(chrome,firefox) ie... jquery 2. 找到连接, http的 ...
- 21个项目玩转深度学习:基于TensorFlow的实践详解01—MNIST机器学习入门
数据集 由Yann Le Cun建立,训练集55000,验证集5000,测试集10000,图片大小均为28*28 下载 # coding:utf-8 # 从tensorflow.examples.tu ...
- 关于POSTMAN做并发压测
一开始我个人在做测试时用到了POSTMAN,用了两种方式做测试, 第一种: 测试发现这种方式是阻塞排队,我让接口睡两秒,这100次请求间隔就是2秒,是串行执行 于是想到第二种,在一个collectio ...