[傅里葉變換及其應用學習筆記] 二十一. 離散傅里葉變換的矩陣定義,一些性質


 

DFT在零點

$\underline{\mathcal{F}}\underline{f}(0) = \displaystyle{ \sum_{n=0}^{N-1}\underline{f}[n]e^{-2\pi i\frac{n0}{N}} = \sum_{n=0}^{N-1}\underline{f}[n] }$

 

還記得傅里葉變換在零點處也有類似的式子

$\mathcal{F}f(0) = \displaystyle{ \int_{-\infty}^{\infty}f(t)e^{-2\pi i0t}dt = \int_{-\infty}^{\infty}f(t)dt }$

 

如此看來,離散傅里葉變換與傅里葉變換還是很相似的。

 

 

典型的離散信號以及它們的DFT

1. 典型的離散信號

離散信號$\underline{1}$在各采樣點的采樣值都為$1$

$\underline{1} = (1,1,…,1)$

 

離散信號$\underline{\delta_0}$只有在零點處才有為$1$的脈沖

$\underline{\delta_0} = (1,0,0,…,0)$

 

離散信號$\underline{\delta_k}$只有在第$k$項處,才有為$1$的脈沖

$\underline{\delta_k} = (\underbrace{0,0,...,0,1}_{k\ entries},0,...,0)$

 

 

2. 典型離散信號的DFT

對$\underline{\delta_0}$進行DFT

$\underline{\mathcal{F}}\underline{\delta_0} = \displaystyle{\sum_{n=0}^{N-1}\underline{\delta_0}[n] \underline{\omega}^{-n} = \underline{\delta_0}[0]\underline{\omega}^0 = 1\cdot \underline{\omega}^0 = (1,1,…,1) = \underline{1}}$

因此

$\underline{\mathcal{F}}\underline{\delta_0}=\underline{1}$

 

對$\underline{\delta_k}$進行DFT

$\underline{\mathcal{F}}\underline{\delta_k} = \displaystyle{\sum_{n=0}^{N-1}\underline{\delta_k}[n] \underline{\omega}^{-n} = \underline{\delta_k}[k]\underline{\omega}^{-k} = 1\cdot \underline{\omega}^{-k} = \underline{\omega}^{-k}}$

因此

$\underline{\mathcal{F}}\underline{\delta_k} = \underline{\omega}^{-k}$

 

對$\underline{\omega}^{k}$進行DFT

$\begin{align*}
\underline{\mathcal{F}}\underline{\omega}^{k}[m]
&=\sum_{n=0}^{N-1}\underline{\omega}^k[n]\underline{\omega}^{-n}[m]\\
&=\sum_{n=0}^{N-1}e^{2\pi i\frac{kn}{N}}\cdot e^{-2\pi i\frac{mn}{N}}\\
&=\underline{\omega}^k\cdot\underline{\omega}^m\\
&=\begin{cases}
0 & \text{ , } k\neq m \\
N & \text{ , } k= m
\end{cases}
\end{align*}$

因此

$\underline{\mathcal{F}}\underline{\omega}^k = (\underbrace{0,0,...,0,N}_{k\ entries},0,...,0) = N\underline{\delta_k}$

 

 

DFT矩陣

1. DFT矩陣的定義

令$\omega = e^{2\pi i\frac{1}{N}}$,請注意,這里的$\omega$沒有下划線,並不是離散信號。則有

$\omega^{-mn} = e^{-2\pi i\frac{mn}{N}}$

 

DFT的變換式可以寫成

$\underline{\mathcal{F}}\underline{f}[m] = \displaystyle{ \sum_{n=0}^{N-1}\omega^{-mn} \underline{f}[n]}$

 

如此一來,上式呈現了一種新的表述,即對離散信號$\underline{f}$進行DFT就相當於用$\underline{f}$與矩陣$\left( \omega^{-} \right)^{mn}$相乘,$mn$為該矩陣的$m$行$n$列

