OFDM符號介紹
OFDM(Orthogonal Frequency Divisition Multiplexing)代表正交頻分復(fù)用。從字面意思來看,它有3個特性:
正交
頻分
復(fù)用
OFDM是一種將寬的頻率分裂成許多小頻率(稱之為子載波)的技術(shù),并將數(shù)據(jù)傳送到每個子載波上,如圖1所示。換句話說,將一個寬的頻率分割成多個小/窄頻率,這就是“頻分Frequency Division”的含義。因為每個子載波上的所有數(shù)據(jù)都是同時傳輸?shù)?,這是一種“復(fù)用”。

那么問題來了。我們可以為每個子載波分裂成多???例如,如果有1MHz帶寬作為一個全頻帶,如果將其分成1000個具有1KHz間隔的子載波,并在每個子載波上攜帶一個bit位,則可以同時傳輸1000?bit位。如果把它分成具有10KHz間隔的100個子載波,并在每個子載波上攜帶一個bit位,一次可以傳輸100個bit位。
一般人肯定會選擇把它分成1000個子載波。但不幸的是,在子載波之間以太小的間隔分割是不可能的。如果把它分成太多的子載波,子載波之間的間隔太小,就會導(dǎo)致相鄰子載波之間的干擾,速率會下降很明顯。
作為一種最優(yōu)解,OFDM以如圖2所示的方式分裂成多個子載波。在頻域的每個采樣點上只有一個具有非零值,所有其他子載波的載波在采樣點處具有零值。?這意味著,即使多個子載波共存,它們都是獨立的,不會相互影響,這種特性被稱為“正交”。

OFDM能很好的充分利用給定頻率,但它有一個缺點,為了有效地工作,在滿足正交條件下,子載波之間的間隔應(yīng)該保持精確。
如果子載波之間的間隔沒有得到準(zhǔn)確的維護(hù),就會四處漂移。當(dāng)每個子載波單獨繪制時,不會看到太大的差異,但當(dāng)所有這些子載波被歸納在一起時,就會注意到差異,如圖3上所示。
實際上沒有這樣一個不存在頻率漂移的環(huán)境。因此,當(dāng)設(shè)計OFDM時,首先必須確定系統(tǒng)能夠承受子載波頻率漂移引起的信號失真的頻率間隔。

循環(huán)前綴
現(xiàn)在看看時域信號。下面是顯示兩個OFDM符號序列的插圖。

在理想情況下,這個信號沒有問題,但是如果第一個符號稍微延遲一點會發(fā)生什么呢?在這種情況下,第一個符號的結(jié)束部分將溢出到下一個符號時間,并干擾下一個符號,如下所示。這種不同符號之間的干擾稱為符號間干擾(ISI:Inter Symbol Interference)。

有什么辦法可以解決這個問題?你可能想防止信號延遲。但這是不可能的,因為無法控制無線信道本身(物理介質(zhì)本身)。所以唯一的辦法就是設(shè)計系統(tǒng)來處理這種情況。一個簡單的解決方案是在符號之間設(shè)置一些時間間隔,這樣即使一個符號被延遲,也不會溢出到下一個符號中。

有了這個Gap,系統(tǒng)在一定程度上可以容忍時延和碼間干擾問題,但存在實際問題,“在這個Gap里放什么?”。什么都不放(比如關(guān)掉變速器)好嗎?如果在間隙期間完全關(guān)閉信號,則會導(dǎo)致放大器出現(xiàn)問題。為了減少這個問題,我們從末端復(fù)制一部分信號并粘貼到這個Gap中。這個在開頭加上前綴的復(fù)制部分稱為“循環(huán)前綴Cyclic Prefix”。

循環(huán)前綴的主要目的是減少碼間干擾(ISI),但是我們可以享受來自 通過復(fù)制原始符號的結(jié)束部分來生成循環(huán)前綴。這有助于找到符號邊界(符號的起點和終點)。取循環(huán)前綴長度的樣本序列(窗口),從第一個序列中取出另一個長度相同的序列(符號長度-CP長度)。然后計算兩個序列的相關(guān)性。如果這兩個序列與符號的開始和結(jié)束完全對齊,則相關(guān)性將非常高,因為這兩個序列中的內(nèi)容幾乎相同。

如果兩個序列(兩個窗口)與符號邊界(符號的開始和結(jié)束)不對齊, 這個 相關(guān)性不會高,如下所示。

如果上下滑動這兩個窗口,找到相關(guān)性最高的位置,即時隙邊界。?
?
?
舉例說明
在OFDM實現(xiàn)中,精確中心的頻率不攜帶任何子載波,并且在頻譜的兩端有一定數(shù)量的子載波,這些子載波沒有任何子載波。這個區(qū)域被稱為保護(hù)帶,主要是為了減少與相鄰頻帶的干擾。

為了簡單起見,使用BPSK調(diào)制,它每星座點攜帶一位。根據(jù)給定的規(guī)范,在分配給頻帶的64個子載波中,僅52個子載波是能夠攜帶數(shù)據(jù)比特的子載波,如下所示。

對于這一步,首先必須生成一個比特序列,該序列將由一個OFDM符號攜帶。可以按以下方式生成隨機(jī)位序列(在實際通信中,沒有人會使用隨機(jī)數(shù)據(jù)來傳輸。如果是真實的通信,這些數(shù)據(jù)將是文檔文件、音樂或電影等,但在模擬的情況下,通常使用隨機(jī)數(shù)據(jù))。
下一步是將用戶數(shù)據(jù)映射到分配給數(shù)據(jù)攜帶的每個子載波。這可以實現(xiàn)如下。

通過上述步驟,在頻域中將比特流分配給子載波。但是所有的通信(數(shù)據(jù)傳輸和接收)都是在時域中進(jìn)行的。所以必須將頻域數(shù)據(jù)轉(zhuǎn)換成時域序列,如下所示。已經(jīng)知道IFFT(Inverse Fast Fourier Transform)是將頻域數(shù)據(jù)轉(zhuǎn)換為時域數(shù)據(jù)的工具。

下一步是向上一步中獲得的時域數(shù)據(jù)添加循環(huán)前綴。循環(huán)前綴生成非常簡單,它是從結(jié)尾直接復(fù)制部分?jǐn)?shù)據(jù),并將副本放在數(shù)據(jù)序列的開頭。
