采樣定理在音樂上的應用
人可以聽到20~20000Hz的聲音,上限為20000Hz,即$\frac{p}{2} = 20000$,$p=40000$。那么采樣率至少要為40000。CD的采樣率采用44100(44.1kHz),據傳,在采集模擬信號時采用44100,是因為這些采集的機器以該采樣率設置時最為正常,而並非出於理論上的考慮。
在采樣時,若采用低於40000的采樣率,就會造成聲音的高頻部分混疊(alias),也有人把這個說成是“低頻混疊了變為高頻部分,而高頻的部分被混疊為低頻部分”,實際上是把頻譜上左邊部分的高頻右移疊加到右邊的高頻上,而右邊部分的高頻也左移疊加到了左邊的高頻上,在上節課我們已經討論過。這是采用低采樣率會導致高頻失真的原因。
從模擬到數字,從連續到離散
在前面我們討論的都是連續的信號,在這節,我們將過渡到離散信號的學習。本節計划分為三個部分
$f(t)$為連續的信號,即$t$是一個連續變量
1) 找到一種合理的離散逼近$f(t)$的形式
2) 找到一種合理的離散的逼近$f(t)$的傅里葉變換$\mathcal{F}f(s)$的形式
3) 找到一種從$f$的離散形式到傅里葉變換$\mathcal{F}f$的離散形式的合理方法
下面的推導將建立在抽樣定理的誤用上
假設
$f(t)$受限於$0 \leqslant t \leqslant L$
$\mathcal{F}f(s)$受限於$0 \leqslant s \leqslant 2B$
我們知道頻域上的帶寬是$-B\leqslant s \leqslant B$這種形式,但是這里為了方便后面的推導,采用了上方的這種形式
實際上這兩個假設並不能同時成立,因此稱之為抽樣定理的誤用。
1. $f(t)$的離散近似
為了得到一個$f(t)$的離散近似,這里需要以$\frac{1}{2B}$的間隔進行采樣
設$f(t)$內共有$N$個采樣點,即$N\cdot \frac{1}{2B} = L\ ,\ N = 2BL$
令$t_0 = 0,t_1 = \frac{1}{2B},…,t_{N-1} = \frac{N-1}{2B}$
對$f(t)$進行采樣,得
$f_{sample}(t) = \displaystyle{ f(t)\sum_{k=0}^{N-1}\delta(t-t_k) = \sum_{k=0}^{N-1}f(t_k)\delta(t-t_k)}$
采樣得到的項分離出$f(t)$的離散近似為$f(t_0),f(t_1),…,f(t_{n-1})$
2. $\mathcal{F}f(s)$的離散近似
在經過上面的最后一步后,此時$t$仍然是一個連續變量,即$f_{sample}(t)$是連續的,對它進行傅里葉變換
$\mathcal{F}f_{sample}(s) = \displaystyle{\sum_{k=0}^{N-1}f(t_k)e^{-2\pi ist_k} }$
為了離散化$\mathcal{F}f_{sample}(s)$,我們需要在頻域進行采樣。關於采樣,信號的采樣頻率是依據該信號在另一個域的性質決定的,我們在時域采樣時依據它在頻域受限於$0~2B$,而在頻域采樣是依據它在時域受限於$0~L$,即采樣間隔為$\frac{1}{L}$。
設共有$M$個采樣點,即
$M\cdot \frac{1}{L} = 2B \ , \ M=2BL=N$
即時域與頻域的采樣點數目是一樣多的。
令$s_0=0,s_1=\frac{1}{L},…,s_{N-1} = \frac{N-1}{L}$
對$\mathcal{F}f_{sample}(s)$進行采樣
$\begin{align*}
\left(\mathcal{F}f_{sample} \right)_{sample}(s)
&= \left(\mathcal{F}f_{sample}(s) \right )\cdot \sum_{m=0}^{N-1}\delta(s-s_m)\\
&= \left(\sum_{k=0}^{N-1}f(t_k)e^{-2\pi ist_k} \right )\cdot\left( \sum_{m=0}^{N-1}\delta(s-s_m)\right )\\
&= \sum_{k,m=0}^{N-1}f(t_k)e^{-2\pi is_mt_k}\delta(s-s_m)
\end{align*}$
頻域上的采樣值為
$\begin{align*}
F(s_0) &= \displaystyle{ \sum_{k=0}^{N-1}f(t_k)e^{-2\pi i s_0t_k} }\\
F(s_1) &= \displaystyle{ \sum_{k=0}^{N-1}f(t_k)e^{-2\pi i s_1t_k} }\\
\vdots\\
F(s_{N-1}) &= \displaystyle{ \sum_{k=0}^{N-1}f(t_k)e^{-2\pi i s_{N-1}t_k} }
\end{align*}$
以上就是$f$的離散形式的傅里葉變換的離散近似(That's the discrete approximation to the Fourier transform of the discrete version of f)
3. 從$f$的離散近似到$\mathcal{F}f$的離散近似
經過上面兩個步驟,得到
$f(t)$被離散化為$f(t_0),f(t_1),…,f(t_{N-1})$
$\mathcal{F}f(s)$被離散化為$F(s_0),F(s_1),…,F(s_{N-1})$,有
$F(s_m) = \displaystyle{ \sum_{k=0}^{N-1}f(t_k)e^{-2\pi is_mt_k} }$
由於$f(t_k),F(s_m),t_k,s_m$都從連續信號延伸而來,現在我們需要把連續信號完全消除,只保留離散部分
1) 令$\underline{f}[k] = f(t_k)$
即,有離散信號$\underline{f} = \left( \underline{f}[0],\underline{f}[1],…,\underline{f}[N-1] \right)$
2) 令$\underline{F}[m] = F(s_m)$
即,有離散信號的離散傅里葉變換$\underline{F} = \left( \underline{F}[0],\underline{F}[1],…,\underline{F}[N-1] \right)$
3) $s_mt_k = \frac{m}{L}\cdot\frac{k}{2B} = \frac{mk}{2BL} = \frac{mk}{N}$
即,$\underline{F}[m] = \displaystyle{ \sum_{k=0}^{N-1}\underline{f}[k]e^{-2\pi i\frac{mk}{N}} }$
離散傅里葉變換
根據上述推導得出結論
- 設有離散信號$\underline{f} = \left( \underline{f}[0],\underline{f}[1],…,\underline{f}[N-1] \right)$,它的DFT(離散傅里葉變換)為$\underline{F}=\left( \underline{F}[0],\underline{F}[1],…,\underline{F}[N-1] \right)$,有
$\underline{F}[m] = \displaystyle{ \sum_{k=0}^{N-1}\underline{f}[k]e^{-2\pi i\frac{mk}{N}} }$
