用FFT對訊號做頻譜分析

2022-10-04 08:57:06 字數 5024 閱讀 9683

湖北民族學院資訊工程學院實驗報告

(電氣、電子類專用)

班級: 姓名:學號: 實驗成績:

實驗時間: 2010 年 11 月 27 日 3、4節實驗地點: 數字訊號處理實驗室

課題名稱:數字訊號處理實驗型別: 設計型驗證型綜合型

實驗題目: 用fft對訊號做頻譜分析 (一)

實驗儀器pc、matlab

一、 實驗目的

學習用fft對連續訊號和時域離散訊號進行譜分析的方法,了解可能出現的分析誤差及其原因,以便正確應用fft。

二、實驗原理、原理圖及電路圖

用fft對訊號作頻譜分析是學習數字訊號處理的重要內容。經常需要進行譜分析的訊號是模擬訊號和時域離散訊號。對訊號進行譜分析的重要問題是頻譜解析度d和分析誤差。

頻譜解析度直接和fft的變換區間n有關,因為fft能夠實現的頻率解析度是,因此要求。可以根據此式選擇fft的變換區間n。誤差主要來自於用fft作頻譜分析時,得到的是離散譜,而訊號(週期訊號除外)是連續譜,只有當n較大時離散譜的包絡才能逼近於連續譜,因此n要適當選擇大一些。

週期訊號的頻譜是離散譜,只有用整數倍週期的長度作fft,得到的離散譜才能代表週期訊號的頻譜。如果不知道訊號週期,可以盡量選擇訊號的觀察時間長一些。

對模擬訊號進行譜分析時,首先要按照取樣定理將其變成時域離散訊號。如果是模擬週期訊號,也應該選取整數倍週期的長度,經過取樣後形成週期序列,按照週期序列的譜分析進行。

三、實驗內容及步驟

(1)對以下序列進行譜分析。

選擇fft的變換區間n為8和16 兩種情況進行頻譜分析。分別列印其幅頻特性曲線。 並進行對比、分析和討論。

(2)對以下週期序列進行譜分析。

選擇fft的變換區間n為8和16 兩種情況分別對以上序列進行頻譜分析。分別列印其幅頻特性曲線。並進行對比、分析和討論。

(3)對模擬週期訊號進行譜分析

選擇取樣頻率,變換區間n=16,32,64 三種情況進行譜分析。分別列印其幅頻特性,並進行分析和討論。

為了便於讀取頻率值,最好關於π歸一化,即以作為橫座標。

1、實驗內容(1)

圖(1a)和(1b)說明的8點dft和16點dft分別是的頻譜函式的8點和16點取樣;

因為,所以,與的8點dft的模相等,如圖(2a)和(3a)。但是,當n=16時,與不滿足迴圈移位關係,所以圖(2b)和(3b)的模不同。

2、實驗內容(2),對週期序列譜分析

的週期為8,所以n=8和n=16均是其週期的整數倍,得到正確的單一頻率正弦波的頻譜,僅在0.25π處有1根單一譜線。如圖(4b)和(4b)所示。

的週期為16,所以n=8不是其週期的整數倍,得到的頻譜不正確,如圖(5a)所示。n=16是其乙個週期,得到正確的頻譜,僅在0.25π和0.

125π處有2根單一譜線, 如圖(5b)所示。

3、實驗內容(3),對模擬週期訊號譜分析

有3個頻率成分,。所以的週期為0.5s。

取樣頻率。變換區間n=16時,觀察時間tp=16t=0.25s,不是的整數倍週期,所以所得頻譜不正確,如圖(6a)所示。

變換區間n=32,64 時,觀察時間tp=0.5s,1s,是的整數週期,所以所得頻譜正確,如圖(6b)和(6c)所示。圖中3根譜線正好位於處。

變換區間n=64 時頻譜幅度是變換區間n=32 時2倍,這種結果正好驗證了用dft對中期序列譜分析的理論。

注意:(1)用dft(或fft)對模擬訊號分析頻譜時,最好將x(k)的自變數k換算成對應的模擬頻率fk,作為橫座標繪圖,便於觀察頻譜。這樣,不管變換區間n取訊號週期的幾倍,畫出的頻譜圖中有效離散諧波譜線所在的頻率值不變,如圖(6b)和(6c)所示。

(2)本程式直接畫出取樣序列n點dft的模值,實際上分析頻譜時最好畫出歸一化幅度譜,這樣就避免了幅度值隨變換區間n變化的缺點。本實驗程式這樣繪圖只要是為了驗證了用dft對中期序列譜分析的理論。

四、實驗結果記錄及分析

(1) x1n8

clear all;

x1n=[1,1,1,1];

x1n8=fft(x1n,8);

stem(abs(x1n8));

axis([0,10,0,1.2*max(abs(x1n8))]);

x1n16

clear all;

x1n=[1,1,1,1];

x1n16=fft(x1n,16);

stem(abs(x1n16));

axis([0,16,0,1.2*max(abs(x1n16))]);

x2n8

clear all;

xa=1:4;

xb=4:8 ;

x2n=[xa,xb];

x2n8=fft(x2n,8);

stem(abs(x2n8));

axis([0,10,0,1.2*max(abs(x2n8))]);

x2n16

clear all;

xa=1:4;

xb=4:8 ;

x2n=[xa,xb];

x2n16=fft(x2n,16);

stem(abs(x2n16));

