实验7窗函数法设计FIR滤波器.docx
《实验7窗函数法设计FIR滤波器.docx》由会员分享,可在线阅读,更多相关《实验7窗函数法设计FIR滤波器.docx(17页珍藏版)》请在冰豆网上搜索。
实验7窗函数法设计FIR滤波器
实验7-窗函数法设计FIR滤波器
实验7窗函数法设计FIR数字滤波器
一、实验目的
掌握窗函数法设计FIR数字滤波器的原理及具体方法。
二、实验设备与环境
计算机、MATLAB软件环境。
三、实验基础理论
1、基本原理
窗函数设计法的基本思想为,首先选择一个适当的理想的滤
,然后用窗函数截取它的单位脉冲响应
,得到线性相位和因果的FIR滤波器。
这种方法的重点是选择一个合适的窗函数和理想的滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。
2、设计步骤
(1)给定理想滤波器的频率响应
,在通带上具有单位增益和线性相位,在阻带上具有零响应。
一个带宽为
(
)的低通滤波器由下式给定
(7-1)
其中
为采样延迟,其作用是为了得到因果的系统。
(2)确定这个滤波器的单位脉冲响应
(7-2)
为了得到一个
长度为N的因果的线性相位FIR滤波器,我们令
(7-3)
(3)用窗函数截取
FIR数字滤波器
(7-4)
3.窗函数的选择
常用的窗函数有矩形(Rectangular)窗、汉宁(Hanning)窗、海明(Hamming)窗、布莱克曼(Blackman)窗、凯瑟(Kaiser)窗。
MATLAB提供了一些函数用于产生窗函数。
如表7-1所示。
表7-1MATLAB中产生窗函数的命令
MATLAB函数窗函数MATLAB函数窗函数
boxcar矩形窗函数blackman布莱克曼窗函数
hanning汉宁窗函数kaiser凯瑟窗函数
hannming海明窗函数
在设计过程中我们需要根据给定的滤波器技术指标,选择滤波器长度N和窗函数ω(n)。
表7-2列出了常用窗函数的一些特性,可供设计时参考。
表7-2常用窗函数的特性
窗函数
窗函数频率特性
旁瓣峰值主瓣宽度
加窗后滤波器指标
过渡带宽最小阻带衰减(dB)
矩形窗
-13
-21
汉宁窗
-31
-44
海明窗
-41
-53
布莱克曼窗
-57
-74
凯瑟窗是一种在实际应用中广泛应用的窗函数,它由下式给定
W(n)=
0≤n≤N-1(7-5)
其中
是修正的零阶贝塞尔(Bessel)函数,参数β控制最小阻带衰减,这种窗函数对于相同的N可以提供不同的过渡带宽。
由于贝塞尔函数比较复杂,这种窗函数的设计方程很难推导,然而幸运的是,有一些经验设计方程可以直接使用。
已知给定的指标
,
,
和
,滤波器长度N和凯瑟窗参数β可以按如下凯瑟窗设计方程给出:
过渡带宽:
(7-6)
(7-7)
(7-8)
四、实验内容
1、设计一个数字低通FIR滤波器,其技术指标如下
分别采用矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗设计该滤波器。
结合实验结果,分别讨论采用上述方法设计的数字滤波器是否都能满足给定指标要求。
实验代码及结果:
矩形窗:
wp=0.2*pi;
wst=0.3*pi;
tr_width=wst-wp;
N=ceil(1.8*pi/tr_width)+1
n=0:
N-1;
wc=(wp+wst)/2;
alpha=(N-1)/2;
hd=(wc/pi)*sinc((wc/pi)*(n-alpha));
w_boxcar=boxcar(N);
h=hd.*w_boxcar';
subplot(221);
stem(n,hd,'fill');
axistight;
xlabel('n');
ylabel('hd(n)');
[Hr,w1]=zerophase(h);
subplot(222);
plot(w1/pi,Hr);
axistight;
xlabel('\omega/\pi');
ylabel('H(\omega)');
subplot(223);
stem(n,h,'fill');
axistight;
xlabel('n');
ylabel('h(n)');
[H,w]=freqz(h,1);
subplot(224);
plot(w/pi,20*log10(abs(H)/max(abs(H))));
xlabel('\omega/\pi');
ylabel('dB');
gridon;
Hanning窗:
Hamming窗:
Blackman窗:
Kaiser窗:
wp=0.2*pi;
wst=0.3*pi;
tr_width=wst-wp;
N=ceil((50-7.95)/(2.285*tr_width))+1
beta=0.1102*(50-8.7)
n=0:
N-1;
wc=(wp+wst)/2;
alpha=(N-1)/2;
hd=(wc/pi)*sinc((wc/pi)*(n-alpha));
w_kaiser=kaiser(N,beta);
h=hd.*w_kaiser';
subplot(221);
stem(n,hd,'fill');
axistight;
xlabel('n');
ylabel('hd(n)');
[Hr,w1]=zerophase(h);
subplot(222);
plot(w1/pi,Hr);
axistight;
xlabel('\omega/\pi');
ylabel('H(\omega)');
subplot(223);
stem(n,h,'fill');
axistight;
xlabel('n');
ylabel('h(n)');
[H,w]=freqz(h,1);
subplot(224);
plot(w/pi,20*log10(abs(H)/max(abs(H))));
xlabel('\omega/\pi');
ylabel('dB');
gridon;
2、设计一个数字带通FIR滤波器,其技术指标如下
下阻带边缘:
下通带边缘:
上通带边缘:
上阻带边缘:
实验代码及结果:
矩形窗:
wp1=0.2*pi;
wst1=0.35*pi;
tr_width1=wst1-wp1;
N1=ceil(1.8*pi/tr_width1)+1
wp2=0.65*pi;
wst2=0.8*pi;
tr_width2=wst2-wp2;
N2=ceil(1.8*pi/tr_width2)+1
N=max(N1,N2)
n=0:
N-1;
alpha=(N-1)/2;
wc2=(wp2+wst2)/2;
hd2=(wc2/pi)*sinc((wc2/pi)*(n-alpha));
wc1=(wp1+wst1)/2;
hd1=(wc1/pi)*sinc((wc1/pi)*(n-alpha));
hd=hd2-hd1;
w_boxcar=boxcar(N);
h=hd.*w_boxcar';
subplot(221);
stem(n,hd,'fill');
axistight;
xlabel('n');
ylabel('hd(n)');
[Hr,w1]=zerophase(h);
subplot(222);
plot(w1/pi,Hr);
axistight;
xlabel('\omega/\pi');
ylabel('H(\omega)');
subplot(223);
stem(n,h,'fill');
axistight;
xlabel('n');
ylabel('h(n)');
[H,w]=freqz(h,1);
subplot(224);
plot(w/pi,20*log10(abs(H)/max(abs(H))));
xlabel('\omega/\pi');
ylabel('dB');
gridon;
Hanning窗:
Hamming窗:
Blackman窗:
Kaiser窗:
wp1=0.2*pi;
wst1=0.35*pi;
tr_width1=wst1-wp1;
N1=ceil((60-7.95)/(2.285*tr_width1))+1
beta1=0.1102*(60-8.7)
wp2=0.65*pi;
wst2=0.8*pi;
tr_width2=wst2-wp2;
N2=ceil((60-7.95)/(2.285*tr_width2))+1
beta2=0.1102*(60-8.7)
N=max(N1,N2)
beta=max(beta1,beta2)
n=0:
N-1;
alpha=(N-1)/2;
wc2=(wp2+wst2)/2;
hd2=(wc2/pi)*sinc((wc2/pi)*(n-alpha));
wc1=(wp1+wst1)/2;
hd1=(wc1/pi)*sinc((wc1/pi)*(n-alpha));
hd=hd2-hd1;
w_kaiser=kaiser(N,beta);
h=hd.*w_kaiser';
subplot(221);
stem(n,hd,'fill');
axistight;
xlabel('n');
ylabel('hd(n)');
[Hr,w1]=zerophase(h);
subplot(222);
plot(w1/pi,Hr);
axistight;
xlabel('\omega/\pi');
ylabel('H(\omega)');
subplot(223);
stem(n,h,'fill');
axistight;
xlabel('n');
ylabel('h(n)');
[H,w]=freqz(h,1);
subplot(224);
plot(w/pi,20*log10(abs(H)/max(abs(H))));
xlabel('\omega/\pi');
ylabel('dB');
gridon;
由以上实验结果易知并非所有的窗函数都满足设计要求。
通常矩形窗的衰减性能不如其它几种窗,但是却具有良好的过渡带性能。
五、收获与体会
FIR滤波器具有线性相位的特点,因而对于诸如图像信息等具有重要的意义。
本次实验通过窗函数法设计FIR滤波器,进一步体会到窗的作用。
不同形式的加窗会导致不同的频率响应,这之中,有的窗函数并不能满足要求。
因此同IIR一样,设计完成之后进行验证是十分重要的。