dft变换的两幅图_快速傅里叶变换FFT计算方法 原理及公式
在實(shí)際的控制系統(tǒng)中能夠得到的是連續(xù)信號(hào)x(t)的離散采樣值x(nT)。因此需要利用離散信號(hào)x(nT)來(lái)計(jì)算信號(hào)x(t)的頻譜。
有限長(zhǎng)離散信號(hào)x(n),n=0,1,…,N-1的DFT定義為:
DFT
可以看出,DFT需要計(jì)算大約N2次乘法和N2次加法。當(dāng)N較大時(shí),這個(gè)計(jì)算量是很大的。
利用WN的對(duì)稱性和周期性,將N點(diǎn)DFT分解為兩個(gè)N/2點(diǎn)的 DFT,這樣兩個(gè)N/2點(diǎn)DFT總的計(jì)算量只是原來(lái)的一半,即(N/2)2+(N/2)2=N2/2,這樣可以繼續(xù)分解下去,將N/2再分解為N/4點(diǎn) DFT等。對(duì)于N=2m 點(diǎn)的DFT都可以分解為2點(diǎn)的DFT,這樣其計(jì)算量可以減少為(N/2)log2N次乘法和Nlog2N次加法。
具體方法:
將x(n)分解為偶數(shù)與奇數(shù)的兩個(gè)序列之和,即
x1(n)和x2(n)的長(zhǎng)度都是N/2,x1(n)是偶數(shù)序列,x2(n)是奇數(shù)序列,則
其中X1(k)和X2(k)分別為x1(n)和x2(n)的N/2點(diǎn)DFT。由于X1(k)和X2(k)均以N/2為周期,且WN k+N/2=-WN k,所以X(k)又可表示為:
上式的運(yùn)算可以用圖2表示,根據(jù)其形狀稱之為蝶形運(yùn)算。依此類推,經(jīng)過(guò)m-1次分解,最后將N點(diǎn)DFT分解為N/2個(gè)兩點(diǎn)DFT。圖3為8點(diǎn)FFT的分解流程。
FFT算法的原理是通過(guò)許多小的更加容易進(jìn)行的變換去實(shí)現(xiàn)大規(guī)模的變換,降低了運(yùn)算要求,提高了與運(yùn)算速度。FFT不是DFT的近似運(yùn)算,它們完全是等效的。
關(guān)于FFT精度的說(shuō)明:
因?yàn)檫@個(gè)變換采用了浮點(diǎn)運(yùn)算,因此需要足夠的精度,以使在出現(xiàn)舍入誤差時(shí),結(jié)果中的每個(gè)組成部分的準(zhǔn)確整數(shù)值仍是可辨認(rèn)的。為了FFT的舍入誤差,應(yīng)該允許增加幾倍log2(log2N)位的二進(jìn)制。以256為基數(shù)、長(zhǎng)度為N字節(jié)的數(shù)可以產(chǎn)生大到(256)2N階的卷積分量,所以為了正確存儲(chǔ),需要16+log2N位精度,若數(shù)i是浮點(diǎn)尾數(shù)的二進(jìn)制位數(shù),則有條件:
如果i=24,對(duì)于任意感興趣(N>256)的N值,單精度是不合適的;如果i=53,也就是采用雙精度,則允許N大于106,相當(dāng)于幾百萬(wàn)十進(jìn)制位。所以,用FFT作大數(shù)乘法時(shí),向量數(shù)組選用雙精度類型
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的dft变换的两幅图_快速傅里叶变换FFT计算方法 原理及公式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: gossip 区块链_源代码: 一个最小
- 下一篇: python 清空所有对象_Python