數字訊號處理實驗

2022-12-02 13:03:06 字數 5311 閱讀 7433

一、實驗目的:

研究不同型別的窗函式,研究一些不同的方法來測試窗函式的效能;

專注於有關窄帶訊號的幾個不同的情形。

二、實驗原理:

訊號是無限長的,而在進行訊號處理時只能採用有限長訊號,所以需要將訊號「截斷」。在訊號處理中,「截斷」被看成是用乙個有限長的「視窗」看無限長的訊號,或者從分析的角度是無限長的訊號x(t)乘以有限長的窗函式w(t),由傅利葉變換性質可知

三、實驗內容:

1、用matlab程式設計繪製各種窗函式的形狀。

>> w1=boxcar(25);

>> n=0:24;

>> subplot(221),stem(n,w1),title('矩形窗');

>> w2=hanning(25);

>> subplot(222),stem(n,w2),title('hanning');

>> w3=hamming(25);

>> subplot(223),stem(n,w3),title('hamming');

>> w4=bartlett (25);

>> subplot(224),stem(n,w4),title('bartlett');

>> w5=blackman(25);

>> n=0:24;

>> subplot(221),stem(n,w5),title('blackman');

>> w6=triang(25);

>> subplot(222),stem(n,w6),title('triang');

>> w7=kaiser(25,12);

>> subplot(223),stem(n,w7),title('kaiser');

>> w8=chebwin(25,15);

>> subplot(224),stem(n,w8),title('chebwin');

2、用matlab程式設計繪製各種窗函式的幅度響應。

function [h,w]=dtft(h,n)

n=fix(n);

