FIR带通滤波器设计课程设计.docx
- 文档编号:24993061
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:16
- 大小:181.63KB
FIR带通滤波器设计课程设计.docx
《FIR带通滤波器设计课程设计.docx》由会员分享,可在线阅读,更多相关《FIR带通滤波器设计课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
FIR带通滤波器设计课程设计
FIR带通滤波器的设计
1技术要求
用窗函数法设计FIR带通滤波器。
要求低端阻带截止频率ω1s=π,低端通带截止频率ω1p=π,高端通带截止频率ωμp=π,高端阻带截止频率ωμp=π。
绘出h(n)及其幅频响应特性曲线。
2大体原理
FIR带通滤波器简介
带通滤波器是从滤波器的特性上划分的,带通滤波器是指能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器,与带阻滤波器的概念相对。
从实现的网络结构或从单位脉冲响应长度分类,能够分为无穷长单位脉冲响应(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滤波器,群延迟为常数,即滤波后的信号简单地延迟常数个时刻步长。
这一特性使通带频率内信号通过滤波器后仍维持原有波形形状而无相位失真。
窗函数法原理
设计FIR数字滤波器的方式通常有三种:
窗函数法,频率抽样法,等纹波逼近法。
本次课程设计讨论的是第一种窗函数法。
这种方式也叫傅里叶级数法。
一样是先给定所要求的理想滤波器频率响应
,导出
,咱们明白理想滤波器的冲击响应
是无穷长的非因果序列,而咱们要设计的是h(n)是有限长的FIR滤波器,因此要用有限长序列h(n)来逼近无穷长序列
,设:
=
a经常使用的方式是利用有限长的窗函数w(n)来截取
即:
h(n)=w(n)
依照在时域是相乘关系,在频域那么是卷积关系:
=
其中
为矩形窗谱,
是FIR滤波器频率响应。
在设计进程中,将无穷长序列变成有限长序列是通过时域加矩形窗乘积来实现的截断。
常见的窗函数有:
矩形窗,汉宁窗,海明窗,布拉克曼窗,凯泽窗等。
3成立模型描述
MATLAB经常使用函数
窗函数
几种常见的窗函数如表1所示:
表1几种常见的窗函数的函数表示
窗函数
定义式
矩形窗(Boxcar)
三角窗(Triang)
海明窗(Hamming)
0
n
M-1
汉宁窗(Hamming)
0
n
M-1
巴特利特窗(Bartlett)
表2几种常见的窗函数的大体参数
名称
旁瓣峰值/dB
近似过渡带宽
精确过渡带宽
最小阻带衰减/dB
矩形窗
-13
4π/N
π/N
-21
海明窗
-41
8π/N
π/N
-53
布拉克曼窗
-57
12π/N
11π/N
-74
凯泽窗(β=
-57
10π/N
-80
fir1函数
设计标准响应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。
freqz函数
该函数基于FFT算法计算数字滤波器Z变换频率响应。
形式为[h,w]=freqz(b,a,n)
返回数字滤波器的n点复频响应
在简单形式中,b,a为滤波器系数,freqz可取得数字滤波器的n点复频响应,并将这n点保留在w中,相应的频率记录在h中。
ceil函数
Ceil函数作用是对数取整
其他函数与命令
设计所用其他函数及命令如下所示
Clear从内存中清除变量和函数
Close关闭图形
Min取最小值
Angle相位角
Unwrap相位角展开
Figure成立图形窗口
Subplot在标定位置上成立坐标系
Stem离散序列图
Plot线性画图
XlabelX轴标记
YlabelY轴标记
Title图形题目
Axis操纵坐标系的刻度和形式
Grid网格线
程序流程图
程序流程图如图2所示:
图2程序流程图
4源程序代码(含注释)
矩形窗
>>clear;%清除工作空间
closeall;%关闭所有打开的窗口
wls=*pi;wlp=*pi;%参数设置
whp=*pi;whs=*pi;
delta_w=min((wlp-wls),(whs-whp));%求两个过渡带的较小者
wc1=(wls+wlp)/2;wc2=(whp+whs)/2;%截止频率取通带阻带边界频率的均值
%矩形窗
N1=ceil*pi/delta_w);%依照矩形窗精准过渡带宽∏/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,,]);%设置显示范围
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('矩形窗幅频响应');%添加图形的题目
凯泽窗
clear;%清除工作空间
closeall;%关闭所有打开的窗口
wls=*pi;wlp=*pi;%参数设置
whp=*pi;whs=*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,,]);
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窗幅频响应');
布拉克曼窗
clear;%清除工作空间
closeall;%关闭所有打开的窗口
wls=*pi;wlp=*pi;%参数设置
whp=*pi;whs=*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,,]);
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窗幅频响应');
海明窗
clear;%清除工作空间
closeall;%关闭所有打开的窗口
wls=*pi;wlp=*pi;%参数设置
whp=*pi;whs=*pi;
delta_w=min((wlp-wls),(whs-whp));%求两个过渡带的较小者
wc1=(wls+wlp)/2;wc2=(whp+whs)/2;%截止频率取通带阻带边界频率的均值
%Hamming窗
N2=ceil*pi/delta_w);%依照Hamming窗精准过渡带宽∏/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,,]);%确信显示范围
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调试进程及结论
程序运行结果
矩形窗冲击响应与幅频响应如图3所示:
图3矩形窗冲击响应与幅频响应
Kaiser窗冲击响应与幅频响应如图4所示:
图4Kaiser窗冲击响应与幅频响应
Blackman窗冲击响应与幅频响应如图5所示:
图5Blackman窗冲击响应与幅频响应
Hamming窗冲击响应与幅频响应如图6所示:
图6Hamming窗冲击响应与幅频响应
实验结果分析
关于矩形窗:
窗宽N=12,h(n)为偶对称,对称中心为n=,由于n为整数,故在n=5和n=6处存在两个极大值;在幅频响应图中,实际设计的低端,高端通带截止频率约为和,而低端和高端的阻带截止频率约为和。
其阻带的纹波较大,第一阻带最小衰减27db。
关于Kaiser窗:
窗宽为N=67,h(n)偶对称,对称中心n=33,有效n为整数,故在n=33处存在一个极大值;在幅频响应图中,实际设计的低端和高端通带的截止频率为约和,而低端和高端的阻带截止频率约为和。
第一阻带最小衰减80db。
关于Blackman窗:
窗宽N=80,h(n)为偶对称,对称中心为n=,由于n为整数,故在n=39和n=40处存在两个极大值;在幅频响应图中,实际设计低端,高端通带截止频率约为和而低端和高端的阻带截止频率约为和,。
第一阻带最小衰减75db。
关于Hamming窗:
窗宽N=44,h(n)为偶对称,对称中心为n=,由于n为整数,故在n=21和n=22处存在两个极大值;在幅频响应图中,实际设计的低端,高端通带截止频率约为和,而低端和高端的阻带截止频率约为和。
第一阻带最小衰减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]西安电子科技大学出版社,2020.
[4]陈怀琛.数字信号处置教程—MATLAB释疑与实现[M]北京电子工业出版社,2004.
[5]刘益成.孙祥娥.数字信号处置[M]北京电子工业出版社,2004.
[6]楼顺天.李博菡.基于MATLAB的系统分析与设计现—信号处置[M]西安电子科技大学出版社,1998.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FIR 带通滤波器 设计 课程设计