這一節主要討論采樣定理,在《傅里葉變換及其應用及其學習筆記》中有進行過推導與講解,因此下面的內容也大同小異。不過如果是從《離散時間信號處理》這一本書的內容開始學習到這一節,則應先學習本文內容所需要的一些前置知識:傅里葉變換(連續時間),主要用到的是脈沖函數$\delta$,以及周期脈沖函數Ш的傅里葉變換與相關性質。
比較重要的一點就是,本書采用的傅里葉變換是基於信號周期為$2\pi$的假設,而《傅里葉變換及其應用及其學習筆記》中的假設為1,因此本書所采用的傅里葉變換公式有必要列出:
傅里葉變換:
$\displaystyle{F(j\Omega) =\int_{-\infty}^{\infty}f(t)e^{-j\Omega t}dt }$
傅里葉逆變換:
$\displaystyle{f(t) = \frac{1}{2\pi}\int_{-\infty}^{\infty}F(j\Omega)e^{j\Omega t}d\Omega}$
此外,本文所用到的傅里葉變換卷積定理也有所不同:
$\begin{align*}
\mathcal{F}(f\cdot g) &= \frac{1}{2\pi}F*G &
\quad\mathcal{F}^{-1}(F*G) &= 2\pi f\cdot g\\
\mathcal{F}(f*g) &= F\cdot G &
\quad\mathcal{F}^{-1}(F\cdot G) &= f*g
\end{align*}$
把前面的傅里葉變換公式代入容易證明上述卷積定理。
周期采樣
假設有連續信號$x_c(t)$,我們需要通過對該信號進行采樣才能得到離散信號,即樣本序列$x[n]$。連續信號與離散信號有以下關系:
$x[n] = x_c(nT),\quad –\infty<n<\infty$
其中,$T$為采樣周期(sampling period),它的倒數$f_s=\frac{1}{T}$為采樣頻率(sampling frequency),即每秒的樣本數。不過本書是用弧度/秒來表示頻率,因此采樣頻率的是$\Omega_s = \frac{2\pi}{T}$。這兩種不同的采樣頻率表示方法是依賴於傅里葉變換的假設,一般分為周期為$1$以及$2\pi$兩種假設。
數學上是通過下面的式子來表示對連續信號的采樣:
$\displaystyle{x_s(t)=x_c(t)\underbrace{\sum_{n=-\infty}^{\infty}\delta(t-nT)}_{sampling\ function\ s(t)=Ш_T}}$
其中的周期脈沖函數$Ш_T$就是周期為$T$的脈沖函數。利用脈沖函數$\delta$的采樣性質就能采集到一個函數相應位置的值。因此可以得到
$\displaystyle{x_s(t)=\sum_{n=-\infty}^{\infty}x_c(nT)\delta(t-nT)}$
需要明確的一點是:$x_s(t)$是一個連續時間函數,取樣點上的是脈沖,除了取樣點之外的值為0;而$x[n]$是一個離散時間序列。
奈奎斯特采樣定理
為了方便閱讀,下面先列出了各個符號及其含義
Symbol | FT | DTFT | Info |
$x_c(t)$ | $X_c(j\Omega)$ | - | 連續時間信號 |
$x[n]$ | - | $X(e^{j\omega})$ | 離散時間信號 |
$s(t)$ | $S(j\Omega)$ | - | 周期脈沖函數、即采樣函數 |
$x_s(t)$ | $X_s(j\Omega)$ | - | 信號周期采樣的數學表示 |
$\Omega_N$ | - | - | 奈奎斯特頻率,也就是帶限信號的受限頻率 |
$\Omega_s$ | - | - | 采樣頻率 |
$T$ | - | - | 采樣周期 |
$h_r(t)$ | $H_r(j\Omega)$ | - | 連續時間低通濾波器 |
周期脈沖函數$s(t) = Ш_T$的傅里葉變換仍然是一個周期脈沖函數(推導過程)
$S(j\Omega) = \frac{2\pi}{T}Ш_{\frac{2\pi}{T}}$
那么根據傅里葉變換的卷積定理,可以得到$x_s(t)$的傅里葉變換如下
$\begin{align*}
X_s(j\Omega)
&= \frac{1}{2\pi}X_c(j\Omega)*S(j\Omega)\\
&= \frac{1}{2\pi}X_c(j\Omega)*\frac{2\pi}{T}Ш_{\frac{2\pi}{T}}\\
&= \frac{1}{T}X_c*Ш_{\frac{2\pi}{T}}
\end{align*}$
而脈沖函數的卷積又具有移位特性,那么$X_s(j\Omega)$就相當於無數個經過移位的$\frac{1}{T}X_c(j\Omega)$的疊加。這種疊加能分為兩種情況
- 如果原函數的傅里葉變換$X_c(j\Omega)$的頻率受限於$\frac{\Omega_s}{2} = \frac{\pi}{T}\quad(\Omega_s = \frac{2\pi}{T})$,那么$X_c(\Omega)$經過移位后不會重疊。
- 否則原函數的傅里葉變換在經過移位后會重疊,這種情況被稱為混疊(alias)。
如上面的四張圖描述的是信號的頻域。圖1是一個頻率受限於$(-\Omega_N, \Omega_N)$的信號,圖2是一個在頻域上周期為$\Omega_s$的周期脈沖函數(從時域上看,該信號的頻率為$\Omega_s$),當信號與周期脈沖函數進行卷積后可以得到圖3或者圖4。
對於非混疊的頻譜,我們能很容易地使用一個經過$T$加權(乘以$T$)的低通濾波器來得到原本的頻譜,也就是說能通過該頻譜還原原本的信號;不過對於混疊的頻譜,采用低通濾波器得到的就不是原本的頻譜,也就無法得到原本的信號了。
這意味着,對帶限為$\Omega_N$的信號進行采樣,如果希望用采樣后的樣本恢復成原來的信號,那么采用頻率$\Omega_s$必須滿足$\Omega_s\geqslant 2\Omega_N$。這就是奈奎斯特采樣定理(Nyquist-Shannon Sampling Theorem)。其中$\Omega_N$被稱為奈奎斯特頻率(Nyquist frequency),$2\Omega_N$被稱為奈奎斯特率(Nyquist rate)。
由樣本重構帶限信號
按照上面的討論,如果我們按照奈奎斯特采樣定理對帶限信號進行采樣,那么就能用所得的樣本重構原帶限信號。
在上一小節的最后,我們可以看到如果我們遵循奈奎斯特采樣定理,則能通過低通濾波器得到原信號的頻譜,有了這個頻譜,我們進行傅里葉逆變換則能得到原始信號,有以下推導過程:
$\begin{align*}
x_c(t) &= \mathcal{F}^{-1}(X_s(j\Omega)H_r(j\Omega)) \qquad H_r(j\Omega)=\left\{\begin{matrix}
T, & |\Omega|\leqslant \Omega_s/2=\frac{\pi}{T}\\
0, & else
\end{matrix}\right. \\
&= x_s(t)*h_r(t)\qquad fourier\ convolution\ theorem\\
&= \left\{ \sum_{n=-\infty}^{\infty}x[n]\delta(t-nT)\right \}*\left\{ \frac{sin(\pi t/T)}{\pi t/T} \right\}\\
&= \sum_{n=-\infty}^{\infty}x[n]\left\{\delta(t-nT) * \frac{sin(\pi t/T)}{\pi t/T} \right\}\qquad x[n]\ is\ sample\ value,constant \\
&= \sum_{n=-\infty}^{\infty}x[n]\frac{sin[\pi (t-nT)/T]}{\pi (t-nT)/T} \qquad \delta\ shift\ property
\end{align*}$
因此,我們可以通過對采樣$x[n]$進行上述運算以得到原始信號。
上面的式子可以分為兩部分,一部分為采樣值$x[n]$,另一部分為sinc函數,這個sinc函數就是低通濾波函數的時域模式,如下圖是一個為$\frac{sin(\pi x/T)}{\pi x/T}$的sinc函數。
因此奈奎斯特采樣定理也能這么理解:如果要采樣的信號受限於$(-\Omega_N, \Omega_N),$在采樣頻率$\Omega_s$滿足$\Omega_s\geqslant 2\Omega_N$的前提下,采樣得到的值為$x[n]$,通過對低通濾波器對應的sinc函數進行平移以及加權(乘以$x[n]$),然后把經過調整后的sinc函數進行疊加,即可得到原來的信號。
對照上面兩幅圖以及sinc函數的曲線,容易看出該函數在$\pm T, \pm 2T, \pm 3T \cdot\cdot\cdot$處的值都為0,而零點處的值為1,正是這個特點使得sinc函數的峰值就是采樣點上的值。