$\begin{pmatrix}
1 &1  &1  &...  &1 \\
1 &\omega^{-1}  &\omega^{-2}  &...  &\omega^{-(N-1)} \\
1 &\omega^{-2}  &\omega^{-4}  &...  &\omega^{-2(N-1)} \\
\vdots  &\vdots  &\vdots  &...  & \vdots\\
1 &\omega^{-(N-1)}  &\omega^{-2(N-1)}  &...  &\omega^{-(N-1)^2}
\end{pmatrix}
\begin{pmatrix}
\underline{f}[0]\\
\underline{f}[1]\\
\underline{f}[2]\\
\vdots\\
\underline{f}[N-1]
\end{pmatrix}
=
\begin{pmatrix}
\underline{\mathcal{F}}\underline{f}[0]\\
\underline{\mathcal{F}}\underline{f}[1]\\
\underline{\mathcal{F}}\underline{f}[2]\\
\vdots\\
\underline{\mathcal{F}}\underline{f}[N-1]
\end{pmatrix}$

 

上述式子左邊的矩陣就是DFT矩陣,DFT矩陣是一個$N\times N$的矩陣,可以用下面的式子表達

$(\mathcal{F})_{nm} = \omega^{-nm}$

 

2. DFT矩陣的共軛轉置

對DFT矩陣$\mathcal{F}$進行共軛轉置,即

$(\mathcal{F}^{*})_{nm} = \overline{(\underline{\mathcal{F}})_{mn}} = \overline{\omega^{-mn}} = \omega^{mn}$

 

DFT矩陣與它的共軛轉置矩陣相乘,有

$\underline{\mathcal{F}}\underline{\mathcal{F}}^{*} =
\begin{pmatrix}
1 &1  &1  &...  &1 \\
1 &\omega^{-1}  &\omega^{-2}  &...  &\omega^{-(N-1)} \\
1 &\omega^{-2}  &\omega^{-4}  &...  &\omega^{-2(N-1)} \\
\vdots  &\vdots  &\vdots  &...  & \vdots\\
1 &\omega^{-(N-1)}  &\omega^{-2(N-1)}  &...  &\omega^{-(N-1)^2}
\end{pmatrix}
\begin{pmatrix}
1 &1  &1  &...  &1 \\
1 &\omega^{1}  &\omega^{2}  &...  &\omega^{(N-1)} \\
1 &\omega^{2}  &\omega^{4}  &...  &\omega^{2(N-1)} \\
\vdots  &\vdots  &\vdots  &...  & \vdots\\
1 &\omega^{(N-1)}  &\omega^{2(N-1)}  &...  &\omega^{(N-1)^2}
\end{pmatrix}$

$=
\begin{pmatrix}
\underline{\omega}^0\cdot\underline{\omega}^0 &\underline{\omega}^1\cdot\underline{\omega}^0  &\underline{\omega}^2\cdot\underline{\omega}^0  &...  &\underline{\omega}^{N-1}\cdot\underline{\omega}^0 \\
\underline{\omega}^0\cdot\underline{\omega}^1 &\underline{\omega}^1\cdot\underline{\omega}^1  &\underline{\omega}^2\cdot\underline{\omega}^1  &...  &\underline{\omega}^{N-1}\cdot\underline{\omega}^1 \\
\underline{\omega}^0\cdot\underline{\omega}^2 &\underline{\omega}^1\cdot\underline{\omega}^2  &\underline{\omega}^2\cdot\underline{\omega}^2  &...  &\underline{\omega}^{N-1}\cdot\underline{\omega}^2 \\
\vdots  &\vdots  &\vdots  &...  & \vdots\\
\underline{\omega}^0\cdot\underline{\omega}^{N-1} &\underline{\omega}^1\cdot\underline{\omega}^{N-1}  &\underline{\omega}^2\cdot\underline{\omega}^{N-1}  &...  &\underline{\omega}^{N-1}\cdot\underline{\omega}^{N-1} \\
\end{pmatrix}\qquad\qquad\qquad\qquad$

