前言
关于 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。