頻譜分析之FFT

2022-06-28 01:54:09 字數 1272 閱讀 3904

參考:

fft是離散傅利葉變換的快速演算法,可以將乙個訊號變換到頻域。有些訊號在時域上是很難看出什麼特徵的,但是如果變換到頻域之後,就很容易看出特徵了。這就是很多訊號分析採用fft變換的原因。

頻率是表徵資料變化劇烈程度的指標,是資料在平面空間上的梯度.從物理效果看,傅利葉變換是將影象從空間域轉換到頻率域.現在就根據實際經驗來說說fft結果的具體物理意義。乙個模擬訊號,經過adc取樣之後,就變成了數碼訊號。取樣定理告訴我們,取樣頻率要大於訊號頻率的兩倍。 取樣得到的數碼訊號,就可以做fft變換了。n個取樣點,經過fft之後,就可以得到n個點的fft結果。為了方便進行fft運算,通常n取2的整數次方。

傅利葉變換後的頻譜圖,也叫功率圖或幅頻圖.除了中心以外還存在以某一點為中心,對稱分布的亮點集合,這個集合就是干擾噪音產生的,這時可以很直觀的通過在該位置放置帶阻濾波器消除干擾。

假設取樣頻率為fs,訊號頻率f,取樣點數為n.那麼fft之後結果就是乙個為n點的複數。每乙個點就對應著乙個頻率點。這個點的模值,就是該頻率值下的幅度特性。 fn所能分辨到的最小頻率為fs/n.如果要提高頻率分辨力,則必須增加取樣點數,也即取樣時間。頻率解析度和取樣時間是倒數關係。

假設fft之後某點n用複數a+bi表示,那麼這個複數的模就是an=根號a*a+b*b,相位就是pn=atan2(b,a)。根據以上的結果,就可以計算出n點(n≠1,且n<=n/2)對應的訊號的表示式為:an/(n/2)*cos(2*pi*fn*t+pn),即2*an/n*cos(2*pi*fn*t+pn)。對於n=1點的訊號,是直流分量,幅度即為a1/n。由於fft結果的對稱性,通常我們只使用前半部分的結果,即小於取樣頻率一半的結果。

ps:如果像例子中那樣對比資料,首要條件是知道訊號的數學模型,提取相應頻率,與頻譜圖對比確認是否分析正確.

頻率圖更像是一種參考標準,相比時域資料,在頻域更能分析訊號強度或雜訊資訊, 再據此選擇相應方法進行濾波.

matlab實現如下:

1

data=xlsread('mov_ang_v.xlsx');

2data_single=data(:,3);

3n=length(data_single);%資料長度

4fs=100;%設定取樣頻率

5i=0:n-1;

6y=fft(data_single,n);%進行fft變換

7mag=abs(y);%求幅值

8f=(0:n-1)*fs/n;

9power=mag.^2;

10figure

11 plot(f,power,'*');%semilogx(f,power);

FFT頻譜分析原理

fft頻譜分析原理 取樣定理 取樣頻率要大於訊號頻率的兩倍。n個取樣點經過fft變換後得到n個點的以複數形式記錄的fft結果。假設取樣頻率為fs,取樣點數為n。那麼fft運算的結果就是n個複數 或n個點 每乙個複數就對應著乙個頻率值以及該頻率訊號的幅值和相位。第乙個點對應的頻率為0hz 即直流分量 ...

使用 FFT 進行頻譜分析

下面的示例說明了如何使用 fft 函式進行頻譜分析。fft 的乙個常用場景是確定乙個時域雜訊訊號的頻率分量。首先建立一些資料。假設是以 1000 hz 的頻率對資料進行的取樣。首先為資料構造一條時間軸,時間範圍從 t 0 至 t 0.25,步長為 1 毫秒。然後,建立乙個包含 50 hz 和 120...

FFT頻譜分析中的幾個誤差

fft在分析頻譜分析的時候,會有下面四個方面的誤差 1 頻譜混疊 奈奎斯特定理已被眾所周知了,所以幾乎所有人的都知道為了不讓頻譜混疊,理論上取樣頻譜大於等於訊號的最高頻率。那和時域上聯絡起來的關係是什麼呢?取樣週期的倒數是頻譜解析度,最高頻率的倒數是取樣週期。設定取樣點數為n,取樣頻率fs,最高頻率...