$=\begin{pmatrix}
N &0  &0  &...  &0 \\
0 &N  &0  &...  &0 \\
0 &0  &N  &...  &0 \\
\vdots &\vdots  &\vdots  &...  &\vdots \\
0 &0  &0  &...  &N
\end{pmatrix}  \qquad \left(
\underline{\omega}^l\cdot\underline{\omega}^k = \begin{cases}
0 & \text{ , } k\neq l \\
N & \text{ , } k= l
\end{cases}
\right)\qquad\qquad\qquad\qquad$

$= NI \qquad (I\ is\ N\times N\ identity\ matrix)\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad$

 

因此

$\underline{\mathcal{F}}\underline{\mathcal{F}}^{*} = NI$

同理可得

$\underline{\mathcal{F}}^{*}\underline{\mathcal{F}} = NI$

 

 

3. IDFT矩陣

通過上述轉置矩陣的運算結果結果,可以得到IDFT矩陣為

$\underline{\mathcal{F}}^{-1} = \frac{1}{N}\underline{\mathcal{F}}^{*}$

 

$\left( \underline{\mathcal{F}}^{-1} \right)_{mn} = \frac{1}{N}\omega^{mn}$

 

這個結果同樣也能運用推導DFT矩陣的過程得出。

 

 

4. DFT矩陣運算復雜度

運算復雜度這里是值矩陣運算中乘法運算的數目,$\underline{\mathcal{F}}\underline{f}$的每一項運算會花費$N$個乘法運算,其中共有$N$項,即運算復雜度為$N\times N$,用$O(N^2)$表示。

FFT算法的目的就是為了減少DFT的運算復雜度,FFT的復雜度為$O(NlogN)$。

 

 

DFT特性

我們上節課遺留下來了,關於DFT特性的討論:輸入和輸出都是周期為$N$的周期離散函數。得出這個結論是因為離散復指數具有周期性。

 

1. 輸入與輸出離散信號周期性的證明

證明過程如下:

$\underline{\omega}[m] = e^{2\pi i \frac{m}{N}}$

$\underline{\omega}[m+N] = e^{2\pi i\frac{m+N}{N}} = e^{2\pi i\frac{m}{N}}\cdot e^{2\pi i}=e^{2\pi i\frac{m}{N}} = \underline{\omega}[m]$

同理

$\underline{\omega}^{n}[m] = \underline{\omega}^n[m+N] \qquad \underline{\omega}^{-n}[m] = \underline{\omega}^{-n}[m+N]$

即$\underline{\omega},\underline{\omega}^n,\underline{\omega}^{-n}$都是周期為$N$的離散復指數信號。

 

由上述結論推廣到DFT

$\underline{\mathcal{F}}\underline{f}[m+N] = \displaystyle{\sum_{n=0}^{N-1}\underline{f}[n]\underline{\omega}^{-n}[m+N]= \sum_{n=0}^{N-1}\underline{f}[n]\underline{\omega}^{-n}[m]} = \underline{\mathcal{F}}\underline{f}[m]$

因此$\underline{\mathcal{F}}\underline{f}[m+N] = \underline{\mathcal{F}}\underline{f}[m]$,表明了對離散信號$\underline{f}$進行DFT后會得到周期為$N$的離散信號。

 

同理,推廣到IDFT

$\underline{\mathcal{F}}^{-1}\underline{f}[m+N] = \frac{1}{N}\displaystyle{\sum_{n=0}^{N-1}\underline{f}[n]\underline{\omega}^{n}[m+N]= \frac{1}{N}\sum_{n=0}^{N-1}\underline{f}[n]\underline{\omega}^{-n}[m]} = \underline{\mathcal{F}}^{-1}\underline{f}[m]$

因此$\underline{\mathcal{F}}^{-1}\underline{f}[m+N] = \underline{\mathcal{F}}^{-1}\underline{f}[m]$,表明了對離散信號$\underline{f}$進行IDFT會得到周期為$N$的離散信號。

