傅里葉變換的意義

傅里葉變換就是將滿足一定條件的某個函數表示成三角函數(正弦/餘弦)或其積分的線性組合。傅里葉變換可以看出一種工具,將一個連續的信號(不方便處理)轉換成一個個小信號的疊加(好處理)。就是將信號完成從時域表示到頻域表示。信號本質沒有變,轉換後有助於後續處理。來看一個圖,原圖1-4及代碼轉自http://fashionxu.bokee.com/4632908.html ,第5個圖是我加的。

 

 

 

圖3是由圖1和圖2兩個三角函數波合成的,但是在時域表示下,很難對圖3進行分析,於是,對圖3執行傅里葉變換,轉換到頻域表示,如圖5,就很明顯。又但是,因爲MATLAB FFT函數直接轉換出來的數據與頻率座標是不對應的,所以用ffshift函數將零頻點移到頻譜中間,如圖4,這樣方便觀看。圖5的橫座標表示頻率,縱座標表示幅值。不看負頻部分,從正頻部分來看,裏0點近的表示頻率小,幅值小,對應圖1中的a;離0點遠的表示頻率大,幅值大,對應圖2中的b(請自動忽略圖5的橫座標)。

 

PS:在信號在時域無限(一直連續)的情況下,圖5應該是2高2低的4條譜線;但由於時域是有限的,所以存在一些其他頻率的點。

再PS:關於如何理解負頻,這裏有個帖子有很多討論:http://bbs.cnttr.com/archiver/tid-73802.html

 

shift的作用,在2維傅里葉變換上看更有效果。左圖是原圖像,中圖是傅里葉變換之後的圖像,但是低頻部分在圖像邊緣,不明顯,shift以後,低頻部分被移到了中心。圖像來自 http://zone.ni.com/reference/en-XX/help/371361F-01/lvanls/fft/

 

 

 

下面的轉述來自網絡,也說明了傅里葉變換的物理意義:

 

傅里葉變換就是將一個信號的時域表示形式映射到一個頻域表示形式;逆傅里葉變換恰好相反。這都是一個信號的不同表示形式。它的公式會用就可以,當然把證明看懂了更好。
  對一個信號做傅立葉變換,可以得到其頻域特性,包括幅度和相位兩個方面。幅度是表示這個頻率分量的大小,那麼相位呢,它有什麼物理意義?頻域的相位與時域的相位有關係嗎?信號前一段的相位(頻域)與後一段的相位的變化是否與信號的頻率成正比關係。
  傅立葉變換就是把一個信號,分解成無數的正弦波(或者餘弦波)信號。也就是說,用無數的正弦波,可以合成任何你所需要的信號。
  想一想這個問題:給你很多正弦信號,你怎樣才能合成你需要的信號呢?答案是要兩個條件,一個是每個正弦波的幅度,另一個就是每個正弦波之間的相位差。所以現在應該明白了吧,頻域上的相位,就是每個正弦波之間的相位。  
  傅立葉變換用於信號的頻率域分析,一般我們把電信號描述成時間域的數學模型,而數字信號處理對信號的頻率特性更感興趣,而通過傅立葉變換很容易得到信號的頻率域特性 
  傅里葉變換簡單通俗理解就是把看似雜亂無章的信號考慮成由一定振幅、相位、頻率的基本正弦(餘弦)信號組合而成,傅里葉變換的目的就是找出這些基本正弦(餘弦)信號中振幅較大(能量較高)信號對應的頻率,從而找出雜亂無章的信號中的主要振動頻率特點。如減速機故障時,通過傅里葉變換做頻譜分析,根據各級齒輪轉速、齒數與雜音頻譜中振幅大的對比,可以快速判斷哪級齒輪損傷。

 

第一個圖的MATLAB代碼如下:

w=2*pi;
x = -0.5:0.01:0.5;
a=0.4*sin(4*w*(x));
b=1.6*cos(12*w*(x));

subplot(2,3,1);
plot(w*x,a),title('Figure 1 : a=0.4*sin(4*w*(x))');

subplot(2,3,2);
plot(w*x,b),title('Figure 2 : b=1.6*cos(12*w*(x))');

subplot(2,3,3);
plot(w*x,a+b),title('Figure 3 : a+b');

c=fft(a+b);

subplot(2,3,4);
stem(x,fftshift(abs(c)),'Marker','none'),title('Figure 4 : FFT-shift');

subplot(2,3,6);
stem(abs(c),'Marker','none'),title('Figure 5 : FFT before shift');

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章