1. 程式人生 > >LTE關鍵技術之一:OFDMA(OFDM基本原理及簡單例項應用)

LTE關鍵技術之一:OFDMA(OFDM基本原理及簡單例項應用)

       OFDM即正交頻分複用(Orthogonal Frequency Division Multiplexing),是多載波調製的一種,通俗來說就是通過多條互相沒有關係的通道傳輸不同的資訊。OFDM現在主要用於4G通訊上,並且由於其頻帶利用率高,抗多徑能力強,能有效抑制ISI(符號間干擾)和ICI(通道間干擾),在水聲通訊方面也有較多的應用,這是後話。今天主要整理下OFDM原理上的一些東西,也理一理比較雜亂的大腦。

    剛提到說OFDM的頻帶利用率高,抗多徑能力強,那麼對於OFDM的原理應該分以下幾個部分進行說明:

    1、子載波的正交性

    2、OFDM與傅立葉變換的關係

    3、抗多徑、抑制ISI和ICI的原因及迴圈字首

一、子載波的正交性

    什麼是正交?從向量上來看就是兩個互相垂直的向量,無論其模長是多少,相乘總是等於0:

    而在函式上的正交性是怎樣的呢?用文字來說,就是無論兩個函式的幅值為多少,在確定的一個時間週期內相乘,其積分總是等於0(也就是面積相加為0)。比如最簡單的一對正交函式sin(t)和sin(2t)(matlab實在不熟練,畫個圖還要百度半天,乾脆也截圖下來好了):

其中紅色是sin(t),藍色是sin(2t)。他們均在2π時間內具有完整的週期,各自在2π時間內的積分問為0(正負面積相加為0)。而sint(t)*sin(2t)的影象為:

可以大概地看出,影象中正負面積相加同樣為0,也就是:

再總結一遍,函式的正交性就是無論兩個函式的幅值為多少,在確定的一個時間週期內相乘,其積分總是等於0。那麼如果使得sin(t)的幅度為a,sin(2t)的幅度為b,也就是將a調製於sin(t),將b調製於sin(2t),同時傳輸這兩個調製了訊號的正弦波(子載波):a*sin(t)+b*sin(2t),在接收時又分別對兩路子載波進行積分,也就是:

 看,這樣就將原始資訊a和b解調出來了,兩路子載波互不干擾,而OFDM就是通過多路互不干擾的子載波傳遞了不同的資訊。而由於子載波的正交性,其頻率間隔很小,使得頻帶利用率很高,在水聲通道這樣可用頻帶窄的環境中較為適用。

    設f0~fN-1是以Δf(能使每個子載波互相正交的頻率間隔)為頻率間隔的N個頻率,Nc為用到的子載波個數,那麼就有:

由於正弦函式與餘弦函式的正交關係,上式還可以擴充套件為:

畫個常見於各種OFDM原理說明文章內的框圖來說,就是這樣:

其中,F(n)是序列位元流經過編碼後(按照不同的對映方式),產生的複數形式的資料流,a和b均為-1(也就是二進位制的0)或1。F(n)中的實數a(n)調製於餘弦子載波上,複數b(n)調製於正弦子載波上(三角函式的複數形式ej2πft=cos(2πft)+jsin(2πft))。在N個頻率中,只有Nc個子載波是用於傳遞資訊(這裡說得有點繞,暫且理解處理過程即可)。之後將所有路的訊號進行疊加,就成為了傳遞出去的波形了。在接收端,對各路訊號進行積分,便解調出了a(n)和b(n)

