FIR数字滤波器的设计.docx
- 文档编号:27505117
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:19
- 大小:342.80KB
FIR数字滤波器的设计.docx
《FIR数字滤波器的设计.docx》由会员分享,可在线阅读,更多相关《FIR数字滤波器的设计.docx(19页珍藏版)》请在冰豆网上搜索。
FIR数字滤波器的设计
本科学生设计性实验报告
项目组长吴洋涛学号0123694
成员
专业电子信息工程班级121班
实验项目名称FIR数字滤波器的设计
指导教师及职称党建武教授
开课学期2014至2015学年第一学期
上课时间2014年12月19日
一、实验设计方案
实验名称:
FIR数字滤波器的设计
实验时间:
2014,.12.12
小组合作:
是○否●
小组成员:
1、实验目的:
(1)掌握用窗函数法,频率采样法及优化设计法设计FIR滤波器的原理及方法。
(2)熟悉线性相位FIR滤波器的幅频特性和相频特性。
(3)了解各种不同窗函数对滤波器性能的影响。
2、实验场地及仪器、设备和材料:
H104,电子计算机,软件Matlab7.0
3、实验思路(实验内容、数据处理方法及实验步骤等):
实验内容:
线性相位实系数FIR滤波器按其N值奇偶和h(n)的奇偶对称性分为四种:
1、h(n)为偶对称,N为奇数
H(ejω)的幅值关于ω=0,π,2π成偶对称。
2、h(n)为偶对称,N为偶数
H(ejω)的幅值关于ω=π成奇对称,不适合作高通。
3、h(n)为奇对称,N为奇数
H(ejω)的幅值关于ω=0,π,2π成奇对称,不适合作高通和低通。
4、h(n)为奇对称,N为偶数
H(ejω)ω=0、2π=0,不适合作低通。
(一)窗口法
窗函数法设计线性相位FIR滤波器步骤
∙确定数字滤波器的性能要求:
临界频率{ωk},滤波器单位脉冲响应长度N;
∙根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应Hd(ejω)的幅频特性和相频特性;
∙求理想单位脉冲响应hd(n),在实际计算中,可对Hd(ejω)按M(M远大于N)点等距离采样,并对其求IDFT得hM(n),用hM(n)代替hd(n);
∙选择适当的窗函数w(n),根据h(n)=hd(n)w(n)求所需设计的FIR滤波器单位脉冲响应;
∙求H(ejω),分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果。
窗函数的傅式变换W(ejω)的主瓣决定了H(ejω)过渡带宽。
W(ejω)的旁瓣大小和多少决定了H(ejω)在通带和阻带范围内波动幅度,常用的几种窗函数有:
∙矩形窗
;
∙Hanning窗
;
∙Hamming窗
;;
∙Blackmen窗
;
∙Kaiser窗
。
式中Io(x)为零阶贝塞尔函数。
(二)频率采样法
频率采样法是从频域出发,将给定的理想频率响应Hd(ejω)加以等间隔采样
然后以此Hd(k)作为实际FIR数字滤波器的频率特性的采样值H(k),即令
由H(k)通过IDFT可得有限长序列h(n)
,n=0,1,...,N-1
将上式代入到Z变换中去可得
其中Φ(ω)是内插函数
(三)FIR滤波器的优化设计
FIR滤波器的优化设计是按照最大误差最小化准则,使所设计的频响与理想频响之间的最大误差,在通带和阻带范围均为最小,而且是等波动逼近的。
为了简化起见,在优化设计中一般将线性相位FIR滤波器的单位脉冲响应h(n)的对称中心置于n=0处,此时,线性相位因子α=0。
当N为奇数,且N=2M+1,则
如希望逼近一个低通滤波器,这里M,ωp和ωs固定为某个值。
在这种情况下有
定义一逼近误差函数:
E(ω)为在希望的滤波器通带和阻带内算出的误差值,W(ω)为加权函数。
k应当等于比值δ1/δ2,δ1为通带波动,δ2为阻带波动。
在这种情况下,设计过程要求|E(ω)|在区间
的最大值为最小,它等效于求最小δ2。
根据数学上多项式逼近连续函数的理论,用三角多项式逼近连续函数,在一定条件下存在最佳逼近的三角多项式,而且可以证明这个多项式是唯一的。
这一最佳逼近定理通常称作交替定理。
在逼近过程中,可以固定k,M,ωp,ωs而允许改变δ2,按照交替定理,首先估计出(M+2)个误差函数的极值频率点{ωi},i=0,1,...,M+1,共计可以写出(M+2)个方程
式中ρ表示峰值误差。
一般仅需求解出ρ,接着便可用三角多项式找到一组新的极值频率点,并求出新的峰值误差ρ。
依此反复进行,直到前、后两次ρ值不变化为止,最小的ρ即为所求的δ2。
这一算法通常称作雷米兹(Remez)交替算法。
指导老师对实验设计方案的意见:
指导老师签名:
年月日
二、实验结果与分析
1、实验目的、场地及仪器、设备和材料、实验思路等见实验设计方案
2、实验现象、数据及结果
(1)N=15,ω1=0.3π,ω2=0.5π。
用Hanning窗设计一个线性相位带通滤波器,观察它的实际3dB和20dB带宽。
N=45,重复这一设计,观察幅频和相位特性的变化,注意长度N变化的影响。
代码:
N=15
w1=0.3*pi;
w2=0.5*pi;
N=15;
hn=fir1(N-1,[w1,w2]/pi,hanning(N));
subplot(3,1,1);
stem(hn);
gridon;
xlabel('n');
ylabel('hn');
title('(a)h(n)波形');
[h,w]=freqz(hn);
subplot(3,1,2);
plot(w/pi,abs(h));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('hanning带通滤波器');
subplot(3,1,3);
plot(w/pi,20*log10(abs(h)));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(分贝)');
title('hanning带通滤波器');
代码:
N=45
w1=0.3*pi;
w2=0.5*pi;
N=45;
hn=fir1(N-1,[w1,w2]/pi,hanning(N));
subplot(3,1,1);
stem(hn);
gridon;
xlabel('n');
ylabel('hn');
title('(a)h(n)波形');
[h,w]=freqz(hn);
subplot(3,1,2);
plot(w/pi,abs(h));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('hanning带通滤波器');
subplot(3,1,3);
plot(w/pi,20*log10(abs(h)));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(分贝)');
title('hanning带通滤波器');
分析:
观察它的实际3dB和20dB带宽,发现N=15时,其3DB带宽约为0.2pi,20db带宽约为0.45pi;N=45时,其3DB带宽约为0.16pi,20db带宽约为0.3pi
(2)分别改用矩形窗、Blackman窗,设计
(1)中的带通滤波器,观察窗函数对滤波器幅频特性的影响,比较三种窗的特点。
N=15时:
矩形窗:
w1=0.3*pi;
w2=0.5*pi;
N=15;
hn=fir1(N-1,[w1,w2]/pi,boxcar(N));
subplot(3,1,1);stem(hn);
gridon;xlabel('n');
ylabel('hn');
title('(a)h(n)波形');
[h,w]=freqz(hn);
subplot(3,1,2);
plot(w/pi,abs(h));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('矩形窗带通滤波器');
subplot(3,1,3);
plot(w/pi,20*log10(abs(h)));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(分贝)');
title('矩形带通滤波器');
输出结果:
Blackman窗:
w1=0.3*pi;
w2=0.5*pi;
N=15;
hn=fir1(N-1,[w1,w2]/pi,blackman(N));
subplot(3,1,1);stem(hn);
gridon;
xlabel('n');
ylabel('hn');
title('(a)h(n)波形');
[h,w]=freqz(hn);
subplot(3,1,2);
plot(w/pi,abs(h));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('blakman带通滤波器');
subplot(3,1,3);
plot(w/pi,20*log10(abs(h)));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(分贝)');
title('blackman带通滤波器');
输出结果:
N=45:
矩形窗:
代码:
w1=0.3*pi;
w2=0.5*pi;
N=45;
hn=fir1(N-1,[w1,w2]/pi,boxcar(N));
subplot(3,1,1);stem(hn);
gridon;xlabel('n');
ylabel('hn');
title('(a)h(n)波形');
[h,w]=freqz(hn);
subplot(3,1,2);
plot(w/pi,abs(h));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('矩形窗带通滤波器');
subplot(3,1,3);
plot(w/pi,20*log10(abs(h)));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(分贝)');
title('矩形带通滤波器');
输出结果:
Blackman窗:
代码:
w1=0.3*pi;
w2=0.5*pi;
N=45;
hn=fir1(N-1,[w1,w2]/pi,blackman(N));
subplot(3,1,1);stem(hn);
gridon;
xlabel('n');
ylabel('hn');
title('(a)h(n)波形');
[h,w]=freqz(hn);
subplot(3,1,2);
plot(w/pi,abs(h));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(幅值)');
title('blakman带通滤波器');
subplot(3,1,3);
plot(w/pi,20*log10(abs(h)));
gridon;
xlabel('\omega/\pi');
ylabel('振幅(分贝)');
title('blackman带通滤波器');
输出结果:
(3)用Kaiser窗设计一专用线性相位滤波器,N=40,当β=4、6、10时,分别设计、比较它们的幅频和相频特性,注意β取不同值时的影响。
代码:
N=40;
f=[00.20.20.40.40.60.60.80.81];
a=[0011001100];
beta=4;h=fir2(N-1,f,a,kaiser(N,beta));
[h1,w1]=freqz(h,1);
subplot(3,1,1);plot(w1/pi,20*log10(abs(h1)));axis([0,1,-80,10]);grid;
xlabel('归一化频率/\pi');ylabel('幅度/dB');
title('beta=4时凯塞窗专用线性相位滤波器');
beta=6;h=fir2(N-1,f,a,kaiser(N,beta));
[h1,w1]=freqz(h,1);
subplot(3,1,2);plot(w1/pi,20*log10(abs(h1)));axis([0,1,-80,10]);grid;
xlabel('归一化频率/\pi');ylabel('幅度/dB');
title('beta=6时凯塞窗专用线性相位滤波器');
beta=10;h=fir2(N-1,f,a,kaiser(N,beta));
[h1,w1]=freqz(h,1);
subplot(3,1,3);plot(w1/pi,20*log10(abs(h1)));axis([0,1,-80,10]);grid;
xlabel('归一化频率/\pi');ylabel('幅度/dB');
title('beta=10时凯塞窗专用线性相位滤波器');
输出结果:
分析:
β越大,w(n)窗越窄,频谱的旁瓣越小,但主瓣宽度也相应增加,过渡带变宽,相位特性变好。
(4)用频率采样法设计(4)中的滤波器,过渡带分别设一个过渡点,令H(k)=0.5。
比较两种不同方法的结果。
代码:
N=40;
Hk=[zeros(1,3)0.5ones(1,5)0.5zeros(1,1)0.5ones(1,5)0.5...
zeros(1,5)-0.5-ones(1,5)-0.5zeros(1,1)-ones(1,5)-0.5zeros(1,3)];
k=0:
N-1;
hn=real(ifft(Hk.*exp(-j*pi*(N-1)*k/N)));
[Hw]=freqz(hn,1);
plot(w/pi,20*log10(abs(H)));
axis([01-8010]);grid;
xlabel('归一化频率/\pi')
ylabel('幅度/dB')
title('频率采样法设计专用线性相位滤波器');
输出结果:
(5)用雷米兹(Remez)交替算法设计(4)中的滤波器,并比较(3)、(4)、(5)三种不同方法的结果。
代码:
N=40;
f=[00.150.20.40.450.550.60.80.851];
a=[0011001100];
wt=[21212];
b=remez(N-1,f,a,wt);
[h,w]=freqz(b,1);
plot(w/pi,20*log10(abs(h)));
axis([01-7010]);grid;
xlabel('归一化频率/\pi')
ylabel('幅度/dB')
title('雷米兹交替算法设计专用线性相位滤波器');
输出结果:
3、对实验现象、数据及观察结果的分析与讨论:
由于题目较多较分散,所以在以上每一题的结果图后面进行了分析,在此不再累述。
4、结论:
由于实验的结论针对不同的题目有不同的结果,在这里就不做过多叙述,值选择其主要的内容进行叙述,其如下:
从以上图可见:
同一N值,分别用矩形窗,汉宁窗,汉明窗,布莱克曼窗设计滤波器时,主瓣宽度逐渐增大,过渡带变宽,但阻带衰减性能变好;N增加,主瓣变窄,旁瓣的分量增加,过渡带变陡,起伏震荡变密。
加窗处理对滤波器的频率响应会产生以下主要影响:
(1)使理想特性不连续的边沿加宽,形成一过渡带,过渡带的宽度取决于窗函数频谱的主瓣宽度。
(2)在过渡带两旁产生肩峰和余振,它们取决于窗函数频谱的旁瓣;旁瓣越多,余振也越多;旁瓣相对值越大,肩峰则越强。
(3)增加截断长度N,只能缩小窗函数频谱的主瓣宽度而不能改变旁瓣的相对值;旁瓣与主瓣的相对关系只决定于窗函数的形状。
因此增加N,只能相对应减小过渡带宽。
而不能改变肩峰值。
肩峰值的大小直接决定通带内的平稳和阻带的衰减,对滤波器性能有很大关系。
5、实验总结
⑴本次实验成败之处及其原因分析:
⑵本实验的关键环节及改进措施:
做好本实验需要把握的关键环节:
要充分了解实验中所用的软件的功能及其实际用法,这是非常困难的,所以要花费大量的时间对题目所要求的内容进行分析整理,进一步将其反映到软件所有的函数及其应用,由此可以更好地完成本次实验内容,以达到实验的要求。
若重做本实验,为实现预期效果,仪器操作和实验步骤应如何改善:
FIR数字滤波器的设计实际上是根据对于滤波器的不同要求,进行多方面的内容设计,以期达到所需要的功能,并对各个不同的方案进行对比,由于此时具有很多的重合,所以如果重做此次实验的话,最好选择保留部分代码,或者直接在原有代码上进行部分关键内容的修改,可以令得实验更加简单,减少工作量。
⑶对实验的自我评价:
在实验中掌握了FIR数字滤波器的两种设计方法,并能够熟练地运用两种方法设计低、高、带通IIR数字滤波器且能够进行计算机编程。
指导老师评语及得分:
成绩:
指导老师签名:
批阅日期
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FIR 数字滤波器 设计