经常看到这样的数据,下面是802.11n协议,2X2天线的理论数据速率。:
下面我们就来了解下这是怎么计算出来的。
影响因素
速率的计算需要考虑的因素包括:调制方式、码率、子载波个数(带宽和协议模式不同,子载波的个数也不相同)、符号率、符号利用率,空间流个数。
数据速率
数据速率的理解可以用单位之间内数据传输量来表示,1s内传输数据的量可以叫做速率。
数据速率计算:
公式1:
- 数据:明白来讲就是bits,t时间中传输了多少个bits,电磁波中的bit都是由symbol(符号)携带的,不同的调制方式决定每个符号可携带的bits数不一样。
每个符号的比特位数知道后,当然要知道1s之内可以传输多少个符号。
- 符号率:符号率又称波特率,表示载波每秒中变化的数值,可以理解子载波的间距为符号率。
- 子载波:11n和11ac的子载波相关信息如下:
数据子载波减去先导子载波等于纯数据传输的数据子载波,子载波总数减去数据子载波数就是剩下的空子载波及保护子载波。
NDBPS(Number of data bits per subcarrier,NDBPS)—子载波比特位数;包含所有空间流的比特位。从数学角度考虑,NDBPS是通过每个符号的位数、码率以及子载波的个数等因素决定的。
因此:NDBPS = 每个符号的位数码率数据子载波个数,看到这里各位应该可以知道结果了, 数据速率Rdate = NDBPS 符号率。其实不完全对,还有一个因素存在,因为符号和符号之间存在GI,这个防止符号之间相互干扰而会存在一定的时间间隔,T LongGI = 0.8us,T shortGI =0.4us。所以有效的符号使用率并非100%的,实际数据速率的公式应该如下:
Rdata = NDBPS 符号率符号使用率 = NDBPS符号率*TDFT / (TDFT+TGI)
公式2:
- 符号长度
WiFi协议中,一个做完IFFT后插入GI的时域上的一段数据,称为一个符号(symbol)。一个符号长度越长,则速率越低。因为单位时间发出的符号数越少。1/符号长度(us)其实代表1秒钟可以传输的symbol数量。使用us做单位,是为了速率单位直接就是Mbps。那么如果还可以得到每个symbol包含的数据bit数,不就可以得到每秒钟发出的数据比特数了吗?单位就是Mbps; - 有效子载波个数
全称应该是有效子载波的个数/symbol。对802.11ac协议,最高支持160MHz带宽,在这个带宽上,有效子载波的个数是:484-16=468个(其中,484是子载波总个数,16是导频数,468就是有效的数据子载波个数) - 每个子载波可以承载的有效bit数
根据802.11ac的协议,最高可以支持256QAM,也就是一个子载波最高可以承载8bit的比特数,256=2^8; - 码率
802.11ac中的最高码率是5/6。也就是说发出6个数据,最多有5个是有效数据。 - 天线数目
计算公式与计算举例
计算11AC 80M Bandwidth、1个空间流的最大理论速率。
公式1
速率(Mbps) = 1/符号长度(us)* 有效子载波个数 * 每个子载波承载有效bit数 * 码率 * 天线数目
- 802.11ac 符号长度:最小为3.6us
- 802.11ac 有效子载波个数:234个(160M带宽484是子载波总个数,16是导频个数,468就是有效的数据子载波个数)
- 802.11ac每个子载波承载有效bit数:8(256是2的8次方)
- 802.11ac码率:最高码率5/6
- 天线数目:1
- rate= (1/3.6us)乘234乘8乘5/6乘1= 433Mbit/s
公式2
速率(Mbps) = 每个符号的位数*码率*数据子载波个数*符号率*TDFT / (TDFT+TGI)
- 每个符号位数:8(256是2的8次方)
- 码率:最高码率5/6
- 数据子载波个数:234(80M的有效载波个数)
- 子载波间距(频率):312500
- rate = 8乘234乘5/6乘312500乘3.2/ (3.2+0.4)=433Mbits/s
结语
这只是简单的数据速率计算,不能作为真正的交互协商应用速率,需要根据具体数值计算,其他协议计算方法类似,还请大家不吝指教。