《完成實(shí)驗(yàn)03 快速傅立葉變換》由會員分享,可在線閱讀,更多相關(guān)《完成實(shí)驗(yàn)03 快速傅立葉變換(7頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、實(shí)驗(yàn)三 快速傅立葉變換
一、實(shí)驗(yàn)?zāi)康?
1.掌握fft函數(shù)的用法。
2.了解FFT的用途。
二、實(shí)驗(yàn)內(nèi)容
1.利用FFT進(jìn)行信號檢測。分析信號頻譜所對應(yīng)頻率軸的數(shù)字頻率和頻率軸的頻率范圍。
2. 對例2,進(jìn)一步增加截取長度和FFT點(diǎn)數(shù),如N加大到256,觀察信號頻譜的變化,分析產(chǎn)生這一變化的原因。在截取長度不變的條件下改變采樣頻率,觀察信號頻譜的變化,分析產(chǎn)生這一變化的原因。
3. 對例3,加大噪聲到2*randn(1,N)和8*randn(1,N),畫出并比較不同噪聲下時(shí)域波形和頻譜。
4.比較DFT和FFT的運(yùn)算時(shí)間。(計(jì)時(shí)函數(shù) tic, toc)
5.對給定語音信號進(jìn)行
2、譜分析,寫出采樣頻率,畫出語音信號的波形及頻譜,并分析語音信號的頻率分布特點(diǎn)。
三、實(shí)驗(yàn)例程
%例1 求信號功率譜
實(shí)驗(yàn)結(jié)果與實(shí)驗(yàn)流程圖如下圖示:
輸入模擬信號表達(dá)式
求出模擬信號功率
觀察功率譜
%例2 模擬信號,以進(jìn)行取樣,求N點(diǎn)DFT的幅值譜
(1)%N分別為
(1) N=45 (2) N=50
(3) N=55 (4) N=60
實(shí)驗(yàn)運(yùn)行結(jié)果如下圖示:
(2). 對例2,進(jìn)一步增加截取長度和FFT點(diǎn)數(shù),如N加大到256,觀察信號頻譜的變
化,分析產(chǎn)生這一變化的原因。
N=256;n=0:N-1;t
3、=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=256')
實(shí)驗(yàn)程序運(yùn)行結(jié)果如右圖示:
產(chǎn)生這一變化原因?yàn)椋?
(3).在截取長度不變的條件下改變采樣頻率,觀察信號頻譜的變化,分析產(chǎn)生變化的原因。
改編程序如下:
N=256;n=0:N-1;t=0.1*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));titl
4、e('FFT N=256')
實(shí)驗(yàn)運(yùn)行結(jié)果如右圖示:
信號頻譜產(chǎn)生這一變化的原因:
對模擬信號x(t)
進(jìn)行取樣并求不同N點(diǎn)DFT的幅值譜
進(jìn)一步增加截取長度和FFT點(diǎn)數(shù),觀察信號頻譜并分析
截取長度不變的條件下改變采樣頻率,觀察信號頻譜的變化并分析
實(shí)驗(yàn)流程圖如下圖示:
%例3 參數(shù)同上,N取64,并在信號中加入噪聲w(t),比較有無噪聲時(shí)的信號譜
%由結(jié)果可以看出這種噪聲不影響信號檢測
(1)加大噪聲到8*randn(1,N)
figure(2)
subplot(2,1,1)
5、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(2,1,2)
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)')
實(shí)驗(yàn)運(yùn)行結(jié)果如右圖示:
(2)
6、 對例3,加大噪聲到2*randn(1,N)和8*randn(1,N),畫出并比較不同噪聲下時(shí)域波形和頻譜。
加大噪聲到2*randn(1,N)
figure(2)
subplot(2,1,1)
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(2,1,2)
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
7、)
+ 2*randn(1,N);
y=fft(x,N);
plot(q,abs(y));
title('FFT N=64(with noise)')
實(shí)驗(yàn)運(yùn)行結(jié)果如右圖示:
對模擬信號x(t)
進(jìn)行取樣并求N點(diǎn)DFT的幅值譜
在信號中加入不同噪聲w(t)
并畫出頻譜
比較兩種不同噪聲頻譜與有無噪聲時(shí)的信號譜并分析結(jié)果
比較兩種不同噪聲頻譜與有無噪聲時(shí)的信號譜并分析結(jié)果
4.比較DFT和FFT的運(yùn)算時(shí)間。(計(jì)時(shí)函數(shù) tic, toc)
N分別取256,512,1024,2048,4096,
8、…
程序如下:
N=256;
N=4096;
x=randn(1,N);
tic
y=dft(x,N);
toc
tic
z=fft(x);
toc
N=256:Elapsed time is 0.172000 seconds.
Elapsed time is 0.015000 seconds.
N=512:Elapsed time is 0.687000 seconds.
Elapsed time is 0.000000 seconds.
N=1024:Elapsed time is 3.031000 seconds.
Elapsed time is 0.04
9、7000 seconds.
N=2048:Elapsed time is 13.375000 seconds.
Elapsed time is 0.063000 seconds.
N=4096:Elapsed time is 59.250000 seconds.
分別求出序列計(jì)算DFT和FFT的運(yùn)算時(shí)間
計(jì)算不同N點(diǎn)所用時(shí)間
比較分析兩種變換計(jì)算時(shí)間
Elapsed time is 0.125000 seconds.
經(jīng)過對比可以得出如下結(jié)論:
5. 對語音進(jìn)行頻譜分析。
讀語音函數(shù) [x,fs]=wavread
10、(‘a(chǎn)i.wav’);
(1) 要求對整個(gè)語音x做FFT,得出頻譜(X(k)),畫出語音信號的時(shí)域波形及頻譜。并分別求出k=300,3500所對應(yīng)的信號頻率(Hz)
提示:
(2)從語音中截取一段語音(256點(diǎn))做FFT,得出頻譜,畫出時(shí)域波形及頻譜。分別求出k=5,60時(shí)所對應(yīng)的信號頻率(Hz)
(3)根據(jù)頻譜對語音信號頻率分布特點(diǎn)進(jìn)行分析。
實(shí)驗(yàn)程序如下:
(1)畫時(shí)域波形并對整個(gè)語音序列做FFT
[x,fs]=wavread('ai5.wav');
subplot(2,1,1)
N=length(x);
n=0:N-1;
plot(n,x)
11、;
xlabel('n');
ylabel('x');
title('時(shí)域波形');
subplot(2,1,2)
N=length(x);
n=0:N-1;
t=0.01*n;
q=n*2*pi/N;
y=fft(x,N);;
plot(q,abs(y));
xlabel('n');
ylabel('ai5');
title('FFT');
(2)并分別求出k=300,3500所對應(yīng)的信號頻率(Hz)
[x,fs]=wavread('ai5.wav')N=length(x);n=0:N-1;
t=n*(1/fs);q=n*2*pi/N;n1=3
12、00;q1=n1*2*pi/N;
f1=q1*fs/(2*pi)n2=3500;
q2=n2*2*pi/N;f2=q2*fs/(2*pi)
實(shí)驗(yàn)結(jié)果如下
fs = 16000
f1 = 315.7895
f2 = 3.6842e+003
(3)從語音中截取一段語音(256點(diǎn))做FFT,得出頻譜,畫出時(shí)域波形及頻譜。分別求出k=5,60時(shí)所對應(yīng)的信號頻率(Hz)
程序如下:
[x,fs]=wavread('ai5.wav');
subplot(2,1,1)
N=256;n=0:N-1;x=x(1:256);
plot(n,x);xlabel('n');
ylabel('
13、x');
title('256點(diǎn)時(shí)域波形');
subplot(2,1,2);
N=256;n=0:N-1;
t=0.01*n;q=n*2*pi/N;
x=x(1:256);y=fft(x,N);;
plot(q,abs(y));
xlabel('n');
ylabel('ai5');title('FFT-256');
(4)分別求出k=5,60時(shí)所對應(yīng)的信號頻率(Hz)
[x,fs]=wavread('ai5.wav');
subplot(2,1,1)
N=256;n=0:N-1;x=x(1:256);
t=0.01*n;q=n*2*pi/N;
x=x(1:256
14、);y=fft(x,N);
n1=5;q1=n1*2*pi/N;
f1=q1*fs/(2*pi)n2=60;
q2=n2*2*pi/N;
f2=q2*fs/(2*pi)
實(shí)驗(yàn)結(jié)果如下:
f1 =
312.5000
f2 =
3.7500e+003
在語音中截取一段語音(256點(diǎn))做FFT,畫出時(shí)域波形及頻譜
分別求出k=5,60時(shí)所對應(yīng)的信號頻率(Hz)并分析實(shí)驗(yàn)結(jié)果
讀語音函數(shù) [x,fs]得出時(shí)域波形
對整個(gè)語音x做FFT,得出頻譜(X(k)),并分別求出某些點(diǎn)信號頻率(Hz)
實(shí)驗(yàn)流程圖如下
實(shí)驗(yàn)分析如下: