为什么等于 快速傅立叶反变换变换(FFT)的乘

(window.slotbydup = window.slotbydup || []).push({
id: '4540180',
container: s,
size: '250,200',
display: 'inlay-fix'
热门资料排行
添加成功至
资料评价:
所需积分:0君,已阅读到文档的结尾了呢~~
豆丁精品文档: 快速傅里叶变换 快速傅里叶变换公式 快速傅里叶变换原理 快速傅里叶变换程序 快速傅里叶变换代码 快速傅里叶变换算法 快速傅里叶逆变换 傅里叶变换 离散傅里叶变换 matlab 傅里叶变换
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
FFT快速傅里叶变换
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口快速傅里叶变换和离散傅里叶变换的主要区别是什么?哪个准确?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
快速傅里叶变换和离散傅里叶变换的主要区别是什么?哪个准确?
我有更好的答案
也对参与运算的样本序列作出了限制,即要求样本数为2^N点。离散傅里叶变换DFT则无上述限制。小结:FFT快;2点的DFT变换组合成一个N点的DFT变换,把一个N项序列(设N=2k,每个N/2点DFT变换需要(N&#47,即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,两者准确度相同。这样变换以后,总的运算次数就变成N+2*(N/2)^2=N+N^2&#47,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的 发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。在FFT中,利用WN的周期性和对称性,DFT灵活,k为正整数),分为两个N/2项的子序列,各有优点,如果满足分析要求;2)2次运算,再用N次运算把两个N/2。FFT提高了运算速度,但是FFT(Fast Fourier Transformation)
采纳率:88%
来自团队:
为您推荐:
其他类似问题
您可能关注的内容
离散傅里叶变换的相关知识
换一换
回答问题,赢新手礼包什么是快速傅立叶变换?它的公式是怎样的?
什么是快速傅立叶变换?它的公式是怎样的?
08-09-05 &
快速傅立叶变换  快速傅氏变换 英文名是fast Fourier transform  快速傅氏变换(FFT)是离散傅氏变换(DFT)的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。快速傅里叶变换有广泛的应用,如数字信号处理、计算大整数乘法、求解偏微分方程等等。以下是各种快速算法:  对于复数序列,离散傅里叶变换公式为:  直接变换的计算复杂度是(参见大O符号)。快速傅里叶变换可以计算出与直接计算相同的结果,但只需要的计算复杂度。通常,快速算法要求n能被因数分解,但不是所有的快速傅里叶变换都要求n是合数,对于所有的整数n,都存在复杂度为的快速算法。  除了指数的符号相反、并多了一个1/n的因子,离散傅里叶变换的正变换与逆变换具有相同的形式。因此所有的离散傅里叶变换的快速算法同时适用于正逆变换。一般的简化理论  假设一个M*N Sub-rectangular matrix S可分解成column vector 以及 row vector 相乘:  若有M0个相异的non-trivial values( where )  有N0个相异的non-trivial values  则S共需要M0 + N0个乘法。  Step 1:  Step 2:  简化理论的变型:  S1也是一个M*N的矩阵。  若S1有P1个值不等于0,则的乘法量上限为M0 + N0 + P1。[编辑本段]FFT乘法量的计算  假设彼此互质  点DFT的乘法量为,则点DFT的乘法量为:  假设,P是一个质数。  若点的DFT需要的乘法量为  且 当中 ()  有D1个值不为及的倍数,  有D2个值为及的倍数,但不为的倍数,  则N点DFT的乘法量为:[编辑本段]Cooley-Tukey算法  Cooley-Tukey算法是最常见的FFT算法。这一方法以分治法为策略递归地将长度为N = N1N2的DFT分解为长度分别为N1和N2的两个较短序列的DFT,以及与个旋转因子的复数乘法。  这种方法以及FFT的基本思路在1965年J. W. Cooley和J. W. Tukey合作发表An algorithm for the machine calculation of complex Fourier series之后开始为人所知。但后来发现,实际上这两位作者只是重新发明了高斯在1805年就已经提出的算法(此算法在历史上数次以各种形式被再次提出)。  Cooley-Tukey算法最有名的应用,是将序列长为N 的DFT分割为两个长为N/2 的子序列的DFT,因此这一应用只适用于序列长度为2的幂的DFT计算,即基2-FFT。实际上,如同高斯和Cooley与Tukey都指出的那样,Cooley-Tukey算法也可以用于序列长度N 为任意因数分解形式的DFT,即混合基FFT,而且还可以应用于其他诸如分裂基FFT等变种。尽管Cooley-Tukey算法的基本思路是采用递归的方法进行计算,大多数传统的算法实现都将显示的递归算法改写为非递归的形式。另外,因为Cooley-Tukey算法是将DFT分解为较小长度的多个 DFT,因此它可以同任一种其他的DFT算法联合使用。[编辑本段]其它算法  在Cooley-Tukey算法之外还有其他DFT的快速算法。对于长度N = N1N2且N_1与N_2互质的序列,可以采用基于中国剩余定理的互质因子算法将N 长序列的DFT分解为两个子序列的DFT。与 Cooley-Tukey 算法不同的是,互质因子算法不需要旋转因子。  Rader-Brenner 算法是类似于 Cooley-Tukey 算法,但是采用的旋转因子都是纯虚数,以增加加法运算和降低了数值稳定性为代价减少了乘法运算。这方法之后被split-radix variant of Cooley-Tukey所取代,与Rader-Brenner算法相比,有一样多的乘法量,却有较少的加法量,且不牺牲数值的准确性。  Bruun以及QFT算法是不断的把DFT分成许多较小的DFT运算。(Rader- Brenner以及QFT算法是为了2的指数所设计的算法,但依然可以适用在可分解的整数上。Bruun算法则可以运用在可被分成偶数个运算的数字)。尤其是Bruun算法,把FFT看成是z - 1,并把它分解成z 与z + az + 1 的形式。  另一个从多项式观点的快速傅里叶变换法是Winograd 算法。此算法把z - 1分解成cyclotomic多项式,而这些多项式的系数通常为1,0,-1。这样只需要很少的乘法量(如果有需要的话),所以winograd是可以得到最少乘法量的快速傅里叶算法,对于较小的数字,可以找出有效率的算方式。更精确地说,winograd算法让DFT可以用2点的DFT来简化,但减少乘法量的同时,也增加了非常多的加法量。Winograd也可以利用剩余值定理来简化DFT。  Rader算法提出了利用点数为N(N为质数)的DFT进行长度为N-1的回旋卷积来表示原本的DFT,如此就可利用卷积用一对基本的FFT来计算DFT。另一个prime-size的FFT算法为chirp-Z算法。此法也是将DFT用卷积来表示,此法与Rader算法相比,能运用在更一般的变换上,其变换的基础为Z变换。[编辑本段]实数或对称资料专用的算法  在许多的运用当中,要进行DFT的资料是纯实数,如此一来经过DFT的结果会满足对称性:  =而有一些算法是专门位这种情形设计的(e.g. Sorensen, 1987)。另一些则是利用旧有的算法(e.g. Cooley-Tukey),删去一些不必要的演算步骤,如此省下了内存的使用,也省下了时间。另一方面,也可以把一个偶数长度且纯实数的DFT,用长度为原本一半的复数型态DFT来表示(实数项为原本纯实数资料的偶数项,虚数项则为奇数项)。  一度人们认为,用离散哈特列变换(Discrete Hartley Transform)来处理纯实数的DFT会更有效率,但接着人们发现,对于同样点数的纯实数DFT,经过设计的FFT,可以比DHT省下更多的运算。 Bruun算法是第一个试着从减少实数输入的DFT运算量的算法,但此法并没有成为人们普遍使用的方法。  对于实数输入,且输入为偶对称或奇对称的情形,可以更进一步的省下时间以及内存,此时DFT可以用离散余旋变换或离散正旋变换来代替(Discrete cosine/sine transforms)。由于DCT/DST也可以设计出FFT的算法,故在此种情形下,此方法取代了对DFT设计的FFT算法。  DFT可以应用在频谱分析以及做卷积的运算,而在此处,不同应用可以用不同的算法来取代,列表如下:  用来做频谱分析的情况下,DFT可用下列的算法代替:  (1) DCT. (2) DST. (3) DHT.  (4) 正交基底的扩展(orthogonal basis expantion)包括正交多项式(orthogonal polynomials)以及CDMA.  (5) Walsh(Hadamard)变换.  (6) Haar变换  (7) 小波(wavelet)变换.  (8) 时频分布(time-frequency distribution)  用来做卷积的情况下,DFT可用下列的算法代替:  (1) DCT.  (2) DST.  (3) DHT.  (4) 直接做卷积(direct computing)  (5) 分段式DFT卷积(sectioned DFT convolution)  (6) Winograd 算法  (7) Walsh(Hadamard)变换.  (8) number-theoretic变换[编辑本段]复杂度以及运算量的极限  长久以来,人们对于求出快速傅里叶变换的复杂度下限以及需要多少的运算量感到很有兴趣,而实际上也还有许多问题需要解决。即使是用较简单的情形,即2点的DFT,也还没能够严谨的证明出FFT至少需要Ω(NlogN)(比NlogN大)的运算量,目前也没有发现复杂度更低的算法。通常数学运算量的多寡会是运算效率好坏最主要的因素,但在现实中,有许多因素也会有很大的影响,如快取内存以及CPU均有很大的影响。  在1978年,Winograd率先导出一个较严谨的FFT所需乘法量的下限:Θ(N)。当N = 2时,DFT只需要 次无理实数的乘法即可以计算出来。更详尽,且也能趋近此下限的算法也一一被提出(Heideman & Burrus, 1986; Duhamel, 1990)。很可惜的是,这些算法,都需要很大量的加法计算,目前的硬件无法克服这个问题。  对于所需加法量的数目,虽然我们可以在某些受限制的假设下,推得其下限,但目前并没有一个精确的下限被推导出来。1973年,Morgenstern在乘法常数趋近巨大的情形下(对大部分的FFT算法为真,但不是全部)推导出加法量的下限:Ω(NlogN)。Pan(1986)在假设FFT算法的不同步的情形有其极限下证明出加法量的下限Ω(NlogN),但一般来说,此假设相当的不明确。长度为N = 2的情形下,在某些假设下,Papadimitriou(1979)提出使用Cooley-Tukey算法所需的复数加法量Nlog2N是最少的。到目前为止,在长度为N = 2情况,还没有任何FFT的算法可以让复数的加法量比Nlog2N还少。  还有一个问题是如何把乘法量与加法量的总和最小化,有时候称作&演算复杂度&(在这里考虑的是实际的运算量,而不是渐近复杂度)。同样的,没有一个严谨下限被证明出来。从1968年开始,N = 2点DFT而言,split-radix FFT算法需要最少的运算量,在N & 1的情形下,其需要4Nlog2N - 6N + 8 个乘法运算以及加法运算。最近有人导出更低的运算量:。  大多数尝试要降低或者证明FFT复杂度下限的人都把焦点放在复数资料输入的情况,因其为最简单的情形。但是,复数资料输入的FFT算法,与实数资料输入的FFT算法,离散余旋变换(DCT),离散哈特列变换(DHT),以及其他的算法,均有很大的关连性。故任何一个算法,在复杂度上有任何的改善的话,其他的算法复杂度也会马上获得改善。
请登录后再发表评论!快速傅里叶变换FFT的用途_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
快速傅里叶变换FFT的用途
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 快速傅立叶变换ppt 的文章

 

随机推荐