分享

漫步线性代数二十

 imelee 2017-11-23

快速傅里叶变换

傅里叶分析是一个很美妙的理论,而且它还很实用。在频域分析波形可以很好的将信号分离开来,相反的过程又能回到时域中。处于物理和数学的缘故,指定实用指数函数,我们感觉最主要的原因就是:如果我们对eikx求导、积分或将x变成x+h,结果依然是eikx的倍数,指数函数非常适用于微分方程,积分方程和差分方程,每个频域分量有自己的运作方式,就像特征值一样,然后阿门重新组合得到问题的解。信号的分析和合成(从y中计算c,从c中计算y)是科学计算的中心问题。

我们想要展示Fc,F1y计算非常快,关键点就是F4F2的关系:

F4=11111ii2i31i2i4i81i3i6i9F2=11111111

F4包含w4=i,1的四次根,F2包含w2=1,1的平方根。注意F2有一半的元素都是零,做两次2×2的变换仅需要直接进行4×4变换时间的一半,如果64×64变化可以用两个32×32变换替换,那么运行时间将减少一般。之所有能够如此,原因在于w64w32之间存在一个简单的联系:

(w64)2=w32,(e2πi/64)2=e2πi/32

从圆上的点看,32次根是64次根的两倍,如果w64=1,那么(w2)32=1,如果mn的一半,那么m次根是n 次根的平方:

m=12n,w2n=wm(1)

FFT的速度取决于像210=1024这样的合数。如果没有快速变换,那么F 乘以c就需要(1024)2次乘法,相比之下,快速变换只需要51024 步,整整快了200倍。一般来讲,当n=2时,我们用12n代替n2,我们先将Fn和两个Fn/2联系起来,然后在和四个Fn/4 联系起来,如此不断进行下去最后可以得出很小的F,通常来讲n2步会减到12nlogn2

我们现在看看y=Fnc(一个有n个元素的向量)如何从两个只有一半长度的向量中恢复回来。第一步是将c分成奇数和偶数两部分:

c=(c0,c2,,cn2)c′′=(c1,c3,,cn1)

利用这两个向量,我们变换y=Fmc,y′′=Fmc′′,这两个乘法的矩阵Fm比原来要小。现在问题变成如何从y,y′′ 中恢复y,Cooley和Tukey注意到了如何求解这个问题:

33、向量y=Fnc的前m项和后m项是

yj=yj+wjny′′j,yj+m=yjwjny′′j,j=0,,m1j=0,,m1(2)

因此第三步就是:将c分成c,c′′,用Fm将他们变成y,y′′并且利用(13)进行重构。

这种不断分半的想法可以一直重复进行,例如从F1024F512再到F256,如果我们从n=2开始到一直到n=1,那么最终的计数是12n。另一种计算方法是:从n=2n=1需要 步,每一步需要n/2次乘法,相当于是Fn的一个分解:

F1024=[I512I512D512D512][F512F512][](3)

所需的代价近似是线性的,傅里叶分析完全可以用FFT进行转换,为了证实方程(13),我们将yi分成奇数项和偶数项:

yi=k=0n1wjknckk=0m1w2jknc2k+k=0m1w(2k+1)jnc(2k+1)

右边的两个和式分别有m=12n项。因为w2n=wm,所以这两个和式子可以表示为:

yj=k=0m1wjkmck+wjnk=0m1wjkmc′′k=yj+wjny′′j(4)

在方程(13)的第二部分,j+m部分有一个符号的变化:

在和式里面,因为wkmm=1k=1,所以wk(j+1)m依然为wkjm;在外面,因为wmn=e2πim/n=eπi=1,所以wj+mn=wjn

FFT的想法用其他的素数n代替后就得到一个新版本,如果n本身是一个素数,那么将会有一个全新的算法。

例1:从n=4n=2

c0c1c2c3c0c2c1c3[F2cF2c′′][y]

因为每步都是线性的,所以从一个矩阵开始,这些矩阵的乘积也必须是F4

11111ii2i31i2i4i61i3i6i9=111111ii111111111111(5)

我们可以看出中间的是两个F2,右边是将c分成c,c′′的置换矩阵,左边是用乘以wjn的矩阵。如果我们从F8开始,那么中间的矩阵就是两个F4,所以FFT相当于傅里叶矩阵的因式分解!n2个非零向量矩阵F近似为=logn2个矩阵(他们有n个非零元素)相乘的结果。

FFT

FFT的第一步是将Fn的乘法变成两个Fm的乘法,偶数项(c0,c2)从奇数项(c1,c3)中分离出来,如1给出了n=4时的流图(flow graph)。对于n=8,只要用F2代替F4 即可。新元素w4=i是老元素w=w8=e2πi/8 的平方,流图给出了c进入FFT的顺序。

每一步需要12n次乘法,所以最终需要12nlogn


这里写图片描述
图2

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多