傅里叶变换的差分矩阵

                     

贡献者: 零穹; addis

  • 缺参考文献和傅里叶变换相关的预备知识
  • 本文和离散傅里叶变换是什么关系?是否重复
预备知识 导数近似之差分矩阵算法

   差分矩阵 D 和数据点矢量 u 矩阵乘法 Du 给出数据点处的近似导数。本文将给出基于傅里叶变换给出的差分矩阵。

1. 傅里叶变换回顾

连续区间上的傅里叶变换

   由正交函数系中的例 3 可知,函数 u(x),xR 的傅里叶变换定义为

(1)u^(k):=eikxu(x)dx,kR. 
而从 u^ 的逆傅里叶变换可以重构 u
(2)u(x)=12πeikxu^(k)dk. 
这被称为傅里叶合成(Fourier synthesis),变量 x 称为物理变量(physical variable),k 称为傅里叶变量(Fourier variable)或波数(wavenumber)。

离散点上的傅里叶变换

   无界情形

   当限定 xhZ 时,即此时 x 只能取离散点,那么只要 k1k2=2πh,就有 eik1x=eik2x 对所有的 x 成立。这使得对任意复指数 eikx,有无穷多个复指数和它在 hZ 上具有相同的值。这一现象被称为混叠。为了保持式 1 中傅里叶变换 u^(k) 的单值性,需要将 k 限制在长为 2πh 的区间上。因此,我们可以选择 k 的取值区间为 [π/h,π/h]。注意到 x 是物理变量,k 是傅里叶变量,因此我们可以将这些结果总结为下面的图示:

(3)物理空间:离散,无界:xhZ傅里叶空间:有界,连续:k[π/h,π/h] 
因此,在无界离散的情形,傅里叶变换及其逆变换式 1 式 2 应当写为下面的级数和:
(4)u^(k)=hi=eikxiu(xi),k[π/h,π/h],u(xj)=12ππ/hπ/heikxju^(k)dk,xj=jh,jZ. 
这被称为半离散傅里叶变换

   周期性情形

   当限制 u(xi)xi 具有周期 2L 时,即 u(xi+2L)=u(xi),那么为了 u 的单值性,限定 xi[0,2L]。设 xiN 个(本词条将始终假定 N 为偶数),于是 xj{h,,Nh=2L},其中 h:=2LN。仍记 xj:=jh,j{1,,N}。和无界情形一样的理由,k 应当限制在 [π/h,π/h]=[Nπ2L,Nπ2L] 上。此外由于周期性,应当认为点 x+2L 和点 x 是同一个。因此 eik(x+2L)=eikx,从而

(5)2Lk=2nπk=nπL,nZ. 
结合 k[Nπ2L,Nπ2L],有
(6)k{(N2+1)πL,(N2+2)πL,,N2πL}. 
注意这里用到了 N2πL,N2πL 对应相同的 eikx。这些结果可以总结为下面的图示:
(7)物理空间:离散,有界:x{h,,2L}傅里叶空间:有界,离散:k{(N2+1)πL,(N2+2)πL,,N2πL}. 
相应的,傅里叶变换和逆变换的公式写为下面的级数和,
(8)u^(k)=hi=1NeikπLxiu(xi),k{(N2+1),(N2+2),,N2},u(xj)=12Lk=N2+1N2eikπLxju^(k),j{1,,N}. 
这被称为离散傅里叶变换

2. 插值函数

无界情形

   假若我们有定义在 xihZ 上的数据 ui=u(xi),那么式 4 将会给我们插值函数:

   1.通过式 4 的第一式我们可以获得 u^(k),它关于 k 是可微的;

   2.而式 4 的第二式可以确定一个函数

(9)p(x)=12ππ/hπ/heikxu^(k)dk,xR. 
显然 p(x) 满足 p(xi)=ui,并且 p(x) 是可微的。因此可以用 p(x) 的导数来近似 u(x) 的导数。p(x) 给了我们一个插值公式。

   由式 9 ,只需令 u^(k) 仅在 [π/h,π/h] 上不为零。那么式 9 的积分下限和上限就可以变到 ,。因此由式 1 式 2 可知 p(x) 的傅里叶变换为

