这个问题如果细回答的话有很多内容,这里只能够大致点一下意思。首先WIFI信号的强度和速度肯定是有关系的,信号强度越好,速度越高,所以在802.11ac提高速率的同时,采用MIMO来提高信号的强度(主要是Beamforming)。为了细化理解一下,我们首先要从WIFI速率的计算开始(这里以OFDM系列做为例子,802.11b的应用面已经不是特别广,所以不展开,注:802.11b是采用DSSS技术进行传输的,其物理层可以采用barker码,CCK码以及可选PBCC码进行传输,而802.11a/g/n/ac都是基于OFDM进行定义的)
以802.11a速率计算作为例子,其物理层传输速率是通过MCS表进行计算出来的,如下图:
<img src="https://pic4.zhimg.com/edb3d30ba17f3dde99610674b2027fa3_b.png" data-rawwidth="1008" data-rawheight="645" class="origin_image zh-lightbox-thumb" width="1008" data-original="https://pic4.zhimg.com/edb3d30ba17f3dde99610674b2027fa3_r.png">上图实际上是描述的是802.11a的MCS表,MCS表实际上是描述对应不同速率的调制方式以及编码方式。这里每一行决定一种发送速率,不同的发送速率对应不送的信道质量,当信道质量好的时候,发送速率快一些,信道质量差的时候,发送速率慢一些。
上图实际上是描述的是802.11a的MCS表,MCS表实际上是描述对应不同速率的调制方式以及编码方式。这里每一行决定一种发送速率,不同的发送速率对应不送的信道质量,当信道质量好的时候,发送速率快一些,信道质量差的时候,发送速率慢一些。
MCS表中的第二列是调制方式,实际上计算带进去的值是调制的阶数(故需要将调制方式转换为阶数)。第三列是对应的编码速率,这里又称为FEC速率(FEC是前向纠错码的名称,Forward Error Correction)。在802.11a中是采用卷积码的形式进行编码的,然后在译码的时候采用的是viterbi算法。FEC速率可以简单理解成冗余度,即1/2可以理解成1个bit用2个bit来重复发送。最后一列对应的就是实际的物理层速率了。然后我们关注的是物理层的速率计算,通常我们简单理解物理层的速率计算等于 子载波数*调制阶数*编码效率 / 发送间隔。
举个例子:对应调制方式为16QAM,编码效率为1/2的速率。同时我们还需要补充的条件是:在802.11a中,数据子载波是48个,OFDM symbol的时间是4us(简单理解成每次传输的时间间隔),16QAM每次可以传输的物理层比特数为4(即2的4次方为16)。即 24Mbps = 48*4*(1/2) / 4us 。每一种速率通过不同的编码方式,从而达到不同的实际速率。PS:如果在802.11n/ac中还存在不同的带宽模式,对应不同带宽对应不同的子载波数,这里由于是802.11a所以子载波数固定。
下图就是802.11n中所对应的MCS表,可以看到,每一个速率都有对应的信号灵敏度的阈值,越高阶的速率,其对信号的灵敏度越高。
<img src="https://pic4.zhimg.com/e8f2c60d4ea25c33eeefd05772143a23_b.png" data-rawwidth="943" data-rawheight="367" class="origin_image zh-lightbox-thumb" width="943" data-original="https://pic4.zhimg.com/e8f2c60d4ea25c33eeefd05772143a23_r.png">
下面也补充了张图,可以直观的看下SNR对于不同的调制方式和编码效率的影响(图是来源于mobicom 2012年的一个协议autoMAC的ppt上)
<img src="https://pic3.zhimg.com/3e8a3670927104580ccd1a4a6e162492_b.png" data-rawwidth="808" data-rawheight="609" class="origin_image zh-lightbox-thumb" width="808" data-original="https://pic3.zhimg.com/3e8a3670927104580ccd1a4a6e162492_r.png">图中横轴是SNR,纵轴是借条的可能性(这张图不是误码率,简单理解是解调的正确率),比如对应蓝色虚线,采用图中相对低阶的16QAM,以及高冗余的1/2编码,其在将近8dB的情况下还可以工作,而其他的高阶调制方式以及低冗余的编码就都解调失败了。
图中横轴是SNR,纵轴是借条的可能性(这张图不是误码率,简单理解是解调的正确率),比如对应蓝色虚线,采用图中相对低阶的16QAM,以及高冗余的1/2编码,其在将近8dB的情况下还可以工作,而其他的高阶调制方式以及低冗余的编码就都解调失败了。
然后最后一点还需要补充下无线网络中速率的自适应调节,这一块在不同的版本的协议中实际上做法是不同的,在早些的802.11中,这一块是交给厂家自行设定的,如下图的解释(WIFI权威指南中)
<img src="https://pic3.zhimg.com/6100c73b951e369f617de07e2e944392_b.png" data-rawwidth="1226" data-rawheight="625" class="origin_image zh-lightbox-thumb" width="1226" data-original="https://pic3.zhimg.com/6100c73b951e369f617de07e2e944392_r.png">到了802.11ac以后,每一次传输之前,其实际上都做了一次信道的测量(NDP,NDPA的反馈,额,具体反馈的帧的名字忘了,这里表述不是特别准确),所以每一次基本都是能够大致测定下信道质量的,从而可以每一次根据信道质量在MCS表中选择一个合适发送速率进行发送,从而进行实时的速率自适应,这个就不展开了额。
到了802.11ac以后,每一次传输之前,其实际上都做了一次信道的测量(NDP,NDPA的反馈,额,具体反馈的帧的名字忘了,这里表述不是特别准确),所以每一次基本都是能够大致测定下信道质量的,从而可以每一次根据信道质量在MCS表中选择一个合适发送速率进行发送,从而进行实时的速率自适应,这个就不展开了额。