理解离散傅立叶变换(一. 傅立叶变换的由来)
生活随笔
收集整理的這篇文章主要介紹了
理解离散傅立叶变换(一. 傅立叶变换的由来)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
理解離散傅立葉變換(一) ------傅立葉變換的由來 關于傅立葉變換,不管是書本還是在網上可以非常easy找到關于傅立葉變換的描寫敘述,可是大都是些故弄玄虛的文章,太過抽象,盡是一些讓人看了就望而生畏的公式的羅列,讓人非常難可以從感性上得到理解,近期,我偶爾從網上看到一個關于數字信號處理的電子書籍,是一個叫Steven W. Smith, Ph.D.外國人寫的,寫得非常淺顯,里面有七章由淺入深地專門講述關于離散信號的傅立葉變換,盡管是英文文檔,我還是硬著頭皮看完了有關傅立葉變換的有關內容,看了有茅塞頓開的感覺,在此把我從中得到的理解拿出來跟大家分享,希望非常多被傅立葉變換迷惑的朋友可以得到一點啟示,這電子書籍是免費的,有興趣的朋友也可以從網上下載下來看一下,URL地址是: http://www.dspguide.com/pdfbook.htm 要理解傅立葉變換,確實須要一定的耐心,別一下子想著傅立葉變換是怎么變換的,當然,也須要一定的高等數學基礎,最主要的是級數變換,當中傅立葉級數變換是傅立葉變換的基礎公式。 一、傅立葉變換的提出 讓我們先看看為什么會有傅立葉變換?傅立葉是一位法國數學家和物理學家的名字,英語原名是Jean Baptiste Joseph Fourier(1768-1830), Fourier對熱傳遞非常感興趣,于1807年在法國科學學會上發表了一篇論文,論文里描寫敘述運用正弦曲線來描寫敘述溫度分布,論文里有個在當時具有爭議性的決斷:不論什么連續周期信號都能夠由一組適當的正弦曲線組合而成。當時審查這個論文的人,當中有兩位是歷史上著名的數學家拉格朗日(Joseph Louis Lagrange, 1736-1813)和拉普拉斯(Pierre Simon de Laplace, 1749-1827),當拉普拉斯和其他審查者投票通過并要發表這個論文時,拉格朗日堅決反對,在近50年的時間里,拉格朗日堅持覺得傅立葉的方法無法表示帶有棱角的信號,如在方波中出現非連續變化斜率。法國科學學會屈服于拉格朗日的威望,否定了傅立葉的工作成果,幸運的是,傅立葉還有其他事情可忙,他參加了政治運動,隨拿破侖遠征埃及,法國大革命后因怕會被推上斷頭臺而一直在逃避。直到拉格朗日死后15年這個論文才被發表出來。 誰是對的呢?拉格朗日是對的:正弦曲線無法組合成一個帶有棱角的信號。可是,我們能夠用正弦曲線來很逼近地表示它,逼近到兩種表示方法不存在能量區別,基于此,傅立葉是對的。 為什么我們要用正弦曲線來取代原來的曲線呢?如我們也還能夠用方波或三角波來取代呀,分解信號的方法是無窮多的,但分解信號的目的是為了更加簡單地處理原來的信號。用正余弦來表示原信號會更加簡單,由于正余弦擁有原信號所不具有的性質:正弦曲線保真度。一個正余弦曲線信號輸入后,輸出的仍是正余弦曲線,僅僅有幅度和相位可能發生變化,可是頻率和波的形狀仍是一樣的。且僅僅有正余弦曲線才擁有這種性質,正因如此我們才不用方波或三角波來表示。 二、傅立葉變換分類 依據原信號的不同類型,我們能夠把傅立葉變換分為四種類別:
下圖是四種原信號圖例:? 這四種傅立葉變換都是針對正無窮大和負無窮大的信號,即信號的的長度是無窮大的,我們知道這對于計算機處理來說是不可能的,那么有沒有針對長度有限的傅立葉變換呢?沒有。由于正余弦波被定義成從負無窮小到正無窮大,我們無法把一個長度無限的信號組合成長度有限的信號。面對這樣的困難,方法是把長度有限的信號表示成長度無限的信號,能夠把信號無限地從左右進行延伸,延伸的部分用零來表示,這樣,這個信號就能夠被看成是非周期性離解信號,我們就能夠用到離散時域傅立葉變換的方法。還有,也能夠把信號用復制的方法進行延伸,這樣信號就變成了周期性離解信號,這時我們就能夠用離散傅立葉變換方法進行變換。這里我們要學的是離散信號,對于連續信號我們不作討論,由于計算機僅僅能處理離散的數值信號,我們的終于目的是運用計算機來處理信號的。 可是對于非周期性的信號,我們須要用無窮多不同頻率的正弦曲線來表示,這對于計算機來說是不可能實現的。所以對于離散信號的變換僅僅有離散傅立葉變換(DFT)才干被適用,對于計算機來說僅僅有離散的和有限長度的數據才干被處理,對于其他的變換類型僅僅有在數學演算中才干用到,在計算機面前我們僅僅能用DFT方法,后面我們要理解的也正是DFT方法。這里要理解的是我們使用周期性的信號目的是為了可以用數學方法來解決這個問題,至于考慮周期性信號是從哪里得到或如何得到是無意義的。 每種傅立葉變換都分成實數和復數兩種方法,對于實數方法是最好理解的,可是復數方法就相對復雜很多了,須要懂得有關復數的理論知識,只是,假設理解了實數離散傅立葉變換(real DFT),再去理解復數傅立葉變換就更easy了,所以我們先把復數的傅立葉變換放到一邊去,先來理解實數傅立葉變換,在后面我們會先講講關于復數的基本理論,然后在理解了實數傅立葉變換的基礎上再來理解復數傅立葉變換。 還有,這里我們所要說的變換(transform)盡管是數學意義上的變換,但跟函數變換是不同的,函數變換是符合一一映射準則的,對于離散數字信號處理(DSP),有很多的變換:傅立葉變換、拉普拉斯變換、Z變換、希爾伯特變換、離散余弦變換等,這些都擴展了函數變換的定義,同意輸入和輸出有多種的值,簡單地說變換就是把一堆的數據變成還有一堆的數據的方法。 三、一個關于實數離散傅立葉變換(Real DFT)的樣例 先來看一個變換實例,下圖是一個原始信號圖像: 這個信號的長度是16,于是能夠把這個信號分解9個余弦波和9個正弦波(一個長度為N的信號能夠分解成N/2+1個正余弦信號,這是為什么呢?結合以下的18個正余弦圖,我想從計算機處理精度上就不難理解,一個長度為N的信號,最多僅僅能有N/2+1個不同頻率,再多的頻率就超過了計算機所能所處理的精度范圍),例如以下圖: 9個余弦信號: 9個正弦信號: 把以上全部信號相加就可以得到原始信號,至于是怎么分別變換出9種不同頻率信號的,我們先不急,先看看對于以上的變換結果,在程序中又是該怎么表示的,我們能夠看看以下這個演示樣例圖: 上圖中左邊表示時域中的信號,右邊是頻域信號表示方法,從左向右表示正向轉換(Forward DFT),從右向左表示逆向轉換(Inverse DFT),用小寫x[]表示信號在每一個時間點上的幅度值數組, 用大寫X[]表示每種頻率的副度值數組, 由于有N/2+1種頻率,所以該數組長度為N/2+1,X[]數組又分兩種,一種是表示余弦波的不同頻率幅度值:Re X[],還有一種是表示正弦波的不同頻率幅度值:Im X[],Re是實數(Real)的意思,Im是虛數(Imagine)的意思,採用復數的表示方法把正余弦波組合起來進行表示,但這里我們不考慮復數的其他作用,僅僅記住是一種組合方法而已,目的是為了便于表達(在后面我們會知道,復數形式的傅立葉變換長度是N,而不是N/2+1)。 下一節我們將來看一下實數傅立葉變換的詳細方法。
| 1 | 非周期性連續信號 | 傅立葉變換(Fourier Transform) |
| 2 | 周期性連續信號 | 傅立葉級數(Fourier Series) |
| 3 | 非周期性離散信號 | 離散時域傅立葉變換(Discrete Time Fourier Transform) |
| 4 | 周期性離散信號 | 離散傅立葉變換(Discrete Fourier Transform) |
總結
以上是生活随笔為你收集整理的理解离散傅立叶变换(一. 傅立叶变换的由来)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python入门常识
- 下一篇: 付款单的保存