傅里叶级数的复数形式
推导
在傅里叶级数章节中,我们已知一个周期为 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θ+e−iθ)sinθ=−12i(eiθ−e−iθ),代入傅里叶级数的表达式中就有
f(t)=a02+∞∑n=1[an2(einωt+e−inωt)–ibn2(einωt−e−inωt)]=a02+∞∑n=1[an−ibn2einωt+an+ibn2e−inωt]=a02+∞∑n=1an−ibn2einωt+∞∑n=1an+ibn2e−inωt=0∑n=0a02einωt+∞∑n=1an−ibn2einωt+−1∑n=−∞a−n+ib−n2einωt(令n为−n)=∞∑n=−∞cneinωt
这里,cn={a02n=0an−ibn2n>0a−n+ib−n2n<0,根据常数项 an,bn 在非傅里叶级数中的公式可知 {a0=2T∫T0f(t)dtan=2T∫T0f(t)cosnωtdtbn=2T∫T0f(t)sinnωtdt,代入 cn 的表达式就有
cn={a02=12⋅2T∫T0f(t)dt=1T∫T0f(t)dtn=0an−ibn2=12⋅(2T∫T0f(t)cosnωtdt–i2T∫T0f(t)sinnωtdt)=1T∫T0f(t)(cosnωt–isinnωt)dt=1T∫T0f(t)(cos(−nωt)+isin(−nωt))dt(奇偶性)=1T∫T0f(t)e−inωtdt(欧拉公式)n>0a−n+ib−n2=12⋅(2T∫T0f(t)cos(−nωt)dt+i2T∫T0f(t)sin(−nωt)dt)=1T∫T0f(t)e−inωtdtn<0
注意到 n>0,n<0 两种情况的积分是完全一致的,所以
cn={1T∫T0f(t)dtn=01T∫T0f(t)e−inωtdtn≠0=1T∫T0f(t)e−inωtdt
结论
根据上方推导,我们可以得出结论:对于一个周期为 T 的函数 f(t),可以展开为傅里叶级数的复数形式
f(t)=∞∑n=−∞cneinωt
其中
cn=1T∫T0f(t)e−inωtdt
傅里叶变换
傅里叶变换 (FT)
上文已经得出了傅里叶级数的复数形式,即一个周期为 T 的函数 fT(t) 可以展开为
f(t)=∞∑n=−∞cneinωt=∞∑n=−∞(1T∫T2−T2f(t)e−inωtdt)einωt
对于这个式子,我们可以将 nω 视作一个整体,也就是说傅里叶级数实际上是在枚举不同频率 ⋯,1ω,2ω,⋯,nω,⋯。可以想象一个数轴,该数轴上的点均为 nω,每个点的值对应一个复数 cn。根据该思想,记 ω0=2πT(这个参数也被称为是基频率),那么傅里叶级数就是在枚举基频率 ⋯,1ω0,2ω0,⋯,nω0,⋯,于是傅里叶级数就可以用基频率表示为
f(t)=∞∑n=−∞cneinω0t=∞∑n=−∞(1T∫T2−T2f(t)e−inω0tdt)einω0t
对于一个非周期函数 f(t),我们能否也将其展开为傅里叶级数呢?答案就是傅里叶变换,我们可以将这个非周期函数 f(t) 视作一个周期为 ∞ 的 “周期函数”。当 T→∞ 时,ω0→0,此时对于基频率 ω0 的枚举就从一个离散函数变成了一个连续函数。
记 Δω=(n+1)ω0–nω0=ω0=2πT,ω=nω0 则
f(t)=∞∑n=−∞(1T∫T2−T2f(t)e−inω0tdt)einω0t=∞∑n=−∞Δω2π∫T2−T2f(t)e−iωtdt⋅eiωt=12π∫∞−∞∫∞−∞f(t)e−iωtdt⋅eiωtdω(T→∞,ω→0)
这里可以类比定积分的几何意义(在区间 [a,b] 内均匀地取 n−1 个分点 a=x0<x1<⋯<xn=b,记 Δxi=xi−xi−1,ξi∈(xi−1,xi),则 ∫baf(x)dx=limn→∞∑ni=1f(ξi)Δxi),只不过上下限都变成了无穷(不定积分)。
记 F(ω)=∫∞−∞f(t)e−iωtdt,该式就是傅立叶变换,而 f(t)=12π∫∞−∞F(ω)eiωtdω 就是逆傅里叶变换。
离散傅里叶变换(DFT)
在实际应用中,我们很难做到对连续函数做傅里叶变换,但是可以对函数进行采样,然后做离散傅里叶变换,公式为
Xk=N−1∑n=0xne−i2πNnk
假设我们已知序列 x0,x1,⋯,xN−1 的值,那我们根据离散傅里叶变换公式就能求出对应的 X0,X1,⋯,Xn−1 了。这里 N 是所分析函数 / 信号的长度(采样区间),x0,x1,⋯,xN−1 可以视作是我们对连续信号的离散采样。
同理存在离散傅里叶逆变换
xk=1NN−1∑n=0Xnei2πNnk
Xk=N−1∑n=0xnWnN,k
实际上,这就是在求一个多项式 f(t)=x0+x1t+x2t2+⋯+xN−1tN−1 在 N 阶单位根构成的群上的点值表示,这个问题可以用 Cooley–Tukey 算法等优化至 O(NlogN) 的复杂度,也就是快速傅里叶变换(FFT)。