一、實驗目的和要求
1、掌握dft變換
2、掌握dft性質
3、掌握快速傅利葉變換(fft)
二、實驗內容和原理
1、實驗內容
1)求有限長離散時間訊號的離散時間傅利葉變換並繪圖。
已知已知2)已知序列,,繪製及其離散傅利葉變換的幅度、相位圖。
3)設,,其中,randn(n)為高斯白雜訊。求出,m=2,3,4的matlab採用不同演算法的執行時間。
4)研究高密度頻譜和高解析度頻譜。
設有連續訊號
以取樣頻率對訊號x(t)取樣,分析下列三種情況的幅頻特性。
採集資料長度n=16點,做n=16點的fft,並畫出幅頻特性。
採集資料長度n=16點,補零到256點,做n=256點的fft,並畫出幅頻特性。
採集資料長度n=256點,做n=256點的fft,並畫出幅頻特性。
觀察三種不同頻率特性圖,分析和比較它們的特點以及形成的原因。
2、實驗原理
1)dft
序列x(n)的離散時間傅利葉變換(dtft)表示為,
如果x(n)為因果有限長序列,n=0,1,...,n-1,則x(n)的dtft表示為
x(n)的離散傅利葉變換(dft)表示式為
序列的n點dft是序列dtft在頻率區間[0,2π]上的n點燈間隔取樣,取樣間隔為2π/n。通過dft,可以完成由一組有限個訊號取樣值x(n)直接計算得到一組有限個頻譜取樣值x(k)。x(k)的幅度譜為,其中下標r和i分別表示取實部、虛部的運算。
x(k)的相位譜為。
離散傅利葉反變換(idft)定義為。
2)fft
快速傅利葉變換(fft)是dft的快速演算法,並不是乙個新的對映。fft利用了函式的週期性和對稱性以及一些特殊值來減少dft的運算量,可使dft的運算量下降幾個數量級,從而使數字訊號處理的速度大大提高。
若訊號是連續訊號,用fft進行譜分析時,首先必須對訊號進行取樣,使之變成離散訊號,然後就可以用fft來對連續訊號進行譜分析。為了滿足取樣定理,一般在取樣之前要設定乙個抗混疊低通濾波器,且抗混疊濾波器的截止頻率不得高於與取樣頻率的一半。
比較dft和idft的定義,兩者的區別僅在於指數因子的指數部分的符號差異和幅度尺度變換,因此可用fft演算法來計算idft。
三、主要儀器裝置
matlab
四、操作方法和實驗步驟
1、認真分析原函式,取點
2、用matlab編寫程式,執行程式得出結果
五、實驗資料記錄、處理和分析
1、求有限長離散時間訊號的離散時間傅利葉變換並繪圖。
已知已知【解答】
思路:這是一道dft的題,按照題目要求只需要取11個點即可。
第(1)小題
m檔案源**
n=11取點個數為11個
j=sqrt(-1); %定義j為複數單位
f=inline('(0.9*exp(j*pi/3))^n','n'); %定義乙個函式f(n)
w=0:2*pi/1000:2*pi定義離散域的基本頻率w為陣列,間距為2*pi/1000
xw=zeros(size(w定義乙個與w位數相等的陣列
for n=0:n-1
xw=xw+f(n)*exp(-j*w*n);
end對f(n)函式做dft變換
xn=;
for n=0:n-1
xn(n+1)=f(n);
end將f(n)的值放進陣列xn裡面,便於最後畫出xn的影象
magxw=abs(xw定義乙個陣列magxw,將abw(xw)的值賦給它
anglexw= angle(xw); %定義陣列anglexw,將angle(xw)的值賦給它
figure(1);
plot(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的影象
執行結果
xn影象:
x(w)的幅度圖
x(w)的相位圖
【分析】
可見的幅度頻譜有11-1=10個極大,11-1=10個極小。而的相位則有11-1=10個極大,11-1=10個極小,並且相位在-和之間擺動。
第(2)小題
m檔案源**
n=10取點個數為11個
j=sqrt(-1定義j為複數單位
f=inline('2^n','n'); %定義乙個函式f(n)
w=0:2*pi/1000:2*pi; %定義離散域的基本頻率,將其設定為間距為2*pi/1000的陣列
xw=zeros(size(w)); %定義乙個陣列xw,位數與w相等
for n=-n:n
xw=xw+f(n)*exp(-j*w*n);
end對f(n)函式做dtft變換
xn定義乙個陣列xn
for n=-n:n
xn(n+1+n)=f(n);
end將f(n)的值放進陣列xn裡面,便於最後畫出xn的影象
magxw=abs(xw將x(w)的模值放進陣列magxw
anglexw=angle(xw將x(w)的相位放進陣列magxw
figure(1);
plot(xn,'.-');
xlabel('n'); ylabel('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)的相位圖
【分析】
可見的幅度有乙個極大值,乙個極小值。的相位在之間來回振動,並且中間出現突變的情況。
2)已知序列,,繪製及其離散傅利葉變換的幅度、相位圖。
【解答】
思路:這是一道dft的題,按照題目要求只需要取51個點即可。
m檔案源**
n=51取點個數為50個
j=sqrt(-1定義j為複數單位
f=inline('cos(0.82*pi*n)+2*sin(pi*n)','n定義乙個函式f(n)
xk定義乙個陣列xk
w=2*pi/n定義離散域的基本頻率
for k=1:n
xk(k)=0;
for n=0:n-1
xk(k)=xk(k)+f(n)*exp(-j*(k-1)*w*n);
endend對f(n)函式做dft變換
xn定義乙個陣列xn
for n=0:n-1
xn(n+1)=f(n);
end將f(n)的值放進陣列xn裡面,便於最後畫出xn的影象
magxk定義乙個陣列magxk
for k=1:n
magxk(k)=abs(xk(k));
end將x(kw)的模值放進陣列magxk
anglexk定義陣列anglexk
for k=1:n
anglexk(k)=angle(xk(k));
end將x(kw)的相位放進陣列magxk
figure(1);
plot(xn,'.-');
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的影象
命令視窗中的執行及其結果:
xn影象
xk的幅度圖
xk的相位圖
【分析】
可見的幅度頻譜擁有兩個峰值,的相位頻譜在之間來回振動,且中間存在3個台階式的向下跳變,乙個台階式的向上跳變。
實驗一用FFT進行譜分析
一 實驗目的 1.進一步加深對dft演算法原理和基本性質的理解 因為fft只是dft的一種快速演算法,所以fft的運算結果必然滿足dft的基本性質 2.熟悉fft演算法原理和fft子程式的應用。3.學習用fft對連續訊號和時域離散訊號進行譜分析的方法,了解可能出現的分析誤差及其原因,以便在實際中正確...
實驗三 用FFT對訊號作頻譜分析 實驗報告
一 實驗目的與要求 學習用fft對連續訊號和時域離散訊號進行譜分析的方法,了解可能出現的分析誤差及其原因,以便正確應用fft。二 實驗原理 用fft對訊號作頻分析是學習數字訊號處理的重要內容,經常需要進行分析的訊號是模擬訊號的時域離散訊號。對訊號進行譜分析的重要問題是頻譜解析度d和分析誤差。頻譜解析...
實驗三 用FFT對訊號作頻譜分析 實驗報告
一 實驗目的與要求 學習用fft對連續訊號和時域離散訊號進行譜分析的方法,了解可能出現的分析誤差及其原因,以便正確應用fft。二 實驗原理 用fft對訊號作頻分析是學習數字訊號處理的重要內容,經常需要進行分析的訊號是模擬訊號的時域離散訊號。對訊號進行譜分析的重要問題是頻譜解析度d和分析誤差。頻譜解析...