时域卷积定理及频域卷积定理

前言

在这里插入图片描述

之前的文章介绍了卷积积分的计算,作为图神经网络的前置知识点,理解卷积定理有助于理解谱图卷积

卷积定理是傅立叶变换满足的一个重要性质。维基百科中卷积定理的定义如下:

卷积定理指出,两个函数(或信号)的卷积的傅里叶变换是它们傅里叶变换的逐点乘积。

更一般地说,一个域(例如,时域)中的卷积等于另一个域(例如,频域)中的逐点乘法。具体分为时域卷积定理和频域卷积定理,时域卷积定理即时域内的卷积对应频域内的乘积;频域卷积定理即频域内的卷积对应时域内的乘积,两者具有对偶关系。

连续变量的函数

卷积定理

设两个函数 g ( t ) g(t) g(t) h ( t ) h(t) h(t) 的傅里叶变换为 G G G H H H

G ( f ) ≜ F { g } ( f ) = ∫ − ∞ ∞ g ( t ) e − i 2 π f t   d t , f ∈ R H ( f ) ≜ F { h } ( f ) = ∫ − ∞ ∞ h ( t ) e − i 2 π f t   d t , f ∈ R \begin{aligned} G(f) &\triangleq \mathcal{F}\{g\}(f) = \int_{-\infty}^{\infty}g(t) e^{-i 2 \pi f t} \, dt, \quad f \in \mathbb{R}\\ H(f) &\triangleq \mathcal{F}\{h\}(f) = \int_{-\infty}^{\infty}h(t) e^{-i 2 \pi f t} \, dt, \quad f \in \mathbb{R} \end{aligned} G(f)H(f)F{g}(f)=g(t)ei2πftdt,fRF{h}(f)=h(t)ei2πftdt,fR其中, ≜ \triangleq 表示定义为, F \mathcal{F} F是傅里叶变换算子。通常, F { g } ( f ) \mathcal{F}\{g\}(f) F{g}(f) 也可以表示为 F { g ( t ) } \mathcal{F}\{g(t)\} F{g(t)} F [ g ( t ) ] \mathcal{F}[g(t)] F[g(t)] g g g h h h 的卷积定义为:
r ( t ) = { g ∗ h } ( t ) ≜ ∫ − ∞ ∞ g ( τ ) h ( t − τ )   d τ = ∫ − ∞ ∞ g ( t − τ ) h ( τ )   d τ . r(t) = \{g*h\}(t) \triangleq \int_{-\infty}^{\infty} g(\tau) h(t-\tau)\, d\tau = \int_{-\infty}^{\infty} g(t-\tau) h(\tau)\, d\tau. r(t)={gh}(t)g(τ)h(tτ)dτ=g(tτ)h(τ)dτ.这里, ∗ * 表示卷积。两个函数其他形式的卷积有 g ( t ) ∗ h ( t ) g(t)*h(t) g(t)h(t),博文卷积积分的计算有助于理解卷积。

卷积定理表述为:
R ( f ) ≜ F { r } ( f ) = G ( f ) H ( f ) . f ∈ R ( 1 ) R(f) \triangleq \mathcal{F}\{r\}(f) = G(f) H(f). \quad f \in \mathbb{R}\quad\quad(1) R(f)F{r}(f)=G(f)H(f).fR(1)其中 R ( f ) R(f) R(f)也可以写成如下形式: R ( f ) ≜ F [ r ( t ) ] ≜ F [ h ( t ) ∗ g ( t ) ] R(f)\triangleq \mathcal{F}[r(t)] \triangleq \mathcal{F}[h(t)*g(t)] R(f)F[r(t)]F[h(t)g(t)]

证明

