学完计算机还是不懂,如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧...
如果看了這篇文章你還不懂傅里葉變換,那就過來掐死我吧(二)
Heinrich?
·? 15 天前
已于2014.6.6更新,地址:傅里葉分析之掐死教程(完整版)更新于2014.06.06 - 與時間無關的故事 - 知乎專欄上一篇文章發出來之后,為了掐死我,大家真是很下工夫啊,有拿給姐姐看的,有拿給妹妹看的,還有拿給女朋友看的,就是為了聽到一句“完全看不懂啊”。幸虧我留了個心眼,不然就真的像標題配圖那樣了。我的文章題目是,如果看了這篇文章你“還”不懂就過來掐死我,潛臺詞就是在你學了,但是沒學明白的情況下看了還是不懂,才過來掐死我。
另外,想跟很多人抱歉,因為評論太多了,時間有限,不能給每個人回復,還望大家諒解。但是很感謝一直在評論區幫忙解答讀者問題的各位,就不一一@了。
這里鄭重感謝大連海事大學的吳楠老師,一位學識淵博、備課縝密、但授課不拘一格的年輕教師!當時大三他教我通信原理,但是他先用了4結課幫我們復習了很多信號與系統的基本概念,那個用樂譜代表頻域的概念就是他講的,一下子讓我對這門課豁然開朗,才有了今天的這篇文章。
————————————今天的定場詩有點長——————————
下面繼續開始我們無節操的旅程:
上次的關鍵詞是:從側面看。這次的關鍵詞是:從下面看。
在第二課最開始,我想先回答很多人的一個問題:傅里葉分析究竟是干什么用的?這段相對比較枯燥,已經知道了的同學可以直接跳到下一個分割線。
先說一個最直接的用途。無論聽廣播還是看電視,我們一定對一個詞不陌生——頻道。頻道頻道,就是頻率的通道,不同的頻道就是將不同的頻率作為一個通道來進行信息傳輸。下面大家嘗試一件事:
先在紙上畫一個sin(x),不一定標準,意思差不多就行。不是很難吧。
好,接下去畫一個sin(3x)+sin(5x)的圖形。
別說標準不標準了,曲線什么時候上升什么時候下降你都不一定畫的對吧?
好,畫不出來不要緊,我把sin(3x)+sin(5x)的曲線給你,但是前提是你不知道這個曲線的方程式,現在需要你把sin(5x)給我從圖里拿出去,看看剩下的是什么。這基本是不可能做到的。
但是在頻域呢?則簡單的很,無非就是幾條豎線而已。
所以很多在時域看似不可能做到的數學操作,在頻域相反很容易。這就是需要傅里葉變換的地方。尤其是從某條曲線中去除一些特定的頻率成分,這在工程上稱為濾波,是信號處理最重要的概念之一,只有在頻域才能輕松的做到。
再說一個更重要,但是稍微復雜一點的用途——求解微分方程。(這段有點難度,看不懂的可以直接跳過這段)微分方程的重要性不用我過多介紹了。各行各業都用的到。但是求解微分方程卻是一件相當麻煩的事情。因為除了要計算加減乘除,還要計算微分積分。而傅里葉變換則可以讓微分和積分在頻域中變為乘法和除法,大學數學瞬間變小學算術有沒有。
傅里葉分析當然還有其他更重要的用途,我們隨著講隨著提。
————————————————————————————————————
下面我們繼續說相位譜:
通過時域到頻域的變換,我們得到了一個從側面看的頻譜,但是這個頻譜并沒有包含時域中全部的信息。因為頻譜只代表每一個對應的正弦波的振幅是多少,而沒有提到相位?;A的正弦波A.sin(wt+θ)中,振幅,頻率,相位缺一不可,不同相位決定了波的位置,所以對于頻域分析,僅僅有頻譜(振幅譜)是不夠的,我們還需要一個相位譜。那么這個相位譜在哪呢?我們看下圖,這次為了避免圖片太混論,我們用7個波疊加的圖。
鑒于正弦波是周期的,我們需要設定一個用來標記正弦波位置的東西。在圖中就是那些小紅點。小紅點是距離頻率軸最近的波峰,而這個波峰所處的位置離頻率軸有多遠呢?為了看的更清楚,我們將紅色的點投影到下平面,投影點我們用粉色點來表示。當然,這些粉色的點只標注了波峰距離頻率軸的距離,并不是相位。
這里需要糾正一個概念:時間差并不是相位差。如果將全部周期看作2Pi或者360度的話,相位差則是時間差在一個周期中所占的比例。我們將時間差除周期再乘2Pi,就得到了相位差。
在完整的立體圖中,我們將投影得到的時間差依次除以所在頻率的周期,就得到了最下面的相位譜。所以,頻譜是從側面看,相位譜是從下面看。下次偷看女生裙底被發現的話,可以告訴她:“對不起,我只是想看看你的相位譜。”
注意到,相位譜中的相位除了0,就是Pi。因為cos(t+Pi)=-cos(t),所以實際上相位為Pi的波只是上下翻轉了而已。對于周期方波的傅里葉級數,這樣的相位譜已經是很簡單的了。另外值得注意的是,由于cos(t+2Pi)=cos(t),所以相位差是周期的,pi和3pi,5pi,7pi都是相同的相位。人為定義相位譜的值域為(-pi,pi],所以圖中的相位差均為Pi。
最后來一張大集合:
好了,你是不是覺得我們已經講完傅里葉級數了?
抱歉讓你失望了,以上我們講解的只是傅里葉級數的三角函數形式。接下去才是最究極的傅里葉級數——指數形式傅里葉級數。但是為了能更好的理解指數形式的傅里葉級數,我們還需要一個工具來幫忙——歐拉公式。
歐拉公式,以及指數形式的傅里葉級數,我們下一講再講。謝謝大家(鞠躬)。
—————————————————————————————————————
今天講的部分不多,但是我希望大家能夠理解,我也有自己的生活,留給知乎的時間并不多,但是我很喜歡在知乎與別人交流的過程。上一次的那些文章大家知道我當時寫了多久么?四天,每天寫6小時那種,而且當時還是在假期。主要是圖太不好做了,有人問到作圖的方法,其實就是簡單的MATLAB+PHOTOSHOP,作圖的確是很費時間,但是我相信做出這些圖是值得的,因為我相信圖一定比文字更好理解。也希望可以將這些自己學習時的感受和經驗更完整的分享給需要的人。
所以請大家稍微有點耐心,我會認真把這個故事講完。也謝謝大家的理解和支持。
————————————————————————————————————
最后推薦一下@張蘇的答案:如何學會傅里葉變換?
如何學會傅里葉變換?
我是計算機專業畢業的,想學習傅里葉變換,想用代碼實現快速傅里葉變換,去實現音頻降噪的功能,請問我該如何做?
張蘇,算法工程師
王旭宏、知乎用戶、li jianq 等人贊同
———————————2014-0605——————————————————————
不少同學希望談談學習方法,我本身也是學渣(考研數學80/150),沒有資格談啊。不過我最近修了
RICE大學在edx上的相關課程“ ELEC301x Discrete Time Signals and Systems
”,真的非常不錯。初步總結, 有三大優點:
1.注重實踐,有大量的matlab相關的案例內容;
2.重離散、輕連續,這樣創新的思路拋棄了直接研究連續帶來的大量的理論負擔,同時也非常實用;當然,如果要做研究,后面還是要重新認真學習連續的,這可能需要借助mit的課程了。
3.作業題有深度、有啟發,是很好的訓練。
推薦下學習教材(鑒于大家批評我說這些書不好買,這里給出購買鏈接),
1.新手入門:
前驅知識,微積分、線性代數及格
優秀教材:
(1) Understanding Digital Signal Processing (3rd Edition): Richard G. Lyons: 9780137027415: Amazon.com: Books
評價相當之高,注重理解,對數學要求不高
購買鏈接: 《國外高校電子信息類優秀教材經:數字信號處理(英文影印版)》([美]萊昂斯)【摘要 書評 試讀】
(2) Digital Signal Processing Using MATLAB: Vinay K. Ingle, John G. Proakis: 9781111427375: Amazon.com: Books
大量引入matlab,注重動手實踐增加認知,好像也是首個創新的直接講解離散的教材。
公開課:
RiceX: ELEC301x Discrete Time Signals and Systems
也是直接進入離散主題、注重理解、注重matlab操作的好課程。
購買鏈接: 《數字信號處理:應用MATLAB》 Vinay K.ingle, John G.Proakis【摘要 書評 試讀】圖書
2.進階:
我還在學,學完推薦
談談學習成本:
經濟成本:我推薦的書國內亞馬遜都有正版,加起來二百出頭,公開課需要v~P·N工具,一年二百左右。新東方一個破輔導班3000+,一部紅米手機799.
時間成本:no pain, no gain。
最后恬不知恥的秀秀rice給我的課程成績,大家一定會做的更好。
下載鏈接
Dropbox - ELEC301x Discrete Time Signals and Systems.pdf
截圖:
————---------————我正在和論文搏斗 先給個簡單答案吧——————————
對工科生來講,傅里葉變換可以從三個層次來看:
傅里葉變換(Fourier Transform,FT)-> 離散傅里葉變換(Discrete Fourier Transform, DFT)-> 快速傅里葉變換(Fast Fourier Transform)
FT是理論基礎,以FT為理論基礎,可以完成從頻率估計到求解微分方程各式各樣的問題;
DFT是指信號被采樣之后你會得到
離散(如你需要處理的音頻信號被采樣)而非
連續的信號,這個時候就需要DFT來告訴你怎樣處理并告知你一些離散情況下的特殊問題;
FFT是一種計算DFT的算法,計算復雜度很低也就是執行起來很快的意思。
舉個例子吧:有人通過在小黑屋按鋼琴的一個鍵不松會產生一個單音信號給你傳遞情報,
信號的頻率
取決于他所按的鍵。你看不見他,卻希望獲知信號的頻率。怎么辦?
1.FT的理論就會告訴你可以通過傅里葉變化獲知這個頻率。
但是這個信號飄蕩在空中,你需要先通過采樣得到一個離散信號
(
是采樣頻率,香農和奈奎斯特告訴我們,需要
)。
2.得到離散信號后如何計算
,DFT就會告訴你怎么辦;
3.你嫌DFT太慢了怎么辦,FFT就粉墨登場了。
從你計算機的專業背景和希望做音頻降噪的需求來看。你需要掌握的是DFT和FFT我建議
1. 找本高等數學的書,花半個小時看看什么是FT;
2. 強烈推薦《Understanding Digital Signal Processing》,一本只需高中數學,且英文比中文都易懂的書,在
http://
amazon.com
上有很高的評價( Understanding Digital Signal Processing (3rd Edition): Richard G. Lyons: 9780137027415: Amazon.com: Books
),國內有賣,建議認真看第1、2、3章。你會對離散傅里葉變換有很深入的了解;
3. 實踐出真知,看完什么理論,立馬用matlab試試看,會理解的很透徹;
4. project可以沿著matlab->VC->DSP->FPGA的道路前進。
至于你說的語音降噪問題,需要首先用DFT分析信號與噪聲的頻率特性,
降噪需要設計濾波器完成。變化與濾波是信號處理的兩大主題,看看《Understanding Digital Signal Processing》的后面幾章就明白了。
語音降噪問題已經發展成為一個成熟的子學科,要做進一步研究就需要你自己努力了。
2014-06-09
24 條評論
感謝
分享
收藏
?? 沒有幫助
?? 舉報
總結
以上是生活随笔為你收集整理的学完计算机还是不懂,如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我有一座育龙岛繁殖攻略
- 下一篇: 哈利波特魔法觉醒贝壳介绍一览