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的速率计算

目录
相关文章
|
8月前
ES6: Symbol概念与用法举例
ES6: Symbol概念与用法举例
28 0
|
2月前
ES6之Symbol
ES6之Symbol
|
4月前
|
JavaScript 前端开发
|
4月前
|
JavaScript 前端开发 开发者
|
2月前
|
JavaScript
js开发:请解释什么是ES6的Symbol,以及它的用途。
ES6的Symbol数据类型创建唯一值,常用于对象属性键(防冲突)和私有属性。示例展示了如何创建及使用Symbol:即使描述相同,两个Symbol也不等;作为对象属性如`obj[symbol1] = 'value1'`;也可作枚举值,如`Color.RED = Symbol('red')`。
|
4月前
|
JavaScript 前端开发
ES6之原始数据类型Symbol
ES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。它属于 JavaScript 语言的原生数据类型之一,其他数据类型是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、大整数(BigInt)、对象(Object)。Symbol的作用是创建一个不可变且唯一的标识符,可以用作对象属性的键。它可以用来解决属性名冲突的问题,避免命名冲突。
35 0
|
9月前
|
JavaScript
es6数据类型Symbol以及es6操作数组常用的方法
es6数据类型Symbol以及es6操作数组常用的方法
60 0
|
10月前
Es6 symbol
Es6 symbol
31 0
|
10月前
|
前端开发 JavaScript
JS(第二十五课)ES6语法Symbol
JS(第二十五课)ES6语法Symbol
61 0