?c?nsinc(c(n??))[0.54-0.46cos(2?)] 0?n?N-1
N?1?? h(n)=
0 其它
注意,滤波器阶数M=N-1=24。
%rectangular window加矩形窗
M=24;n=0:M;omegac=1; %M: order of the filter hd=omegac/pi.*sinc(omegac/pi*(n-M/2)); stem([0:M],hd); h1=hd; H1=fft(h1,512);
H1_db=20*log10(abs(H1)); %hamming window,哈明窗 w=0.54-0.46.*cos(2*pi*n./M); stem([0:M],w); 加哈明窗 h2=hd.*w; H2=fft(h2,512);
H2_db=20*log10(abs(H2)); 做FIR滤波器的幅频特性曲线 omega=0:pi/255:pi;
c=plot(omega,H1_db(1:256),omega,H2_db(1:256),’r—‘);
16
上图绘出了使用矩形窗、哈明窗设计的实际滤波器的幅频特性。
使用信号处理工具箱中的fir1函数可以很容易地实现FIR滤波器窗口法设计。 它可设计低通、高通、带通、带阻滤波器及多频带滤波器。格式如下:
b = fir1(n,Wc) b = fir1(n,Wc,’ftype’) b = fir1(n,Wc,window) b = fir1(n,Wc,’ftype’,window) b = fir1(n,Wc,’ftype’,window,’noscale’)
n为滤波器的阶数,Wc为3dB截频:0 < Wc < 1, 1对应取样频率的一半。对带通 和带阻滤波器,Wc=[w1,w2],为通带上下截频。若Wc=[w1,w2,w3…wn], 表示 滤波器具有n个频带:0 ftype=’high’, 指定一个截频为Wc的高通滤波器; 17 ftype=’stop’ 指定一个带阻滤波器,其阻带截止频率为Wc=[w1,w2]; ftype=’DC-0’ 在多频带滤波器中,使第一个频带0 %rectangular window b1=fir1(24,1/pi,boxcar(25)); [H1,w]=freqz(b1,1,512); H1_db=20*log10(abs(H1)); %hamming window b2=fir1(24,1/pi,hamming(25)); [H2,w]=freqz(b2,1,512); H2_db=20*log10(abs(H2)); c=plot(w,H1_db,w,H2_db,’r—‘); 2. 频率取样法FIR滤波器 频率取样法的设计思想是基于对给出的理想频响Hd(ejw) 进行取样,通过离散 傅里叶反变换(IDFT)从频谱样点直接求得有限脉冲响应。 频率取样法的过程如下: 18 ?? h(n) ???? H(ejw) Hd(e) ??????? H(k) ?? 其中Hd(ejw)是理想滤波器的数字域系统函数(频响),H(ejw)是设计出来的实际 滤波器系统函数。频域取样法的关键是正确确定频域取样点,在ω∈[0--2π]内的 样点有如下约束条件: H(k)=H(N-k) φ (k)= -φ (N-k) 例2: 采用频率取样法设计FIR滤波器, 使之满足 e - jωτ , |ω|≤ωc Hd(ejω) = 0 , ωc<|ω|≤π 其中,ωc = 1rad, τ = 12s. 解:N为奇数且h (n)为偶对称,故采用N为奇数的I型取样。设计程序如下: N=25; tao=(N-1)/2; omegac=1; m=fix(omegac/(2*pi/N)+1); omega=[0:N-1]*2*pi/N; ABS_H =[ones(1,m), zeros(1,N-2*m+1),ones(1,m-1)]; H=ABS_H.*exp(-j*tao.*omega); h=ifft(H); figure(1) stem(omega,abs(H)); title('FIR filter') ylabel('mag of Frequency response'); xlabel('Frequency (rad)') hold on; i=[0:511]*2*pi/512; m1=fix(omegac/(2*pi/512)+1); ABS_HD=[ones(1,m1),zeros(1,512-2*m1+1),ones(1,m1-1)]; c=plot(i,ABS_HD,'r'); legend(c,'ideal mag.',0); jw 频域取样(??2?K)NIDFTDTFT 19 hold off; figure(2) stem([0:N-1],real(h)); title('impulse response'); xlabel('Tume n'); ylabel('h[n]'); Hh=fft(h, 512) Hh_db=20*log10(abs(Hh)); figure(3) omega=[0:255]*pi/256; plot(omega,Hh_db(1:256)); grid set(gca, 'ytick', [(-120:20:-20),-3,0]); xlabel('Frequency (rad)'); ylabel('Normalized magnitude (dB)'); title('Frequency response'); 20 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第4章___数字滤波器设计(4)在线全文阅读。
相关推荐: