DFT和FFT實驗上傳_第1頁
DFT和FFT實驗上傳_第2頁
DFT和FFT實驗上傳_第3頁
DFT和FFT實驗上傳_第4頁
DFT和FFT實驗上傳_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、裝 訂 線DFT和FFT實驗一、實驗?zāi)康暮鸵?、掌握DFT變換2、掌握DFT性質(zhì)3、掌握快速傅立葉變換(FFT)二、實驗內(nèi)容和原理1、實驗內(nèi)容1)求有限長離散時間信號的離散時間傅立葉變換并繪圖。· 已知 · 已知2)已知序列,繪制及其離散傅立葉變換的幅度、相位圖。3)設(shè),,其中,randn(n)為高斯白噪聲。求出,m=2,3,4的matlab采用不同算法的執(zhí)行時間。4)研究高密度頻譜和高分辨率頻譜。 設(shè)有連續(xù)信號· 以采樣頻率對信號x(t)采樣,分析下列三種情況的幅頻特性。· 采集數(shù)據(jù)長度N=16點,做N=16點的FFT,并畫出幅頻特性。·

2、采集數(shù)據(jù)長度N=16點,補(bǔ)零到256點,做N=256點的FFT,并畫出幅頻特性。· 采集數(shù)據(jù)長度N=256點,做N=256點的FFT,并畫出幅頻特性。觀察三種不同頻率特性圖,分析和比較它們的特點以及形成的原因。2、實驗原理1)DFT序列x(n)的離散時間傅里葉變換(DTFT)表示為,如果x(n)為因果有限長序列,n=0,1,.,N-1,則x(n)的DTFT表示為x(n)的離散傅里葉變換(DFT)表達(dá)式為序列的N點DFT是序列DTFT在頻率區(qū)間0,2上的N點燈間隔采樣,采樣間隔為2/N。通過DFT,可以完成由一組有限個信號采樣值x(n)直接計算得到一組有限個頻譜采樣值X(k)。X(k)

3、的幅度譜為,其中下標(biāo)R和I分別表示取實部、虛部的運算。X(k)的相位譜為。離散傅里葉反變換(IDFT)定義為。2)FFT快速傅里葉變換(FFT)是DFT的快速算法,并不是一個新的映射。FFT利用了函數(shù)的周期性和對稱性以及一些特殊值來減少DFT的運算量,可使DFT的運算量下降幾個數(shù)量級,從而使數(shù)字信號處理的速度大大提高。若信號是連續(xù)信號,用FFT進(jìn)行譜分析時,首先必須對信號進(jìn)行采樣,使之變成離散信號,然后就可以用FFT來對連續(xù)信號進(jìn)行譜分析。為了滿足采樣定理,一般在采樣之前要設(shè)置一個抗混疊低通濾波器,且抗混疊濾波器的截止頻率不得高于與采樣頻率的一半。比較DFT和IDFT的定義,兩者的區(qū)別僅在于指

4、數(shù)因子的指數(shù)部分的符號差異和幅度尺度變換,因此可用FFT算法來計算IDFT。三、主要儀器設(shè)備Matlab四、操作方法和實驗步驟1、認(rèn)真分析原函數(shù),取點2、用matlab編寫程序,運行程序得出結(jié)果五、實驗數(shù)據(jù)記錄、處理和分析1、求有限長離散時間信號的離散時間傅立葉變換并繪圖。· 已知 · 已知【解答】思路:這是一道DFT的題,按照題目要求只需要取11個點即可。第(1)小題M文件源代碼N=11; %取點個數(shù)為11個j=sqrt(-1); %定義j為復(fù)數(shù)單位f=inline('(0.9*exp(j*pi/3)n','n'); %定義一個函數(shù)f(n)

