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...