小小知识点(三十九) 正交频分复用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揭秘> ...
随机推荐
- [\s\S]*?懒惰模式特殊情形
通常理解[\s\S]*?X (X代表任意指定字符) 表示匹配任何字符的懒惰模式,一旦遇到后面出现的X便停止匹配,但实际不是如此,会尽可能的把后面的内容也匹配进去.如: 表达式 <tr[\s\S] ...
- Libev源码分析09:select突破处理描述符个数的限制
众所周知,Linux下的多路复用函数select采用描述符集表示处理的描述符.描述符集的大小就是它所能处理的最大描述符限制.通常情况下该值为1024,等同于每个进程所能打开的描述符个数. 增大描述符集 ...
- 学习CSS预处理器Less
1.Sass与Less的区别:Sass与Less的区别 2.Less的使用:Less的使用 3.Less的相关网址:Less.js.Less中文网 Less的HSL函数-lighten():HSL函数 ...
- js后端返回一个时间戳,用原生怎么对时间进行格式化?
function fn(time) { var date = new Date(time); var len = time.toString().length; // 时间戳不足13位则在后面加零 i ...
- HMM(隐马尔科夫)用于中文分词
隐马尔可夫模型(Hidden Markov Model,HMM)是用来描述一个含有隐含未知参数的马尔可夫过程. 本文阅读了2篇blog,理解其中的意思,附上自己的代码,共同学习. 一.理解隐马尔科夫 ...
- SuperSocket根据条件获取 Session
如果你有一个自定义的属性 "CompanyId" 在你的 AppSession 类之中,如果你想要获取这个属性等于某值的 的所有 Session, 你可以使用 AppServer ...
- 关于浏览器ip代理导致定位错乱问题的坑
http://m.welltrend.com.cn/网站在Android手机的qq浏览器或者uc浏览器或者在微信中打开连接访问时,点击右侧的聊天按钮,经常出现手机在北京结果定位到天津的问题,或者广州的 ...
- Python--day20--模块的导入
1,模块的导入步骤: 2,,给文件起别名的用处: 重命名之后,原来的名字就不能用了 3,虽然这样写可以,但是不推荐,代码可读性不强,以后代码的修改成本也增加: 4,模块的导入顺序: 5,导入变量名的两 ...
- java Jre和Jdk的区别?
JRE:(Java Runtime Environment),java运行环境.包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开 ...
- Java集合系统
前言: 要想学习java的集合体系,就必须先了解java的集合框架,总的来说,分为Collection和Map体系. Collection集合框架: Map集合框架: 一. Collection接口 ...