5、W=0:2*pi/1000:2*pi; %定義離散域的基本頻率W為數(shù)組,間距為2*pi/1000Xw=zeros(size(W); %定義一個與W位數(shù)相等的數(shù)組 for n=0:N-1 Xw=Xw+f(n)*exp(-j*W*n); end %對f(n)函數(shù)做DFT變換 xn=;for n=0:N-1 xn(n+1)=f(n); end %將f(n)的值放進(jìn)數(shù)組xn里面,便于最后畫出xn的圖像magXw=abs(Xw); %定義一個數(shù)組magXw,將abw(Xw)的值賦給它angleXw= angle(Xw); %定義數(shù)組angleXw,將angle(Xw)的值賦給它figure(1); pl

6、ot(xn,'.-');xlabel('n'); ylabel('x(n)'); %畫出xn的圖figure(2);k=0:1:N-1;plot(W,magXw,'-') xlabel('W'); ylabel('|X(W)|'); %畫出magXw的圖像figure(3);plot(W,angleXw,'-');xlabel('W'); ylabel('angle(X(W)'); %畫出angleXw的圖像運行結(jié)果xn圖像:X(W)的幅度圖X(W)的

7、相位圖 【分析】X=n=010(0.9ej3)n·e-jn=1-(0.9ej3-)111-0.9ej3-,X=|1-0.9ej3-11|1-0.9ej3-|可見X的幅度頻譜有11-1=10個極大,11-1=10個極小。而X的相位則有11-1=10個極大,11-1=10個極小,并且相位在-2和2之間擺動。第(2)小題M文件源代碼N=10; %取點個數(shù)為11個j=sqrt(-1); %定義j為復(fù)數(shù)單位f=inline('2n','n'); %定義一個函數(shù)f(n)W=0:2*pi/1000:2*pi; %定義離散域的基本頻率,將其設(shè)置為間距為2*pi/100

8、0的數(shù)組Xw=zeros(size(W); %定義一個數(shù)組Xw,位數(shù)與W相等 for n=-N:N Xw=Xw+f(n)*exp(-j*W*n); end %對f(n)函數(shù)做DTFT變換 xn=; %定義一個數(shù)組xnfor n=-N:N xn(n+1+N)=f(n);end %將f(n)的值放進(jìn)數(shù)組xn里面,便于最后畫出xn的圖像 magXw=abs(Xw); %將X(W)的模值放進(jìn)數(shù)組magXw angleXw=angle(Xw); %將X(W)的相位放進(jìn)數(shù)組magXwfigure(1); plot(xn,'.-');xlabel('n'); ylabel(&

9、#39;x(n)'); %畫出xn的圖figure(2);plot(W,magXw,'-') xlabel('W'); ylabel('|X(w)|'); %畫出magXw的圖像figure(3);plot(W,angleXw,'-');xlabel('W'); ylabel('angle(X(w)'); %畫出angleXw的圖像xn圖像X(W)的幅度圖X(W)的相位圖【分析】X=n=-10102n·e-jn=2e-j-101-2e-j211-2e-j,|X|=2-10|1-2e

10、-j21|1-2e-j|可見X的幅度有一個極大值,一個極小值。X的相位在-到之間來回振動,并且中間出現(xiàn)突變的情況。2)已知序列,繪制及其離散傅立葉變換的幅度、相位圖?!窘獯稹克悸罚哼@是一道DFT的題,按照題目要求只需要取51個點即可。M文件源代碼N=51; %取點個數(shù)為50個j=sqrt(-1); %定義j為復(fù)數(shù)單位f=inline('cos(0.82*pi*n)+2*sin(pi*n)','n'); %定義一個函數(shù)f(n)Xk=; %定義一個數(shù)組XkW=2*pi/N; %定義離散域的基本頻率for k=1:N Xk(k)=0; for n=0:N-1 Xk(k

11、)=Xk(k)+f(n)*exp(-j*(k-1)*W*n); endend %對f(n)函數(shù)做DFT變換xn=; %定義一個數(shù)組xnfor n=0:N-1 xn(n+1)=f(n);end %將f(n)的值放進(jìn)數(shù)組xn里面,便于最后畫出xn的圖像magXk=; %定義一個數(shù)組magXkfor k=1:N magXk(k)=abs(Xk(k);end %將X(kW)的模值放進(jìn)數(shù)組magXkangleXk=; %定義數(shù)組angleXkfor k=1:N angleXk(k)=angle(Xk(k);end %將X(kW)的相位放進(jìn)數(shù)組magXkfigure(1);plot(xn,'.-&

12、#39;);xlabel('n'); ylabel('x(n)'); %畫出xn的圖figure(2);k=0:1:N-1;plot(k,magXk,'+-') xlabel('k'); ylabel('|X(k)|'); %畫出magXk的圖像figure(3);plot(k,angleXk,'x-');xlabel('k'); ylabel('angle(X(k)'); %畫出angleXk的圖像命令窗口中的運行及其結(jié)果:xn圖像Xk的幅度圖Xk的相位圖【分析】X

13、k=n=050cos0.82n+2sinne-jk251n=n=050ej0.82n+e-j0.82n2e-jk251n=12n=050(ej0.82-k251n+e-j0.82+k251n)=12(1-(ej0.82-k251)511-ej0.82-k251+1-e-j0.82+k251511-e-j0.82+k251)可見Xk的幅度頻譜擁有兩個峰值,Xk的相位頻譜在-到之間來回振動,且中間存在3個臺階式的向下跳變,一個臺階式的向上跳變。3設(shè),,其中,randn(n)為高斯白噪聲。求出,m=2,3,4的matlab采用不同算法的執(zhí)行時間?!窘獯稹克悸罚河嬎鉊FT算法和FFT算法的運行時間可以

14、使用的etime函數(shù)M文件源代碼m=input('m=:'); %輸入m值N=4m; %求出所取得x(n)的點數(shù)j=sqrt(-1); %定義j為復(fù)數(shù)單位arr=; %定義一個數(shù)組arrW=2*pi/N; %定義離散域的基本頻率dft_time=0; %定義dft_time為0t1=clock; %此處為dft計算的時間起點for k=1:N arr(k)=0; for n=0:N-1 arr(k)=arr(k)+(sin(0.2*pi*n)+rand(1)*exp(-j*(k-1)*W*n); endend %對x(n)做dft變換dft_time=etime(clock,t

15、1) %得出dft變換所花的時間Wn=exp(-j*2*pi/N); %求出旋轉(zhuǎn)因子 xn=zeros(1,N); %定義一個N位數(shù)組fft_time=0; %定義fft_time為0t2=clock; %此處為fft計算的時間起點for n=0:N-1 xn(n+1)=sin(0.2*pi*n)+randn(1); %將x(n)的值放入數(shù)組xn中 end n1=fliplr(dec2bin(0:N-1); %碼位倒置步驟1:將碼位轉(zhuǎn)換為二進(jìn)制,再進(jìn)行倒序n2=bin2dec(n1); %碼位倒置步驟2:將碼位轉(zhuǎn)換為十進(jìn)制后翻轉(zhuǎn)x=zeros(2*m+1,N); %定義一個(2m+1)

16、5;N的矩陣for i=1:N x(1,i)=xn(n2(i)+1);end %將碼位倒序后的值重新賦值進(jìn)入矩陣第一列for i=1:2*m %進(jìn)行第v級計算 Number=2(2*m-i); Interval_of_Unit=2(i-1); %每組中每個計算單元的間距 Interval_of_Group=2i; %每組之間的間距 Wnr=; %定義一個新數(shù)組Wnr for r=1:2(i-1) Wnr(r)=Wn(r-1)*N/2i); end %將每一級運算的指數(shù)因子賦值給Wnr for k=0:Number-1 for l=1:2(i-1) x(i+1,l+k*2i)=x(i,l+k*2

17、i)+Wnr(l)*x(i,l+k*2i+2(i-1); x(i+1,l+k*2i+2(i-1)=x(i,l+k*2i)-Wnr(l)*x(i,l+k*2i+2(i-1); end end end %對x(n)做fft變換fft_time=etime(clock,t2) %得出dft變換所需要的時間命令窗口中的運行及其結(jié)果m=:2dft_time = 0fft_time = 0m=:3dft_time = 0.02200000000000fft_time = 0.00400000000000m=:4dft_time =fft_time =【分析】從實驗結(jié)果可以看出,對于同樣的x(n),F(xiàn)FT變

18、換的計算時間小于DFT變換的計算時間,并且隨著取樣點數(shù)的增多,這種差距越來越明顯。這是由于FFT算法利用了旋轉(zhuǎn)因子的對稱性和周期性,將長序列分解為短序列,分級進(jìn)行蝶形運算使得復(fù)數(shù)乘法的次數(shù)減少到分解前的一半。通過對短序列的計算進(jìn)行適當(dāng)?shù)慕M合,從而達(dá)到了刪除重復(fù)運算,提供運算速度的目的。4)研究高密度頻譜和高分辨率頻譜。 設(shè)有連續(xù)信號· 以采樣頻率對信號x(t)采樣,分析下列三種情況的幅頻特性。· 采集數(shù)據(jù)長度N=16點,做N=16點的FFT,并畫出幅頻特性。· 采集數(shù)據(jù)長度N=16點,補(bǔ)零到256點,做N=256點的FFT,并畫出幅頻特性。· 采集數(shù)據(jù)長

19、度N=256點,做N=256點的FFT,并畫出幅頻特性。觀察三種不同頻率特性圖,分析和比較它們的特點以及形成的原因。【解答】思路:此處為FFT變換,要注意采樣數(shù)據(jù)長度N和FFT變換點數(shù)M不同,因此當(dāng)M>N時,應(yīng)該將x(n)中非0-N-1范圍內(nèi)的點補(bǔ)零。M文件源代碼N=input('N=:'); %輸入采樣數(shù)據(jù)長度NM=input('M=:'); %輸入FFT變換點數(shù)Mfs=32000;v=log2(M); %給采樣頻率fs賦值為32000,v為FFT變換的級數(shù)Wn=exp(-j*2*pi/M); %定義旋轉(zhuǎn)因子Wnj=sqrt(-1); %定義復(fù)數(shù)單位jx

20、n=zeros(1,M); %定義一個M位數(shù)組xnfor n=0:N-1xn(n+1)=cos(2*pi*6.5*1000*n/fs)+cos(2*pi*7*1000*n/fs)+cos(2*pi*9*1000*n/fs);end %將x(n)的值賦值進(jìn)入xn中n1=fliplr(dec2bin(0:M-1);%碼位倒置步驟1:將碼位轉(zhuǎn)換為二進(jìn)制,再進(jìn)行倒序n2=bin2dec(n1);%碼位倒置步驟2:將碼位轉(zhuǎn)換為十進(jìn)制后翻轉(zhuǎn)x=zeros(v+1,M); %定義一個(v+1)×M的矩陣xfor i=1:M x(1,i)=xn(n2(i)+1);end %將碼位倒序后的x(n)值賦

21、值進(jìn)入矩陣x的第一行for i=1:v %進(jìn)行第v級計算 Number=2(v-i); %每一級計算中的“群”數(shù) Interval_of_Unit=2(i-1); %每組中每個計算單元的間距 Interval_of_Group=2i; %每組之間的間距 Wnr=; %定義一個數(shù)組Wnr for r=1:2(i-1) Wnr(r)=Wn(r-1)*M/2i); end %將每一級運算的指數(shù)因子賦值給Wnr for k=0:Number-1 for l=1:2(i-1) x(i+1,l+k*2i)=x(i,l+k*2i)+Wnr(l)*x(i,l+k*2i+2(i-1); x(i+1,l+k*2i+2(i-1)=x(i,l+k*2i)-Wnr(l)*x(i,l+k*2i+2(i-1); end end end %對x(n)做fft變換Xk=; %定義一個數(shù)組Xkfor k=

溫馨提示

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

評論

0/150

提交評論