近期由於工作需要研究了下wifi協議的最大速率,下面分析一下都是如何計算的:
先分析基於OFDM的802.11g,802.11g提出於2003年,據今已有19年的歷史,別名wifi 3。
OFDM關鍵指標:
帶寬(BandWidth)
指的是通信占用的頻譜寬度,wifi 3 最大為20MHz;
子載波間隔與子載波數量
由於OFDM的信號頻譜是由有限的子載波組成的,所以一個關鍵指標便是,子載波間隔和數量;其中Number of Sub-carrier = BW /(sub-carrier_spacing )
對 802.11g,
subcarrier_spacing = 312.5 kHz:(Subcarrier Spacing (802.11n/ac/ax/be) (keysight.com))
所以802.11g 每個20M channel,可以有20e6/312.5 e3 = 64 sub-carriers;
所以802.11g 只有中間的16.25M分布着子載波,共52個。(中間0子載波為DC,是使用了53 carrier,實際占據帶寬為OBW - 16.6MHz)
而中間的52個子載波,其中4個做導頻子載波(Pilot Subcarriers),它們不傳輸數據,但是用來把transeiver 和 receiver同步。
剩余52-4 = 48 個子載波稱為數據子載波(Data Subcarriers);
調制階數和symbol代表的bit數(Modulation)
對802.11 a/g,它們最大支持64QAM,在64QAM的星座圖上,每個點都代表6bit數據,換句話說,每傳輸一個64QAM的symbol,就傳輸了6個bit的二進制碼;
symbol 傳輸時間和間隔與符號周期
symbol傳輸時間,是指一個OFDM symbol所占用的時域上的時間 symbol time, 在802.11g中 symbol time= 3.2us;
在時域上,兩個symbol之間的間隔時間t,稱為GI - guard interval,直譯“守護間隔”;
可以看到,WIFI 3的協議上做了頻域和時域的雙保護,頻域上利用4個空閑的子載波保護頻帶不受干擾,時域上用GI保護一個symbol 的傳輸不受干擾。
在802.11g中,最短的GI 0.8us;
符號周期 symbol period = symbol time + GI = 3.2+0.8 = 4us
編碼(Coding)
在信號傳輸過程中,由於噪聲和干擾原因,在原碼中隨機假如有規律產生的糾錯碼(Error-corrocting code)ECC可以提高信號被解調出來的概率。
在802.11g中,使用的是FEC,前向糾錯碼,含義為:單方向糾錯,從上端往下端糾錯,而無反饋,所以稱為單向糾錯碼,使用FEC后,單個symbol不一定是數據symbol,可能被糾錯碼占據。
對802.11a/g,下表是FEC rate對照表,根據不同的信道環境質量,選擇不同的FEC rate; 最優FEC 3/4。
綜上,
帶寬 + 子載波間隔 + 調制 + 編碼 + 符號周期
我們可以計算802.11g的最大速率了:
在最短 GI下:802.11g的最大速率為54Mbps
在 0.8 us GI下:802.11g的最大速率為
max Speed = 48 * 6 * (3/4)* [1/(3.2+0.8)]*1e6 = 54 e6 bps = 54 Mbps.
其中48 個子載波,一個符號承載6 bit數據,只有3/4的symbol為數據symbol,其他為FEC開銷,短GI下一個symBol period 為 4us,所以最后要✖1e6。