OFDM SYMBOL的概念及其速率

简介: OFDM SYMBOL的概念及其速率

前言

关于 ofdm 的符号(symbol)概念,有必要有一个感性的认识。也就是说大概要知道它发射到空中是个什么样。


一、OFDM 信号的频率-时间表示

下面这个图是一个很好的诠释,它从时域和频域对 symbol 的概念做了一个立体的全方位的示意,信息量很大,可以仔细看看每个细节。

  • 从正面看到的就是 OFDM 的频域图,由很多正交的子载波组成,并且这些子载波组成一个 OFDM 符号(OFDM符号是一个频域序列);
  • 从侧面看是一帧 OFDM 的时域信号,一帧 OFDM 时域信号由多个 OFDM 符号组成,由保护间隔和有效数据部分符号组成;
  • 1 个 OFDM 突发 = 1 个或更多的 OFDM 符号
  • 1 个 OFDM 符号 = OFDM 傅里叶变换后的波形 + 保护间隔
  • OFDM 子载波通过逆傅里叶变换创建 OFDM 波形
  • 1 个已调制的子载波 = 在频率和时间上的一个点

二、OFDM 时域波形

但是上图对时域的 symbol 波形,也就是代表现实世界我们看到的信号的样子并没有画出来。以下画了一个简单的图(以 20M 带宽为例,52 个数据子载波),大概是这个样子:

一句话,symbol 的波形可以看作是 52 个子载波的叠加而成的波形(不算上Guard interval)。当然实际上没有这么一个叠加过程,因为这个波形是 IFFT 直接算出来的再 DA 转换后的。另外,这个是基带的波形,如果搬到载波(比如 2.4GHz)还有一个过程。所以 ofdm 的空中无线电信号实际上是一个接一个的 symbol 波形。802.11n/ac 里面规定了一个 symbol 的数据时间是 3.2us,GI 默认是 0.8us,加起来一个 symbol 时长就是 4us。

二、OFDM 符号速率

理解了 symbol 的概念,那么对 802.11 速率表是怎么计算出来的就很好理解了。

我们以 20M 带宽,1 条 stream,VHT MCS5 速率为例来看它是怎么算出来的。

VHT MCS5 速率的参数:64QAM,coding rate 2/3。

关于QAM调制,可以参考大佬的一个博客:如何形象的理解什么是QAM,8QAM,16QAM,和载波对应关系如何?

64 QAM意味着每路子载波调制完的波形可以有 2 6 2^626 种(幅度+初始相位组合),也就是一个调制符号带 6 比特信息。coding rate 2/3 意味着其中 4 比特是有效数据,剩余 2 比特是冗余信息(用来做校验等用途)。52 路子载波叠加,所以一个 symbol 带有的数据量是 (52x4)=208 比特。

考虑 GI=0.8us 的情况,前面所述,这种情况下一个 symbol 时长是 3.2us+GI=4us。意味着 4us 时间传送 208 比特。所以每秒传送 208 × 1 s / 4 u s = 52 M 208×1s/4us=52M208×1s/4us=52M 比特数据。这就是 20M带宽,VHT MCS5 速率 52Mbps 的由来!

如果 short guard interval 功能打开,GI=0.4us,symbol 时长变为 3.2+0.4=3.6us,那么速率就变成了 208 × 1 / 3.6 = 57.8 M b p s 208×1/3.6=57.8Mbps208×1/3.6=57.8Mbps

同理,40M 带宽时,子载波变成 108个(不是104个!),VHT MCS5 GI=0.8us 的情况下数据就是 108Mbps。另外,stream 增加的情况很容易理解,只要 1 个 stream 的速率乘上 stream 数量就可以了,比如同样上面 40M 带宽的情况,当 stream 增加到两条时,速率就达到了 108x2=216Mbps。

本文参考:理解OFDM SYMBOL的概念以及802.11的速率计算

目录
相关文章
ES6: Symbol概念与用法举例
ES6: Symbol概念与用法举例
63 0
|
6月前
|
JavaScript 前端开发
ES6:什么是Symbol?
ES6:什么是Symbol?
81 1
|
6月前
ES6之Symbol
ES6之Symbol
|
6月前
|
JavaScript 前端开发
|
6月前
|
JavaScript 前端开发 开发者
|
18天前
|
设计模式 JavaScript 前端开发
es6加上symbol的基础数据类型
【10月更文挑战第30天】ES6 中的 `Symbol` 作为一种新的基础数据类型,为 JavaScript 提供了一种创建唯一标识符和处理对象属性名冲突的有效方式,丰富了 JavaScript 的数据类型体系和编程模式,在实际开发中具有重要的应用价值。
|
18天前
|
设计模式 JavaScript 前端开发
es6加上symbol的基础数据类型
【10月更文挑战第22天】ES6中的 `Symbol` 作为一种新的基础数据类型,为JavaScript提供了一种创建唯一标识符和处理对象属性名冲突的有效方式,丰富了JavaScript的数据类型体系和编程模式,在实际开发中具有重要的应用价值。
|
4月前
|
存储 JavaScript 前端开发
JavaScript编码之路【ES6新特性之 Symbol 、Set 、Map、迭代器、生成器】(二)
JavaScript编码之路【ES6新特性之 Symbol 、Set 、Map、迭代器、生成器】(二)
54 1
|
4月前
|
存储 JavaScript 前端开发
JavaScript编码之路【ES6新特性之 Symbol 、Set 、Map、迭代器、生成器】(一)
JavaScript编码之路【ES6新特性之 Symbol 、Set 、Map、迭代器、生成器】(一)
40 0
|
6月前
|
存储 JavaScript
ES6+新特性-Symbol与Set/Map数据结构
ES6 引入了三种新的数据结构:Symbol、Set和Map。Symbol是唯一且不可变的值,常用于定义对象的独特属性;Set存储不重复值,适合数组去重;Map则是键值对集合,键可为任意类型,提供了更灵活的存储方式。这些新数据结构提供了更高效的操作手段,分别解决了属性命名冲突、数据去重和复杂键值对存储的问题。示例展示了如何使用Symbol、Set和Map进行基本操作。