數字訊號處理實驗五MATLAB

來源:酷知科普網 2.46W

數字訊號處理實驗五

一、實驗目的:

1、快速傅立葉變換並不是一種新的變換方法,它是計算DFT的一種有效演算法。它是訊號譜分析的有力工具。通過本次實驗,學習使用FFT進行訊號分析的方法,加深對FFT的理解;

2、理解FFT進行訊號頻譜分析可能出現的問題,如:頻譜混疊,闌珊效應,頻譜洩露等,以便在實際中正確處理。

二、實驗要求與實驗內容:

1、通過實際例子學習使用FFT分析訊號的方法。

對訊號x(t)=sin(2π×40t)+sin(2π×15t)進行DFT,對其結果進行IDFT,並將IDFT的結果和原訊號進行比較(f=100Hz,n=128)。

2、通過取樣點數的不同,瞭解對訊號幅度譜的影響。

已知訊號由15Hz幅值0.5的正弦訊號和40Hz賦值為2的正弦訊號組成,資料取樣頻率為100Hz,試分別繪製N=128點DFT的幅頻圖和N=1024點DFT幅頻圖。

3、程式設計實現對下列正弦訊號的FFT分析,並討論實驗結果。

a.訊號頻率F=50Hz,取樣長度N=32,取樣時間T=0.000625s.

b.訊號頻率F=50Hz,取樣長度N=32,取樣時間T=0.005s.

c.訊號頻率F=50Hz,取樣長度N=32,取樣時間T=0.0046875s.

d.訊號頻率F=50Hz,取樣長度N=32,取樣時間T=0.004s.

e.訊號頻率F=50Hz,取樣長度N=64,取樣時間T=0.000625s.

f.訊號頻率F=250Hz,取樣長度N=32,取樣時間T=0.005s.

g.訊號頻率F=50Hz,取樣長度N=32,取樣時間T=0.0046875s.後補32個零做64點FFT。

4、例5-1、例5-2、例5-3。

三、實驗結果與分析

實驗程式:

Fs=1/0.01;

figure(1);

subplot(221);

N=128;

n=0:N-1;t=0.01*n;

q=n*Fs./N;

x=sin(2*pi*40*t)+sin(2*pi*15*t);

y=fft(x,N);

stem(q,abs(y));

title('DFT')

subplot(222)

x1=ifft(y,N);

stem(n,x1);

title('IDFT')

subplot(223)

stem(n,x);

title('x(t)')

實驗結果:

數字訊號處理實驗五MATLAB

實驗分析:原始訊號與IDFT的訊號相同

實驗程式:

Fs=100;

figure(1);

subplot(211)

N=128;n=0:N-1;t=0.01*n;

q=n*Fs./N;

x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);

y=fft(x,N);

stem(n,abs(y));

title('128')

subplot(212)

N=1024;n=0:N-1;t=0.01*n;

q=n*Fs./N;

x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);

y=fft(x,N);

stem(n,abs(y));

title('1024')

實驗結果:

數字訊號處理實驗五MATLAB 第2張

實驗分析:圖形的點數增加後的大體影象與點數少的相同,但是分辨率增加了。

實驗程式:

T=0.000625;

Fs=1/T;

figure(1);

subplot(221)

title('a');

N=32;n=0:N-1;t=T*n;

q=n*Fs./N;

x=sin(2*pi*50*t);

y=fft(x,N);

stem(q,abs(y));

title('a')

subplot(222);

T=0.005;

Fs=1/T;

N=32;n=0:N-1;t=T*n;

q=n*Fs./N;

x=sin(2*pi*50*t);

y=fft(x,N);

stem(q,abs(y));

title('b')

subplot(223);

T=0.0046875;

Fs=1/T;

N=32;n=0:N-1;t=T*n;

q=n*Fs./N;

x=sin(2*pi*50*t);

y=fft(x,N);

stem(q,abs(y));

title('c')

subplot(224);

T=0.004;

Fs=1/T;

N=32;n=0:N-1;t=T*n;

q=n*Fs./N;

x=sin(2*pi*50*t);

y=fft(x,N);

stem(q,abs(y));

title('d')

figure(2);

subplot(221)

T=0.000625;

Fs=1/T;

N=64;n=0:N-1;t=T*n;

