理解離散傅利葉變換(一)
------傅利葉變換的由來
要理解傅利葉變換,確實須要一定的耐心,別一下子想著傅利葉變換是怎麼變換的,當然,也須要一定的高等數學基礎,最主要的是級數變換,當中傅利葉級數變換是傅利葉變換的基礎公式。
一、傅利葉變換的提出
讓我們先看看為什麼會有傅利葉變換?傅利葉是一位法國數學家和物理學家的名字,英語原名是jean baptiste joseph fourier(1768-1830), fourier對熱傳遞非常感興趣,於2023年在法國科學學會上發表了一篇**,**裡描寫敘述運用正弦曲線來描寫敘述溫度分布,**裡有個在當時具有爭議性的決斷:不論什麼連續週期訊號都能夠由一組適當的正弦曲線組合而成。當時審查這個**的人,當中有兩位是歷史上著名的數學家拉格朗日(joseph louis lagrange, 1736-1813)和拉普拉斯(pierre simon de laplace, 1749-1827),當拉普拉斯和其他審查者投票通過並要發表這個**時,拉格朗日堅決反對,在近50年的時間裡,拉格朗日堅持覺得傅利葉的方法無法表示帶有稜角的訊號,如在方波中出現非連續變化斜率。法國科學學會屈服於拉格朗日的威望,否定了傅利葉的工作成果,幸運的是,傅利葉還有其他事情可忙,他參加了政治運動,隨拿破崙遠征埃及,法國大革命後因怕會被推上斷頭台而一直在逃避。直到拉格朗日死後15年這個**才被發表出來。
誰是對的呢?拉格朗日是對的:正弦曲線無法組合成乙個帶有稜角的訊號。可是,我們能夠用正弦曲線來很逼近地表示它,逼近到兩種表示方法不存在能量區別,基於此,傅利葉是對的。
為什麼我們要用正弦曲線來取代原來的曲線呢?如我們也還能夠用方波或三角波來取代呀,分解訊號的方法是無窮多的,但分解訊號的目的是為了更加簡單地處理原來的訊號。用正余弦來表示原訊號會更加簡單,由於正余弦擁有原訊號所不具有的性質:正弦曲線保真度。乙個正余弦曲線訊號輸入後,輸出的仍是正余弦曲線,僅僅有幅度和相位可能發生變化,可是頻率和波的形狀仍是一樣的。且僅僅有正余弦曲線才擁有這種性質,正因如此我們才不用方波或三角波來表示。
二、傅利葉變換分類
依據原訊號的不同型別,我們能夠把傅利葉變換分為四種類別: 1
非週期性連續訊號
傅利葉變換(fourier transform)
2
週期性連續訊號
傅利葉級數(fourier series)
3
非週期性離散訊號
離散時域傅利葉變換(discrete time fourier transform)
4
週期性離散訊號
離散傅利葉變換(discrete fourier transform)
下圖是四種原訊號圖例:
這四種傅利葉變換都是針對正無窮大和負無窮大的訊號,即訊號的的長度是無窮大的,我們知道這對於計算機處理來說是不可能的,那麼有沒有針對長度有限的傅利葉變換呢?沒有。由於正余弦波被定義成從負無窮小到正無窮大,我們無法把乙個長度無限的訊號組合成長度有限的訊號。面對這樣的困難,方法是把長度有限的訊號表示成長度無限的訊號,能夠把訊號無限地從左右進行延伸,延伸的部分用零來表示,這樣,這個訊號就能夠被看成是非週期性離解訊號,我們就能夠用到離散時域傅利葉變換的方法。還有,也能夠把訊號用複製的方法進行延伸,這樣訊號就變成了週期性離解訊號,這時我們就能夠用離散傅利葉變換方法進行變換。這裡我們要學的是離散訊號,對於連續訊號我們不作討論,由於計算機僅僅能處理離散的數值訊號,我們的終於目的是運用計算機來處理訊號的。
可是對於非週期性的訊號,我們須要用無窮多不同頻率的正弦曲線來表示,這對於計算機來說是不可能實現的。所以對於離散訊號的變換僅僅有離散傅利葉變換(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)。
下一節我們將來看一下實數傅利葉變換的詳細方法。
理解離散傅利葉變換(一)
理解離散傅利葉變換 一 傅利葉變換的由來 要理解傅利葉變換,確實需要一定的耐心,別一下子想著傅利葉變換是怎麼變換的,當然,也需要一定的高等數學基礎,最基本的是級數變換,其中傅利葉級數變換是傅利葉變換的基礎公式。一 傅利葉變換的提出 讓我們先看看為什麼會有傅利葉變換?傅利葉是一位法國數學家和物理學家的...
理解離散傅利葉變換(一 傅利葉變換的由來)
理解離散傅利葉變換 一 傅利葉變換的由來 要理解傅利葉變換,確實須要一定的耐心,別一下子想著傅利葉變換是怎麼變換的,當然,也須要一定的高等數學基礎,最主要的是級數變換,當中傅利葉級數變換是傅利葉變換的基礎公式。一 傅利葉變換的提出 讓我們先看看為什麼會有傅利葉變換?傅利葉是一位法國數學家和物理學家的...
理解離散傅利葉變換(一 傅利葉變換的由來)
理解離散傅利葉變換 一 傅利葉變換的由來 要理解傅利葉變換,確實須要一定的耐心,別一下子想著傅利葉變換是怎麼變換的,當然,也須要一定的高等數學基礎,最主要的是級數變換,當中傅利葉級數變換是傅利葉變換的基礎公式。一 傅利葉變換的提出 讓我們先看看為什麼會有傅利葉變換?傅利葉是一位法國數學家和物理學家的...