# 5.1 CTFT 我們現在知道,如果有一個**週期函數**,我們就可以用一個無窮級數去逼近它,這個級數就是傅立葉級數。而分析傅立葉級數的係數,也就是分析它的**頻域**,可以簡化一些操作。例如將LTI系統的卷積,改為頻域上的乘積。 那問題就來了,現實生活中不會出現週期函數。沒有任何一個信號會無窮無盡的下去,一定都是有限長度。第二是這些函數不一定只有弦波、方波,而是一堆亂七八糟的波,例如講話的聲音、感測器的信號、甚至二維的圖像等等。他們顯然都不是週期的,那該怎麼處理? 以下我會用兩種不同的方式,導出(或著是說,試圖讓你接受)連續時間傅立葉轉換的公式。 ## 推導CTFT的兩種方式 ### 1. 從FS到FT 一個簡單(但有效)的想法是: 我們可以把一段非週期的信號,想像成是$T_0 \to \infty$ 的週期信號。我們先對分析公式開刀: $$ a_k=\frac{1}{T_0} \int_{T_0} x(t)e^{-jk\omega_0t}\,dt $$ 這時候我們知道,$\omega_0$極小,使得$k\omega_0$最終可以遍布整個實數軸。這時候我們改稱$\omega=k\omega_0\in\mathbb{R}$,係數$a_k$改成$\omega$的函數$X(\omega)$。我們定義: $$ X(\omega)=\int_{-\infty}^{\infty} x(t)e^{-j\omega t}\,dt $$$$ a_k=\frac{1}{T_0} X(k\omega_0) $$ 注意第二個式子很重要,我們會在第七章在看到一次,但用更嚴謹的方式說明這個式子的意義。這時候再看合成公式這邊: $$ x(t) = \lim_{\omega_0 \to 0}\sum_{k=-\infty}^{\infty} a_k e^{jk\omega_0t}\ $$ 把係數$a_k$替換掉: $$ =\lim_{\omega_0 \to 0}\frac{1}{2\pi} \sum_{k=-\infty}^{\infty} X(k\omega_0) e^{jk\omega_0t}\omega_0 $$ 這時候應該不難看出,只要我們把$\omega_0$當作$\Delta x_i$,$X(k\omega_0) e^{jk\omega_0t}=f(x_i)$,這個式子就是一個**黎曼和**。於是我們就有了: $$ x(t)=\frac{1}{2\pi}\int_{-\infty}^{\infty} X(\omega)e^{j\omega t}\,dt $$ 這就得到了可以用在非週期函數的傅立葉級數(嚴格來說已經不是級數了),也就是**傅立葉轉換**(FT)的公式。 ### 2. 向量空間觀點 第一種方法看似簡潔有力,實際上嚴謹性差的可怕,幾乎就是拿著式子硬湊。但它確實提供一種傅立葉級數到傅立葉轉換的一種直觀理解,和公式上的對應。 接下來我們用在CTFS看過的向量空間觀點來解決這個問題。首先回顧一下定義: :::info **定義** $L^2(\mathbb{R})$函數的內積 $$ \langle f,g \rangle = \int_{-\infty}^{\infty} f(x)\,\overline{g(x)}\,dx $$ ::: 再拿出一些引理: :::danger **引理1** $\{e^{j\omega t}\}$是一組正交基底。 **引理2** $\{e^{j\omega t}\}$確實生成整個$L^2(\mathbb{R})$。 ::: 前置作業就完成了。接著就是熟悉的環節,導出分析公式(轉向正交基底)和合成公式(基底的線性組合)。所以,用線性代數的語言,我們可以將x(t)轉成無數個在$e^{j\omega t}$上的線性組合: $$ x(t) = \frac{1}{2\pi}\int_{\mathbb{R}} \langle x(t),e^{j\omega t} \rangle\, e^{j\omega t}\,d\omega $$ 其中$\frac{1}{2\pi}$來自於正交基自身的長度平方。在CTFS裡面,這個係數是$\frac{1}{T_0}$,且常數會被放在分析公式的一側不過。但在這裡我們把**常數移動到合成公式的一側**。得到: :::danger **CTFT分析公式** $$ X(\omega)=\int_{-\infty}^{\infty} x(t)e^{-j\omega t}\,dt $$ **CTFT合成公式** $$ x(t)=\frac{1}{2\pi}\int_{-\infty}^{\infty} X(\omega)e^{j\omega t}\,d\omega $$ ::: 這個常數依然來自於正交基的長度,只不過是在定義的時候換了位置。 實際上這個常數甚至可以被拆成$\frac{1}{\sqrt{2\pi}}$分別放在分析公式和合成公式上,轉換會更對稱,又被稱作**么正傅立葉轉換**。不過本書往後都會遵循工程慣例,使用非么正、角頻率的FT作為定義。 至於它為什麼被叫做**轉換(transform)**? 仔細觀察不難發現,$X(\omega)$是一個函數,$x(t)$也是一個函數。CTFT做的事是將函數轉變成另一個函數,所以它是一個從函數空間到另一個函數空間的轉換。 在這裡CTFT分析公式又叫做**傅立葉轉換**,而合成公式又叫做**傅立葉反轉換**(inverse FT, iFT)。我們用小寫的字母(e.g. $x(t)$)表示時域的信號,並用大寫的字母(e.g. $X(\omega)$)表示它的頻域。 有時頻域也會看到$X(j\omega)$的表示法。或是用$\hat{x}(\omega)$表示。這些除了記法以外,函數的本質都一樣。 當表示一個時域函數的轉換等於另一個頻域函數時,可以用$\mathcal{F}[x(t)]=X(\omega)$表示,或用雙箭頭標示轉換對: $x(t)\leftrightarrow X(\omega)$。 ### 嚴謹性? 第二種推導真的有比較嚴謹嗎? 仔細觀察一下你就會發現它問題也很大。最大的問題就是$\{e^{i\omega t}\}$甚至**不在$L^2(\mathbb{R})$裡面**! 它完全是不可積分的。 如果它不可積分,我們又怎麼證明它正交? 另外,如果它壓根不在$L^2(\mathbb{R})$裡面,根據向量空間的定義,它應該沒辦法生成整個空間才對。 我先暴雷一下,這兩個問題都可以透過更難的數學解決,來讓第二種方法變得嚴謹。但對於工學院的學生來說,我們眼睛遮起來當沒看到就好。詳細的證明,我會補充在本章的最後。 ## CTFT的收斂性 基本上,我們在FS學到的三種收斂性: 逐點收斂、均方收斂、一致收斂,以及他們對應的收斂條件,都可以拓展到CTFT上面。也就是說,我們知道: :::danger **逐點收斂** 滿足迪利克雷條件的信號: 1. $\int_{-\infty}^{\infty} |x(t)|\,dt<\infty$ 2. 在任一個有限長的區間裡,只有有限多個極大值跟極小值。 3. 在任一個有限長的區間裡,只有有限多個不連續點。而這些不連續點必須是有限的,也就是要嘛是可移除的(removable),要嘛是跳躍的(jump)。這個條件也被稱為是分段連續(piecewise continuous)。 ::: :::danger **均方收斂** 即$L^2(\mathbb{R})$的函數。 $$ \int_{-\infty}^{\infty} |x(t)|^2\,dt<\infty $$ ::: :::danger **一致收斂** 1. $x(t)$連續。 2. $x'(t)$分段連續。 ::: 這些就是最常用的收斂性準則了。但是為了將CTFT拓展到「能用」,我們會引進新的收斂性: **分布收斂** (distributional convergence)。很多信號確實需要分布收斂的定義才能運作,例如最簡單的$e^{i\omega t}$,和所有週期函數(非$L^2(\mathbb{R})$),甚至是常數$1$的CTFT,都需要引入分布的概念。 不過,again,工學院的學生應該不太在乎這些,我們已經習慣把兩個 $dx$ 當作分數消掉,或是定義$\frac{1}{0}=\infty$了,所以這些一樣當成補充放進下一個小節。沒興趣的人可以跳過,對人生沒有太大影響,只要能接受(背起來)結果就能繼續推進。 ## 例子 ### 方波 考慮這個方波: $$ x(t)= \left\{ \begin{matrix} 1, &\, |t|\le T \\ 0, &\, |t|> T \end{matrix} \right. $$ 注意現在這個函數**不是**週期的,只是一個偶函數的方塊而已。$T$是方塊的邊界,不是週期。它長這樣: ![image](https://hackmd.io/_uploads/HJKDXDXJZl.png) 剩下的就是直接積分: $$ X(\omega)=\int_{-T}^{T} e^{-j\omega t}\,dt=\frac{-1}{j\omega}e^{-j\omega t} \,\Bigg|_{-T}^{T} =\frac{1}{j\omega} (e^{j\omega T}-e^{-j\omega T}) $$ 記得$\sin(x)=\frac{e^{jx}-e^{-jx}}{2j}$,所以 :::danger $$ X(\omega)=\frac{2\sin(T\omega)}{\omega} $$ ::: 一個工程上常用的定義是: :::info **歸一化sinc函數** $$ sinc(x)=\frac{sin(\pi x)}{\pi x} $$ ::: 特別注意,有些時候會用$sinc(x)=\frac{sin(x)}{x}$作為定義。通常在工程領域比較常用歸一化的版本。它有幾個好處: - $\int_{-\infty}^{\infty} sinx(x)=1$ - 定義 $sinc(0)=1$,則$sinc(n)=0, \forall n\in\mathbb{N}$ 如果我們用sinc函數,則可以進一步簡化(?)結果成: $$ X(\omega)= \frac{2\sin((T/\pi)(\pi\omega))}{(1/T)(T/\pi)(\pi\omega)}=2T \,sinc(\frac{T\omega}{\pi}) $$ 或是更常見於以一般頻率($f$)表示下的結果: $$ X(f)=2T\,sinc(2Tf) $$ ### $\delta(t)$ 這個很簡單,直接用轉換: $$ X(\omega)=\int_{-\infty}^{\infty} \delta(t)e^{-j\omega t}\,dt $$ 外加Delta函數的性質: $\delta(t)f(t)=\delta(t)f(0)$: $$ =\int_{-\infty}^{\infty} \delta(t)\,dt=1 $$ 就有了: :::danger $$ \delta(t) \leftrightarrow 1 $$ ::: ### $e^{j\omega_0 t}$ 在這裡$\omega_0$是一個常數,這是單一的一個時域信號。跟我們用來作CTFT的$e^{j\omega t}$意義不同,那裡的$\omega$是頻域的變數。 雖然準確地說,推導這個需要用到分布,但我們可以用一種直觀的方式理解。首先,我們考慮它的合成公式: $$ e^{j\omega_0 t}=\frac{1}{2\pi}\int_{-\infty}^{\infty} X(\omega)e^{j\omega t}\,d\omega $$ 我們想要的是「解」這個$X(\omega)$。首先,這個函數一定要有一個常數$2\pi$,來和前面的分數抵銷掉。 另外,我們想從後面那無窮多個$e^{i\omega t}$裡面,抓出 $\omega=\omega_0$ 的那一個。這個問題就相當於: $$ \int_{-\infty}^{\infty} X\cdot f(x) =\int_{-\infty}^{\infty} X \cdot f(x_0) = f(x_0) $$ 那麼這個函數就必須是Delta函數。它剛好滿足這個條件。於是我們就得到了: :::danger $$ e^{j\omega_0 t} \leftrightarrow 2\pi \delta(\omega-\omega_0) $$ ::: 而當 $\omega=0$ 時,這相當於問**常數1**的CTFT是什麼。所以: :::danger $$ 1 \leftrightarrow 2\pi \delta(\omega) $$ ::: 注意到如果你直接去用正變換,你是導不出這些結果的。它需要一點技巧。