CV基礎 秒懂傅利葉變換

2021-08-29 12:23:10 字數 2804 閱讀 8374

傅利葉分析之掐死教程,我看了,說實話我覺得有點繞,如果沒學過傅利葉變換我覺得不可能看一遍就懂,估計會卡死很久。尤其是那些向量圖和大海螺旋圖,讓我一臉懵逼,懷疑自己沒學過傅利葉變換。

仔細一想,作者說「要讓讀者在不看任何數學公式的情況下理解傅利葉分析」。這就麻煩了,數學語言簡潔直接,要最快理解顯然應該不應該走這條路,而應該先把相關的數學知識搞清楚到能理解傅利葉變換的程度。

當然像作者這樣去講述也是很棒的(尤其是我引用的那張圖,很清晰),但是我總覺得這樣會使已經有一點數學基礎的人看的更暈,沒有數學基礎的同學也不可能很快理解。

我們可以將任意訊號強度隨時間變化的規律寫成函式f(x)中,x表示時間。

任意訊號往往非常複雜毫無規律,難以用數學式表示,於是我們希望將函式f(x)分解為幾個簡單的函式相加的形式,分解如下表示:

我們自然希望找到一種分解(選擇一種合適的基底函式),能夠很方便地求出係數c_n。數學家告訴我們三角函式,復指數函式正是合適的基底函式。

利用三角函式系或復指數函式系展開的函式級數被稱為傅利葉級數。

週期為ť的函式f(x)傅利葉級數展開如下:

數學家(知道我們不會算)同時告訴了我們係數:

式中a_n,b_n是傅利葉係數,ω為基頻,與週期t或頻率f的關係是ω=2π/ t =2πf。

補充一下振幅和相位的定義

把頻率作為x軸(數值用ñ表示),把振幅的作為ÿ軸,可以畫出頻譜圖(幅度譜):

(隨便取的數值)

利用頻譜圖還可以直觀地分析各諧波分量的組成以及比重。當然還有相位譜圖,頻率作為x軸(數值用ñ表示),相位φ作為ý軸就好了。

如上所述,我們可以將乙個複雜的週期性訊號分解成幾個簡單的簡諧波疊加。

(把複雜的波形變成如上幾根線段,真是太爽了!)

那非週期性函式怎麼辦?非週期函式的傅利葉展開式,週期無限大,採用傅利葉積分。

傅利葉積分是傅利葉級數取極限得到的,推導過程如下圖所示:

(前方復指數函式警告,沒學過可以跳過下圖推導)

(非週期拿幾個簡諧波疊加湊不好,那就多幾個,無限多個來個積分總夠了吧!)

對比一下傅利葉級數的式子:

非週期訊號的f(f)就是週期性訊號的an(也就是一開始說的係數)。

非週期訊號和週期性訊號的區別就在於頻譜是否連續:

(兩圖的數值都是亂定的)

所以呢,傅利葉變換就是在分解乙個函式的過程中,某個叫傅利葉的人發現某種分解方式特別簡潔好算,然後就把這種分解方式(變換)命名為傅利葉變換。

從數學上理解,就是把乙個函式寫成幾個(或者無限個,取個極限)函式(三角函式或復指數函式)相加的過程。

從訊號處理的角度來理解,就是把乙個在時域上非常複雜的訊號函式(隨時間變化非常複雜),轉變為在頻域上相對簡單便於處理的頻譜函式的過程。

下圖非常直觀地表現了這一過程。基底函式是三角函式,原始訊號函式前面那個是影象類似於矩形波的函式。如果要分解真正的矩形波(顯然是非週期函式),右側頻譜影象就是連續的。

很多時候會把f寫成u:

還有傅利葉反(逆)變換:

傅利葉變換是互逆的,唯一的。如果沒有這一性質,就不能將乙個空域的函式變換為頻域進行分析,再變換回空域。

二維函式的傅利葉變換和反變換分別定義為:

其中f(x,y)是一幅影象,f(u,v)是它的傅利葉變換。u, v是傅利葉變換的空間頻率。

空間頻率在上一節課《數字影象處理的光學基礎》中已經講過,可以理解為等相位線在x,y座標投影的截距的倒數。對於影象訊號,空間頻率是指單位長度內亮度作週期性變化的次數。

空間頻率的概念在影象處理中十分重要。了解雜訊、線、細節、背景或平滑區域等對應的空間頻率特性,才能更好地對影象進行處理。

空間頻率知識細節對應到光學,涉及阿貝成像理論:

物體經過光學系統到像經歷了兩個過程:

(1)物經過光學系統後,在它的後焦面上形成衍射圖樣(夫琅和費衍射)。

(2)以衍射圖樣為次波波源,在像平面上產生振幅疊加而構成了物的像。

這兩個過程分別對應傅利葉正變換和傅利葉反變換。阿貝在數學上證明了,二次成像過程就是對二維光場的復振幅進行正,反兩次傅利葉變換的過程。

第一次是把光場復振幅的空間分布,變成光學系統後焦面上的空間頻率的分布。

第二次的作用是把空間頻率分布還原成光場復振幅的空間分布。

光的二次傅利葉變換,是數字影象處理中改善影象質量的光學理論基礎。

秒懂JAVA泛型

泛型方法 必須在方法前加上來標記是個泛型方法 入參為泛型 string query t param 不限定入參型別 string query t parma 限定入參型別必須是people的子類 泛型介面 public inte ce buttonelementbizservice public s...

帶你秒懂堆排序

首先我們要明確堆並非一種資料結構,所謂堆排序其實是對陣列進行排序。首先,我們可以將陣列看作乙個完全二叉樹,陣列第乙個元素a 0 即為二叉樹根節點,而後我們需要了解一些完全二叉樹的基礎概念 完全二叉樹最後乙個非葉子節點索引為 元素個數 2 1。記住這個以後我們就可以進行堆排序了,堆排序的思路比較簡單,...

詳解氣泡排序 秒懂

點關注不迷路,歡迎再訪!精簡部落格內容,盡量已專業術語來分享。努力做到對每一位認可自己的讀者負責。幫助別人的同時更是豐富自己的良機。氣泡排序演算法是所以排序演算法中最簡單 最基本的一種。氣泡排序演算法的思路就是交換排序,通過相鄰資料的交換來達到排序的目的。氣泡排序演算法通過多次比較和交換來實現排序,...