快速傅里叶c51语言程序,快速傅里叶变换及其C程序
變換常常可以簡化問題的分析和求解過程。人們常會在這樣那樣的場合使用這一技巧。在科學研究的許多領域,人們發現傅里葉變換(FT)對于問題的求解和簡化特別有用。
傅里葉變換方法又稱為譜分析方法,具有普適性。例如線性系統輸出的傅里葉變換是輸入信號和系統響應函數傅里葉變換的乘積。天線的方向圖是其發射電流的傅里葉變換。在光學系統中,會聚透鏡的前焦和后焦面上的振幅分布存在傅里葉變換關系。一個隨機過程的功率譜密度由該過程的自相關函數的傅里葉變換確定。許多常微分方程和偏微分方程的解可利用傅里葉變換求得。這些截然不同領域的有關問題可以通過傅里葉變換聯系在一起。
傅里葉變換可以看作是時間域上的函數在頻率域上的表示。而且其傅里葉變換譜函數在頻率域中包含的信息和原時間域函數所包含的信息是等價的,不同的僅是信息的表述方式。譜分析方法的基本思想來源于經典的Ritz-Galerkin方法。由于許許多多問題都可應用傅里葉變換,因此計算數學很自然地將傅里葉變換離散化產生所謂離散傅里葉變換(DFT),然后使用計算機求解。當然這時需要研究連續傅里葉變換和離散傅里葉變換的關系,需要研究離散傅里葉變換的性質并尋求離散傅里葉變換好的快速計算方法。
在譜分析方法中,大多數情況下原函數不是局部支集的,所以譜函數在每一點上的值都與原函數在所有點上的值有聯系,因此由逼近方法導出的代數方程組中系數矩陣基本上是滿的,求解計算量太大。進一步分析發現求解一個N點數據離散傅里葉變換的復數乘法計算量正比于N2。為了減少離散誤差,必須取很大的N。但當N很大,即便使用高速計算機,其運算時間還是太長,是不可實現的。因此在相當長的時間內,傅里葉變換方法沒有得到應有的重視、發展和應用。
人們不懈地尋找減少離散傅里葉變換計算量的方法和技術。直至1965年,Cooley-Tukey發表的算法,才得到人們認同。人們稱之為“快速傅里葉變換(FFT)”方法。對于長度為N的復序列,它的復數乘法計算量為O(Nlog2N),因此計算量的節省是巨大的。更值得重視的是對于多維問題,其快速傅里葉變換復數乘法計算量并不按數據點數指數形式增加。例如對于N×N×N個點的三維離散傅里葉變換,數據點數為N3,其快速傅里葉變換復數乘法計算量為O(3N3log2N)=O(N3log2N3)。總之FFT算法有效地解決了傅里葉變換計算量太大的問題。FFT算法的出現使得傅里葉變換的研究和應用的面貌出現根本轉變。人們開始重新考慮它的優點,越來越多地將它用于解決各種各樣的實際問題。例如在雷達、聲納、地震勘探、通信、醫療、氣象、射電天文學等領域FFT算法都得到了廣泛的應用。目前FFT算法仍處于蓬勃發展的狀態,與之相應的計算數學的這個重要分支也處于迅速發展之中。
本書共分5章。第1章首先討論周期函數傅里葉級數,傅里葉積分及其收斂性。以此為基礎討論傅里葉變換的定義和存在條件、傅里葉變換的實例、廣義函數的傅里葉變換。傅里葉變換的性質、對稱關系和傅里葉變換的常用形式。
第2章首先介紹離散時間序列的傅里葉變換,進而討論離散傅里葉變換的定義和性質。具體討論實序列的離散傅里葉變換的性質、離散正弦變換和離散余弦變換,離散傅里葉級數及其最佳平方逼近。最后討論頻譜混疊和頻譜滲漏問題,給出連續和離散傅里葉變換之間的關系。
第3章討論離散傅里葉變換快速算法的基本原理,給出復序列基2算法及其相關程序。該算法和程序構成本書FFT算法的核心和基礎。進而利用FFT程序給出了實序列的傅里葉變換、離散正弦變換、離散余弦變換,傅里葉級數、譜函數近似計算、功率譜估計等問題的快速算法和相關程序。
第4章討論一維卷積及其性質和物理意義。離散卷積的定義,離散卷積定理,離散卷積和連續卷積的關系。給出利用FFT算法和程序求卷積和解卷積的快速算法和實用程序。本章還討論相關、離散相關和離散相關定理,并利用FFT算法和程序給出離散相關的快速算法和實用程序。
第5章主要討論多維傅里葉變換問題,給出二維、三維和n維傅里葉變換定義及其性質。具體討論二維復序列2D-DFT的行列算法和二維實序列2D-DFT的行列算法、存儲技術及其相關程序。對于三維復序列的3D-DFT給出2D-DFT行列算法的一個推廣及其相關程序。對三維實序列3D-DFT給出了降維算法及其相關程序。這兩種3D-DFT的快速算法皆可方便地推廣應用于更高維的傅里葉變換的快速計算問題。
總之,本書給出了傅里葉變換的數學基礎,離散傅里葉變換和連續傅里葉變換的關系。各種和傅里葉變換相關問題的快速算法及其具體實現C語言程序。在編程中,一般將C語言程序分為兩部分,即一個包含主函數的文件和一個或幾個包含功能子函數的文件。主函數文件主要是設置參數,提供初始數據,調用功能子函數和輸出計算結果。讀者根據實際問題和需要,可參照書中的實例對主函數作必要的修改。功能子函數主要具體實現算法,可直接調用。本書程序皆用Visual C++6.0調試通過。由于例題計算結果的數據量太大,數據文件皆不收入本書。
本書由蔣長錦和電子科學與技術系2002級碩士生蔣勇合作完成。前者負責組稿和撰寫,后者完成程序的編制和調試。
作者感謝中國科學技術大學教務處、出版社、理學院和數學系等部門對本書編寫的關心和支持。感謝李洪梅、蔣智同志為排版付出的辛勤勞動。感謝夫人吳康平為保證作者全身心投入寫作作出的無私奉獻。
限于作者水平,本書難免仍存在不妥和錯誤,懇切希望讀者批評、指正和諒解。
作者
2004年6月于中國科學技術大學
總結
以上是生活随笔為你收集整理的快速傅里叶c51语言程序,快速傅里叶变换及其C程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CLC龍链:致力于打造基于区快链技术的全
- 下一篇: Python——快速傅里叶变换