高階技能學(xué)習(xí),傅立葉變換的簡易指南
2014年05月04日 09:36 來源:互聯(lián)網(wǎng) 作者:秩名 我要評論(0)
關(guān)于傅立葉變換,無論是書本還是在網(wǎng)上可以很容易找到關(guān)于傅立葉變換的描述,但是大都是些故弄玄虛的文章,太過抽象,盡是一些讓人看了就望而生畏的公式的羅列,讓人很難能夠從感性上得到理解,對于這個(gè)有史以來最重要的發(fā)現(xiàn)之一。如何才能更輕易地理解這個(gè)公式呢?
那么。拋開枯燥難懂的數(shù)學(xué)符號(hào),讓我們用一種新方法來試著理解。這是一個(gè)純中文的闡述:
傅立葉變換有什么用?拿一杯思暮雪,用它能找出配方。
該怎么做呢?把思暮雪放進(jìn)過濾器(濾波器),然后萃取每一種成分。
為什么呢?因?yàn)榕浞奖人寄貉┍旧砀菀子脕矸治?、比較和定義。
我們怎么能拿回原本的思暮雪呢?混合所有的成分。
然后,類似于“數(shù)學(xué)-中文”模式:
基于時(shí)域的傅立葉變換會(huì)檢測每一種“周期成分”(周期長度,補(bǔ)償,和轉(zhuǎn)速),返回完成的“周期配方”(頻率圖譜)
現(xiàn)在要上公式了?當(dāng)然不是!讓我們自己動(dòng)手,進(jìn)行一次生動(dòng)的模擬。
要是一切順利的話,你會(huì)驚奇的發(fā)現(xiàn),你已經(jīng)直觀的明白了為什么傅立葉變換能夠?qū)崿F(xiàn)。我們用下列步驟替代了所有的數(shù)學(xué)分析。
這并不是一次緊張的實(shí)驗(yàn),而是一次舒心的體驗(yàn)。讓我們開始吧!
由思暮雪得到配方
數(shù)學(xué)變換的實(shí)質(zhì)是變量關(guān)系的改變。根據(jù)所算之物,把我們對數(shù)量的認(rèn)知從“單一物體”(沙里的線條,計(jì)數(shù)系統(tǒng))變成“許多10”(小數(shù))。游戲得分?繼續(xù)計(jì)數(shù)。乘法?拜托,是小數(shù)。
傅立葉變換把我們的視角由消費(fèi)者變成了生產(chǎn)者,從“我看到了什么?”變成“這是怎么發(fā)生的?”。
換句話說:拿一個(gè)思暮雪,我們要找出它的配方。
為什么呢?好吧,配方是飲料的最佳描述。你并不會(huì)跟人一滴一滴分析飲料,只會(huì)說“我有一杯橘子或是香蕉思暮雪”。配方比事物本身更易于歸類、比對和定義。
那么……拿一杯思暮雪,到底怎么找到配方呢?
嗯,想象一下你周圍有很多過濾器(濾波器):
把思暮雪倒進(jìn)“香蕉”過濾器(濾波器)里。提取出了1盎司香蕉。
倒進(jìn)“橘子”過濾器(濾波器)里。提取出了2盎司橘子。
倒進(jìn)“牛奶”過濾器(濾波器)里。提取出了3盎司牛奶。
倒進(jìn)“水”過濾器(濾波器)里。提取出了3盎司水。
我們可以通過混合每種成分得到原先的思暮雪。懂了么?
過濾器(濾波器)必須是相互獨(dú)立的。香蕉過濾器(濾波器)只濾出香蕉,沒有其它的任何成分。再多的橘子也不能影響香蕉的讀數(shù)。
過濾(濾波)必須是徹底的。如果我們遺漏了一個(gè)過濾器(濾波器),就永遠(yuǎn)也得不到真正的配方(天哪!那還有個(gè)芒果過濾器(濾波器)?。?。我們的過濾器(濾波器)必須能確定每種成分的含量。
不同成分之間必須是可合成的。思暮雪必須能被分離并重制(餅干?沒那么夸張。誰有想要一堆碎屑呢?)。不同成分在分離和結(jié)合的時(shí)候必須是線性的。
周期看世界
傅立葉變換持有一種特別的觀點(diǎn):要是每一種信號(hào)都是周期性的呢(周期性重復(fù))?
哇塞。這個(gè)假設(shè)太讓人著迷了,可憐的約瑟夫·傅立葉首先提出了這個(gè)假設(shè)。(現(xiàn)實(shí)里約瑟夫,樓梯能做成環(huán)狀的么?)
忽略數(shù)學(xué)界持續(xù)數(shù)十年的爭論,我們希望學(xué)生們可以直觀的理解這個(gè)概念。額……讓我們略過直觀的部分。
就像我們分析思暮雪成分一樣,傅立葉變換可以分析出信號(hào)的成分:
開始時(shí),是一個(gè)時(shí)域信號(hào)
用濾波器來測定每種可能的“周期信號(hào)成分”
完整的“配方”需要列出所有的“周期信號(hào)成分”的數(shù)值
完成。這就是大部分教程要教給你的東西。別被嚇到了;想想這個(gè)例子“天哪,過五關(guān)斬六將,我們終于得到源代碼(DNA)了”。
要是地震波(不同強(qiáng)度和速度的震動(dòng))能被分離成幾種成分,建筑就能被設(shè)計(jì)成免于地震威脅的高強(qiáng)度結(jié)構(gòu)。
要是聲波(高低不同的頻率)能被分成幾種成分,我們就能增強(qiáng)想要的部分,削弱不想要的部分。隨機(jī)噪聲引起的噼啪聲可以被濾除。相似的“聲譜”可以被比對(音樂識(shí)別服務(wù)比對的是聲譜而不是原始音頻)。
要是電腦數(shù)據(jù)能被周期性的描述,那些不重要的信息就能被濾除。這種“有損壓縮”可以急劇減小文件的大?。ㄟ@就是為什么JPEG和MP3文件要比原始的.bmp或.wav文件要小得多的原因)。
要是我們的信號(hào)是無線電波,我們可以通過濾波器來聽確定的頻段。在思暮雪的世界里,想象每個(gè)人都注意著不同的成分:亞當(dāng)在尋找蘋果,鮑勃在尋找香蕉,查理想要花椰菜(兄弟,對不住了)。
傅立葉變換在工程領(lǐng)域運(yùn)用廣泛,但事實(shí)上,它是個(gè)尋找現(xiàn)象根源的象征。
多想想周期信號(hào),而不是正弦曲線
我最大的困惑在于“正弦曲線”和“周期信號(hào)”的定義區(qū)分。
“正弦曲線”意味一種往復(fù)運(yùn)動(dòng)模式(正弦或余弦函數(shù))。在99%的場合里,指的都是發(fā)生在象限里的運(yùn)動(dòng)
周期信號(hào)是一種環(huán)形,包括兩個(gè)D形圖案的模式。要你愿意用10塊錢的話來描述10分錢的主意,你可以把一個(gè)圓形路徑稱作一個(gè)“完整正弦曲線”。
把一個(gè)周期的路徑稱作一個(gè)“完整正弦曲線”,就像你把一個(gè)諺語叫做“漢字的集合”。你選擇了錯(cuò)誤的細(xì)節(jié)級(jí)別。諺語包含了復(fù)雜的含義,而不是可以拆分的漢字!
傅立葉變換是關(guān)于周期(不是含有一個(gè)D形的正弦曲線)和歐拉公式的變換:
我們必須用虛數(shù)做周期運(yùn)動(dòng)么?當(dāng)然不。即使那么做既方便又簡潔。我們把信號(hào)分成實(shí)數(shù)和虛數(shù)的部分,但別忘了前提是:我們在做周期運(yùn)動(dòng)。
沿著周期路徑
我們一邊用電話聊天,一邊在腦海里畫圓(你答應(yīng)了的!)。我該說什么呢?
這個(gè)圈兒該有多大呢?(幅度,半徑范圍的大?。?/p>
我們要畫得多快?(頻率。1周期/秒=1赫茲=2π弧度/秒)
從哪里開始呢?(相位角,0度對應(yīng)x軸)
我可以說“2英寸,起始于45度,1圈兒每秒,開始吧!”。半秒之后,我們應(yīng)該到達(dá)了同一點(diǎn):起始位置+經(jīng)過角度=45+180=225度(2英寸半徑)。
每個(gè)圓周路徑都需要設(shè)定大小、速度和起始角度(幅度/周期/相位)。我們還可以把它們合到一塊:想象用不同速度繞圈兒跑的小摩托車。
所有周期的位置信息加到一起就是原本的信號(hào),一如所有的成分混合就得到了原本的思暮雪一樣。
下面是一個(gè)對基本圓周路徑的仿真:
(詳細(xì)、直觀的動(dòng)畫。需要瀏覽器。點(diǎn)擊圖像暫停/繼續(xù)。)
周期的時(shí)間順序顯示,開始于0Hz。周期[0 1]的含義是
0的意思是0Hz周期(0Hz=開始于x軸,0度相位的連續(xù)周期)
1的意思是1Hz周期(每個(gè)時(shí)間間隔完成一個(gè)周期)
現(xiàn)在是棘手的部分:
藍(lán)色圖像表示周期的實(shí)數(shù)部分。另一個(gè)可愛的數(shù)學(xué)問題:我們常用水平軸來表示每個(gè)周期的實(shí)軸,其數(shù)值在數(shù)值軸上顯示。你也可以把坐標(biāo)軸旋轉(zhuǎn)90度。
時(shí)間點(diǎn)間隔按照最高頻率設(shè)定。1Hz信號(hào)需要兩個(gè)時(shí)間點(diǎn)來表示,分別記錄起始和終止時(shí)刻(一個(gè)信號(hào)值是沒有頻率的。)。時(shí)間值[1 -1]對應(yīng)著這些等間隔點(diǎn)的幅度。
然后呢?[0 1]是1Hz周期。
現(xiàn)在加入2Hz周期,并疊加。[0 1 1]意味著“0Hz值為零,1Hz時(shí)值為1,2Hz時(shí)值為1”:
哇塞。我們的小摩托車越跑越快了:綠線代表了1Hz和2Hz,藍(lán)線是疊加后結(jié)果。點(diǎn)選綠色復(fù)選框可以讓結(jié)果看起來更清晰?;旌虾玫摹拔兜馈笔且粋€(gè)傾斜的函數(shù),從最大值開始,降到最低值。
黃點(diǎn)是我們測量信號(hào)的時(shí)刻。已經(jīng)確定了3個(gè)周期信號(hào)(0Hz, 1Hz, 2Hz),每個(gè)點(diǎn)為信號(hào)值的1/3.在這個(gè)例子里,周期[0 1 1]生成了時(shí)間量[2 -1 -1],從最大值(2)開始,然后降到最低(-1)。
哦!剛才忘了考慮相位角了,現(xiàn)在我們要把它加上!加上數(shù)值:相位角。[0 1:45]是從45度開始的,1Hz的周期函數(shù):
它是[0 1]的進(jìn)階版本。時(shí)域上,我們用[.7 -.7]替換[1 -1]。因?yàn)槲覀兊闹芷诤瘮?shù)并不是沿著我們的測量時(shí)方向上,它們是還在運(yùn)動(dòng)的點(diǎn)(這是可被設(shè)置的)。
通過改變周期信號(hào)的頻率,強(qiáng)度和相位,傅立葉變換可以匹配任何時(shí)域信號(hào)。
信號(hào)所謂“時(shí)域觀測”或是“頻域成分”已成為一種抽象的概念。
說夠了,就讓我們把它講明白吧!你可以選擇模擬器里任何時(shí)間或類型的周期函數(shù)。如果它是時(shí)間表示的,你看到的許多構(gòu)成所要周期函數(shù)的點(diǎn)(其集合被稱為波)。
但是——難道在黃色的時(shí)間間隔里不包括任何特殊的點(diǎn)么?當(dāng)然包括。但是我們怎么知道沒有測量的時(shí)候,信號(hào)是按照直線,曲線還是折線穿入另一象限呢?它在我們所需的等間隔時(shí)刻出現(xiàn)在我們希望的位置。
創(chuàng)造一個(gè)脈沖信號(hào)
我們可以用周期函數(shù)制造出一個(gè)脈沖信號(hào)么,像是(4 0 0 0)?(用括號(hào)表示時(shí)間點(diǎn))
盡管脈沖看起來很煩人(難道只是煩人?),還是要考慮周期函數(shù)的復(fù)雜性。我們的周期成分必須對齊(最大值為4),然后向外傳播,每個(gè)周期函數(shù)都有其它函數(shù)可與其抵消。每個(gè)顯示為0的點(diǎn),都是因?yàn)槎鄠€(gè)周期函數(shù)在此獲得平衡(你并不能關(guān)掉某個(gè)函數(shù))。
讓我們看看每個(gè)時(shí)間點(diǎn):
在0時(shí)刻,每個(gè)周期函數(shù)都處于最大值,(4???)由4個(gè)周期函數(shù)(0Hz 1Hz 2Hz 3Hz)疊加而成,每個(gè)函數(shù)的幅值都是1,而相位角都為0(換言之, 1 + 1 + 1 + 1 = 4)。
在之后的時(shí)刻(t = 1, 2, 3),所有周期函數(shù)的幅值必須相互抵消。
下面是數(shù)值為0的秘訣:當(dāng)周期函數(shù)的值處于對稱軸的兩端(南和北,東和西,等等。),它們的和為0(要是3個(gè)周期函數(shù)均勻的分布在0,120和240度,它們就能相互抵消)。
想象許多繞圈旋轉(zhuǎn)的點(diǎn)。先面試每個(gè)點(diǎn)在每個(gè)時(shí)刻的位置:
時(shí)刻 0 1 2 3
------------
0Hz:0 0 0 0
1Hz:0 1 2 3
2Hz:0 2 0 2
3Hz:0 3 2 1
要注意,3Hz的周期信號(hào)從0開始,然后到了3,然后到了6(只有4個(gè)位置,6Mod,然后是9(9Mod4=1)。
每個(gè)周期長度為4個(gè)單位,周期函數(shù)在2個(gè)單位時(shí)的位置既不在一條線上(不同于0, 4, 8…),也不再相反的位置(不同于2, 6, 10…)。
好了。讓我們看看每個(gè)時(shí)間點(diǎn)的情況:
時(shí)刻 0:所有的周期函數(shù)都處于最大值(其和為4)
時(shí)刻 1:1Hz和3Hz函數(shù)值相互抵消(位置1和3是相反的值),0Hz和2Hz函數(shù)值相互抵消。最后結(jié)果為0.
時(shí)刻 2:在0時(shí)刻,1Hz和3Hz函數(shù)值相等,在2時(shí)刻,0Hz和2Hz函數(shù)值相等(相反的值)。相加結(jié)果還是0.
時(shí)刻 3:0Hz和2Hz函數(shù)值相互抵消.1Hz和3Hz函數(shù)值相互抵消。
時(shí)刻4(重復(fù)時(shí)刻0的情況):所有函數(shù)值相等。
秘訣在于讓相互獨(dú)立的函數(shù)相互抵消(0Hz 和 2Hz, 1Hz 和 3Hz),或是讓同方向上數(shù)值和相互抵消(0Hz + 2Hz 和 1Hz + 3Hz)。
當(dāng)每個(gè)周期屬性相等,相位為0時(shí),就可以對齊并消去后面的值。(我并不能很好的證明這一點(diǎn)——有人能嗎?——但你可以自己看到其發(fā)生。試試[1 1], [1 1 1], [1 1 1 1],你會(huì)注意到一個(gè)脈沖波峰:(2 0), (3 0 0), (4 0 0 0))。
這里直觀的顯示了怎么對齊,接下來是消去相反值:
改變峰值時(shí)間
t=0時(shí),什么都沒有發(fā)生。接下來換到(0 4 0 0)?
應(yīng)該和(4 0 0 0)看起來差不多,但是周期函數(shù)必須在t=1時(shí)(當(dāng)前時(shí)刻的1s后)對齊。然后要考慮相位。
想象有4個(gè)人參與的賽跑。賽跑開始時(shí),4個(gè)人都在起跑線上,(4 0 0 0)。沒意思。
怎么能讓每個(gè)人都同時(shí)到達(dá)終點(diǎn)呢?很簡單。只要讓他們不停的你追我趕就行了。也許奶奶在終點(diǎn)線前兩英尺,Usain Bolt離線還有100米,他們可以拉著手一起穿過終點(diǎn)線。
相位變化,起始角度就是周期信號(hào)世界里的延遲。接下來要說怎么調(diào)整起始位置,來者每個(gè)周期都延遲1秒:
0Hz周期函數(shù)不發(fā)生移動(dòng),所以它已經(jīng)對齊了
1Hz函數(shù)在4秒完成一次往復(fù),所有延時(shí)一秒意味著1/4輪。相位延遲90度(-90),然后它在t=1時(shí)刻到達(dá)相位0,其最大值。
2Hz函數(shù)的變化速度是1Hz函數(shù)的兩倍,所以要兩倍的角度來滿足要求(-180或180,分別沿著不同的方向)。
3Hz函數(shù)的速度是1Hz函數(shù)的3倍,所以要有3倍的移動(dòng)距離(-270或90度的相位改變)
如果時(shí)間點(diǎn)(4 0 0 0)是由函數(shù)[1 1 1 1]產(chǎn)生,那么(0 4 0 0)則是由[1 1:-90 1:180 1:90]產(chǎn)生。( 注意: 此處用1Hz來表示一個(gè)周期運(yùn)動(dòng)經(jīng)過的時(shí)間)。
天吶——我們在腦子里算出了周期函數(shù)!
干擾可視化是與之類似的,除了要在t=1時(shí)刻進(jìn)行對齊。
試一下這個(gè):你能想象出(0 0 4 0),即2秒延時(shí)時(shí)候的情況么?0Hz沒有相位。1Hz是180度,2Hz是360度(也就是0度),3Hz是540度(即180度),結(jié)果為[1 1:180 1 1:180]。
完整的傅立葉變換
事實(shí)上:我們的信號(hào)只不過是一大堆脈沖信號(hào)的疊加!只要得到每個(gè)時(shí)刻組分,你就能知道整個(gè)信號(hào)的成分。
傅立葉變換通過頻率得到“配方”:
把連續(xù)的信號(hào)(a b c d)分成不同的時(shí)刻:(a 0 0 0) (0 b 0 0) (0 0 c 0) (0 0 0 d)
任意頻率(例如2Hz),試驗(yàn)配方是“a/4 + b/4 + c/4 + d/4“(每個(gè)尖峰的強(qiáng)度被除以頻率數(shù)目)
等等!還要對每個(gè)脈沖設(shè)置延時(shí)(每一秒延時(shí)的角度取決于頻率)。
每個(gè)頻率真正的配方=a/4 (無延時(shí)) + b/4 (1秒延時(shí)) + c/4 (2秒延時(shí)) + d/4 (3秒延時(shí))。
遍歷每個(gè)頻率就能得到完整的變換結(jié)果。
這就是從“數(shù)學(xué)文字”到真正數(shù)學(xué)的過程:
幾個(gè)要點(diǎn):
N=時(shí)間樣本的數(shù)量
n=當(dāng)前運(yùn)算的樣本編號(hào)(0 。。 N-1)
xn=n時(shí)刻信號(hào)值
k=當(dāng)前頻率(0Hz到N-1Hz)
Xk=信號(hào)中頻率k的值(幅度和相位,一個(gè)復(fù)數(shù))
1/N被用于反變換(從時(shí)域信號(hào)轉(zhuǎn)化為頻域信號(hào))。這是可以實(shí)現(xiàn)的,盡管我更喜歡用1/N進(jìn)行正變換,它表示了脈沖信號(hào)的正真大小。你也在變換過程(正反變換中仍含有1/N)中使用1/sqrt(N)。
n/N是我們經(jīng)過的時(shí)間比例。2πk是單位為弧度/秒的速度,e^-ix是反向經(jīng)過的路徑。合起來就是以當(dāng)前時(shí)間和速度經(jīng)過的實(shí)際路程。
傅立葉變換的原始方程只告訴你“加上復(fù)數(shù)”。很多變成語言并不支持直接使用復(fù)數(shù),因此要把它們轉(zhuǎn)化成直角坐標(biāo)系,然后相加。
讓我們開始吧
這是我遇到的最有挑戰(zhàn)性的課題。傅立葉變換涵蓋了幾個(gè)要點(diǎn)(離散/連續(xù)/有限長/無限長)的高深數(shù)學(xué)(狄拉克δ函數(shù)),很容易遺漏掉一些細(xì)節(jié)。這真的很挑戰(zhàn)我的認(rèn)知。
但仍有簡單的類比來說明這些——我拒絕用別的方式思考。無論是思暮雪還是Usain Bolt & Granny穿過終點(diǎn)線,都能讓我們輕易的理解這一點(diǎn)。這個(gè)比喻是有缺陷的,但不算壞:它是一個(gè)木筏使用,一旦我們過河就把它們留下。
我意識(shí)到我自己的理解是如何薄弱,我沒辦法在自己的腦海里想出(1 0 0 0 )的變換。對我來說,就像,我懂加法。但是,“1+1+1+1”到底等于幾呢?為什么不呢?難道這些最簡單的運(yùn)算不該有個(gè)直觀的展示么?
上周熱點(diǎn)文章排行榜
上周資料下載排行榜
論壇熱帖
傅立葉變換技術(shù)應(yīng)用
傅立葉變換資料下載
- 信號(hào)的時(shí)域、S域與Z域的相互轉(zhuǎn)換
- EEE微波理論與技術(shù)學(xué)報(bào)
- 如何使用FPGA實(shí)現(xiàn)數(shù)字信號(hào)處理算法的研究
- 電路信號(hào)處理的虛數(shù)詳細(xì)資料講解
- 傅立葉變換的基礎(chǔ)知識(shí)說明
- DSP的傅立葉變換性質(zhì)教程
- 矢量信號(hào)分析的測量概念和操作理論詳細(xì)說明
- 使用有限元的數(shù)值矩陣方法實(shí)現(xiàn)激光諧振腔模式的分析
- 使用Matlab庫函數(shù)進(jìn)行快速傅立葉變換測試的方法詳細(xì)說明
- 干涉式量塊比較儀的方法實(shí)現(xiàn)機(jī)器視覺的自動(dòng)化定標(biāo)
熱評
- IR將功率半導(dǎo)體觸角伸往消費(fèi)市場
- 多功能算術(shù)/邏輯運(yùn)算單元(ALU) ,什么是多功能
- 動(dòng)態(tài)ip、靜態(tài)ip、pppoe撥號(hào)的區(qū)別
- ARM與MIPS的比較
- ThunderBolt端口驅(qū)動(dòng)及NET改WAP方法
- ds18b20中文資料詳解
- 滴滴人臉識(shí)別怎么破解
- 超級(jí)計(jì)算機(jī)榜單重新排名 中國天河二號(hào)已淪為世界第
- 電阻色環(huán)表_色環(huán)電阻識(shí)別方法
- iphone6概念機(jī)圖片曝光_iphone6上市時(shí)
博文
帖子
- 偽電容多諧震蕩器 jf_70421036
- GPIO中斷例程實(shí)現(xiàn)按鍵檢測和定時(shí)采樣,中斷無法返回 城市世界
- 【書籍評測活動(dòng)NO.23】數(shù)據(jù)處理器:DPU編程入門 ElecFans小喇叭
- 編輯功能問題 jf_70421036
- 逆向破解RS485通信協(xié)議內(nèi)容有什么辦法 jf_95362319
- 不一樣的閃燈電 jf_70421036
- 請教關(guān)于一個(gè)MPU6050的問題 zjf-2004
- FD125CF/FD125MF 帶有嵌入式霍爾傳感器的智能電機(jī)驅(qū)動(dòng)器芯片 jf_66255030
- 請問openmv如何與單片機(jī)進(jìn)行串口通信? msvdsufsdf
- 嵌入式開發(fā)板開發(fā) 微塵微塵微塵
用戶評論
查看全部 條評論
查看全部 條評論>>