理解離散傅利葉變換(一)

2021-05-27 19:50:35 字數 3367 閱讀 4609

理解離散傅利葉變換(一)

------傅利葉變換的由來

要理解傅利葉變換,確實需要一定的耐心,別一下子想著傅利葉變換是怎麼變換的,當然,也需要一定的高等數學基礎,最基本的是級數變換,其中傅利葉級數變換是傅利葉變換的基礎公式。

一、傅利葉變換的提出

讓我們先看看為什麼會有傅利葉變換?傅利葉是一位法國數學家和物理學家的名字,英語原名是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),再去理解複數傅利葉變換就更容易了,所以我們先把複數的傅利葉變換放到一邊去,先來理解實數傅利葉變換,在後面我們會先講講關於複數的基本理論,然後在理解了實數傅利葉變換的基礎上再來理解複數傅利葉變換。

還有,這裡我們所要說的變換(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)。

下一節我們將來看一下實數傅利葉變換的具體方法。

理解離散傅利葉變換(一 傅利葉變換的由來)

理解離散傅利葉變換 一 傅利葉變換的由來 要理解傅利葉變換,確實須要一定的耐心,別一下子想著傅利葉變換是怎麼變換的,當然,也須要一定的高等數學基礎,最主要的是級數變換,當中傅利葉級數變換是傅利葉變換的基礎公式。一 傅利葉變換的提出 讓我們先看看為什麼會有傅利葉變換?傅利葉是一位法國數學家和物理學家的...

理解離散傅利葉變換(一 傅利葉變換的由來)

理解離散傅利葉變換 一 傅利葉變換的由來 要理解傅利葉變換,確實須要一定的耐心,別一下子想著傅利葉變換是怎麼變換的,當然,也須要一定的高等數學基礎,最主要的是級數變換,當中傅利葉級數變換是傅利葉變換的基礎公式。一 傅利葉變換的提出 讓我們先看看為什麼會有傅利葉變換?傅利葉是一位法國數學家和物理學家的...

理解離散傅利葉變換(一 傅利葉變換的由來)

理解離散傅利葉變換 一 傅利葉變換的由來 要理解傅利葉變換,確實須要一定的耐心,別一下子想著傅利葉變換是怎麼變換的,當然,也須要一定的高等數學基礎,最主要的是級數變換,當中傅利葉級數變換是傅利葉變換的基礎公式。一 傅利葉變換的提出 讓我們先看看為什麼會有傅利葉變換?傅利葉是一位法國數學家和物理學家的...