二、OFDM與傅立葉變換的關係

    OFDM系統在處理的過程中要用到傅立葉變換,也是讓很多人知其然不知其所以然的一個問題。將剛才的f(t)改寫為複數形式,也就是:

 查一下傅立葉變換的公式,是不是特別像?傅立葉變換(FFT)就是將時域的波形轉換為頻域來看,頻域上顯示出來的各頻率的幅度就是所調製的訊號,逆傅立葉變換(IFFT)就是將調製了訊號的各頻率值合成為時域上的波形的過程,自然從公式上看是一樣的了。所以,調製的過程就是逆傅立葉變換的過程,解調的過程就是傅立葉變換的過程

    上面複數表示式我認為可以這樣理解,在一個子載波上(正餘弦只不過是相位上的差別),而Fk即之前的F(n)=a(n)+jb(n),也就是一個子載波上可以攜帶2位元資料(具體攜帶1個還是2個與編碼對映有關,本文以QPSK為例,也就是攜帶2位元)

    那麼之前為什麼要繞半天又N又Nc又k的呢?這個就跟IFFT的處理過程有關了,乾脆以一個例項來說最明白不過:

    1、假設我們取IFFT的點數N=2048;

    2、輸出通帶為6~12kHz;

    3、(IFFT變換後的)取樣頻率設定為fs=48kHz(根據取樣定理,fs要大於2倍的最高頻率)。

    那麼從以上三條我們可以知道什麼呢?

    1、第0個點(n=0)是零頻,也就是直流;

    2、第1024個點(n=N/2)對應的頻率是24k(fs/2),以此為界,第1~2047個點是對稱的,對稱的原因嘛,看傅立葉變換的原理去(其實我也說不清,證明過程貌似有點複雜);

    3、頻率間隔Δf=fs/N=23.4375Hz,合著上一條一起看,也就是把48k平均分成了2048份,每一份之間的頻率間隔為23.4375Hz(而實際上有意義的只有n<=1024);

    4、算得6k對應n=f1/Δf=256,12k對應n=f2/Δf=512,因此Nc必須小於256,並且n的取值範圍要在[256,512]內,否則輸出的頻率將高於或低於輸出通帶,這裡以Nc=128為例,中心頻率為9k,則n的取值為[320,448);

    5、從時域上來看,可以知道取樣週期Ts=1/fs=20.83μs,符號週期T=N*Ts=42.67ms,也就是頻域上分了2048份,在時域上也取樣了2048次;

    6、這個符號週期指的就是一次IFFT變換需要的時間,也就是對於128個子載波,每個子載波分別在T時間內傳輸了一個複數符號(2bits),並且疊加在了一起,把256bits的資料發射了出去;

    7、進一步地,假設聲碼器的位元速率為600bps(每45bits/75ms),要保證發射出去的速率與聲碼器一致,而我們現在的速率為每6kbps(256bits/42.67ms),怎麼辦呢?那就需要在每次IFFT變換之間留有間隔,為Tcp=256bits/600bps-42.67ms=384ms,這麼長的時間間隔就這麼空著嗎?當然不,這就涉及到迴圈字首,將在第三節說明。

    整理一下涉及到的公式:

    1、取樣頻率:fs>2*fmax

    2、頻率間隔:Δf=fs/N

    3、有用子載波個數Nc<(f2/Δf-f1/Δf)

    4、有用子載波取值範圍[f1/Δf,f2/Δf)

    5、頻率與n值的對應關係:n=f/Δf

    6、符號週期:T=N*Ts=N/fs

    7、位元速率=Nc*2/(T+Tcp)(是否乘2根據一個複數符號攜帶1bit還是2bits而定)

三、抗多徑、抑制ISI和ICI的原因及迴圈字首

    說到OFDM的抗多徑能力就不得不說到迴圈字首。多徑干擾會產生時延擴充套件、訊號衰落,簡單說就是對於一個脈衝訊號,經過了多徑通道傳輸後,產生了多個具有時延的,有一定衰落的脈衝訊號,這些訊號幅度服從瑞利分佈

對於ISI(符號間干擾),只要前一個符號的時延擴充套件時間(通道衝激響應長度)不會影響到下一個符號,便可以消除ISI,也就是說每個符號之間的保護間隔時間要大於時延擴充套件的時間

    對於ICI(訊號間干擾),就要談到迴圈字首(CP)。由於我們的通道是多徑通道,各路子載波被接收到的時間可能有偏差,這就造成在FFT積分時間長度內子載波之間相差不再是整數週期,子載波之間的正交性受到破壞,如果保護間隔中只是單純地填零,那麼在解調時子載波之間就會產生干擾。迴圈字首是將符號尾部的訊號搬移到前方構成的,這樣,就可以保證各路子載波在一次FFT積分時間長度內,各子載波之間相差總是整數個週期,避免了訊號間的干擾。