這種周期為$N$的特性是由$\underline{\omega}$的周期性決定的。對某離散信號$\underline{f}$進行DFT,會得到周期為$N$的離散信號$\underline{\mathcal{F}}\underline{f}$,然后對$\underline{\mathcal{F}}\underline{f}$進行IDFT,即$\underline{\mathcal{F}}^{-1}\underline{\mathcal{F}}\underline{f}$,也會得到周期為$N$的離散信號$\underline{f}$,這表明了原始信號$\underline{f}$也是周期為$N$的離散信號。

 

因此有結論如下:

  • 進行DFT的輸入離散信號$\underline{f}$與輸出離散信號$\underline{\mathcal{F}}\underline{f}$都是周期為$N$($N$項)的周期信號;同理進行IDFT的輸入離散信號$\underline{F}$與輸出離散信號$\underline{\mathcal{F}}^{-1}\underline{F}$都是周期為$N$($N$項)的周期信號。

 

在實際應用中,通常我們采集到的離散信號都不是周期為$N$的信號,甚至不具有周期性,但是在進行DFT分析時,都是從采集到的信號中取一部分出來,這部分就會被看作是周期信號中的一個周期,它進行DFT后會產生的也是周期信號。

 

索引的獨立性

周期性可以說是限制,因為我們需要用周期信號來看待將被進行DFT、IDFT的離散信號,但是這個特性也帶來了簡單有益的結論:索引的獨立性(independence of indexing)。

由於$\underline{f}$與$\underline{\omega}$都具有周期性,因此在計算DFT時可以采用任意連續$N$個采樣,即

$\underline{\mathcal{F}}\underline{f} = \displaystyle{ \sum_{n=0}^{N-1}\underline{f}[n]\underline{\omega}^{-n} = \sum_{n=1}^{N}\underline{f}[n]\underline{\omega}^{-n} }$

 

我們也可以把零點放置取樣值的中間,即

當$N$為奇數時

$\underline{\mathcal{F}}\underline{f} = \displaystyle{ \sum_{n=-\frac{N-1}{2}}^{\frac{N-1}{2}}\underline{f}[n]\underline{\omega}^{-n} }$

當$N$為偶數時

$\underline{\mathcal{F}}\underline{f} = \displaystyle{ \sum_{n=-\frac{N}{2}+1}^{\frac{N}{2}}\underline{f}[n]\underline{\omega}^{-n} }$

 

不同的軟件,不同的實現對下標(索引)的表達可能會不同,因此我們需要了解通過這小節了解下標(索引)的獨立性。

 

 

離散信號的反轉及其DFT的對偶性

1. 離散信號反轉的定義

在討論連續信號的反轉的時候,連續信號$f(x)$的反轉為$f^-(x) = f(-x)$,而這里離散信號的反轉被定義為$\underline{f}^{-}[m] = \underline{f}[-m]$,也就是說,如果有離散信號

$\underline{f} = \left( \underline{f}[0],\underline{f}[1],\underline{f}[2],…,\underline{f}[N-1] \right)$

它的反轉為

$\underline{f}^- = \left( \underline{f}[0],\underline{f}[-1],\underline{f}[-2],…,\underline{f}[-(N-1)] \right)$

 

離散復指數$\underline{\omega}$的反轉為

$\underline{\omega}^- = \left( 1,e^{-2\pi i\frac{1}{N}},e^{-2\pi i\frac{2}{N}},…,e^{-2\pi i\frac{N-1}{N}} \right) = \underline{\omega}^{-1}$

 

同理有

$\left( \underline{\omega}^n \right)^- = \underline{\omega}^{-n} \qquad \left( \underline{\omega}^{-n} \right)^- = \underline{\omega}^{n}$

 

2. DFT對偶性討論

對離散信號$\underline{f}$的反轉$\underline{f}^-$進行DFT

