傅里叶变换

傅里叶级数的复数形式

推导

傅里叶级数章节中,我们已知一个周期为 2l 的周期函数可以展开为

f(x)=a0+i=1aicosiπxl+i=1bisiniπxl

为了方便起见,我们作如下定义:常数项 a0 记作 a02,设周期 T=2l,记 ω=2πT,则有

f(t)=a02+n=1ancosnωt+n=1bnsinnωt

根据欧拉公式 eiθ=cosθ+isinθ 的推论 {cosθ=12(eiθ+eiθ)sinθ=12i(eiθeiθ),代入傅里叶级数的表达式中就有

f(t)=a02+n=1[an2(einωt+einωt)ibn2(einωteinωt)]=a02+n=1[anibn2einωt+an+ibn2einωt]=a02+n=1anibn2einωt+n=1an+ibn2einωt=0n=0a02einωt+n=1anibn2einωt+1n=an+ibn2einωt(nn)=n=cneinωt

这里,cn={a02n=0anibn2n>0an+ibn2n<0,根据常数项 an,bn 在非傅里叶级数中的公式可知 {a0=2TT0f(t)dtan=2TT0f(t)cosnωtdtbn=2TT0f(t)sinnωtdt,代入 cn 的表达式就有

cn={a02=122TT0f(t)dt=1TT0f(t)dtn=0anibn2=12(2TT0f(t)cosnωtdti2TT0f(t)sinnωtdt)=1TT0f(t)(cosnωtisinnωt)dt=1TT0f(t)(cos(nωt)+isin(nωt))dt()=1TT0f(t)einωtdt()n>0an+ibn2=12(2TT0f(t)cos(nωt)dt+i2TT0f(t)sin(nωt)dt)=1TT0f(t)einωtdtn<0

注意到 n>0,n<0 两种情况的积分是完全一致的,所以

cn={1TT0f(t)dtn=01TT0f(t)einωtdtn0=1TT0f(t)einωtdt

结论

根据上方推导,我们可以得出结论:对于一个周期为 T 的函数 f(t),可以展开为傅里叶级数的复数形式

f(t)=n=cneinωt

其中

cn=1TT0f(t)einωtdt

傅里叶变换

傅里叶变换 (FT)

上文已经得出了傅里叶级数的复数形式,即一个周期为 T 的函数 fT(t) 可以展开为

f(t)=n=cneinωt=n=(1TT2T2f(t)einωtdt)einωt

对于这个式子,我们可以将 nω 视作一个整体,也就是说傅里叶级数实际上是在枚举不同频率 ,1ω,2ω,,nω,。可以想象一个数轴,该数轴上的点均为 nω,每个点的值对应一个复数 cn。根据该思想,记 ω0=2πT(这个参数也被称为是基频率),那么傅里叶级数就是在枚举基频率 ,1ω0,2ω0,,nω0,,于是傅里叶级数就可以用基频率表示为

f(t)=n=cneinω0t=n=(1TT2T2f(t)einω0tdt)einω0t

对于一个非周期函数 f(t),我们能否也将其展开为傅里叶级数呢?答案就是傅里叶变换,我们可以将这个非周期函数 f(t) 视作一个周期为 的 “周期函数”。当 T 时,ω00,此时对于基频率 ω0 的枚举就从一个离散函数变成了一个连续函数。

Δω=(n+1)ω0nω0=ω0=2πTω=nω0

f(t)=n=(1TT2T2f(t)einω0tdt)einω0t=n=Δω2πT2T2f(t)eiωtdteiωt=12πf(t)eiωtdteiωtdω(T,ω0)

这里可以类比定积分的几何意义(在区间 [a,b] 内均匀地取 n1 个分点 a=x0<x1<<xn=b,记 Δxi=xixi1ξi(xi1,xi),则 baf(x)dx=limnni=1f(ξi)Δxi),只不过上下限都变成了无穷(不定积分)。

F(ω)=f(t)eiωtdt,该式就是傅立叶变换,而 f(t)=12πF(ω)eiωtdω 就是逆傅里叶变换

离散傅里叶变换(DFT)

在实际应用中,我们很难做到对连续函数做傅里叶变换,但是可以对函数进行采样,然后做离散傅里叶变换,公式为

Xk=N1n=0xnei2πNnk

假设我们已知序列 x0,x1,,xN1 的值,那我们根据离散傅里叶变换公式就能求出对应的 X0,X1,,Xn1 了。这里 N 是所分析函数 / 信号的长度(采样区间),x0,x1,,xN1 可以视作是我们对连续信号的离散采样。

同理存在离散傅里叶逆变换

xk=1NN1n=0Xnei2πNnk

从离散傅里叶变换 (DFT) 到快速傅里叶变换 (FFT)
对于离散傅里叶变换,如果用 N 阶单位根(WN,k=ei2πNk)代入,则
Xk=N1n=0xnWnN,k
实际上,这就是在求一个多项式 f(t)=x0+x1t+x2t2++xN1tN1N 阶单位根构成的群上的点值表示,这个问题可以用 Cooley–Tukey 算法等优化至 O(NlogN) 的复杂度,也就是快速傅里叶变换(FFT)。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