《數字訊號處理》課程研究性學習報告
dft近似計算訊號頻譜專題研討
【目的】
(1) 掌握利用dft近似計算不同型別訊號頻譜的原理和方法。
(2) 理解誤差產生的原因及減小誤差的方法。
(3) 培養學生自主學習能力,以及發現問題、分析問題和解決問題的能力。
【研討題目】 基本題
1.利用dft分析x(t)=acos(2πf1t)+bcos(2πf2t)的頻譜,其中f1=100hz,f2=120hz。
(1)a=b=1; (2)a=1,b=0.2。要求選擇不同的窗函式。
【題目分析】
由dft結果可得:通過對不同抽樣頻率,不同的窗函式對訊號的dft結果可以看出:在對訊號做dft時,由於對訊號進行截短,因此會產生頻譜洩漏,要想從頻譜中很好的分辨出個頻率分量,需要考慮時域抽樣頻率,所加的窗函式,窗函式的長度,以及dft的點數等引數對結果的影響:
因為f1 < f2,
所以為滿足抽樣定理,應使fsam>=2 f2 即fsam>=240hz
△f=f2 -f1=20
n>=c fsam/△f
(1)a=b=1 x(t)=cos(2πf1t)+cos(2πf2t)
矩形窗1:
條件:fsam=240hz
n=20
l=512
矩形窗2:
條件:fsam=600hz
n=40
l=512
矩形窗3:
fsam=1200hz
n=80
l=512
hamming窗1:
n=40;
l=512;
fs=600;
hamming窗2:
n=120;
l=512;
fs=600;
(2)a=1,b=0.2
x(t)=cos(2πf1t)+0.2cos(2πf2t)
矩形窗:
n=100;
l=512;
fs=600;
hamming窗:
n=100;
l=512;
fs=600;
【**結果】
(1)a=b=1 x(t)=cos(2πf1t)+cos(2πf2t)
矩形窗:
hamming窗:
(2)a=1,b=0.2
x(t)=cos(2πf1t)+0.2cos(2πf2t)
矩形窗:
【結果分析】
在(1)中進行矩形窗**時,我們選擇了不同的fsam,分別為240,600,1200它們均滿足抽樣定理,但是我們仍舊發現,在240hz時出現了混疊現象。所以,在實際應用中抽樣頻率應大於最低抽樣頻率3-5倍才能有更好的結果。
進行hamming窗**時,在保證抽樣頻率相同的條件下,取不同的長度也40,120。其中,n=40不滿足n>=60的要求,我們可以看到出現了混疊,而n=120時,**效果良好。
在(2)的條件下進行**時,我們選取了相同的n、l、fsam值,但是分別使用了矩形窗和hamming窗。使用矩形窗時,幅度較小的峰值與旁瓣的幅度接近,甚至難以區分,效果不理想。使用hamming窗後,洩露現象被有效遏制,所以可以清楚區分主瓣、旁瓣。
綜上所述,在選擇引數進行dft變換時,應該保證抽樣頻率滿足抽樣定理,並且能大於最小抽樣值3-5倍。長度選擇保證n>=c fsam/△f。為防止洩露現象,特別是峰值之間差異較大時,應該選擇加特殊的窗,如hamming窗。
【自主學習內容】
【閱讀文獻】
【發現問題】 (專題研討或相關知識點學習中發現的問題):
按照理論分析最小抽樣頻率只需要滿足2fmax就可以滿足抽樣定理,但在**中發現該頻率無法滿足要求,頻譜發生嚴重的混疊。所以抽樣頻率應為最小抽樣頻率3-5倍。
另外,在使用哈明窗作為窗函式時,按照理論分析,哈明窗長度滿足n>2fs/f,結合題中條件,當fs=600時n為60時恰好可以分出頻譜,而實際中n=60時無法分出兩個頻率分量,當n=90時則可以分出。因此在做dft是窗函式長度應大於最小長度。
【問題**】
【**程式】
(1)矩形窗1程式:
n=20;
l=512;
f1=100;f2=120;fs=240;
t=1/fs;
ws=2*pi*fs;
t=(0:n-1)*t;
x=cos(2*pi*f1*t)+cos(2*pi*f2*t);
x=fft(x,l);
w=(-ws/2+(0:l-1)*ws/l)/(2*pi);
plot(w,abs(x));
ylabel('矩形窗1')
矩形窗2程式:
n=40;
l=512;
f1=100;f2=120;fs=600;
t=1/fs;
ws=2*pi*fs;
t=(0:n-1)*t;
x=cos(2*pi*f1*t)+cos(2*pi*f2*t);
x=fft(x,l);
w=(-ws/2+(0:l-1)*ws/l)/(2*pi);
plot(w,abs(x));
ylabel('矩形窗2')
hamming1:
n=40;
l=512;
f1=100;f2=120;fs=600;
t=1/fs;
ws=2*pi*fs;
t=(0:n-1)*t;
x=cos(2*pi*f1*t)+cos(2*pi*f2*t);
wh=(hamming(n))';
x=x.*wh;
x=fft(x,l);
w=(-ws/2+(0:l-1)*ws/l)/(2*pi);
plot(w,abs(x));
ylabel('hamming1')
hamming2
n=120;
l=512;
f1=100;f2=120;fs=600;
t=1/fs;
ws=2*pi*fs;
t=(0:n-1)*t;
x=cos(2*pi*f1*t)+cos(2*pi*f2*t);
wh=(hamming(n))';
x=x.*wh;
x=fft(x,l);
w=(-ws/2+(0:l-1)*ws/l)/(2*pi);
plot(w,abs(x));
ylabel('hamming1')
(2)矩形窗:
n=100;
l=512;
f1=100;f2=120;fs=600;
t=1/fs;
ws=2*pi*fs;
t=(0:n-1)*t;
x=cos(2*pi*f1*t)+0.2*cos(2*pi*f2*t);
x=fft(x,l);
w=(-ws/2+(0:l-1)*ws/l)/(2*pi);
plot(w,abs(x));
ylabel('(2)矩形窗')
hamming窗:
n=100;
l=512;
f1=100;f2=120;fs=600;
t=1/fs;
ws=2*pi*fs;
t=(0:n-1)*t;
x=cos(2*pi*f1*t)+0.2*cos(2*pi*f2*t);
wh=(hamming(n))';
x=x.*wh;
x=fft(x,l);
w=(-ws/2+(0:l-1)*ws/l)/(2*pi);
plot(w,abs(x));
ylabel('(2)hamming°')
【研討題目】 基本題
2.已知一離散序列為
(1)用l=32點dft計算該序列的頻譜,求出頻譜中譜峰的頻率;
(2)對序列進行補零,然後分別用l=64、128、256、512點dft計算該序列的頻譜,求出頻譜中譜峰的頻率;
(3)討論所獲得的結果,給出你的結論。該結論對序列的頻譜計算有何指導意義?
【題目分析】
對離散非週期序列做dft時,所得結果相當於對序列做傅利葉變換,再在乙個週期內進行頻域抽樣,而dft的點數為頻域抽樣的點數
【溫磬提示】
在計算離散非週期序列頻譜時常用ω/π作為橫座標,稱ω/π為歸一化頻率(normalized frequency)。在畫頻譜時需給出橫座標。每幅圖下都需給出簡要的文字說明。
由於離散非週期序列頻譜是週期的,所以在計算時不需要用fftshift 函式對fft計算的結果進行重新排列。
【序列頻譜計算的基本方法】
在**軟體中fft函式可以進行離散序列的dft其呼叫形式為:fft(x,n)計算序列的n點dft,若序列長度為m,當m>n時則將原序列截短為n點序列再進行計算,若n>m則將序列補零後在做n點的dft.
【**結果】
【結果分析】
對序列進行32點的dft得到的頻譜如圖所示,譜峰的頻率分別為0.09pi和0.91pi(-0.09pi)
對序列補零後再做dft相當於增加了dft的點數,即頻域抽樣的點數,而原離散序列沒有改變,其傅利葉變換結果也沒有改變,同時若dft點數太少則獲得的頻譜資訊過少,有可能會使得重要的頻率資訊丟失當1,**結果為:
l=32時譜峰的頻率為0.2pi和1.8pi
由結果可知,dft點數越多,產生的離散譜中含有的資訊也就越多,得到的頻譜能更好的反應原連續譜中的資訊
在對離散序列用dft做譜分析時,應當適當增加dft的點數,以減小柵欄效應
【自主學習內容】
【閱讀文獻】
【發現問題】 (專題研討或相關知識點學習中發現的問題):
【問題**】
【**程式】
k=0:31
x=sin(0.2*pi*k)
k1=0:31
x_32=fft(x,32)
subplot(5,1,1)
plot(2*k1/32,abs(x_32),'g')
title('l=32')
k2=0:63
x_64=fft(x,64)
subplot(5,1,2)
plot(2*k2/64,abs(x_64),'r')
title('l=64')
k3=0:127
x_128=fft(x,128)
subplot(5,1,3)
plot(2*k3/128,abs(x_128),'m')
title('l=128')
k4=0:255
x_256=fft(x,256)
subplot(5,1,4)
plot(2*k4/256,abs(x_256),'y')
title('l=256')
k5=0:511
x_512=fft(x,512)
subplot(5,1,5)
plot(2*k5/512,abs(x_512),'k')
title('l=512')
figure
k=0:31
x=sin(0.2*pi*k)
l=0:1023
x=fft(x,1024)
subplot(2,1,1)
plot(l/1024,abs(x),'r')
hold on;
k1=0:31
x_32=fft(x,32)
stem(2*k1/32,abs(x_32),'x','b')
title('l=32')
l=512;
f1=0.1;fs=0.4;
t=1/fs;
ws=2*pi*fs;
k=(0:1:l-1)*t;
x=sin(0.2*pi*k);
DSP研究性學習報告
數字訊號處理 課程研究性學習報告 姓名學號 同組成員 指導教師 時間dft近似計算訊號頻譜專題研討 目的 1 掌握利用dft近似計算不同型別訊號頻譜的原理和方法。2 理解誤差產生的原因及減小誤差的方法。3 培養學生自主學習能力,以及發現問題 分析問題和解決問題的能力。研討題目 1 利用dft分析x ...
DSP研究性學習報告基本概念和技能
近代數字訊號處理 課程研究性學習報告 姓名學號 同組成員 指導教師 時間基本概念和技能學習報告 目的 1 掌握離散訊號和系統時域 頻域和z域分析中的基本方法和概念 2 學會用計算機進行離散訊號和系統時域 頻域和z域分析。3 培養學生自主學習能力,以及發現問題 分析問題和解決問題的能力。m1 2 利用...
研究性學習報告
研究背景 根據現有的地質資料分析,全州硒礦資源分布廣泛,遍及六縣兩市,主要分布在恩施市 宣恩縣 建始縣,其次為利川市 巴東縣 鶴峰縣以及咸豐縣和來鳳縣。此外,在雙河礦區外圍還有3個硒礦點,12個硒礦化點。硒礦石中主要組分為硒,伴生組分主要為釩 鉬,可供綜合利用。個人研究綜述 恩施高中組織這次意義非凡...