$\begin{align*}
\underline{\mathcal{F}}\underline{f}^-
&=\sum_{n=0}^{N-1}\underline{f}^-[n]\underline{\omega}^{-n}\\
&=\sum_{n=0}^{N-1}\underline{f}[-n]\underline{\omega}^{-n} \qquad (definition\ of\ reversed\ signal)\\
&=\sum_{n=0}^{N-1}\underline{f}[N-n]\underline{\omega}^{-n} \qquad (\underline{f}\ is\ period\ of\ N)\\
&=\sum_{l=N}^1\underline{f}[l]\underline{\omega}^{l-N} \qquad (letting\ l=N-n)\\
&=\sum_{l=N}^1\underline{f}[l]\underline{\omega}^l \qquad(\underline{\omega}\ is\ period\ of\ N)\\
&=\sum_{l=0}^{N-1}\underline{f}[l]\underline{\omega}^l \qquad(independence\ of\ indexing)\\
&=\sum_{l=0}^{N-1}\underline{f}[l](\underline{\omega}^{-l})^-\\
&=\left( \sum_{l=0}^{N-1}\underline{f}[l]\underline{\omega}^{-l} \right )^- \qquad \left( \sum_{l=0}^{N-1}\underline{f}[l](\underline{\omega}^{-l})^-[m] =\sum_{l=0}^{N-1}\underline{f}[l](\underline{\omega}^{-l})[-m]\ the\ definition\ of\ reversed\ signal\right)\\
&=\left(\underline{\mathcal{F}}\underline{f} \right )^-
\end{align*}$

 

因此

$\underline{\mathcal{F}}\underline{f}^- = \left( \underline{\mathcal{F}}\underline{f} \right)^-$

 

 

對離散信號連續進行兩次DFT

$\begin{align*}\underline{\mathcal{F}}\underline{\mathcal{F}}\underline{f}&=\sum_{k=0}^{N-1}\left(\sum_{n=0}^{N-1}\underline{f}[n]\underline{\omega}^{-n}[k]\right)\underline{\omega}^{-k}\\
&=\sum_{n=0}^{N-1}\underline{f}[n]\left(\sum_{k=0}^{N-1}\underline{\omega}^{-n}[k]\underline{\omega}^{-k}\right)\\
&=\sum_{n=0}^{N-1}\underline{f}[n]\left(\underline{\mathcal{F}}\underline{\omega}^{-n}\right)\\
&=\sum_{n=0}^{N-1}\underline{f}[n]\cdot N\underline{\delta_{-n}}\\
&=N\sum_{n=0}^{N-1}\underline{f}[n]\underline{\delta_{-n}}\\
&=N\sum_{n=0}^{N-1}\underline{f}[n]\left(\underline{\delta_n}\right)^-\\
&=N\left(\sum_{n=0}^{N-1}\underline{f}[n]\underline{\delta_n}\right)^-\qquad\left(\sum_{n=0}^{N-1}\underline{f}[n](\underline{\delta_n})^-[m]=\sum_{n=0}^{N-1}\underline{f}[n]\underline{\delta_n}[-m]\right)\\
&=N\left(\sum_{n=0}^{N-1}\underline{f}[n]\underline{\delta_n}[0],\sum_{n=0}^{N-1}\underline{f}[n]\underline{\delta_n}[1],...,\sum_{n=0}^{N-1}\underline{f}[n]\underline{\delta_n}[N-1]\right)^-
\end{align*}$

 

我們來分析一下$\displaystyle{\sum_{n=0}^{N-1}\underline{f}[n]\underline{\delta_n}[0]}$,其中$\underline{\delta_n}[m]=\begin{cases} 1 & \text{ , } m=n \\ 0 & \text{ , } m\neq n \end{cases}$,因此

$\begin{align*}\underline{\mathcal{F}}\underline{\mathcal{F}}\underline{f}
&=N\left(\sum_{n=0}^{N-1}\underline{f}[n]\underline{\delta_n}[0],\sum_{n=0}^{N-1}\underline{f}[n]\underline{\delta_n}[1],...,\sum_{n=0}^{N-1}\underline{f}[n]\underline{\delta_n}[N-1]\right)^-\\
&=N\left(\underline{f}[0],\underline{f}[1],...,\underline{f}[N-1] \right )^-\\
&=N\underline{f}^-
\end{align*}$

 

最終得

$\underline{\mathcal{F}}\underline{\mathcal{F}}\underline{f} = N\underline{f}^-$


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM