一、實驗目的
1、掌握FIR數字濾波器設計的一般方法和步驟;
2、了解各種窗函數的性能
3、學會利用窗函數法設計FIR數字濾波器;
4、掌握FIR數字濾波器的實現方法
5、學會用所設計的濾波器對實際信號進行濾波處理
6、驗證FIR數字濾波器獲取線性相位需要滿足的條件
7、對FIR數字濾波器的特點有全面的認識
二、實驗原理
(1)根據取樣周期T,確定相應的數字頻率 。
(2)根據阻帶衰減確定窗函數形式
(3)根據過渡帶寬
確定加窗寬度N:
其中系數 根據窗函數確定,稱為窗寬系數; 一般取奇數。
(4)確定單位取樣響應位移系數
(5)確定濾波器單位取樣響應
或
。
(6)計算濾波器的頻率響應:
(7)校驗技術指標是否已經滿足,如不滿足,則重新選取較大的 進行(3)、(4)計算;如滿足有余,則試選較小的N進行(3),(4)計算。
3、FIR數字濾波器頻率響應的計算FIR數字濾波器的頻率響應可以通過對其單位取樣響應進行FFT得到。
4、FIR數字濾波器的實現FIR數字濾波器的實現是借助于線性卷積,即:
線性卷積的運算,一般借助于FFT進行
5、FIR數字濾波器獲取線性相位的條件要求濾波器的單位取樣響應是中心對稱的,即
三、實驗步驟、數據記錄及處理
FIR數字濾波器的設計及應用
1、設置輸入心電圖信號序列,繪制其波形;
2、給定濾波器技術參數
3、設計FIR數字濾波器。
4、編寫快速卷積程序利用設計好的FIR數字濾波器完成對信號的濾波處理
5、繪制濾波處理后的心電圖信號波形。(注:前m個點是延遲點,畫圖時去掉不畫)
6、改變m的值,驗證FIR數字濾波器獲取線性相位需要滿足的條件
實驗例程:
clear all;clc;close all;%關閉當前窗口
%生成濾波前信號波形
x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];
nx=length(x);%采樣數據點數;
n=0:nx-1;%設置自變量n的取值范圍;
figure('name','%加窗法設計FIR數字濾波器')
subplot(221);stem(n,x,'.');grid on;xlabel('n');ylabel('x(n)');title('濾波前信號波形');%繪制序列x(n)的圖形%加窗法設計FIR數字濾波器
fp=15;fs=23;Fs=100;T=1/Fs;%給定技術指標
Wp=2*pi*fp;Ws=2*pi*fs;%給定技術指標;
wp=Wp*T;ws=Ws*T;%轉換為數字角頻率;
P=2;%窗寬系數
tr_width=ws-wp;%計算過渡帶寬
wc=(ws+wp)/2;%計算FIR濾波器的截止頻率
N0=ceil(P*4*pi/tr_width);%計算加窗寬度N
N=N0+mod(N0+1,2);%確保N為奇數;
m=(N-1)/2;%計算移位系數;
n=[0:1:N-1];%設置自變量n的取值范圍;
window=(hamming(N))';%生成窗函數序列
nm=n-m+eps;
hd=sin(wc*nm)./(pi*nm);%計算理想移位低通濾波器的單位取樣響應
hn=hd.*window;%對理想移位低通濾波器加窗,得到實際濾波器的單位取樣響應
H=fft(hn,1024);%fft計算濾波器的實際頻率響應
k=0:1:511;w=2*pi*(Fs*k/1024);%設置離散頻率k的取值范圍
mag=abs(H);%計算函數的幅度特性
pha=angle(H);%計算相位特性
db=20*log10((mag+eps)/max(mag));%將幅度特性轉換為對數形式
%畫出濾波器相頻響應和幅頻響應
subplot(224);plot(w,pha(1:512));grid on;xlabel('w/2pi');ylabel('ψ(w)');title('濾波器相頻響應');
subplot(222);plot(w,db(1:512));grid on;xlabel('w(pi)');ylabel('|H(jw)|(db)');title('濾波器幅頻響應');%對心電圖采樣序列進行濾波
L=pow2(nextpow2(nx+length(hn)-1));%確定FFT(快速卷積)的點數
Xk=fft(x,L);Hk=fft(hn,L);%求x(n)和h(n)序列的快速傅里葉變換關于L點的
Yk=Xk.*Hk;%求XK;
y=ifft(Yk,L);%對YK調用ifft,求得y(n);
yn=y(m+1:nx+m);%確定y(n)的自變量取值范圍;
subplot(223);stem(yn,'.');grid on;xlabel('n');ylabel('y(n)');title('濾波器后信號波形'); %繪制濾波器濾波后的圖形
%利用filter()函數驗證濾波后結果
L=pow2(nextpow2(nx+length(hn)-1));%確定FFT(快速卷積)的點數
Xk=fft(x,L);%求XK;
x1=ifft(Xk,L);%對YK調用ifft,求得x1;
r=filter(hn,[1],x1);
rn=r(m+1:nx+m);
%subplot(224);stem(rn,'.');grid on;xlabel('n');ylabel('r(n)');title('濾波器后信號波形');
四、分析
分析略
五、總結
總結略
總結
以上是生活随笔為你收集整理的FIR数字滤波器的设计及应用——MATLAB的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。