matlab實現(xiàn)DFT_第1頁
matlab實現(xiàn)DFT_第2頁
matlab實現(xiàn)DFT_第3頁
matlab實現(xiàn)DFT_第4頁
matlab實現(xiàn)DFT_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、DFT基于Matlab的實現(xiàn)一、實驗目的1掌握DFT函數(shù)的用法。2. 利用DFT進行信號檢測及譜分析。3了解信號截取長度對譜分析的影響。二、實驗內(nèi)容1利用DFT計算信號功率譜。實驗程序:t=0:0.001:0.6;x=sin(2*pi*50*t)+sin(2*pi*120*t)+randn(1,length(t);Y=dft(x,512);P=Y.*conj(Y)/512;f=1000*(0:255)/512;plot(f,P(1:256)2. 進行信號檢測。分析信號頻譜所對應頻率軸的數(shù)字頻率和頻率之間的關系。模擬信號,以 進行取樣,求N點DFT的幅值譜。實驗程序:subplot(2,2,1)

2、N=45;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=dft(x,N);plot(q,abs(y);title(DFT N=45)subplot(2,2,2)N=50;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=dft(x,N);plot(q,abs(y);title(DFT N=50)subplot(2,2,3)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=

3、dft(x,N);plot(q,abs(y);title(DFT N=55)subplot(2,2,4)N=60;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=dft(x,N);plot(q,abs(y);title(DFT N=60)3. 對2,進一步增加截取長度和DFT點數(shù),如N加大到256,觀察信號頻譜的變化,分析產(chǎn)生這一變化的原因。在截取長度不變的條件下改變采樣頻率,觀察信號頻譜的變化,分析產(chǎn)生這一變化的原因。N加大到256時的程序:N=256;n=0:N-1;t=0.01*n;q=n*2*pi/N;x=2*si

4、n(4*pi*t)+5*cos(8*pi*t);y=dft(x,N);plot(q,abs(y);title(DFT N=256)分析原因:在T=0.01s的情況下,第一個序列的周期是100,第二個序列的周期是50,所以當取樣點數(shù)小于100時,頻率分辨率不夠,不能夠區(qū)分出兩個信號。當采樣點數(shù)足夠多(256)時,頻率分辨率增加,能夠區(qū)分出兩個頻率的信號。將采樣間隔變?yōu)門=0.1s時,N仍為45的程序:N=45;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=dft(x,N);plot(q,abs(y);title(DFT N=

5、45)分析原因:在T=0. 1s的情況下,第一個序列的周期是10,第二個序列的周期是5,所以當取樣點數(shù)為45時,能夠區(qū)分出兩個信號。參數(shù)同上,N取64,并在信號中加入噪聲w(t)。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=dft(x,N);plot(q,abs(y);title(DFT 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*ra

6、ndn(1,N); y=dft(x,N);plot(q,abs(y);title(DFT N=64(with noise)由圖可以看出這種噪音不影響信號檢測。4. 對3,加大噪聲到2*randn(1,N)和8*randn(1,N),畫出并比較不同噪聲下時域波形和頻譜。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)+2*randn(1,N); y=dft(x,N);plot(q,abs(y);title(DFT N=64(with noise2)subplot(2,1,2)N=64;n=0:

7、N-1;t=0.01*n;q=n*2*pi/N;x=2*sin(4*pi*t)+5*cos(8*pi*t)+8*randn(1,N); y=dft(x,N);plot(q,abs(y);title(DFT N=64(with noise8)subplot(3,2,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)+0.8*randn(1,N); plot(x);title(噪聲為0.8*w的信號)y=dft(x,N);subplot(3,2,2)plot(q,abs(y);title(噪聲為0.8*w時的頻譜)sub

8、plot(3,2,3)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)+2*randn(1,N); plot(x);title(噪聲為2*w時的信號)y=dft(x,N);subplot(3,2,4)plot(q,abs(y);title(噪聲為2*w時的頻譜)subplot(3,2,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)+8*randn(1,N); plot(x);title(噪聲為8*w時的信號)y=dft(x,N);subp

9、lot(3,2,6)plot(q,abs(y);title(噪聲為8*w時的頻譜)實驗分析:當噪聲較小時,不影響信號的檢測,但當噪聲較大時,就看不出原信號的頻率成分了,可以繼續(xù)加大噪聲,可看到其頻譜雜亂無章了。5. 用一個N點DFT計算兩個長度為N的實序列N點離散傅里葉變換,并將結果和直接使用兩個N點DFT得到的結果進行比較。x=1 2 3 4 5 6; y=6 5 4 3 2 1; a,b=dft_2(x,y) a = Columns 1 through 3 21.0000 -3.0000 + 5.1962i -3.0000 + 1.7321i Columns 4 through 6 -3.

10、0000 -3.0000 - 1.7321i -3.0000 - 5.1962i b = Columns 1 through 3 21.0000 3.0000 - 5.1962i 3.0000 - 1.7321i Columns 4 through 6 3.0000 3.0000 + 1.7321i 3.0000 + 5.1962i 函數(shù)文件如下:function y1,y2=dft_2(a,b) N=length(a); x=zeros(1,N); x=a+j*b; X=dft(x,N); X0=conj(fliplr(X); X0=X0(N) X0(1:N-1); y1=(X+X0)./2

11、; y2=(X-X0)./2./j; 直接運行計算 :dft(x) ans = Columns 1 through 3 21.0000 -3.0000 + 5.1962i -3.0000 + 1.7321i Columns 4 through 6 -3.0000 -3.0000 - 1.7321i -3.0000 - 5.1962i dft(y) ans = Columns 1 through 3 21.0000 3.0000 - 5.1962i 3.0000 - 1.7321i Columns 4 through 6 3.0000 3.0000 + 1.7321i 3.0000 + 5.19

12、62i 6比較DFT和DFT的運算時間。(計時函數(shù) tic, toc)N分別取256,512,1024,2048,4096, 程序如下: N=256;N=4096; x=randn(1,N); tic y=dft(x,N); toc tic z=dft(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 tim

13、e is 3.031000 seconds. Elapsed time is 0.047000 seconds. N=2048:Elapsed time is 13.375000 seconds. Elapsed time is 0.063000 seconds. N=4096:Elapsed time is 59.250000 seconds. Elapsed time is 0.125000 seconds.7對給定語音信號進行譜分析,寫出采樣頻率,畫出語音信號的波形及頻譜,并分析語音信號的頻率分布特點。(1)畫時域波形并對整個語音序列做DFT x,fs=wavread(C:ai1.wav

14、); subplot(2,1,1) N=length(x); n=0:N-1; plot(n,x); xlabel(n); ylabel(x); title(時域波形);subplot(2,1,2); N=length(x); n=0:N-1; t=0.01*n; q=n*2*pi/N; y=dft(x,N);plot(q,abs(y); xlabel(n);ylabel(ai1); title(DFT); (2)并分別求出k=300,3500所對應的信號頻率(Hz) x,fs=wavread(C:ai1.wav)N=length(x);n=0:N-1; t=n*(1/fs);q=n*2*pi

15、/N;n1=300;q1=n1*2*pi/N; f1=q1*fs/(2*pi);n2=3500;q2=n2*2*pi/N;f2=q2*fs/(2*pi);fs = 16000(3)從語音中截取一段語音(256點)做DFT,得出頻譜,畫出時域波形及頻譜。分別求出k=5,60時所對應的信號頻率(Hz) 程序如下: x,fs=wavread(C:ai1.wav); subplot(2,1,1); N=256;n=0:N-1;x=x(1:256); plot(n,x);xlabel(n); ylabel(x); title(256點時域波形); subplot(2,1,2); N=256;n=0:N-1; t=0.01*n;q=n*2*pi/N; x=x(1:256);y=dft(x,N); plot(q,abs(y); xlabel(n);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論