哈工大數字訊號處理實驗報告

2021-03-04 06:42:46 字數 5283 閱讀 5681

harbin institute of technology

實驗報告

課程名稱: 數字訊號處理

實驗題目: 實驗一: 用fft作譜分析

院系: 航天學院

班級姓名

學號指導教師: 冀振元

實驗時間: 2023年10月

哈爾濱工業大學

實驗一: 用fft作譜分析

一、實驗目的

(1) 進一步加深dft演算法原理和基本性質的理解(因為fft只是dft的一種快速演算法, 所以fft的運算結果必然滿足dft的基本性質)。

(2) 熟悉fft演算法原理和fft子程式的應用。

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

二、實驗步驟

(1) 複習dft的定義、 性質和用dft作譜分析的有關內容。

(2) 複習fft演算法原理與程式設計思想, 並對照dit-fft運算流圖和程式框圖。

(3) 編制訊號產生子程式, 產生以下典型訊號供譜分析用:

圖 10.4.1

(4) 編寫主程式。圖 10.4.1 給出了主程式框圖, 供參考。

(5) 按實驗內容要求, 上機實驗, 並寫出實驗報告。

三、 上機實驗內容

(1) 畫出2 中所給出的訊號,並逐個進行譜分析。 下面給出針對各訊號的fft變換區間n以及對連續訊號x6(t)的取樣頻率fs, 供實驗時參考。

x1(n), x2(n), x3(n), x4(n), x5(n): n=8, 16

x6(t): fs=64(hz), n=16, 32, 64(n=0:1:69)

(2) 令x(n)=x4(n)+x5(n), 用fft計算 8 點和 16 點離散傅利葉變換,

x(k)=dft[x(n)]

(3) 令x(n)=x4(n)+jx5(n), 重複(2)。

四、實驗程式執行結果

1、對x1(n)做n點dft(使用fft實現),其中n=8、16

圖12、對x2(n)做n點dft(使用fft實現),其中n=8、16

圖23、對x3(n)做n點dft(使用fft實現),其中n=8、16

圖34、對x4(n)做n點dft(使用fft實現),其中n=8、16

圖45、對x5(n)做n點dft(使用fft實現),其中n=8、16

6、對x6(t)進行抽樣,抽樣頻率fs=64hz得x6(n),求x6(n)的n點dft,其中n=16、32、64

圖67、令x(n)=x4(n)+x5(n), 用fft計算 8 點和 16 點離散傅利葉變換

圖78、令x(n)=x4(n)+jx5(n) , 用fft計算 8 點和 16 點離散傅利葉變換

圖8五、實驗結果及誤差分析

實驗結果分析:

1、實驗1

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

(2)、圖2、圖3表明與的8點dft的模相等,因為。但是,當n=16時,與不滿足迴圈移位關係,此時與的16點dft的模不相等。

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

(5)、圖所示的週期為16, n=8不是其週期的整數倍,得到的頻譜不正確。 n=16是其乙個週期,得到正確的頻譜,僅在1.875π和0.125π處有2根單一譜線。

(6)、圖6所示,其中有3個頻率成分,。則的週期為0.5s 且取樣頻率。

變換區間n=16時,觀察時間tp=16t=0.25s,不是的整數倍週期,所以所得頻譜不正確。變換區間n=32,64 時,觀察時間tp=0.

5s,1s,是的整數週期,所以所得頻譜正確,圖中3根譜線正好位於處。變換區間n=64 時頻譜幅度是變換區間n=32 時2倍,這種結果正好驗證了用dft對中期序列譜分析的理論。

2、實驗2

如圖7所示x(n)=x4(n)+x5(n)的週期為16,所以n=8不是其週期的整數倍,得到的頻譜不正確, n=16是其乙個週期,得到正確的頻譜。

3、實驗3

比較圖4、圖5、圖7、圖8,發現圖7與圖8的16點的頻譜相同,是圖4與圖5的16點頻譜的疊加,但是8點頻譜則不同,這是由於n=8不是其週期的原因。

4、總結

(1)、對離散序列作離散傅利葉變換時,取樣的週期n要大於離散序列的長度m,即。才能得到正確的頻譜。當時,會發生混疊,從而導致頻譜錯誤。

(2)、離散傅利葉變換滿足線性關係,已知,如果,則。

(3)、如果dft[x(n)]=x(k),則re[x(n)]=idft[xe(k)],jim[x(n)]=idft[xo(k)],即離散傅利葉變換的對稱性。

六、思考題

1、在n=8時, x2(n)和x3(n)的幅頻特性會相同嗎? 為什麼? n=16呢?

答:當n=8時,x2(n)和x3(n)的幅頻特性相同;當n=16時,x2(n)和x3(n)的幅頻特性不同。

因為x2(n)和x3(n)的表示式不同。x2(n)=[1,2,3,4,4,3,2,1],x3(n)=[4,3,2,1,1,2,3,4]。作頻譜分析時,依據公式,其中。

當n=8時,。,易知x2(k)=x3(k)。故x2(n)和 x3(n)的幅頻特性相同。

當n=16時,。,易知。即n=16時,x2(n)和 x3(n)的幅頻特性不同。

2、如果週期訊號的週期預先不知道, 如何用fft進行譜分析?

答:在用fft對訊號進行頻譜分析時,首先要對訊號進行取樣,使之變成離散訊號,然後就可按照前面的方法用fft對離散訊號進行頻譜分析。按照取樣定理,取樣頻率fs應當大於訊號最高頻率的2倍。

如果訊號的週期預先不知道,可以選擇乙個較大的取樣頻率,用試驗法逐步增大取樣頻率,直到滿足條件,幅頻特性較完整。

七、程式**

1、對x1(n)做n點dft(使用fft實現),其中n=8、16

程式:clear all;

x=[1,1,1,1];

n=8;

y1=fft(x,n);

n=0:n-1;

subplot(2,1,1);

stem(n,abs(y1));

axis([0,7,0,max(abs(y1))+1]);

title('x1(n)在n=8點的dft');

hold on;

n=16;

y2=fft(x,n);

n=0:n-1;

subplot(2,1,2);

stem(n,abs(y2));

axis([0,15,0,max(abs(y2))+1]);

title('x1(n)在n=16點的dft');

2、對x2(n)做n點dft(使用fft實現),其中n=8、16

程式:clear all;

x=[1,2,3,4,4,3,2,1];

n=8;

y1=fft(x,n);

n=0:n-1;

subplot(2,1,1);

stem(n,abs(y1));

axis([0,7,0,max(abs(y1))+1]);

title('x2(n)在n=8點的dft');

hold on;

n=16;

y2=fft(x,n);

n=0:n-1;

subplot(2,1,2);

stem(n,abs(y2));

axis([0,15,0,max(abs(y2))+1]);

title('x2(n)在n=16點的dft');

3、對x3(n)做n點dft(使用fft實現),其中n=8、16

程式:x=[4,3,2,1,1,2,3,4];

n=8;

y1=fft(x,n);

n=0:n-1;

subplot(2,1,1);

stem(n,abs(y1));

axis([0,7,0,max(abs(y1))+1]);

title('x3(n)在n=8點的dft');

hold on;n=16;

y2=fft(x,n);

n=0:n-1;

subplot(2,1,2);

stem(n,abs(y2));

axis([0,15,0,max(abs(y2))+1]);

title('x3(n)在n=16點的dft');

4、對x4(n)做n點dft(使用fft實現),其中n=8、16

程式:clear all;

t=0:19;

x=cos(pi*t/4);

n=8;

y1=fft(x,n);

n=0:n-1;

subplot(2,1,1);

stem(n,abs(y1));

axis([0,7,0,max(abs(y1))+1]);

title('x4(n)在n=8點的dft');

hold on;

n=16;

y2=fft(x,n);

n=0:n-1;

subplot(2,1,2);

stem(n,y2);

axis([0,15,0,max(abs(y2))+1]);

title('x4(n)在n=16點的dft');

5、對x5(n)做n點dft(使用fft實現),其中n=8、16

程式:clear all;

t=0:19;

x=sin(pi*t/8);

n=8;

y1=fft(x,n);

n=0:n-1;

subplot(2,1,1);

stem(n,abs(y1));

axis([0,7,0,6]);

title('x5(n)在n=8點的dft');

hold on;

n=16;

y2=fft(x,n);

n=0:n-1;

subplot(2,1,2);

stem(n,abs(y2));

axis([0,15,0,10]);

title('x5(n)在n=16點的dft');

6、對x6(t)進行抽樣,抽樣頻率fs=64hz得x6(n),求x6(n)的n點dft,其中n=16、32、64

程式:n=0:1:69;

fs=64;

t=n/fs;

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

n=16;

y1=fft(x,n);

n=0:n-1;

subplot(3,1,1);

stem(n,abs(y1));

axis([0,15,0,max(abs(y1))+1]);

title('x6(n)在n=16點的dft');

數字訊號處理實驗報告

實驗一訊號 系統及系統響應 一 實驗目的 1 熟悉連續訊號經理想取樣前後的頻譜變化關係,加深對時域取樣定理的理解 2 熟悉時域離散系統的時域特性 3 利用卷積方法觀察分析系統的時域特性 4 掌握序列傅利葉變換的計算機實現方法,利用序列的傅利葉變換對連續訊號 離散訊號及系統響應進行頻域分析。二 實驗原...

數字訊號處理實驗報告

一 實驗目的 1.複習和鞏固數字訊號處理中離散訊號的產生和運算 2.學習和掌握用matlab產生離散訊號的方法 3.學習和掌握用matlab對離散訊號進行運算 二 實驗原理 1 用matlab函式產生離散訊號 訊號是數字訊號處理的最基本內容。沒有訊號,數字訊號處理就沒了工作物件。matlab7.0內...

數字訊號處理實驗報告

山東建築大學實驗報告 課程 數字訊號處理 院 部 資訊與電氣工程學院 專業 電子資訊工程 班級 電信112 學生姓名 王丙全 學號 2011081245 指導老師 耿淑娟 完成時間 2013.11.08 山東建築大學實驗報告 學院 資訊與電氣工程學院班級電信112 姓名 王丙全學號 20110812...