axis([0,16,0,1.2*max(abs(x2n16))]);

x3n8

clear all;

xa=4:-1:1;

xb=1:4;

x3n=[xa,xb];

x3n8=fft(x3n,8);

stem(abs(x3n8));

axis([0,8,0,1.2*max(abs(x3n8))]);

x316

clear all;

xa=4:-1:1;

xb=1:4;

x3n=[xa,xb];

x3n16=fft(x3n,16);

stem(abs(x3n16));

axis([0,16,0,1.2*max(abs(x3n16))]);

x4n8

clear all;

n=8;

n=0:n-1;

x4n=cos(pi*n/4);

x4n8=fft(x4n,8);

stem(abs(x4n8));

axis([0,8,0,1.2*max(abs(x4n8))]);

x4n16

clear all;

n=16;

n=0:n-1;

x4n=cos(pi*n/4);

x4n16=fft(x4n,16);

stem(abs(x4n16));

axis([0,16,0,1.2*max(abs(x4n16))]);

x5n8

clear all;

n=8;

n=0:n-1;

x4n=cos(pi*n/4)+cos(pi*n/8);

x4n8=fft(x4n,8);

stem(abs(x4n8));

axis([0,8,0,1.2*max(abs(x4n8))]);

x5n16

clear all;

n=16;

n=0:n-1;

x4n=cos(pi*n/4)+cos(pi*n/8);

x4n16=fft(x4n,16);

stem(abs(x4n16));

axis([0,16,0,1.2*max(abs(x4n16))]);

x6nfs=64;t=1/fs;

n=16;n=0:n-1;

x6nt=cos(8*pi*n*t)+cos(16*pi*n*t)+cos(20*pi*n*t);

x6k16=fft(x6nt);

x6k16=fftshift(x6k16);

tp=n*t;f=1/tp;

k=-n/2:n/2-1;fk=k*f;

subplot(3,1,1);stem(fk,abs(x6k16),'.');box on

title('(6a) 16點|dft[x_6(nt)]|');xlabel('f(hz)');ylabel('幅度');

axis([-n*f/2-1,n*f/2-1,0,1.2*max(abs(x6k16))])

n=32;n=0:n-1;

x6nt=cos(8*pi*n*t)+cos(16*pi*n*t)+cos(20*pi*n*t);

x6k32=fft(x6nt);

x6k32=fftshift(x6k32);

tp=n*t;f=1/tp;

k=-n/2:n/2-1;fk=k*f;

subplot(3,1,2);stem(fk,abs(x6k32),'.');box on

title('(6b) 32點|dft[x_6(nt)]|');xlabel('f(hz)');ylabel('幅度');

axis([-n*f/2-1,n*f/2-1,0,1.2*max(abs(x6k32))])

n=64;n=0:n-1;

x6nt=cos(8*pi*n*t)+cos(16*pi*n*t)+cos(20*pi*n*t);

6k64=fft(x6nt);

x6k64=fftshift(x6k64);

tp=n*t;f=1/tp;

k=-n/2:n/2-1;fk=k*f;

subplot(3,1,3);stem(fk,abs(x6k64),'.'); box on%繪製8點dft的幅頻特性圖

title('(6a) 64點|dft[x_6(nt)]|');xlabel('f(hz)');ylabel('幅度');

axis([-n*f/2-1,n*f/2-1,0,1.2*max(abs(x6k64))])

五.思考題解答

(1)對於週期序列,如果週期不知道,如何用fft進行譜分析?

答:設乙個定長的值m與2m分析後誤差大則取4n,4m的譜分析與2m比較,直到與譜分析相差不多時便認為次譜分析近似原來的譜分析。

(2)如何選擇fft的變化區間?(包括非週期訊號和週期訊號)

答:週期為n的訊號可以看作長度為n的有限長序列,非週期訊號可以看做長度為無窮的有限序列。

(3)當n=8時,x2n和x3n的幅頻特性會相同嗎?為什麼?n=16呢?

答:當n=8時,幅頻特性相同。因為它們函式表達的相同。當n=16時,模值不相同。

實驗三 用FFT對訊號作頻譜分析 實驗報告

一 實驗目的與要求 學習用fft對連續訊號和時域離散訊號進行譜分析的方法,了解可能出現的分析誤差及其原因,以便正確應用fft。二 實驗原理 用fft對訊號作頻分析是學習數字訊號處理的重要內容,經常需要進行分析的訊號是模擬訊號的時域離散訊號。對訊號進行譜分析的重要問題是頻譜解析度d和分析誤差。頻譜解析...

實驗三 用FFT對訊號作頻譜分析 實驗報告

一 實驗目的與要求 學習用fft對連續訊號和時域離散訊號進行譜分析的方法,了解可能出現的分析誤差及其原因,以便正確應用fft。二 實驗原理 用fft對訊號作頻分析是學習數字訊號處理的重要內容,經常需要進行分析的訊號是模擬訊號的時域離散訊號。對訊號進行譜分析的重要問題是頻譜解析度d和分析誤差。頻譜解析...

用FFT做譜分析

實驗一 用fft做譜分析 1 實驗目的 1 進一步加深dft演算法原理和基本性質的理解。2 熟悉fft演算法原理和fft子程式的應用。3 學習用fft對連續訊號和時域離散訊號進行譜分析的方法,了解可能出現的分析誤差及其原因,以便在實際中正確應用fft。2 實驗原理 dft是週期序列,有n個獨立的數值...