給"小白"圖示講解OFDM的原理
起因是這樣的。時間回到07年底,4G方興之時,同桌隔壁的隔壁"小白"同學(xué)說看不太明白OFDMA的原理,讓我講解一下。我一向?qū)ψ约旱募夹g(shù)水平、邏輯思考能力和表達技巧還是蠻有自信的,因此輕笑一聲就答應(yīng)了。半小時后,在嘗試了從時域、頻域以及物理意義等各方面講解,但均無法從“小白”的眼神中抹除那份迷茫之后,我豎起了白旗,讓“小白”自生自滅去了。
本文引用地址:http://2s4d.com/article/276911.htm對知識能力的掌握,我自己粗曠的分為兩層:一層是“會了,能應(yīng)用”;二層是“懂了,能衍生”。而能講解出來,并讓人懂,大抵就是區(qū)分一層和二層的分水嶺。打一個屌絲男喜聞樂見的比方:第一層就是人界的修煉,即使是“會了”,也是有筑基、金丹、元嬰等境界之分的,而高考研考就是天劫,不到大乘之境,終究要化為劫灰;第二層是天界,也自有天仙、金仙之分,而能修至道祖的大牛,終究只是寥寥。我一向覺得自己在專業(yè)上還算是個“小仙”,可惜就被“小白”打臉了。
這事兒對我的負面影響挺大的,一是懷疑自己技術(shù)宅做久了,表達能力方面嚴(yán)重退化【比如我偶爾會在搜索一個精準(zhǔn)的動詞或者形容詞時,需要嘗試2-3次,甚至更多】;二是在涉及到OFDM方面的內(nèi)容時,仿佛就會看到一張白紙上逡巡著一只揮之不去的黑蒼蠅。
時隔多年,近期又回顧了一下OFDM,不經(jīng)意又記起這樁公案,猶豫再三,還是決定花時間寫下這篇文章,把這只盤旋于腦中的“黑蒼蠅”拍死。因此雖然現(xiàn)在網(wǎng)絡(luò)資源極大豐富,各種文章都可以搜到,其實我是沒必要專門寫這篇未必比別人寫得好的文章的。不過畢竟是自己遺留的缺失,需要自己來補上。
下面試圖以圖示為主講解OFDM,以"易懂"為第一要義。"小白",你準(zhǔn)備好了嗎?
注:下面的討論如果不做說明,均假設(shè)為理想信道。
章節(jié)一:時域上的OFDM
OFDM的"O"代表著"正交",那么就先說說正交吧。
首先說說最簡單的情況,sin(t)和sin(2t)是正交的【證明:sin(t)·sin(2t)在區(qū)間[0,2π]上的積分為0】,而正弦函數(shù)又是波的最直觀描述,因此我們就以此作為介入點。既然本文說的是圖示,那么我們就用圖形的方式來先理解一下正交性?!灸闳绻軓南蛄靠臻g的角度,高屋建瓴的看待這個問題的話,你也就不是"小白"了,RU?】
在下面的圖示中,在[0,2π]的時長內(nèi),采用最易懂的幅度調(diào)制方式傳送信號:sin(t)傳送信號a,因此發(fā)送a·sin(t),sin(2t)傳送信號b,因此發(fā)送b·sin(2t)。其中,sin(t)和sin(2t)的用處是用來承載信號,是收發(fā)端預(yù)先規(guī)定好的信息,在本文中一律稱為子載波;調(diào)制在子載波上的幅度信號a和b,才是需要發(fā)送的信息。因此在信道中傳送的信號為a·sin(t)+b·sin(2t)。在接收端,分別對接收到的信號作關(guān)于sin(t)和sin(2t)的積分檢測,就可以得到a和b了。(以下圖形采用google繪制)
圖一:發(fā)送a信號的sin(t)
圖二:發(fā)送b信號的sin(2t)【注意:在區(qū)間[0,2π]內(nèi)發(fā)送了兩個完整波形】
圖三:發(fā)送在無線空間的疊加信號a·sin(t)+b·sin(2t)
圖四:接收信號乘sin(t),積分解碼出a信號?!救缜拔乃?,傳送b信號的sin(2t)項,在積分后為0】
圖五:接收信號乘sin(2t),積分解碼出b信號?!救缜拔乃?,傳送a信號的sin(t)項,在積分后為0】
圖六:流程圖
到了這里,也許你會出現(xiàn)兩種狀態(tài):
一種是:啊,原來是這樣,我懂了。
一種是:啊,怎么會這樣,我完全無法想象。這里要說的是,你根本用不著去想象(visualize)。數(shù)學(xué)中是如此定義正交的,數(shù)學(xué)證明了它們的正交性,那么他們就是正交的,【他們就可以互不干擾的承載各自的信息】。選取sin(t)和sin(2t)作為例子,正是因為它們是介于直觀和抽象的過渡地帶,趟過去吧。
上面的圖示雖然簡單,但是卻是所有復(fù)雜的基礎(chǔ)。
1.1
下一步,將sin(t)和sin(2t)擴展到更多的子載波序列{sin(2π·Δf·t),sin(2π·Δf·2t),sin(2π·Δf·3t),...,sin(2π·Δf·kt)}
(例如k=16,256,1024等),應(yīng)該是很好理解的事情。其中,2π是常量;Δf是事先選好的載頻間隔,也是常量。1t,2t,3t,...,kt保證了正弦波序列的正交性。
1.2 再下一步,將cos(t)也引入。容易證明,cos(t)與sin(t)是正交的,也與整個sin(kt)的正交族相正交。同樣,cos(kt)也與整個sin(kt)的正交族相正交。因此發(fā)射序列擴展到{sin(2π·Δf·t),sin(2π·Δf·2t),sin(2π·Δf·3t),...,sin(2π·Δf·kt),cos(2π·Δf·t),cos(2π·Δf·2t),cos(2π·Δf·3t),...,cos(2π·Δf·kt)}也就順理成章了。
1.3
經(jīng)過前兩步的擴充,選好了2組正交序列sin(kt)和cos(kt),這只是傳輸?shù)?quot;介質(zhì)"。真正要傳輸?shù)男畔⑦€需要調(diào)制在這些載波上,即sin(t),sin(2t),...,sin(kt)分別幅度調(diào)制a1,a2,...,ak信號,cos(t),cos(2t),...,cos(kt)分別幅度調(diào)制b1,b2,...,bk信號。這2n組互相正交的信號同時發(fā)送出去,在空間上會疊加出怎樣的波形呢?做簡單的加法如下:
f(t) = a1·sin(2π·Δf·t) +
a2·sin(2π·Δf·2t) +
a3·sin(2π·Δf·3t) +
...
ak·sin(2π·Δf·kt) +
b1·cos(2π·Δf·t) +
b2·cos(2π·Δf·2t) +
b3·cos(2π·Δf·3t)
+
...
bk·cos(2π·Δf·kt) +
= ∑ak·sin(2π·Δf·kt) +
∑bk·cos(2π·Δf·kt) 【公式1-1:實數(shù)的表達】
為了方便進行數(shù)學(xué)處理,上式有復(fù)數(shù)表達形式如下:
f(t) = ∑Fk·e(j·2π·Δf·kt) 【公式1-2:復(fù)數(shù)的表達,這編輯器找不到上角標(biāo)...不過,你應(yīng)該看得懂的】
上面的公式可以這樣看:每個子載波序列都在發(fā)送自己的信號,互相交疊在空中,最終在接收端看到的信號就是f(t)。接收端收到雜糅信號f(t)后,再在每個子載波上分別作相乘后積分的操作,就可以取出每個子載波分別承載的信號了。
然后,多看看公式1-1和公式1-2!!!發(fā)現(xiàn)咯?這就是傅里葉級數(shù)嘛。如果將t離散化,那么就是離散傅立葉變換。所以才有OFDM以FFT來實現(xiàn)的故事。將在下面的章節(jié)進行更多的描述。
c語言相關(guān)文章:c語言教程
評論