if(nerror(『dtft:#data samples cannot exceed # freq samples』)

end(1)

wvtool(boxcar(64))

(2)wvtool(hanning(64))

(3)wvtool(hamming (64))

(4)wvtool(bartlett(64))

(5)wvtool(balckman(64))

(6)wvtool(chebwin(64,15))

(7)wvtool(kaiser(64,12))

(8)wvtool(chebwin(64,15))

3、繪製矩形窗的幅頻響應,窗長度分別為:n=10,n=20,n=50,n=100。

a、n=10

b、n=20

c、n=50

d、n=100

4、已知週期訊號x(t)=0.75+3.4cosπft+2.

7cos4πft+1.5sin3.5πft+2.

5sin7πft,其中f=25/16hz,若截斷時間長度分別為訊號週期的0.9和1.1倍,試繪製和比較採用下面窗函式提取的x(t)的頻譜。

1、矩形窗

>> fs=10;

>> f=25/16;

>> tp=4;

>> n=0.9*tp*fs;

>> n=[0:n-1];

>> w=boxcar(n);

>> x=0.75+3.4*cos(2*pi*f*n/fs)+2.

7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.

5*sin(7*pi*f*n/fs);

>> y=w.*x';

>> [h,w]=dtft(y,1024);

>> subplot(211);

>> plot(w/2/pi,abs(h)),grid;

>> xlabel('frequency'),ylabel('magnitude'),title('t=0.9tp');

>> n=1.1*tp*fs;

>> n=[0:n-1];

>> w=boxcar(n);

>> x=0.75+3.4*cos(2*pi*f*n/fs)+2.

7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.

5*sin(7*pi*f*n/fs);

>> y=w.*x';

>> [h,w]=dtft(y,1024);

>> subplot(212); plot(w/2/pi,abs(h)),grid; xlabel('frequency'),ylabel('magnitude'),title('t=1.1tp');

2、漢寧窗

>> fs=10;

>> f=25/16;

>> tp=4;

>> n=0.9*tp*fs;

>> n=[0:n-1];

>> w=hanning(n);

>> x=0.75+3.4*cos(2*pi*f*n/fs)+2.

7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.

5*sin(7*pi*f*n/fs);

>> y=w.*x';

>> [h,w]=dtft(y,1024);

>> subplot(211);

>> plot(w/2/pi,abs(h)),grid;

>> xlabel('frequency'),ylabel('magnitude'),title('t=0.9tp');

>> n=1.1*tp*fs;

>> n=[0:n-1];

>> w=hanning(n);

>> x=0.75+3.4*cos(2*pi*f*n/fs)+2.

7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.

5*sin(7*pi*f*n/fs);

>> y=w.*x';

>> [h,w]=dtft(y,1024);

>> subplot(212); plot(w/2/pi,abs(h)),grid; xlabel('frequency'),ylabel('magnitude'),title('t=1.1tp');

3、漢明窗

>> fs=10;

>> f=25/16;

>> tp=4;

>> n=0.9*tp*fs;

>> n=[0:n-1];

>> w=hamming(n);

>> x=0.75+3.4*cos(2*pi*f*n/fs)+2.

7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.

5*sin(7*pi*f*n/fs);

>> y=w.*x';

>> [h,w]=dtft(y,1024);

>> subplot(211);

>> plot(w/2/pi,abs(h)),grid;

>> xlabel('frequency'),ylabel('magnitude'),title('t=0.9tp');

>> n=1.1*tp*fs;

>> n=[0:n-1];

>> w=hamming(n);

>> x=0.75+3.4*cos(2*pi*f*n/fs)+2.

7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.

5*sin(7*pi*f*n/fs);

>> y=w.*x';

>> [h,w]=dtft(y,1024);

>> subplot(212); plot(w/2/pi,abs(h)),grid; xlabel('frequency'),ylabel('magnitude'),title('t=1.1tp');

4、巴特利特窗

>> fs=10;

>> f=25/16;

>> tp=4;

>> n=0.9*tp*fs;

>> n=[0:n-1];

>> w=bartlett(n);

>> x=0.75+3.4*cos(2*pi*f*n/fs)+2.

7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.

5*sin(7*pi*f*n/fs);

>> y=w.*x';

>> [h,w]=dtft(y,1024);

>> subplot(211);

>> plot(w/2/pi,abs(h)),grid;

>> xlabel('frequency'),ylabel('magnitude'),title('t=0.9tp');

>> n=1.1*tp*fs;

>> n=[0:n-1];

>> w=bartlett(n);

>> x=0.75+3.4*cos(2*pi*f*n/fs)+2.

7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.

5*sin(7*pi*f*n/fs);

>> y=w.*x';

>> [h,w]=dtft(y,1024);

>> subplot(212); plot(w/2/pi,abs(h)),grid; xlabel('frequency'),ylabel('magnitude'),title('t=1.1tp');

5、布萊克曼窗

>> fs=10;

>> f=25/16;

>> tp=4;

>> n=0.9*tp*fs;

>> n=[0:n-1];

>> w=blackman(n);

>> x=0.75+3.4*cos(2*pi*f*n/fs)+2.

7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.

5*sin(7*pi*f*n/fs);

>> y=w.*x';

>> [h,w]=dtft(y,1024);

>> subplot(211);

>> plot(w/2/pi,abs(h)),grid;

>> xlabel('frequency'),ylabel('magnitude'),title('t=0.9tp');

>> n=1.1*tp*fs;

>> n=[0:n-1];

>> w=blackman(n);

>> x=0.75+3.4*cos(2*pi*f*n/fs)+2.

7*cos(4*pi*f*n/fs)+1.5*sin(3.5*pi*f*n/fs)+2.

5*sin(7*pi*f*n/fs);

數字訊號處理實驗

班級 08050742 姓名 劉曉華 學號 41 實驗一頻譜分析與取樣定理 一 實驗目的 1 觀察模擬訊號經理想取樣後的頻譜變化關係。2 驗證取樣定理,觀察欠取樣時產生的頻譜混疊現象 3 加深對dft演算法原理和基本性質的理解 4 熟悉fft演算法原理和fft的應用 二 實驗原理 根據取樣定理,對給...

數字訊號處理實驗

利用fft實現快速卷積 姓名 田昕煜 學號 13081405 班級 通訊四班 指導教師 周爭 一 實驗原理 應用fft實現數字濾波器實際上就是用fft來快速計算有限長度序列的線性卷積。這種方法就是先將輸入訊號x n 通過fft變換為它的頻譜取樣值x k 然後再和fir的頻響取樣值h k 相乘,h k...

數字訊號處理實驗一

實驗一卷積與傅利葉變換 一 實驗目的 1 了解線性卷積與圓周卷積 2 學會運用matlab求解離散時間系統的卷積和 3 學會通過求解離散時間訊號的卷積和運算得到系統的零狀態響應 4 掌握通過傅利葉變換和反變換求取圓周卷積。二 實驗內容 1.試用matlab命令求解一下離散時間系統的單位取樣響應。1 ...