# 6.2 卷積定理
## 核心概念
一句話概括: **一個域的乘積等於在另一個域的卷積**。
所以時域上如果是兩個信號相乘,頻域上兩個信號就是互相卷積的。
以下將這句話展開成四種變換下的樣子。這些式子在[4.5 傅立葉級數的性質](/0kCppWeyRt-XpKVl1THSiw)和[5.4 傅立葉轉換的性質](/gf4iICrzT-KQQ1ZX7kxf3A)都出現過。值得注意的點有兩個:
1. 常數放的位置不一樣。這是因為FS和FT本身的式子對於常數的擺放位置就不同,這裡顯示的公式是照著本書的慣例走,採角頻率、非么正轉換。
2. 在某些部分,式子雖然長得很像卷積,但其積分、求和上下界不是正負無限大之間。
### 時域乘積=頻域卷積
:::danger
令$x\leftrightarrow a_k$,$y\leftrightarrow b_k$:
**CTFS**
$$
x(t)\,y(t)\leftrightarrow\sum_{m=-\infty}^{\infty} a_mb_{k-m}
$$
**DTFS** (假設$x,y$基本週期相同)
$$
x[n]\,y[n]\leftrightarrow\sum_{m=\langle N_0 \rangle} a_mb_{k-m}
$$
令$x\leftrightarrow X(\omega)$,$y\leftrightarrow Y(\omega)$:
**CTFT**
$$
x(t)\,y(t)\leftrightarrow \frac{1}{2\pi} X(\omega)*Y(\omega)
$$
**DTFT**
$$
x[n]\,y[n]\leftrightarrow \frac{1}{2\pi} \int_{2\pi} X(\omega)Y(\theta-\omega) d\theta
$$
:::
### 頻域乘積=時域卷積
:::danger
**CTFS**
$$
\int_{T_0} x(\tau)y(t-\tau)\,d\tau\leftrightarrow T_0a_kb_k
$$
**DTFS** (假設$x,y$基本週期相同)
$$
\sum_{r=\langle N_0 \rangle} x[r]y[n-r] \leftrightarrow N_0a_kb_k
$$
**CTFT**
$$
x(t)*y(t)\leftrightarrow X(\omega)Y(\omega)
$$
**DTFT** $$
x[n]*y[n]\leftrightarrow X(\omega)Y(\omega)
$$
:::
## 它為什麼重要?
很簡單,如果你忘記卷積有多痛苦,可以回想一下[3.2](/L6mx9GInQYqZk95NY4RDNQ)的時候,我們計算了一個看起來超簡單的卷積,結果答案超醜。想像一下,我現在要你手算那些東西,再找那個東西的頻域,你大概會去報復社會。
如果我已經知道兩個簡單東西的頻域,接下來他們乘積的頻域,和卷積的頻域,都可以利用定理簡化,那不是非常美妙嗎?
再來,我們有很多的性質在講,如果我對時域怎樣怎樣,頻域會發生什麼變化。這是非常重要的。假設我在設計一個系統,而我需要在頻域上做一個操作,那麼我得知道它時域上是在幹什麼,我才能去實作這個系統。
反之,我知道這個系統在時域上一通操作,但我看不懂它想幹嘛,有時候我得借助頻域的圖來看懂。而卷積是一個非常基礎的操作: 它是LTI系統的輸出。回想一下,任何LTI系統的輸出都可以寫成輸入和其脈衝響應的卷積:
$$
y=x*h
$$現在我們知道了,對於LTI系統,在頻域上:
$$
Y=XH
$$
其中$H$因為是**頻**域上的脈衝**響應**,所以稱為**頻率響應(frequency response)**。根據上面的式子,我們可以把LTI系統想得更簡單: **對於每個不同頻率的信號而言,系統給出不一樣的增益**(gain)。(p.s. 增益就是對信號乘以一個倍數。) 而每個頻率對應的增益就是頻率響應。我想這會比脈衝響應和卷積來的直觀。
## 它為什麼正確?
我們知道它很厲害,然後呢? 這東西看起來完全不直觀啊。什麼時域卷積=頻域乘積聽起來跟唬爛一樣。這大概就是我第一次看到這些定理時候的想法: 不管了,直接背。考試都會照抄,但心裡面從來沒被說服過。
想說明它為什麼正確,我可以直接丟證明給你,就像我們之前學的那樣。要說到更本質的原因,我也可以直接說因為$\chi(x+y)=\chi(x)\chi(y)$ (WTF?),這種證明也是附在下面了。但我想講一種更直觀的方式,希望可以說服你。
我們其實學過卷積定理,在國二的時候。我們在[3.2](/L6mx9GInQYqZk95NY4RDNQ)的時候有提到過,**多項式的乘法**是一個卷積。而我們不要把傅立葉轉換想的那麼複雜,其實它就是一個級數展開而已嘛,所以多項式也長得很像不是嗎?
:::info
**CTFS合成公式**
$$
x(t) = \sum_{k=-\infty}^{\infty} a_k e^{jk\omega_0t}\
$$
**多項式**
$$
x(t) = \sum_{k=0}^{\infty} a_k t^k
$$
:::
好,現在考慮以下這個例子: 求$(t^2+t+1)(t-1)$。這大概會是你上大學以來遇到最白癡的課本習題,答案就是$t^3-1$。至於你應該怎麼做呢:
> [!Note] **解1**
> 乘開: $(t^2+t+1)(t-1)=t^3+(1-1)t^2+(1-1)t+1=t^3-1$
> [!Note] **解2**
> 我認得$(t^2+t+1)$和$(t-1)$乘在一起是什麼,它的多項式是$t^3-1$。
多數人應該會選擇解2,而恭喜你用了卷積定理。考慮這樣一組對應: 傅立葉轉換=寫下多項式的係數,而多項式(時域)相乘=係數(頻域)的卷積。這就是了。事實上,卷積定理不只在傅立葉轉換上有效,對於多項式展開也有效。甚至我們可以將它拓展到泰勒級數上:
- $sin(x)=x-\frac{x^3}{3!}+\frac{x^5}{5!}-\frac{x^7}{7!}+\,...$
- $cos(x)=1-\frac{x^2}{2!}+\frac{x^4}{4!}-\frac{x^6}{6!}+\,...$
你可以試試不要看下面的解答,直接利用多項式乘法,也就是對逐項做卷積在化簡,來體驗一下沒有卷積定理是多麼痛苦。
$$
(x-\frac{x^3}{3!}+\frac{x^5}{5!}-\frac{x^7}{7!}+\,...)(1-\frac{x^2}{2!}+\frac{x^4}{4!}-\frac{x^6}{6!}+\,...)
$$$$
=x-(\frac{1}{3!}+\frac{1}{2!})x^3+(\frac{1}{5!}+\frac{1}{3!2!}+\frac{1}{4!})x^5+...
$$$$
=(\frac{1}{1!0!})x-(\frac{1}{3!0!}+\frac{1}{1!2!})x^3+(\frac{1}{5!0!}+\frac{1}{3!2!}+\frac{1}{1!4!})x^5+...
$$$$
=(\frac{1!}{1!0!})x-\frac{1}{3!}(\frac{3!}{3!0!}+\frac{3!}{1!2!})x^3+\frac{1}{5!}(\frac{5!}{5!0!}+\frac{5!}{3!2!}+\frac{5!}{1!4!})x^5+...
$$$$
\text{注意到: }\frac{n!}{n!0!}+\frac{n!}{(n-2)!2!}+\frac{n!}{(n-4)!4!}+...=\binom{n}{0}+\binom{n}{2}+\binom{n}{4}+...=2^{n-1}
$$$$
=\sum_{k=0}^{\infty} (-1)^k\frac{1}{(2k+1)!}(2^{k-1})x^k
$$$$
=\frac{1}{2}\sum_{k=0}^{\infty} (-1)^k\frac{1}{(2k+1)!}(2x)^k
$$$$
=\frac{1}{2}\sin(2x)
$$
有了卷積定理:
> 兩函數的泰勒級數相乘(係數卷積),等於兩函數相乘的泰勒級數。
所以:
$$
\sin(x)\cos(x)=\frac{1}{2}\sin(2x)=\frac{1}{2}\sum_{k=0}^{\infty} (-1)^k\frac{(2x)^k}{(2k+1)!}
$$就是這麼簡單。
<!--
以上說明留下兩個延伸讓我們探討:
1. 如果我要對兩個毫不相關的多項式,可能各有$N$項($N$很大),求他們的乘積,我得要做$N^2$次乘法再相加。那如果我可以轉成頻域呢? 是不是可以在頻域做簡單的點對點乘法,再轉回多項式? 答案是可以。因此我們需要一種足夠快的算法處理傅立葉轉換。
2. 為什麼傅立葉轉換和多項式展開同樣有卷積定理? 因為$t^m t^n=t^{m+n}$,且$e^{j\omega t}e^{j\omega' t}=e^{j(\omega + \omega')t}$,兩者都具有$\chi(x+y)=\chi(x)\chi(y)$的形式。-->
## 證明
對於四種變換,證明的方式一視同仁: 爆開。全部爆開。這是最簡單的證明方式。
在前面講性質的小節裡面,我分別證明過CTFS和CTFT的雙向定理成立。
### *一般性的證明
在上一小節的最後,有個很瘋狂的理論可以一次解決四種變換。於是在這邊就秀一下怎麼用抽象的方式一次證完。注意它除了很簡潔很漂亮以外,對於理解沒有什麼幫助,而且可能造成你腦袋過載,請酌量服用。
首先我們先定義Pontryagin理論下的傅立葉變換(照抄6.1),以及重新定義各個群上面的卷積:
:::info
**定義** 傅立葉變換: $G\to \widehat{G}$
$$
\hat{f}(\chi)=\int_{G}f(t)\overline{\chi(t)}\,d\mu(t),\,\,\chi\in\widehat{G}
$$
卷積
$$
(f*g)(t)=\int_{G}f(s)y(t-s)\,d\mu(s)
$$
:::
然後我們要求$x,y,(x*y)\in L^1(G)$,以使他們都有良好定義的傅立葉轉換。
接著考慮$\widehat{x*y}$,直接將兩個定義合併,即可得到:
$$
\widehat{x*y}=\int_{G}\left(\int_{G}x(s)y(t-s)\,d\mu(s)\right)\overline{\chi(t)}\,d\mu(t)
$$
接下來是一貫的伎倆,我們要拆掉這個二重積分。在積分裡面我們用的是Fubini Theorem,但現在我們得用它的進階版: Fubini–Tonelli Theorem。概念完全一樣,只是拓展到了任意可測函數上面,不再限制是實數上的函數。
首先得證明它適用,所以必須證明
$$
\int_{G}\int_{G}|x(s)y(t-s)\overline{\chi(t)}|\,d\mu(s)\,d\mu(t)
$$是有限的。我們直接對它來個變數變換: $u=t-s$,或$t=s+u$。哈爾測度跟我們學過(?)的勒貝格測度一樣,具有**平移不變性**。因此$d\mu(s+u)=d\mu(u)$。現在上式會變成:
$$
=\int_{G}\int_{G}|x(s)||y(u)||\overline{\chi(s+u)}|\,d\mu(s)\,d\mu(u)
$$
仔細觀察可以發現,根據6.1對$\chi$的定義,$|\chi|=1$。剩下的部分因為$s,u$獨立,所以可以拆成:
$$
=\int_{G}|x(s)|\,d\mu(s)\int_{G}|y(u)|\,d\mu(u)
$$根據$L^1$的假設,這兩個積分都有限。因此乘積有限。
回到最一開始的式子,我們已經證明了Fubini–Tonelli Theorem可用。所以我們大膽的將原式拆成雙重積分,且繼續套用$u=t-s$這個變換,變成:
$$
=\int_{G}\int_{G}x(s)y(u)\overline{\chi(s+u)}\,d\mu(s)\,d\mu(u)
$$
最後用上最關鍵的部分,根據定義,$\chi(x+y)=\chi(x)\chi(y)$。所以$\overline{\chi(s+u)}=\overline{\chi(s)}\,\overline{\chi(u)}$。這樣一來,積分可以被拆成$s,u$獨立的樣子:
$$
=\int_{G}\int_{G}x(s)y(u)\overline{\chi(s)}\,\overline{\chi(u)}\,d\mu(s)\,d\mu(u)
$$$$
=\left(\int_{G}x(s)\overline{\chi(s)}\,d\mu(s)\right)\left(\int_{G}y(u)\overline{\chi(u)}\,d\mu(u)\right)
$$$$
=\hat{x}\cdot\hat{y}
$$
雖然看起來跟我們做的前兩次差不多,但因為這次用了一般性的定義去做,所以得到的結果也不再局限於特定的變換,而是對四種變換都成立。
{%hackmd @seanyih/signal-main %}