?? 3filters.txt
字號:
奈奎斯特抽樣定理(即低通信號的均勻抽樣定理)告訴我們,一個頻帶限制在0至fx以內的低通信號x(t),如果以fs≥2fx的抽樣速率進行均勻抽樣,則x(t)可以由抽樣后的信號xs(t)完全地確定,即xs(t)包含有x(t)的成分,可以通過適當的低通濾波器不失真地恢復出x(t)。最小抽樣速率fs=2fx稱為奈奎斯特速率。
低通
譯碼
編碼
量化
抽樣
輸入信號 樣點輸出 濾波輸出
A/D(模數轉換) D/A(數模轉換)
圖1 低通采樣定理演示
為方便實現,實驗中更換了一種表現形式,即抽樣頻率固定(10KHz),通過改變輸入模擬信號的頻率來展示低通抽樣定理。我們可以通過研究抽樣頻率和模擬信號最高頻率分量的頻率之間的關系,來驗證低通抽樣定理。
1.4 實驗內容
1.軟件仿真實驗:編寫并調試MATLAB程序,分析有關參數,記錄有關波形。
2.硬件實驗:輸入不同頻率的正弦信號,觀察采樣時鐘波形、輸入信號波形、樣點輸出波形和濾波輸出波形。
1.5 MATLAB參考程序和仿真內容
%*******************************************************************%
%f—余弦信號的頻率
% M—基2 FFT冪次數 N=2^M為采樣點數,這樣取值是為了便于作基2的FFT分析
%2. 采樣頻率Fs
%*******************************************************************%
function samples(f,Fs,M)
N=2^M; % fft點數=取樣總點數
Ts=1/Fs; % 取樣時間間隔
T=N*Ts; % 取樣總時間=取樣總點數*取樣時間間隔
n=0:N-1;
t=n*Ts;
Xn=cos(2*f*pi*t);
subplot(2,1,1);
stem(t,Xn);
axis([0 T 1.1*min(Xn) 1.1*max(Xn)]);
xlabel('t -->');
ylabel('Xn');
Xk=abs(fft(Xn,N));
subplot(2,1,2);
stem(n,Xk);
axis([0 N 1.1*min(Xk) 1.1*max(Xk)]);
xlabel('frequency -->');
ylabel('!Xk!');
%*******************************************************************%
假如有一個1Hz的余弦信號y=cos(2*π*t),對其用4Hz的采樣頻率進行采樣,共采樣32點,只需執行samples(1,4,5),即可得到仿真結果。
軟件仿真實驗內容如下表所示:
仿真參數
f
Fs
Wo(計算)
Xn(圖形)
Xk(圖形)
(1,4,5)
另外記錄圖形,并標圖號
(1,8,5)
(2,8,6)
自 選
1.6 硬件實驗步驟
本實驗箱采樣頻率fs固定為10KHz,低通濾波器的截止頻率約為4.5KHz。
1、用低頻信號源產生正弦信號,正弦信號源頻率f自定,并將其接至2TP2(模擬輸入)端,將示波器通道一探頭接至2TP6(采樣時鐘)端觀察采樣時鐘波形,示波器通道二探頭接至2TP2觀察并記錄輸入信號波形。
2、將示波器通道二探頭接至2TP3觀察并記錄樣點輸出波形。
3、將示波器通道二探頭接至2TP4觀察并記錄濾波輸出波形。
4、根據采樣定理,分f=fs /8、f=fs/4、f=fs/2等3種情況更改正弦信號頻率,重復步驟2至步驟3。
5、用低頻信號源產生方波信號,重復步驟1至步驟4。
1.7 思考題
1、 討論在仿真實驗中所計算的數字域頻率Wo和Xk的圖形中非零譜線位置之間的對應關系。
2、 討論在仿真實驗中自選參數的意義。
3、將在2TP2端加方波信號后的恢復波形,與相同頻率的正弦信號的恢復波形相比,能夠得出哪些結論?
2 FFT頻譜分析實驗
2.1 實驗目的
1.通過實驗加深對快速傅立葉變換(FFT)基本原理的理解。
2.了解FFT點數與頻譜分辨率的關系,以及兩種加長序列FFT與原序列FFT的關系。
2.2 實驗儀器
1.YBLD智能綜合信號源測試儀 1臺
2.雙蹤示波器 1臺
3.MCOM-TG305數字信號處理與現代通信技術實驗箱 1臺
4.PC機(裝有MATLAB、MCOM-TG305配套實驗軟件) 1臺
2.3 實驗原理
離散傅里葉變換(DFT)和卷積是信號處理中兩個最基本也是最常用的運算,它們涉及到信號與系統的分析與綜合這一廣泛的信號處理領域。實際上卷積與DFT之間有著互通的聯系:卷積可化為DFT來實現,其它的許多算法,如相關、濾波和譜估計等都可化為DFT來實現,DFT也可化為卷積來實現。
對N點序列x(n),其DFT變換對定義為:
在DFT運算中包含大量的重復運算。FFT算法利用了蝶形因子WN的周期性和對稱性,從而加快了運算的速度。FFT算法將長序列的DFT分解為短序列的DFT。N點的DFT先分解為2個N/2點的DFT,每個N/2點的DFT又分解為2個N/4點的DFT。按照此規律,最小變換的點數即所謂的“基數(radix)?!币虼?,基數為2的FFT算法的最小變換(或稱蝶形)是2點DFT。一般地,對N點FFT,對應于N個輸入樣值,有N個頻域樣值與之對應。一般而言,FFT算法可以分為時間抽?。―IT)FFT和頻率抽取(DIF)兩大類。
在實際計算中,可以采用在原來序列后面補0的加長方法來提高FFT的分辨率;可以采用在原來序列后面重復的加長方法來增加FFT的幅度。
2.4 實驗內容
1.軟件仿真實驗:分別觀察并記錄正弦序列、方波序列及改變FFT的點數后的頻譜;分別觀察并記錄正弦序列、方波序列及2種加長序列等信號的頻譜。
2.硬件實驗:分別觀察并記錄正弦信號、方波信號及改變FFT的點數后的頻譜。
2.5 MATLAB參考程序和仿真內容
%*******************************************************************%
function[x]=ffts(mode,M)
Nfft=2^M;
x=zeros(1,Nfft); %定義一個長度為Nfft的一維全0數組
if mode= =1 for n=0:Nfft-1 x(n+1)=sin(2*pi*n/Nfft); end
end %定義一個長度為Nfft的單周期正弦序列
if mode= =2 for n=0:Nfft-1 x(n+1)=sin(4*pi*n/Nfft); end
end %定義一個長度為Nfft的雙周期正弦序列
if mode= =3 for n=0:Nfft/2-1 x(n+1)=sin(4*pi*n/Nfft); end
end %定義一個長度為Nfft/2的正弦序列,后面一半為0序列。
if mode= =4 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end
end
if mode= =5 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end
end
if mode= =6 for n=0:Nfft/2-1 x(n+1)=square(4*pi*n/Nfft); end
end
n=0:Nfft-1;
subplot(2,1,1);
stem(n,x);
axis([0 Nfft-1 1.1*min(x) 1.1*max(x)]);
xlabel('Points-->');
ylabel('x(n)');
X=abs(fft(x,Nfft));
subplot(2,1,2);
stem(n,X);
axis([0 Nfft-1 1.1*min(X) 1.1*max(X)]);
xlabel('frequency-->');
ylabel('!X(k)!');
%*******************************************************************%
假設需觀察方波信號的頻譜,對一個周期的方波信號作32點的FFT,則只需在MATLAB的命令窗口下鍵入:[x]=ffts(21,5) ,程序進行模擬,并且輸出FFT的結果。
關于軟件仿真實驗內容,建議在完成大量仿真例子的基礎上,選擇能夠體現實驗要求的4個以上的例子進行記錄。例如要觀察后面補0的加長方法來提高FFT的分辨率的現象,可以仿真ffts(4,5)和ffts(6,6)兩個例子。
2.6 硬件實驗步驟
1.將低頻信號源輸出加到實驗箱模擬通道1輸入端,將示波器探頭接至模擬通道1輸出端。
2.在保證實驗箱正確加電且串口電纜連接正常的情況下,運行數字信號處理與DSP應用實驗開發軟件,在“數字信號處理實驗”菜單下選擇“FFT頻譜分析”子菜單,出現顯示FFT頻譜分析功能提示信息的窗口。
3.用低頻信號產生器產生一個1KHz的正弦信號。
4.選擇FFT頻譜分析與顯示的點數為64點,開始進行FFT運算。此后,計算機將周期性地取回DSP運算后的FFT數據并繪圖顯示
5.改信號源頻率,觀察并記錄頻譜圖的變化。
6.選擇FFT的點數為128點,觀察并記錄頻譜圖的變化。
7.更改正弦信號的頻率,重復步驟4 ~步驟6。
8.用低頻信號產生器產生一個1KHz的方波信號,重復步驟4 ~步驟7。注意:應根據實驗箱采樣頻率fs為10KHz和方波信號的頻帶寬度選擇方波信號的頻率。
本硬件實驗要進行兩種信號,每個信號兩種頻率,每個信號兩種點數等共8次具體實驗內容,性質能夠體現實驗要求的4個以上的例子進行記錄。
2.7 思考題
1.對同一個信號,不同點數FFT觀察到的頻譜圖有何區別?
2.序列加長后FFT與原序列FFT的關系是什么,試推導其中一種關系。
3.用傅立葉級數理論,試說明正弦信號頻譜和方波信號頻譜之間的關系。
3 IIR濾波器設計實驗
3.1 實驗目的
1.通過實驗加深對IIR濾波器基本原理的理解。
2.學習編寫IIR濾波器的MATLAB仿真程序。
3.2 實驗儀器
1.YBLD智能綜合信號源測試儀 1臺
2.雙蹤示波器 1臺
3.MCOM-TG305數字信號處理與現代通信技術實驗箱 1臺
4.PC機(裝有MATLAB、MCOM-TG305配套實驗軟件) 1臺
3.3 實驗原理
IIR濾波器有以下幾個特點:
1.IIR數字濾波器的系統函數可以寫成封閉函數的形式。
2.IIR數字濾波器采用遞歸型結構,即結構上帶有反饋環路。IIR濾波器運算結構通常由延時、乘以系數和相加等基本運算組成,可以組合成直接型、正準型、級聯型、并聯型四種結構形式,都具有反饋回路。由于運算中的舍入處理,使誤差不斷累積,有時會產生微弱的寄生振蕩。
3.IIR數字濾波器在設計上可以借助成熟的模擬濾波器的成果,如巴特沃斯、契比雪夫和橢圓濾波器等,有現成的設計數據或圖表可查,其設計工作量比較小,對計算工具的要求不高。在設計一個IIR數字濾波器時,我們根據指標先寫出模擬濾波器的公式,然后通過一定的變換,將模擬濾波器的公式轉換成數字濾波器的公式。
4.IIR數字濾波器的相位特性不好控制,對相位要求較高時,需加相位校準網絡。
在MATLAB下設計IIR濾波器可使用Butterworth函數設計出巴特沃斯濾波器,使用Cheby1函數設計出契比雪夫I型濾波器,使用Cheby2設計出契比雪夫II型濾波器,使用ellipord函數設計出橢圓濾波器。下面主要介紹前兩個函數的使用。
與FIR濾波器的設計不同,IIR濾波器設計時的階數不是由設計者指定,而是根據設計者輸入的各個濾波器參數(截止頻率、通帶濾紋、阻帶衰減等),由軟件設計出滿足這些參數的最低濾波器階數。在MATLAB下設計不同類型IIR濾波器均有與之對應的函數用于階數的選擇。
一、巴特沃斯IIR濾波器的設計
在MATLAB下,設計巴特沃斯IIR濾波器可使用butter函數。
Butter函數可設計低通、高通、帶通和帶阻的數字和模擬IIR濾波器,其特性為使通帶內的幅度響應最大限度地平坦,但同時損失截止頻率處的下降斜度。在期望通帶平滑的情況下,可使用butter函數。
butter函數的用法為:
[b,a]=butter(n,Wn,/ftype/)
其中n代表濾波器階數,Wn代表濾波器的截止頻率,這兩個參數可使用buttord函數來確定。buttord函數可在給定濾波器性能的情況下,求出巴特沃斯濾波器的最小階數n,同時給出對應的截止頻率Wn。buttord函數的用法為:
[n,Wn]= buttord(Wp,Ws,Rp,Rs)
其中Wp和Ws分別是通帶和阻帶的拐角頻率(截止頻率),其取值范圍為0至1之間。當其值為1時代表采樣頻率的一半。Rp和Rs分別是通帶和阻帶區的波紋系數。
不同類型(高通、低通、帶通和帶阻)濾波器對應的Wp和Ws值遵循以下規則:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -