完整word版FIR带通滤波器的设计课程设计.docx
- 文档编号:8721348
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:14
- 大小:179.96KB
完整word版FIR带通滤波器的设计课程设计.docx
《完整word版FIR带通滤波器的设计课程设计.docx》由会员分享,可在线阅读,更多相关《完整word版FIR带通滤波器的设计课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
完整word版FIR带通滤波器的设计课程设计
FIR带通滤波器的设计
1技术要求
用窗函数法设计FIR带通滤波器。
要求低端阻带截止频率ω1s=0.2π,低端通带截止频率ω1p=0.35π,高端通带截止频率ωμp=0.65π,高端阻带截止频率ωμp=0.8π。
绘出h(n)及其幅频响应特性曲线。
2基本原理
2.1FIR带通滤波器简介
带通滤波器是从滤波器的特性上划分的,带通滤波器是指能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器,与带阻滤波器的概念相对。
从实现的网络结构或者从单位脉冲响应长度分类,可以分为无限长单位脉冲响应(IIR)滤波器和有限长单位脉冲响应(FIR)滤波器。
IIR数字滤波器设计方法是利用模拟滤波器成熟的理论及设计图表进行设计的,因而保留了一些经典模拟滤波器优良的幅度特性。
但设计中只考虑了幅度特性,没考虑相位特性,所设计的滤波器一般是某种确定的非线性相位特性。
为了得到线性相位特性,对IIR滤波器必须另外增加相位相校正网络,是滤波器设计变得复杂,成本也高,又难以得到严格的线性相位特性。
FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。
两者各有优点,择其而取之。
后面的FIR滤波器的设计中,为获得有限长单位取样响应,需要用窗函数截断无限长单位取样响应序列。
一个理想的滤波器应该有一个完全平坦的通带,例如在通带内没有增益或者衰减,并且在通带之外所有频率都被完全衰减掉,另外,通带外的转换在极小的频率范围完成。
实际上,并不存在理想的带通滤波器。
滤波器并不能够将期望频率范围外的所有频率完全衰减掉,尤其是在所要的通带外还有一个被衰减但是没有被隔离的范围。
这通常称为滤波器的滚降现象,并且使用每十倍频的衰减幅度dB来表示。
通常,滤波器的设计尽量保证滚降范围越窄越好,这样滤波器的性能就与设计更加接近。
然而,随着滚降范围越来越小,通带就变得不再平坦—开始出现“波纹”。
这种现象在通带的边缘处尤其明显,这种效应称为吉布斯现象。
下图1为理想模拟带通滤波器幅频特性:
图1理想模拟带通滤波器幅频特性
FIR滤波器的单位脉冲响应h(n)是有限长的(0≤n≤N-1),其z变换为
的(N-1)阶多项式:
可得FIR滤波器的系统差分方程为:
因此,FIR滤波器又称为卷积滤波器。
FIR滤波器的频率响应表达式为:
信号通过FIR滤波器不失真条件是在通带内具有恒定的幅频特性和线性相位特性。
理论上可以证明:
当FIR滤波器的系数满足下列中心对称条件:
或者
时,滤波器设计在逼近平直幅频特性的同时,还能获得严格的线性相位特性。
线性相位FIR滤波器的相位滞后和群延迟在整个频带上是相等且不变的。
对于一个N阶的线性相位FIR滤波器,群延迟为常数,即滤波后的信号简单地延迟常数个时间步长。
这一特性使通带频率内信号通过滤波器后仍保持原有波形形状而无相位失真。
1.2窗函数法原理
设计FIR数字滤波器的方法通常有三种:
窗函数法,频率抽样法,等纹波逼近法。
本次课程设计讨论的是第一种窗函数法。
这种方法也叫傅里叶级数法。
一般是先给定所要求的理想滤波器频率响应
,导出
,我们知道理想滤波器的冲击响应
是无限长的非因果序列,而我们要设计的是h(n)是有限长的FIR滤波器,所以要用有限长序列h(n)来逼近无限长序列
,设:
=
a常用的方法是使用有限长的窗函数w(n)来截取
即:
h(n)=w(n)
根据在时域是相乘关系,在频域则是卷积关系:
=
其中
为矩形窗谱,
是FIR滤波器频率响应。
在设计过程中,将无限长序列变为有限长序列是通过时域加矩形窗乘积来实现的截断。
常见的窗函数有:
矩形窗,汉宁窗,海明窗,布拉克曼窗,凯泽窗等。
3建立模型描述
3.1MATLAB常用函数
3.1.1窗函数
几种常见的窗函数如表1所示:
表1几种常见的窗函数的函数表示
窗函数
定义式
矩形窗(Boxcar)
三角窗(Triang)
海明窗(Hamming)
0
n
M-1
汉宁窗(Hamming)
0
n
M-1
巴特利特窗(Bartlett)
表2几种常见的窗函数的基本参数
名称
旁瓣峰值/dB
近似过渡带宽
精确过渡带宽
最小阻带衰减/dB
矩形窗
-13
4π/N
1.8π/N
-21
海明窗
-41
8π/N
6.6π/N
-53
布拉克曼窗
-57
12π/N
11π/N
-74
凯泽窗(β=7.865)
-57
10π/N
-80
3.1.2fir1函数
设计标准响应FIR滤波器可使用firl函数。
fir1函数以经典方法实现加窗线性相位FIR滤波器设计,它可以设计出标准的低通,带通,高通和带阻滤波器。
形式为:
b=fir1(n,Wc,’ftype’,Window)
各个参数的含义如下:
b—滤波器系数。
对于一个n阶的FIR滤波器,其n+1个滤波器系数可表示为:
n—滤波器阶数;
Wc—截止频率,0≤Wc≤1,Wc=1对应于采样频率的一半。
当设计带通滤波器时,Wc=[Wc1Wc2],Wc1≤ω≤Wc2;
ftype—当指定ftype时,可设计高通和带阻滤波器。
Ftype=high时,设计高通FIR滤波器;ftype=stop时设计带阻FIR滤波器。
低通和带通FIR滤波器无需输入ftype参数;
Window—窗函数。
窗函数的长度应等于FIR滤波器系数个数,即n+1。
3.1.3freqz函数
该函数基于FFT算法计算数字滤波器Z变换频率响应。
形式为[h,w]=freqz(b,a,n)
返回数字滤波器的n点复频响应
在简单形式中,b,a为滤波器系数,freqz可得到数字滤波器的n点复频响应,并将这n点保存在w中,相应的频率记录在h中。
3.14ceil函数
Ceil函数作用是对数取整
3.1.5其他函数与命令
设计所用其他函数及命令如下所示
Clear从内存中清除变量和函数
Close关闭图形
Min取最小值
Angle相位角
Unwrap相位角展开
Figure建立图形窗口
Subplot在标定位置上建立坐标系
Stem离散序列图
Plot线性绘图
XlabelX轴标记
YlabelY轴标记
Title图形标题
Axis控制坐标系的刻度和形式
Grid网格线
3.2程序流程图
程序流程图如图2所示:
图2程序流程图
4源程序代码(含注释)
4.1矩形窗
>>clear;%清除工作空间
closeall;%关闭所有打开的窗口
wls=0.2*pi;wlp=0.35*pi;%参数设置
whp=0.65*pi;whs=0.8*pi;
delta_w=min((wlp-wls),(whs-whp));%求两个过渡带的较小者
wc1=(wls+wlp)/2;wc2=(whp+whs)/2;%截止频率取通带阻带边界频率的均值
%矩形窗
N1=ceil(1.8*pi/delta_w);%根据矩形窗精确过渡带宽1.8∏/N计算窗宽
hn1=fir1(N1-1,[wc1,wc2]/pi,boxcar(N1));%检验设计的滤波器单位脉冲响应
[h1,w1]=freqz(hn1,1);
figure
(1)%建立图形窗口
subplot(2,1,1);%把窗口分割成2行1列
n=0:
N1-1;stem(n,hn1,'.');%绘制矩形窗的单位脉冲响应
axis([0,N1-1,-0.4,0.4]);%设置显示范围
xlabel('n');ylabel('h(n)');gridon;%确定x,y轴坐标名称,加网格
title('矩形窗单位冲击响应h(n)');%添加图形的标题
subplot(2,1,2);
plot(w1/pi,20*log10(abs(h1)));%绘制矩形窗的幅频特性曲线
axis([0,1,-150,5]);%设置显示范围
xlabel('归一化角频率');%确定x坐标
ylabel('幅度(单位:
分贝)');%确定y坐标
gridon;
title('矩形窗幅频响应');%添加图形的标题
4.2凯泽窗
clear;%清除工作空间
closeall;%关闭所有打开的窗口
wls=0.2*pi;wlp=0.35*pi;%参数设置
whp=0.65*pi;whs=0.8*pi;
delta_w=min((wlp-wls),(whs-whp));%求两个过渡带的较小者
wc1=(wls+wlp)/2;wc2=(whp+whs)/2;%截止频率取通带阻带边界频率的均值
%Kaiser窗
N4=ceil(10*pi/delta_w);%根据Kaiser窗技术精确过渡带宽10∏/N计算窗宽
hn4=fir1(N4-1,[wc1,wc2]/pi,kaiser(N4));
[h4,w4]=freqz(hn4,1);
figure
(2)%建立图形窗口
subplot(2,1,1);
n=0:
N4-1;stem(n,hn4,'.');
axis([0,N4-1,-0.4,0.4]);
xlabel('n');ylabel('h(n)');gridon;
title('Kaiser窗单位脉冲响应h(n)');
subplot(2,1,2);
plot(w4/pi,20*log10(abs(h4)));
axis([0,1,-150,5]);
xlabel('归一化角频率');
ylabel('幅度(单位:
分贝)');
gridon;
title('Kaiser窗幅频响应');
4.3布拉克曼窗
clear;%清除工作空间
closeall;%关闭所有打开的窗口
wls=0.2*pi;wlp=0.35*pi;%参数设置
whp=0.65*pi;whs=0.8*pi;
delta_w=min((wlp-wls),(whs-whp));%求两个过渡带的较小者
wc1=(wls+wlp)/2;wc2=(whp+whs)/2;%截止频率取通带阻带边界频率的均值
%Blackman窗
N3=ceil(11*pi/delta_w);%根据Blackman窗精确过渡带宽11∏/N计算窗宽
hn3=fir1(N3-1,[wc1,wc2]/pi,blackman(N3));
[h3,w3]=freqz(hn3,1);
figure(3)
subplot(2,1,1);
n=0:
N3-1;stem(n,hn3,'.');
axis([0,N3-1,-0.4,0.4]);
xlabel('n');ylabel('h(n)');gridon;
title('Blackman窗单位冲击响应h(n)');
subplot(2,1,2);
plot(w3/pi,20*log10(abs(h3)));
axis([0,1,-150,5]);
xlabel('归一化角频率');
ylabel('幅度(单位:
分贝)');
gridon;
title('Blackman窗幅频响应');
4.4海明窗
clear;%清除工作空间
closeall;%关闭所有打开的窗口
wls=0.2*pi;wlp=0.35*pi;%参数设置
whp=0.65*pi;whs=0.8*pi;
delta_w=min((wlp-wls),(whs-whp));%求两个过渡带的较小者
wc1=(wls+wlp)/2;wc2=(whp+whs)/2;%截止频率取通带阻带边界频率的均值
%Hamming窗
N2=ceil(6.6*pi/delta_w);%根据Hamming窗精确过渡带宽6.6∏/N计算窗宽
hn2=fir1(N2-1,[wc1,wc2]/pi,hamming(N2));
[h2,w2]=freqz(hn2,1);
figure(4)%建立图形窗口
subplot(2,1,1);
n=0:
N2-1;stem(n,hn2,'.');%绘制Hamming窗单位脉冲响应
axis([0,N2-1,-0.4,0.4]);%确定显示范围
xlabel('n');ylabel('h(n)');gridon;
title('Hamming窗单位脉冲响应h(n)');
subplot(2,1,2);
plot(w2/pi,20*log10(abs(h2)));%绘制Hamming窗幅频响应
axis([0,1,-150,5]);
xlabel('归一化角频率');
ylabel('幅度(单位:
分贝)');gridon;
title('Hamming窗幅频响应');
5调试过程及结论
5.1程序运行结果
矩形窗冲击响应与幅频响应如图3所示:
图3矩形窗冲击响应与幅频响应
Kaiser窗冲击响应与幅频响应如图4所示:
图4Kaiser窗冲击响应与幅频响应
Blackman窗冲击响应与幅频响应如图5所示:
图5Blackman窗冲击响应与幅频响应
Hamming窗冲击响应与幅频响应如图6所示:
图6Hamming窗冲击响应与幅频响应
5.2实验结果分析
对于矩形窗:
窗宽N=12,h(n)为偶对称,对称中心为n=5.5,由于n为整数,故在n=5和n=6处存在两个极大值;在幅频响应图中,实际设计的低端,高端通带截止频率约为0.33pi和0.68pi,而低端和高端的阻带截止频率约为0.18pi和0.83pi。
其阻带的纹波较大,第一阻带最小衰减27db。
对于Kaiser窗:
窗宽为N=67,h(n)偶对称,对称中心n=33,有用n为整数,故在n=33处存在一个极大值;在幅频响应图中,实际设计的低端和高端通带的截止频率为约0.29pi和0.71pi,而低端和高端的阻带截止频率约为0.20pi和0.80pi。
第一阻带最小衰减80db。
对于Blackman窗:
窗宽N=80,h(n)为偶对称,对称中心为n=39.5,由于n为整数,故在n=39和n=40处存在两个极大值;在幅频响应图中,实际设计低端,高端通带截止频率约为0.30pi和0.71pi而低端和高端的阻带截止频率约为0.20pi和0.79pi,。
第一阻带最小衰减75db。
对于Hamming窗:
窗宽N=44,h(n)为偶对称,对称中心为n=21.5,由于n为整数,故在n=21和n=22处存在两个极大值;在幅频响应图中,实际设计的低端,高端通带截止频率约为0.30pi和0.70pi,而低端和高端的阻带截止频率约为0.20pi和0.80pi。
第一阻带最小衰减50d。
综合上述分析,可得:
并没有哪种窗是最好的,往往某种窗在主瓣及过渡带宽方面良好,而在阻带衰减上表现不佳,反之亦如此。
因此只有根据具体条件和实际需求选取最合适的。
由于总的来说,滤波器主要还是强调滤波效果,即阻带衰减,因此使用Blackman或Kaiser窗效果较好。
6心得体会
这次是第三次课程设计,与之前做的课程设计不同的是这次是用matlab来完成设计,matlab在学习的时候学得不是很好,仅仅知道一些简单的操作,而这次是设计一个完整的fir带通滤波器,对我来说是有一定困难的.还好在课程设计这段时间一直有在学习matlab,还有在数字信号处理原理与实现书中有fir低通滤波器的实例,整个课程设计就简单多了。
对课设有了整体的了解,就开始了课程设计。
首先上网查阅fir带通滤波器的资料,也从网上获得了不少有关MATLAB设计滤波器的资料。
接着对fir带通滤波器的深入了解,对一些基本参数如通带截止频率,阻带截止频率,通带波动,阻带衰减等有了一定的了解,慢慢就了解了滤波器的原理。
了解了滤波器的原理,接下来就是用matlab来仿真了,在查阅了大量的资料了,matlab也不是什么大问题了。
这次也可以说这是一次比较系统的学习了Matlab的使用,在matlab的实际应用上打下了坚实的基础。
当我学会使用Matlab后,发现一直让我感到枯燥的编程原来并不困难,起码设计带通滤波器是这样,只要调用几个函数就可以轻松完成。
这样这次课程设计基本完成了。
这几天通过对FIR带通滤波器的设计,我对数字信号处理这一课程有了更深一步的了解,同时也发现了自己的很多不足,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还亟需提高。
与此同时也让我加深了对数字信号处理知识的理解,同时熟悉了MATLAB软件应用。
7思考题
窗函数设计法中,选择窗函数的类型与滤波器阶数对滤波器设计的影响?
答:
首先明确一个关系式,如果窗宽为N,则滤波器阶数为N-1,所以滤波器的阶数的增大或减小,相当于窗宽的增大或减小。
N越大,
才会逼近
,但是当N趋近无穷时,就等效于没有加窗处理。
对于4个窗函数,布拉克曼的滤波效果最好,矩形窗的滤波控制能力最强。
所以在选用窗函数时要综合考虑滤波效果和滤波控制能力两方面后,才能得到最适合的窗函数。
8参考文献
[1]高西全.丁玉美.数字信号处理—原理、实现及应用[[M]北京电子工业出版社,2006.
[2]刘顺兰.吴杰.数字信号处理[[M]西安电子科技大学出版社,2003.
[3]高西全.丁玉美.数字信号处理[M]西安电子科技大学出版社,2008.
[4]陈怀琛.数字信号处理教程—MATLAB释疑与实现[M]北京电子工业出版社,2004.
[5]刘益成.孙祥娥.数字信号处理[M]北京电子工业出版社,2004.
[6]楼顺天.李博菡.基于MATLAB的系统分析与设计现—信号处理[M]西安电子科技大学出版社,1998.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word FIR 带通滤波器 设计 课程设计