q=n*Fs./N;

x=sin(2*pi*50*t);

y=fft(x,N);

stem(q,abs(y));

title('e')

figure(2);

subplot(222);

T=0.005;

Fs=1/T;

N=32;n=0:N-1;t=T*n;

q=n*Fs./N;

x=sin(2*pi*250*t);

y=fft(x,N);

stem(q,abs(y));

title('f')

figure(2);

T=0.0046875;

Fs=1/T;

N=64;n=0:N-1;t=T*n;

q=n*Fs./N;

x=sin(2*pi*50*t);

x1=[x(1:1:32),zeros(1,32)];

y=fft(x1,64);

subplot(223)

stem(q,abs(y));

title('g')

實驗結果:

數字訊號處理實驗五MATLAB 第3張
數字訊號處理實驗五MATLAB 第4張

實驗分析:通過計算r可以得知圖形是否是發散的,c,d,g是發散的,其他的都是收斂的!

例5-1、

實驗程式:

%ÀýÌâ5-1

Fs=1/0.01;

figure(1);

N=50;n=0:N-1;t=0.01*n;

q=n*Fs./N;

x=2*sin(4*pi*t)+5*cos(8*pi*t);

y=fft(x,N);

stem(q,abs(y));

title('FFT N=50')

figure(2)

subplot(221)

N=15;n=0:N-1;t=0.01*n;

q=n*2*pi/N;

x=2*sin(4*pi*t)+5*cos(8*pi*t);

y=fft(x,N);

stem(q,abs(y));

title('FFT N=15')

subplot(222)

N=25;n=0:N-1;t=0.01*n;

q=n*2*pi/N;

x=2*sin(4*pi*t)+5*cos(8*pi*t);

y=fft(x,N);

stem(q,abs(y));

title('FFT N=25')

subplot(223)

N=35;n=0:N-1;t=0.01*n;

q=n*2*pi/N;

x=2*sin(4*pi*t)+5*cos(8*pi*t);

y=fft(x,N);

stem(q,abs(y));

title('FFT N=35')

subplot(224)

N=55;n=0:N-1;t=0.01*n;

q=n*2*pi/N;

x=2*sin(4*pi*t)+5*cos(8*pi*t);

y=fft(x,N);

stem(q,abs(y));

title('FFT N=55')

實驗結果:

數字訊號處理實驗五MATLAB 第5張
數字訊號處理實驗五MATLAB 第6張

實驗分析:N的取值決定了圖形的解析度

例5-2

實驗程式:

%ÀýÌâ5-2

figure(1);

subplot(211)

N=64;n=0:N-1;t=0.01*n;

q=n*2*pi/N;

x=2*sin(4*pi*t)+5*cos(8*pi*t);

y=fft(x,N);

plot(q,abs(y));

title('FFT N=64')

subplot(212)

N=64;n=0:N-1;t=0.01*n;

q=n*2*pi/N;

x=2*sin(4*pi*t)+5*cos(8*pi*t)+0.8*randn(1,N);

y=fft(x,N);

plot(q,abs(y));

title('FFT N=64(with noise)')

實驗結果:

數字訊號處理實驗五MATLAB 第7張

實驗分析:這種噪聲不會影響訊號的檢測!

例5-3

實驗程式:

closeall;clf;

L=50000;

N=2*L-1;

n=1:L;

x1=0.5*n;x2=2*n;

t0=clock;

yc=conv(x1,x2);

tc=etime(clock,t0);

yf=ifft(fft(x1,N).*fft(x2,N));

tf=etime(clock,t0);

n1=0:length(yf)-1;

plot(n1,yc,'r');

figure

plot(n1,abs(yf),'b');

實驗結果:

數字訊號處理實驗五MATLAB 第8張
數字訊號處理實驗五MATLAB 第9張

>> tc

tc =

11.7030

>> tf

tf =

11.8750

>> tf-tc

ans =

0.1720

實驗分析:FFT的計算時間比conv函式快。

四、實驗總結:

學會了Matlab分析快速傅立葉變換及其性質。理解了應用FFT進行訊號頻譜分析可能出現的問題。做實驗時注意數字相乘和字母相乘需要加點,同時注意提前定義所有需要的基本擴充套件函式,做實驗時需要仔細認真!

熱門標籤