Fourier变换及其逆变换
在我们已经讨论过的Fourier级数中,我们能够取三角函数的一个周期[−π,π]对任何周期为2π的函数做Fourier展开。现在假设函数的周期不是2π而是一般地具有有限周期2T,那么很自然地我们可以对三角函数做伸缩,用sinπTx和cosπTx的三角级数做展开,得到:fT(x)∼a02+∞∑n=1[ancos(nπTx)+bnsin(nπTx)]。其中,an=1T∫T−TfT(x)cos(nπTx)dx,bn=1T∫T−TfT(x)sin(nπTx)dx。而对于非周期函数,我们总可以选定一段定义域区间[−T,T]而抛弃其余的部分,取而代之选定区间的部分从而把它“延拓”为周期函数,而对于周期函数我们可以写出其Fourier级数,这之后再令T→+∞就可以得到一般非周期函数的Fourier展开。
我们常常用复指数来表示三角函数,这样会得到更简洁的形式。由欧拉公式有cosθ=eiθ+e−iθ2,sinθ=eiθ−e−iθ2i=−i2(eiθ−e−iθ)。记πT=ω,得到fT(x)∼a02+∞∑n=1(an⋅einωx+e−inωx2−ibn⋅einωx−e−inωx2)=a02+∞∑n=1(an−ibn2einωx+an+ibn2e−inωx)。记an−ibn=cn,则an+ibn=¯¯¯¯¯cn。代入an,bn的表达式,得到cn=1T∫T−TfT(x)[cos(nπTx)−isin(nπTx)]dx=1T∫T−TfT(x)e−inωxdx。那么现在整个Fourier级数可以写成fT(x)∼a02+12∞∑n=1(cneinωx+¯¯¯¯¯cne−inωx)。为了写法上的方便,我们记¯¯¯¯¯cn=c−n,同时c0=a0。那么写出fT(x)∼12+∞∑n=−∞cneinωx,这就是Fourier级数的复数形式。
代入cn,得到fT(x)∼12T+∞∑n=−∞[∫T−TfT(x)e−inωxdx]einωt。现在令T→+∞。代入T=πω,那么ω→0。得到f∞(x)∼limω→0ω2π+∞∑n=−∞[∫+T−TfT(x)e−inωxdx]einωt,而求和的部分形如Riemann和的形式,因此在形式上对一般的函数f可以写出f(x)∼12π∫+∞−∞[∫+∞−∞f(x)e−iωxdx]eiωtdω。可以观察到,内层的积分和外层的积分有着非常相似的形式,内层积分对于每个ω都得到一个值,形成了一个关于“频率”ω的函数,这个函数在外层积分的作用后又会恢复到f本身。从一个函数到另一个函数的过程就是“变换”(transform),我们定义函数^f(ω)=∫+∞−∞f(x)e−iωxdx为f的Fourier变换,记为F[f](ω)。定义12π∫+∞−∞^f(ω)eiωxdω为Fourier变换的逆变换,记为F−1[^f](x)。在一定的条件下,可以认为f(x)=F−1[F[f]],其中F−1[F[f]]=12π∫+∞−∞[∫+∞−∞f(x)e−iωxdx]eiωtdω就称为Fourier积分。可以证明(略)如下充分条件:如果f在(−∞,+∞)上绝对可积且在任何闭区间上分段可导,那么f的Fourier积分等于f本身。
Fourier变换的性质
根据定义F[f](ω)=∫+∞−∞f(x)e−iωxdx,可以证明Fourier变换(以及逆变换F−1[^f]=12π∫+∞−∞^f(ω)eiωxdω)具有如下性质:
①线性性:F[c1f+c2g](ω)=c1F[f](ω)+c2F[g](ω);F−1[c1^f+c2^g](x)=c1F−1[^f](x)+c2F−1[^g](x)。这本质上就是积分的线性性。
②平移性质:F[f(x±x0)](ω)=F[f(x)](ω)⋅e±iωx0;F−1[^f(ω±ω0)](x)=F−1[^f(ω)](x)⋅e∓iω0x。eiωx一项是积分的换元法产生的结果。
③伸缩性质:F[f(ax)](ω)=1|a|F[f(x)](ωa);F[1af(xa)](ω)=F[f(x)](aω)。这本质上也是积分的换元法。
④微分性质:若limx→∞f(x)=0且f,f′绝对可积,则F[f′](ω)=iω⋅F[f](ω);若f,xf绝对可积,则F[−ix⋅f](ω)=[F[f]]′(ω)。这本质上是分部积分法。
⑤卷积的Fourier变换:f,g的卷积定义为(f∗g)(x)=∫+∞−∞f(t)g(x−t)dt。若f,g绝对可积,则F[f∗g]=F[f]⋅F[g]。也就是说:卷积的Fourier变换等于各自Fourier变换的乘积。
⑥Parseval等式:∫+∞−∞[f(x)]2dx=12π∫+∞−∞|^f(ω)|2dω
离散Fourier变换
用离散的求和来近似Fourier变换,我们在f(x)上选取N个点x0,⋯,xN−1,我们称以下变换为离散Fourier变换:D[x](j)=X(j)=N−1∑n=0xne−2πijnN。我们选取的离散形式下基e−2πinN⋅k是内积∑()()意义下的正交基:1NN−1∑n=0e−2πinjNe−2πinkN=δj,k。由此可以验证离散Fourier逆变换D−1[X](k)=1NN−1∑j=0X(j)e2πijkN满足:1NN−1∑j=0X(j)e2πijkN=1NN−1∑j=0N−1∑n=0xne−2πijnNe2πijkN=N−1∑n=0xnN−1∑j=0[1Ne−2πijnNe2πijkN]=N−1∑n=0xnδn,k=xk。
Fourier变换有这样的性质,如果被变换的函数本身是由几个基频的三角函数叠加而成,那么变换后的函数只会在基频附近得到一个模长较大的峰。由此可以对任意函数做谱的分解。在数字信号传输中,如果应用离散Fourier变换,我们只需关注模长较大的那些Xj就可以基本正确地还原出原始数据,这使得信号传输的效率大大提高。同时,1960年代人们也发现了O(nlogn)完成离散Fourier变换计算的方法,称为快速Fourier变换(FFT),见算法课的笔记[分治]。
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现