(10)p^(k)={u^(k),k[π/h,π/h],0,k[π/h,π/h]. 
由于这一点,式 9 p(x) 被称为是 v有限带宽插值函数。这一术语暗示着 p 的傅里叶变换仅在 [π/h,π/h] 上不为 0(仅在某一区域 U 上不为 0 的函数往往称为具有支撑,U 称为它的支撑集。若 U 还是拓扑意义上的紧集,又被称为具有紧支撑)。

周期情形

   假设数据定义在 xi=ih,i{1,N},h=2LN 上,ui=u(xi)。那么:

   1.通过式 8 的第一式我们可以获得 u^(k).

   2.而式 8 的第二式可以确定一个函数(为了更对称的处理,并考虑到 eikπLxk=N2,N2 相等)

(11)p(x)=12Lk=N2N2eikπLxu^(k), 
其中 表示求和在 N/2,N/2 处需要乘 1/2。显然 p(x) 满足 p(xi)=ui,并且 p(x) 是可微的。因此可以用 p(x) 的导数来近似 u(x) 的导数。p(x) 便是需要的插值公式。

3. 导数近似算法

无界情形

   有了式 9 的插值函数 p(x),我们就可以进行导数近似了:

   1.给定定义在 hZ 上的函数 u,利用式 9 确定它的有限带宽函数 p(x)

   2.令 wj=p(xj),则 wj 就是 uxj 处的近似导数。

   当然,我们还有另一等价的方式来描述,它是在傅里叶空间中表述的:式 2 x 微分得

(12)u(x)=12πikeikxu^(k)dk,xR. 
由傅里叶正反变换的关系式 1 式 2 可得
(13)u^(k)=iku^(k). 
因此我们得到另一等价的导数近似程序:

   1.给定 u,利用式 4 的第一式计算它的离散傅里叶变换 u^

   2.定义 w^(k)=iku^(k);

   3.利用式 4 的第二式从 w^ 计算 w。这即得到在给定点的导数近似。

周期情形

   周期情形的程序为:

   1.给定定义在 {h,,Nh=2L}xi=ih,i=1,,N)上的函数 u,利用式 11 确定它的插值函数 p(x)

   2.令 wj=p(xj),则 wj 就是 uxj 处的近似导数。

4. 差分矩阵

无界情形

   由式 4 可知,若 u(x)=jajfj(x)aiC,那么

(14)u^(k)=hi=eikxi(jajfj(xi))=jaj(hi=eikxifj(xi))=jajf^j(k). 
即傅里叶变换是线性的。而任意的离散点 u(xj) 都可以用 Kronecker Delta 函数(xj=jh
(15)δ(x)={1,x=0,0,x0. 
表示为 u(xj)=m=u(xm)δ(xjxm)。因此,若知道 δ(xxm) 的傅里叶变换 δ^m(k),则式 4 的第一式就为
(16)u^(k)=m=u(xm)δ^m(k). 
从而式 9 p(x) 成为
(17)p(x)=12ππ/hπ/heikxu^(k)dk=m=u(xm)12ππ/hπ/heikxδ^m(k)dk. 

   而

(18)δ^m(k)=hi=eikxiδ(xixm)=heikxm. 
所以
(19)p(x)=m=u(xm)h2ππ/hπ/heik(xxm)dk=m=u(xm)h2πeiπh(xxm)eiπh(xxm)i(xxm)=m=u(xm)hπsin(πh(xxm))xxm=m=u(xm)sinc(πh(xxm)), 
其中 sinc(x):=sinxx。从而
(20)wj=p(xj)=m=u(xm)sinc(πh(xxm))|x=xj=jh. 
因为 x0 时,
(21)sinc(x)=(sinxx)=xcosxsinxx2, 
sinc0=0,所以 xxm
(22)sinc(πh(xxm))|x=xj=jh=πhsinc[(jm)π]=(1)jm(jm)h. 
所以式 20 成为
(23)wj=p(xj)=m=,mj(1)jm(jm)hu(xm). 
该式表明,若已知数据点 ui=u(xi),iZ,则其对应的导数可由上式求得。由子节 2 中差分矩阵的概念,即差分矩阵和数据点矢量的矩阵乘法给出数据点的近似导数,因此我们得到定义在 hZ 上对应的差分矩阵,其是无穷阶的(式 23 表明对应指标(j,m) 的矩阵元为 (1)jm(jm)h,容易验证其是Toeplitz 矩阵):
(24)h1(1/31/21011/21/3). 

周期情形

   同样的,式 11 可以写为

(25)p(x)=12Lk=N2N2eikπLxu^(k)=12Lm=1Nu(xm)k=N2N2eikπLxδ^m(k),  
(26)δ^m(k)=hi=1NeikπLxiδ(xixm)=heikπLxm. 
所以
(27)p(x)=h2Lm=1Nu(xm)k=N2N2eikπL(xxm)=h2Lm=1Nu(xm)(12k=N2N21eikπL(xxm)+12k=N2+1N2eikπL(xxm))=h2Lm=1Nu(xm)cos(π2L(xxm))k=N2+1/2N21/2eikπL(xxm)=h2Lm=1Nu(xm)cos(π2L(xxm))ei(N/2+1/2)πL(xxm)ei(N/2+1/2)πL(xxm)1eiπL(xxm)=h2Lm=1Nu(xm)cos(π2L(xxm))eiNπ2L(xxm)eiNπ2L(xxm)eiπ2L(xxm)eiπ2L(xxm)=h2Lm=1Nu(xm)cos(π2L(xxm))sin(Nπ2L(xxm))sin(π2L(xxm))=m=1Nu(xm)sin(Nπ2L(xxm))2Lhtan(π2L(xxm)). 

   由

(28)ddx(sin(Nπ2L(xxm))2Lhtan(π2L(xxm)))|x=xj={0,j=mπ2L(1)(jm)cot[π(jm)/N],jm 

   从而

(29)wj=p(xj)=π2Lm=1,mjN(1)(jm)cot[π(jm)/N]u(xm) 
因此,差分矩阵为
(30)π2L(0cot(π/N)cot(2π/N)cot((N1)π/N)cot(π/N)cot(2π/N)cot((N1)π/N)). 


致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利