OFDM筆記-1: OFDM簡介
Content
分享有關OFDM的筆記。以下是OFDM筆記全系列的文章:
OFDM是什麼,能吃嗎?
OFDM是一種基頻調變技術。像是QAM、QPSK、FSK等等,都是基頻調變技術之一。OFDM全名為「正交分頻多工」,顧名思義,就是在不同的頻率調變上訊息,而這些頻率彼此為正交。
正交 (Orthogonality)
正交是什麼?正交就是內積為零。在一個函數空間,我們可以定義兩函數的內積,$ \langle f_1(x), f_2(x) \rangle $,為
$$
\langle f_1(x), f_2(x)\rangle = \int_I {f_1(x)f_2(x)} {\rm d}x
$$
其中$ I $為定義的區間。類推到time domain的函數(波形),我們可以定義兩個波形的內積為
$$
\langle F_1(t), F_2(t)\rangle = \int_{0}^{T} {F_1(t)F_2(t)} {\rm d}t
$$
其中$ T $為symbol period。可以發現這就是一個correlator的數學式。現在,假設$ F_1(t) = \cos{2\pi f_1 t} $,$ F_2(t) = \cos{2\pi f_2 t} $,並假設$f_1 = \frac{n}{T}$,$f_2 = \frac{m}{T}$,$n$和$m$為正整數(之所以要這樣假設,是為了讓$F_1(t)$和自己的內積為$\frac{1}{2}$,$F_2(t)$亦同)。則內積$\langle F_1(t), F_2(t) \rangle$可以如下計算:
$$
\langle F_1(t), F_2(t) \rangle = \int_{0}^{T}{\cos{2\pi f_1 t}\cos{2\pi f_2 t}}{\rm d}t
$$
使用積化合差公式得
$$
= \int_{0}^{T}{\frac{1}{2}\cos{2\pi (f_1+f_2) t}+\frac{1}{2}\cos{2\pi (f_1-f_2) t}}{\rm d}t
$$
兩項分別積分得
$$
= \frac{1}{2}\frac{\sin{2\pi (f_1+f_2) t}}{2\pi (f_1+f_2)}\bigg{|}_{0}^{T} + \frac{1}{2}\frac{\sin{2\pi (f_1-f_2) t}}{2\pi (f_1-f_2)}\bigg{|}_{0}^{T}
$$
繼續算你會發現第一項為零。第二項除非$f_1-f_2 = \frac{n}{2T}$,否則不為零。因此,當兩弦波滿足$f_1-f_2 = \frac{n}{2T}$,$n$為整數時,它們才會正交,而$\frac{1}{2T}$也就是這個內積下,達成正交的minimum frequency spacing。
正交的兩個波形可以傳遞兩路的資料。因為兩者正交,在訊號空間(signal space)裡在彼此的投影量皆為零,資料的錯誤率可以降低。舉例來說,正交的M個FSK波形可以傳遞M路的資料。M-ary FSK的缺點是接收機架構比較複雜,畢竟有M個頻率的LO需要產生。
剛才討論的是continuous time,那麼discrete time呢?當然也有正交的概念。我們可以定義discrete time domain的內積為
$$
\langle x_1[n], x_2[n]\rangle = \sum_{n=0}^{N-1} x_1[n]x_2^*[n]
$$
其中$*$是複數共軛。現在,假設$x_1[n] = {\rm e}^{j\omega_1 n}$,$x_2[n] = {\rm e}^{j\omega_2 n}$,我們可以計算其內積:
$$
\langle x_1[n], x_2[n]\rangle = \sum_{n=0}^{N-1} {\rm e}^{j(\omega_1-\omega_2) n}
$$
用級數和的公式得到
$$
= \frac{1-{\rm e}^{j(\omega_1-\omega_2) N}}{1-{\rm e}^{j(\omega_1-\omega_2)}}
$$
此式等於零的情況發生於$\omega_1-\omega_2 = \frac{2\pi m}{N}$,其中$m$為整數。換句話說,在discrete time的case,符合正交特性的minimum frequency spacing為$\frac{2\pi}{N}$。
其實這個結果可以從continuous time的結果推得。假設我們將continuous time的波形以$\frac{N}{T}$的取樣頻率取樣,則在$T$的週期可以取得$N$個samples,正好就是我們discrete time的訊號。由取樣定裡得知,$\frac{1}{2T}$經取樣變成discrete time的頻率,$2\pi\cdot\frac{1/2T}{f_s} = \frac{\pi}{N}$。
怎麼算出來不一樣?事實上在continuous time的case中,如果用complex sinusoid來算,就會算出一樣的結果(minimum spacing = $\frac{1}{T}\rightarrow\frac{2\pi}{N}$)。之所以會發生這種事,是因為當我們只考慮real function(也就是餘弦波$\cos(x)$),求出來反導函數$\sin(x)$有兩個零點$x = \{0,-\pi\}, x\in[-\pi, \pi)$,而當我們考慮complex sinusoid,求出來的反導函數$1 - {\rm e}^{jx}$只有一個零點$x = 0, x\in[-\pi, \pi)$。
分頻多工 (Frequency-Division Multiplexing)
不同的頻率可以拿來傳輸不同的資料,這就是分頻多工。其實分頻多工不只在OFDM,在其他通訊技術也有相當的應用,如第三代無線通訊系統WCDMA使用的FDD,就是透過分頻來實現雙工。
那麼OFDM的頻率分工有什麼特別的呢?OFDM在彼此正交的子載波上進行分工,而且相鄰subchannel重疊,因此和一般頻率分工相比,OFDM的頻寬使用效率(bandwidth efficiency)較高。下面這個影片說明的很清楚,OFDM將symbol duration拉長,減少ISI的影響,更透過子載波間正交的特性,消除ICI。
OFDM的運作方式?
OFDM的運作簡單來說就是:
- 將bits map到星座圖,以串列資料的方式送到運算單元。
- 將串列資料轉為並列資料。
- 將並列資料做IFFT轉換,N個並列資料使用N-point IFFT。
- N-point IFFT的並列輸出改為串列輸出。
- 加上cyclic prefix,形成一個OFDM symbol。
- samples經過濾波、DAC後便送到射頻前端,準備傳送!
下面這張圖簡單呈現這個流程。
由於OFDM是以數位調變的方式運作,受惠於VLSI技術的發展,IFFT、FFT、串列轉並列、並列轉串列可以使用數位IC來實現,降低生產成本,因此被廣泛使用。接著便詳細介紹OFDM的訊號處理、收發機架構。
訊號處理
以下就來介紹OFDM的訊號處理方法。前面提到過,第一步是將bits map到星座圖上,比如說QPSK就是兩個bits對應到星座圖上的一個點,64QAM就是六個bits對應到一個點。下表整理出OFDM在不同通訊技術中使用到的星座圖(參考自[3],[4],[5],[6])。
| 技術 | 星座圖 | 說明 |
|---|---|---|
| DVB-T | QPSK, 16QAM, 64QAM | 配合high-priority bits的使用,還有non-uniform的16QAM和64QAM |
| DVB-T2 | 同上,加上256QAM | 不再使用DVB-T的two hierarchy levels |
| LTE-advanced | QPSK, 16QAM, 64QAM, 256QAM | 即所謂的4G行動通訊技術 |
| 5G NR | BPSK, QPSK, 64QAM, 256QAM | 5G NR也採用NOMA等非正交的技術 |
| 802.11n | BPSK, QPSK, 16QAM, 64QAM | Wi-Fi 4,引用MIMO技術 |
| 802.11ax | 同上,加上256QAM,1024QAM | Wi-Fi 6,1024QAM也太龐大 |
轉換為星座圖上的點後,要將每個點調變到子載波(subcarrier)上。怎麼做呢?使用Discrete Fourier Transform (DFT)。下面複習一下DFT的基本性質:
$$
\begin{align}
&X[k] = \sum_{n = 0}^{N - 1}{x[n] W_{N}^{kn}} \\[10pt]
&x[n] = \frac{1}{N} \sum_{k = 0}^{N - 1}{X[k] W_{N}^{-kn}} \\[10pt]
&x[(n - m)\text{ mod }N] \longleftrightarrow W_{N}^{km} X[k]\quad\text{(circular shift)} \\[10pt]
&X[n] \longleftrightarrow Nx[(-k)\text{ mod }N]\quad\text{(duality)}
\end{align}
$$
還有與circular convolution相關的性質:
$$
\begin{align}
&x_1[n]\ \enclose{circle}{N}\ x_2[n] = \sum_{m = 0}^{N - 1}{x_1[m] x_2[(n - m)\text{ mod }N]},\quad 0 \leq n \leq (N - 1)\\[10pt]
&x_1[n]\ \enclose{circle}{N}\ x_2[n] = x_2[n]\ \enclose{circle}{N}\ x_1[n]\quad\text{(commutative)}\\[10pt]
&x_1[n]\ \enclose{circle}{N}\ x_2[n] \longleftrightarrow X_1[k] X_2[k]\\[10pt]
&x_1[n] x_2[n] \longleftrightarrow \frac{1}{N} X_1[k]\ \enclose{circle}{N}\ X_2[k]\quad\text{(from duality)}
\end{align}
$$
其中 $W_{N} = e^{-j\frac{2\pi}{N}}$。
假設N個星座點 $a_k$ (複數),分別調變到N個子載波 $\phi_k[n] = \rm e^{j\frac{2\pi}{N} kn},\quad 0 \leq n \leq (N - 1)$,則第k個子載波的訊號為 $a_k\phi_k[n]$ (其實只是相乘),全部子載波訊號加起來為
$$
\begin{align}
x[n] &= \sum_{k = 0}^{N - 1}{a_k\phi_k[n]}\\[10pt]
&= \sum_{k = 0}^{N - 1}{a_k W_{N}^{-kn}}
\end{align}
$$
上面的式子就是IDFT,不過少了 $1/N$ 的常數。也就是說,將並列送來的N個星座點作IDFT運算,得到的就是時域的訊號波形。到這裡為止都是discrete time的訊號,因此之後還要經過濾波器(或是windowing)、DAC轉換為類比波形,才是可以傳送的訊號。典型的OFDM頻譜如下圖。
為什麼每個子載波的頻譜是sinc函數呢?原因是我們剛才假設將星座點調變到子載波的方式為相乘:
$$
\begin{align}
&a_k\phi_k[n] = a_k\Pi[n]\phi_k[n]\\[10pt]
&\Pi[n] =
\begin{cases}
1,\quad 0 \leq n \leq (N - 1)\\
0,\quad \text{otherwise}
\end{cases}
\end{align}
$$
可以知道調變過程中,我們採取的pulse function為方波,因此在頻域會呈現sinc函數。若經過濾波器則調變波形不再是方波,頻域也不會是sinc函數。
實務上,OFDM會使用IFFT來實現IDFT、FFT實現DFT,不過FFT只是實現DFT的演算法,和DFT的性質沒有太大關係,所以這裡就不介紹。
話不多說,直接跑模擬看看吧!生成資料、轉換為星座點(這裡以BPSK為例),再轉換為時域波形。這裡使用zero-padding的技巧,來逼近連續的波形。
1 | % --- parameter settings --- % |
下圖是模擬出來的時域波形,可以看到OFDM的主要問題之一,就是瞬時功率變化劇烈,相較於其他調變方式,有較高的PAPR(Peak-to-Average Power Ratio)。
收發機架構
OFDM經典的收發機架構如下圖所示。
和剛才的block diagram很像,不過多了CP (cyclic prefix),後面會簡單介紹CP的作用。
也來跑模擬試試看吧!此程式中,模擬了從產生symbol、IFFT、CP、channel一直到Rx的過程,也計算出SER以驗證模擬的正確性。
1 | % ----- parameters setting ----- % |
其中用到的函數定義如下(MATLAB的話應該是可以善用toolbox的,這裡我只用到Communications Toolbox的 qammod 和 qamdemod,因為64QAM的bit mapping實在是太龐雜):
1 | function S = bit2sym(b, opt, Eb) |
下圖是OFDM BPSK的SER (= BER),比一般的BPSK錯誤率還要高,這是因為每個子載波遭遇的通道增益(channel gain,即 $H[k]$)不一樣,較小的通道增益會導致較高的錯誤率。圖中的SER即是將各個子載波的SER平均而得。
(2025/12/30編按:上述的程式沒有對channel的impulse response做normalization,這會使得接收機接收到的平均SNR異於AWGN only的SNR,因此下圖的錯誤率對照到的SNR是錯誤的。)
Cyclic Prefix
剛才的模擬中,我們在time-domain samples加入了cyclic prefix (CP),它有什麼作用呢?首先,要知道在多路徑通道(multipath channel)中,相鄰的OFDM symbol會因為延遲而互相干擾,稱為ISI (inter-symbol inteference),相鄰OFDM symbol不同子載波間也會形成干擾,稱為ICI (inter-carrier inteference)。CP可以作為相鄰OFDM symbol之間的guard interval,避免ISI和ICI的產生。
除此之外,CP還可以用來對抗多路徑通道。假設一個static channel (LTI系統),通道脈衝響應為 $h[n]$,長度為 $L$,並且假設CP長度為 $N_{CP} < L$。則OFDM symbol (useful part) + CP和 $h[n]$ 做linear convolution,等同於OFDM symbol (useful part)和 $h[n]$ 做circular convolution!這有什麼了不起嗎?有的,前面提過下面的關係式:
$$
x_1[n]\ \enclose{circle}{N}\ x_2[n] \longleftrightarrow X_1[k] X_2[k]
$$
故
$$
x[n]\ \enclose{circle}{N}\ h[n] \longleftrightarrow X[k] H[k]
$$
其中 $H[k]$ 為 $h[n]$ 的N-point DFT。這表示我們將接收到的time domain sample做DFT後,對每一個subcarrier的投影量 $Y[k] = X[k] H[k]$ 乘上 $1/H[k]$,便可以還原回原本的符號,此即one-tap equalization。
CP還可以拿來處理STO、CFO的問題。之後再寫一篇來更詳細的介紹CP。(這就是我嗑的CP!)
哪裡會用到OFDM?
OFDM最早是使用filter bank來實現,並且用於voiceband communication。由於filter bank的成本高、設計困難,一開始OFDM並不受重視。後來OFDM使用在DSL/ADSL (Digital Subscriber Loop),即貝爾實驗室的Cioffi和Amanti設計的DMT (Digital Multi-Tone)。[7]這篇文章介紹了OFDM的歷史,作者是當年和其他人共同提出使用FFT來實現OFDM的貝爾實驗室工程師,可以說是OFDM廣泛應用的推手。
現在使用到OFDM的技術有:WiFi、WiMAX、LTV advanced、5G NR等等,在光纖通訊也有應用。不過隨著5G開始採用NOMA等非正交的調變方式,可以預期傳統的OFDM必然迎來改變,或是衍生其他的技術。
OFDM的變體?
DMT
一直以為大學時數位通訊模擬的是OFDM,最近瀏覽過去寫的程式,才發現原來當初是模擬DMT(至少講義裡是寫DMT)。這篇文章簡單說明了DMT和OFDM的異同之處。簡單來說:
在前一節也提到,DMT是最早以FFT實現OFDM的調變方式之一,主要用於ADSL。所以OFDM比較像是一個概念,DMT則是實現OFDM的實體層調變方式。
OFDMA
參考[8],OFDMA和OFDM的差異主要在於,傳統的OFDM系統多重存取(multiple access)資源的方式為分時存取,也就是不同時槽可以提供不同使用者使用;而OFDMA則是在頻域也劃分出好幾個RE (resource element),在時域和頻域的劃分便形成好幾個RB (resource block),分配給不同使用者使用。
SC-FDMA
參考[9],全名為Single-Carrier FDMA,也就是單載波的「頻率多重存取」,好像有些矛盾?單載波要怎麼做到多重存取?參考下圖,SC-FDMA的系統方塊圖和OFDM相當相似,只差在SC-FDMA裡,符號其實是在時域表示。時域的符號N個為一組,經過DFT轉換到頻域後,再把這N點分配給M個子載波裡的N個一組;接著,下一組時域符號再依此處裡。
也就是說,每一組時域符號可以提供給一個使用者,而且同時間M個子載波只會承載一個使用者的資料(儘管有些子載波承載的是零);因此,SC-FDMA不是在頻率多重存取,而是在時間上多重存取。那為什麼還可以稱作FDMA?因為一個使用者使用的子載波頻率不一定相同,有點像是跳頻的概念,雖然這也不算是multiple access…。
結語
結果這篇文章竟然花了六個月 aka 半年才寫好?原本是打算進實驗室前就把OFDM的東西看完,結果拖延症如常發作,竟然拖到現在…。OFDM是前幾個世代行動通訊(e.g. 4G)和WLAN (e.g. Wifi)的重要基礎,雖然自5G開始出現了其他候選技術,OFDM作為經典的調變方式,依然值得通訊領域的研究生學習、分析。
參考資料
[1] A. Goldsmith, Wireless Communications. Cambridge University Press, 2005.
[2] T.D. Chiueh, et al, Baseband Receiver Design for Wireless MIMO-OFDM Communications. John Wiley & Sons Singapore Pte. Ltd, 2012.
[3] ETSI EN 300 744 v1.6.1. Digital Video Broadcasting (DVB): Framing structure, channel coding and modulation for digital terrestrial televisio, 2009.01. Available: https://www.etsi.org/deliver/etsi_en/300700_300799/300744/01.06.01_60/en_300744v010601p.pdf
[4] 交通部電信總局(NCC前身)委託的計畫報告。李學智等,
數位無線地面電視單頻網建置技術之分析與研究期末報告,2004.10。Available: https://www.ncc.gov.tw/chinese/files/07051/474_963_070517_1.pdf
[5] ETSI TS 138 211 V16.2.0. 5G NR: Physical channels and modulation, 2020.07. Available: https://www.etsi.org/deliver/etsi_ts/138200_138299/138211/16.02.00_60/ts_138211v160200p.pdf
[6] Wi-Fi 6, Wikipedia. Available: https://en.wikipedia.org/wiki/Wi-Fi_6
[7] S. B. Weinstein, “The history of orthogonal frequency-division multiplexing [History of Communications],” in IEEE Communications Magazine, vol. 47, no. 11, pp. 26-35, November 2009. Available: https://ieeexplore.ieee.org/document/5307460/similar#similar
[8] 網站 LTE筆記: SC-FDMA vs. OFDMA (1)
[9] 網站 LTE筆記: SC-FDMA vs. OFDMA (2)