根据傅里叶变换及卷积积分有:
F [ g ( t ) ∗ h ( t ) ] = ∫ − ∞ + ∞ g ( t ) ∗ h ( t ) e − i ω t d t = ∫ − ∞ + ∞ ∫ − ∞ + ∞ g ( τ ) ∗ h ( t − τ ) d τ e − i ω t d t ( 卷积展开 ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ h ( t − τ ) e − i ω t d t   g ( τ ) d τ ( 1 ) \begin{aligned} \mathcal{F}[g(t)*h(t)]&=\int_{-\infin}^{+\infin} g(t)*h(t) e^{-i\omega t}dt \\ &=\int_{-\infin}^{+\infin}\int_{-\infin}^{+\infin} g(\tau)*h(t-\tau) d\tau e^{-i\omega t}dt \qquad (卷积展开)\\ &=\int_{-\infin}^{+\infin}\int_{-\infin}^{+\infin} h(t-\tau)e^{-i\omega t}dt\, g(\tau) d\tau \qquad (1)\\\\ \end{aligned} F[g(t)h(t)]=+g(t)h(t)etdt=++g(τ)h(tτ)dτetdt(卷积展开)=++h(tτ)etdtg(τ)dτ(1) x = t − τ x=t-\tau x=tτ,则 t = x + τ t=x+\tau t=x+τ d t = d x dt=dx dt=dx,所以:
( 1 ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ h ( x ) e − i ω ( x + τ ) d x   g ( τ ) d τ = ∫ − ∞ + ∞ ∫ − ∞ + ∞ h ( x ) e − i ω x e − i ω τ d x   g ( τ ) d τ = ∫ − ∞ + ∞ h ( x ) e − i ω x ∫ − ∞ + ∞ e − i ω τ d x   g ( τ ) d τ ( x 是在 τ 的积分中是常量 , 可以移出来 ) = g ( ω ) ⋅ h ( ω ) \begin{aligned} (1)&=\int_{-\infin}^{+\infin}\int_{-\infin}^{+\infin} h(x)e^{-i\omega (x+\tau)}dx \, g(\tau) d\tau \\ &=\int_{-\infin}^{+\infin}\int_{-\infin}^{+\infin} h(x) e^{-i\omega x} e^{-i\omega \tau} dx \, g(\tau) d\tau \\ &=\int_{-\infin}^{+\infin}h(x) e^{-i\omega x} \int_{-\infin}^{+\infin} e^{-i\omega \tau} dx\, g(\tau) d\tau \qquad (x是在\tau的积分中是常量,可以移出来)\\ &=g(\omega) \cdot h(\omega) \end{aligned} (1)=++h(x)e(x+τ)dxg(τ)dτ=++h(x)exeτdxg(τ)dτ=+h(x)ex+eτdxg(τ)dτ(x是在τ的积分中是常量,可以移出来)=g(ω)h(ω)其中 ω = 2 π f \omega=2\pi f ω=2πf
证毕。 ■ \blacksquare

小结

上述为时域卷积定理的公式及证明,频域卷积定义与之类似。所以连续变量函数的卷积定理为:

时域卷积定理为: F [ g ( t ) ∗ h ( t ) ] = G ( ω ) ⋅ H ( ω ) \mathcal{F}[g(t)*h(t)]=G(\omega) \cdot H(\omega) F[g(t)h(t)]=G(ω)H(ω)

频域卷积定理为: F [ g ( t ) ⋅ h ( t ) ] = 1 2 π   G ( ω ) ∗ H ( ω ) \mathcal{F}[g(t)\cdot h(t)]={\frac1 {2\pi}} \, G(\omega) * H(\omega) F[g(t)h(t)]=2π1G(ω)H(ω)

离散变量序列

卷积定理

对于离散变量序列,有着与连续变量函数类似的定理,这里 F \mathcal{F} F 表示离散傅里叶变换算子,设两个序列 g [ n ] g[n] g[n] h [ n ] h[n] h[n] 的傅里叶变换为 G G G H H H
G ( f ) ≜ F { g } ( f ) = ∑ n = − ∞ ∞ g [ n ] ⋅ e − i 2 π f n    , f ∈ R H ( f ) ≜ F { h } ( f ) = ∑ n = − ∞ ∞ h [ n ] ⋅ e − i 2 π f n    . f ∈ R \begin{aligned} G(f) &\triangleq \mathcal{F}\{g\}(f) = \sum_{n=-\infty}^{\infty} g[n]\cdot e^{-i 2\pi f n}\;, \quad f \in \mathbb{R}\\ H(f) &\triangleq \mathcal{F}\{h\}(f) = \sum_{n=-\infty}^{\infty} h[n]\cdot e^{-i 2\pi f n}\;. \quad f \in \mathbb{R} \end{aligned} G(f)H(f)F{g}(f)=n=g[n]ei2πfn,fRF{h}(f)=n=h[n]ei2πfn.fR

序列 g g g h h h 的离散卷积的定义为:

r [ n ] ≜ ( g ∗ h ) [ n ] = ∑ m = − ∞ ∞ g [ m ] ⋅ h [ n − m ] = ∑ m = − ∞ ∞ g [ n − m ] ⋅ h [ m ] . r[n] \triangleq (g * h)[n] = \sum_{m=-\infty}^\infty g[m]\cdot h[n - m] = \sum_{m=-\infty}^\infty g[n-m]\cdot h[m]. r[n](gh)[n]=m=g[m]h[nm]=m=g[nm]h[m]. ( g ∗ h ) [ n ] (g * h)[n] (gh)[n]也可以表示为 g [ n ] ∗ h [ n ] g[n]*h[n] g[n]h[n]

离散序列的卷积定理为:

R ( f ) = F { g ∗ h } ( f ) =   G ( f ) H ( f ) R(f) = \mathcal{F}\{g * h\}(f) =\ G(f) H(f) R(f)=F{gh}(f)= G(f)H(f) \quad
R ( ω ) = F { g ∗ h } ( ω ) =   G ( ω ) H ( ω ) R(\omega) = \mathcal{F}\{g * h\}(\omega) =\ G(\omega) H(\omega) R(ω)=F{gh}(ω)= G(ω)H(ω)

证明

本证明来自劉奕文教授的Lecture《The Discrete-Time Fourier Transform and
Convolution Theorems: A Brief Tutorial》(pdf)

Y ( ω ) = ∑ n = − ∞ ∞ y [ n ] e − j ω n = ∑ n = − ∞ ∞ ( ∑ m = − ∞ ∞ g [ m ] ⋅ h [ n − m ] ) e − j ω n = ∑ m = − ∞ ∞ g [ m ] ( ∑ m = − ∞ ∞ h [ n − m ] e − j ω n ) = ∑ m = − ∞ ∞ g [ m ] ( ∑ m = − ∞ ∞ h [ n − m ] e − j ω ( n − m )   e − j ω ( m ) ) = ∑ m = − ∞ ∞ g [ m ] e − j ω ( m ) ( ∑ m = − ∞ ∞ h [ n − m ] e − j ω ( n − m ) ) = ∑ m = − ∞ ∞ g [ m ] e − j ω ( m ) H ( ω ) = G ( ω ) H ( ω ) \begin{aligned} Y(\omega) &= {\sum_{n=-\infty}^\infty }y[n]e^{-j\omega n} \\ &={\sum_{n=-\infty}^\infty } \Bigg( {\sum_{m=-\infty}^\infty } g[m] \cdot h[n-m] \Bigg)e^{-j\omega n} \\ &={\sum_{m=-\infty}^\infty } g[m] \Bigg( {\sum_{m=-\infty}^\infty } h[n-m] e^{-j\omega n} \Bigg) \\ &={\sum_{m=-\infty}^\infty } g[m] \Bigg( {\sum_{m=-\infty}^\infty } h[n-m] e^{-j\omega (n-m)}\, e^{-j\omega (m)}\Bigg) \\ &={\sum_{m=-\infty}^\infty } g[m] e^{-j\omega (m)} \Bigg( {\sum_{m=-\infty}^\infty } h[n-m] e^{-j\omega (n-m)} \Bigg) \\ &={\sum_{m=-\infty}^\infty } g[m] e^{-j\omega (m)} H(\omega) \\ &=G(\omega) H(\omega) \\ \end{aligned} Y(ω)=n=y[n]ejωn=n=(m=g[m]h[nm])ejωn=m=g[m](m=h[nm]ejωn)=m=g[m](m=h[nm]e(nm)e(m))=m=g[m]e(m)(m=h[nm]e(nm))=m=g[m]e(m)H(ω)=G(ω)H(ω) ■ \blacksquare

小结

上述为时域卷积定理的公式及证明,频域卷积定义与之类似。所以离散变量序列的卷积定理为:

时域卷积定理为: F [ g ∗ h ] = G ( ω ) ⋅ H ( ω ) \mathcal{F}[g*h]=G(\omega) \cdot H(\omega) F[gh]=G(ω)H(ω)

频域卷积定理为: F [ g ⋅ h ] = 1 2 π   G ( ω ) ∗ H ( ω ) \mathcal{F}[g\cdot h]={\frac1 {2\pi}} \, G(\omega) * H(\omega) F[gh]=2π1G(ω)H(ω)

  • 24
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
时域卷积定理在Matlab中的实现可以通过以下步骤进行: 1. 定义输入信号x1和x2,例如 x1=[1 2 3 4 5] 和 x2=[2 3 4 5 6]。 2. 对x1和x2进行傅里叶变换,使用fft函数,得到频域表示yx1和yx2。 3. 对x1和x2进行圆周卷积,可以使用cconv函数,指定卷积结果的长度为5,得到卷积结果xx。 4. 对卷积结果xx进行傅里叶变换,使用fft函数,得到频域表示fftxx。 5. 对yx1和yx2进行fftshift操作,将频域表示的零频率移到中心。 6. 将yx1和yx2相乘,得到test。 下面是Matlab代码的示例: ```matlab x1 = [1 2 3 4 5]; x2 = [2 3 4 5 6]; yx1 = fft(x1); yx2 = fft(x2); xx = cconv(x1, x2, 5); fftxx = fft(xx); test = fftshift(yx1) .* fftshift(yx2); ``` 这段代码实现了时域卷积定理的验证,其中使用了傅里叶变换和圆周卷积函数。最后得到的test和fftxx应该是相同的,验证了时域卷积定理在Matlab中的应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MATLAB 验证时域频域卷积定理](https://blog.csdn.net/u012140304/article/details/89785130)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [用MATLAB验证时频定理](https://download.csdn.net/download/weixin_44997458/11158307)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值