FIR数字滤波器在MATLAB中的实现.docx
- 文档编号:29745100
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:24
- 大小:372.74KB
FIR数字滤波器在MATLAB中的实现.docx
《FIR数字滤波器在MATLAB中的实现.docx》由会员分享,可在线阅读,更多相关《FIR数字滤波器在MATLAB中的实现.docx(24页珍藏版)》请在冰豆网上搜索。
FIR数字滤波器在MATLAB中的实现
淮北师范大学信息学院
2012届学士学位论文
FIR数字滤波器在MATLAB中的
实现
系别:
专业:
学号:
姓名:
指导教师:
指导教师职称:
2021年5月10日
FIR数字滤波器在MATLAB中的实现
姓名
学校名
摘要数字滤波器是由数字乘法器、加法器和延时单元组成的一种装置。
数字滤波器的功能是对输入离散信号的数字代码进行运算处置,以达到改变信号频谱的目的。
最近几年来数字滤波在通信、图像编码、语言编码、雷达等许多领域中有着十分普遍的应用。
本文第一介绍了数字滤波器的研究背景及其进展现状,然后介绍了FIR数字滤波器的设计原理。
在明白得设计方式的基础上,最后基于MATLAB软件利用窗函数法实现了FIR数字带通滤波器的设计。
仿真结果说明,所设计的滤波器具有良好的滤波器特性,所设计的指标符合设计任务要求。
关键词MATLAB;FIR数字滤波器;窗函数;带通滤波器
RealizationofFIRDigitalFilterBasedOnmatlab
Name
###########################
AbstractDigitalFilterisakindofinstrumentwhichisassembledwithDigitalmultiplier,adder,anddelayelement,thefunctionoftheDigitalFilterisoperatinganddealingwiththedigitalcodeofdiscretesignalwhichisinputtedtochangethefrequencyspectrum.Inrecentyears,DigitalFilteriswidelyappliedtoallkindsofareas,suchasSignalcommunication,imagecoding,languagecoding,radarandsoon.
ThispaperfirstlyintroducesthestudyingbackgroundandcurrentdevelopingstatusofDigitalFIRFilter,andthenshowsitsdesignprinciple.FinallywerealizethedesignofFIRBandpassDigitalFilterwithWindowFunctionbasedMATLABsoftwareatthebasementofunderstandingdesignmethods.TheoutcomeofsimulationindicatesthattheDigitalFilterdoeswellinmeetingthefiltercharacters,atthesametime,indexesfromthefiltercomplieswiththedesignrequirements.
KeywordsMATLAB;FIRFilter;WindowFunctionDesign;BandPassFilter
目次
1引言
在线性系统中,信号滤波进程一样概念为,当输入波形通过一个系统时,对它作一个线性运算,在时刻域上这种变换如像内插,外插微分和积分,在频率域上这种变换那么如低通滤波或滑腻,带通滤波,谱设计和谱分析。
如模拟滤波器对持续时刻信号的这种运算,在数学上是用线性常系数微分方程确信的。
用拉普拉斯变换可在S域内进行这些运算的分析。
用傅立叶变换那么在f域内分析。
一样的,可用常系数线性方程来概念离散时刻信号的线性变换,而且用二变换来分析和合成离散时刻滤波器[1]。
1.1数字滤波器的研究背景和意义
现今,数字信号处置技术正飞速进展,它不但自成一门学科,更是以不同形式阻碍和渗透到其他学科;它与国民经济息息相关,与国防建设紧密相连;它阻碍或改变着咱们的生产、生活方式,因此受到人们普遍的关注。
数字化、智能化和网络化是今世信息技术进展的大趋势,而数字化是智能化和网络化的基础,实际生活中碰到的信号多种多样,例如广播信号、电视信号、雷达信号、通信信号、导航信号等等。
上述这些信号大部份是模拟信号,也有小部份是数字信号。
模拟信号是自变量的持续函数,自变量能够是一维的,也能够是二维或多维的。
大多数情形下一维模拟信号的自变量是时刻,通过时刻上的离散化(采样)和幅度上的离散化(量化),这种模拟信号便成为一维数字信号。
因此,数字信号事实上是数字序列表示的信号,语音信号经采样和量化后,取得的数字信号是一个一维离散时刻序列;而图像信号的经采样和量化后,取得的是数字信号是一个二维离散空间序列[2]。
数字滤波技术是数字信号分析、处置技术的重要分支。
不管是信号的获取、传输,仍是信号的处置和互换都离不开滤波技术,它对信号平安靠得住和有效灵活地传输时相当重要的。
在所有的电子系统中,利用最多技术最复杂的要算数字滤波器了。
数字滤波器的好坏直接决定产品的好坏。
1.2数字滤波器的进展及其现状
数字滤波是从20世纪60年代进展起来的,那时要紧采纳运算机模拟的方式研究数字滤波问题。
到了70年代,开始将微处置器应用于数字滤波。
可是由于微处置器速度不高,在很多场合都难以实现实时处置。
随着VLSI技术的进展,利用硬件来实现数字滤波器已成为可能。
80年代,通用数字信号处置器的成熟和大量涌现,使得音频范围内数字滤波技术迅速取得普遍的应用。
近些年来,除不断提高通用信号处置器的速度和功能外,还显现了许多工作频率达100MHZ以上的专用芯片和积木式部件,从而使数字滤波技术进入视频实时处置时期[3]。
数字滤波在通信、图像编码、语言编码、雷达等许多领域中有着十分普遍的应用。
目前,数字信号滤波器的设计图像处置、数据紧缩等方面的应用取得了令人注视的进展和成绩。
最近几年来迅速进展起来的小波理论,由于其局部份析性能的优良在图像处置中的应用研究,尤其是在图像紧缩、图像去噪等方面的应用研究。
1.3数字滤波器的实现方式
数字滤波器在语言信号处置、图像信号处置、医学生物信号处置和其他应用领域都取得了普遍应用。
数字滤波器的实现,大体上有如下几种方式:
1.用单片机来实现。
目前单片机的进展速度专门快,功能也很强依托单片机的硬件环境和信号处置软件可用于工程实际,如数字操纵,医疗仪器等。
2.用DSP来实现。
DSP芯片较之单片机有着更为突出的优势,如内部带有乘法器,累加器,采纳流水线工作方式及并行结构,多线程,速度快,配有适用于信号处置指令等,DSP芯片的问世及飞速进展,为信号处置技术应用于工程实际提供了可能。
3.在通用的微型运算机上用软件的方式来实现。
软件能够由自己编写或利用现成的。
自IEEEDSPComm于1979年出第一个信号处置软件包以来,国外的研究机构也陆续推出不同语言不同用途的信号处置软件包[4]。
MATLAB软件具有良好的工作平台及编程环境、简单易用的程序语言、壮大的科学运算机数据处置能力和超卓的图形处置功能等。
因此,本文要紧采纳MATLAB软件来实现FIR数字滤波器的设计。
1.4MATLAB简介
MATLAB是由美国Mathworks公司发布的要紧面对科学计算、可视化和交互式程序设计的高科技计算环境[5]。
它将数值分析、矩阵计算、科学数据可视化和非线性动态系统的建模和仿真等诸多壮大功能集成在一个易于利用的视窗环境中,为科学研究、工程设计和必需进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在专门大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了现今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面数一数二。
MATLAB能够进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,要紧应用于工程计算、操纵设计、信号处置与通信、图像处置、信号检测、金融建模设计与分析等领域[6]。
MATLAB的大体数据单位是矩阵,它的指令表达式与数学、工程中经常使用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的情形简捷得多,而且MATLAB也吸收了像Maple等软件的优势,使MATLAB成为一个壮大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
能够直接挪用,用户也能够将自己编写的有效程序导入到MATLAB函数库中方便自己以后挪用,另外许多的MATLAB爱好者都编写了一些经典的程序,用户能够直接进行下载就能够够用。
MATLAB具有以下特点和优势:
1.高效的数值计算及符号计算功能,能利用户从繁杂的数学运算分析中摆脱出来。
2.具有完备的图形处置功能,实现计算结果和编程的可视化。
3.友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和把握。
4.功能丰硕的应用工具箱(如信号处置工具箱、通信工具箱等),为用户提供了大量方便有效的处置工具[7]。
2FIR数字滤波器的设计原理
FIR滤波器设计的任务是选择有限长度的
,使传输函数
知足必然的幅度特性和线性相位要求。
由于FIR滤波器很容易实现严格的线性相位,因此FIR数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。
设计进程一样包括以下三个大体问题[8]:
(1)依如实际要求确信数字滤波器性能指标;
(2)用一个因果稳固的系统函数去逼近那个理想性能指标;
(3)用一个有限精度的运算去实现那个传输函数。
2.1FIR数字滤波器的特点
FIR数字滤波器相较较于IIR数字滤波器有以下的特点:
(1)单位抽样响应h(n)是有限长的,因此FIR数字滤波器必然是稳固的。
(2)经延时,h(n)总可变成因果序列,因此FIR数字滤波器总能够由因果系统实现。
(3)h(n)为有限长,能够用FFT实现FIR数字滤波器。
(4)FIR的系统函数是
的多项式,故IIR的方式不适用。
(5)FIR的相位特性能够是线性的,因此,它有更普遍的应用。
2.2FIR数字滤波器的实现结构
FIR滤波器的传递函数一样有如下形式:
(1)
其大体结构有以下几种:
直接型,级联型,线性相位型,频率采样型。
1.直接型
直接型也称卷积型或横截型,称为卷积型,是因差分方程是信号的卷积形式;称为横截型,是因为滤波器是一条输入x(n)延时链的横向结构。
直接由差分方程可画出对应的网络结构。
其FIR滤波器的直接型结构结构图如图1所示,FIR滤波器的直接型转置结构如图2所示。
(2)
式中,
为实数;x(n)为输入序列,y(n)为输出序列,h(n)单位采样响应。
直接型结构的优势是:
简单直观,乘法运算量较少;缺点是,调整零点较难。
图1 FIR滤波器的直接型结构
(一)
图2 FIR滤波器的直接型转置结构
(二)
2.级联型(串联型)
当需要操纵滤波器的传输零点时,可将传递函数分解为二阶实系数因子的形式:
(3)
式中,H(z)为h(n)的z变换;
、
、
为实数。
级联型结构如图3所示。
图3 FIR滤波器的级联型结构
该结构的优势是:
能够别离操纵每一个子系统的零点;缺点是,所需要的系数直接型的H(z)多,乘法运算多于直接型。
3线性相位型
FIR滤波器的重要特点是可设计成具有严格线性相位的滤波器,现在H(z)知足偶对称或奇对称条件。
其单位冲击响应有如下特性:
(4)
当N为偶数时,
(5)
其网络结构(信号流图)如图4(a)所示。
当N为奇数时,
(6)
其网络结构(信号流图)如图4(b)所示。
(a)
(b)
图4 线性相位FIR滤波器的直接型结构
4.频率采样型
频率采样型结构是一种用系数将滤波器参数化的一种实现结构。
一个有限长序列能够由相同长度频域采样值唯一确信。
系统函数在单位圆上作N等分取样确实是单位取样响应h(n)的离散傅里叶变换H(k)。
H(k)与系统函数之间的关系可用内插公式表示:
(7)
由上看出,FIR系统可用一子FIR系统和一子IIR系统级联而成。
其网络结构(信号流图)如图5所示。
图5 FIR滤波器的频率采样型结构
频率采样型结构的优点有:
(1)选频性好,适于窄带滤波,这时大部份H(k)为零,只有较少的二阶子网络。
(2)不同的FIR滤波器,假设长度相同,可通过改变系数用同一个网络实现。
(3)复用性好。
频率采样型结构的缺点:
(1)具体实现时不免存在误差,零、极点可能不能正好抵消,造成系统不稳固。
(2)结构复杂,采纳的存贮器多[9]。
2.3窗函数法的设计原理
FIR数字滤波器的设计要紧有三种设计方式:
窗函数法、频率抽样法、切比雪夫逼近法。
鉴于窗函数法的原理简单明了、选择性多、易于实现的优势等。
本文要紧运用窗函数法来进行设计。
以下就有关窗函数法的大体原理进行简单介绍。
设希望逼近的滤波器频率响应函数为
,其单位脉冲响应是
。
(8)
(9)
若是能够由已知的
求出
,通过Z变换可取得滤波器的系数函数。
但通常以理想滤波器作为
,其幅度特性逐段恒定,在边界频率处有不持续点,因此
是无穷时宽的,且是非因果序列。
例如,线性相位理想低通滤波器的频率响应函数
为:
=
(10)
其单位脉冲响应
为:
(11)
由上式看到,理想低通滤波器的单位脉冲响应
是无穷长,且是非因果序列。
的波形如图6所示。
为了构造一个长度为N的第一类线性相位FIR滤波器,只有将
截取一段,并保证截取的一段关于n=(N-1)/2,偶对称,设截取的一段用h(n)表示,即:
(12)
式中,
是一个矩形函数,长度为N,波形如下图。
由该图7可知,当
取值为(N-1)/2时,截取的一段h(n)关于n=(N-1)/2,偶对称,保证所设计的滤波器具有线性相位。
咱们实际设计的滤波器的单位脉冲响应为
,长度为N,其系数函数为
H(z):
(13)
如此用一个有限长的序列h(n)去代替
,确信会引发误差,表此刻频域就通常所说的吉布斯效应。
该效应引发的过渡带加宽和带通和阻带内的波动,尤其使阻带的衰减小,从而知足不了技术上要求,这种吉布斯效应是由于将
直接截取引发的,因此,也成为截断效应[10]。
图6窗函数设计法的时域波形
图7窗函数设计法的时域波形
3FIR数字滤波器的设计与实现
FIR数字滤波器以其良好的线性特性被普遍应用于现代电子通信系统中,是数字信号处置的重要内容之一。
Matlab软件含有多种现成的函数和工具箱,在滤波器设计时只需要挪用这些窗函数修改关键数据即可实现不同要求的滤波器设计[11]。
本文要紧介绍的是采用窗函数法设计实现FIR带通滤波器。
3.1几种经常使用的窗函数
由上面的分析可知,窗函数法的设计关键是窗函数的选择。
实际应用中比较经常使用的窗函数有:
矩形窗函数、三角形((Bartlett)窗函数、汉宁(Hanning)窗函数、哈明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞(Kaiser)窗函数。
下面首先介绍这些窗函数的特点。
(1)矩形窗(RectangleWindow):
窗函数的表达式:
其频率响应为:
其幅度函数为:
(2)三角形窗(BartlettWindow):
窗函数的表达式:
其频率响应为:
(3)汉宁(Hanning)窗:
(升余弦窗)
窗函数的表达式:
频率响应为:
(4)哈明(Hamming)窗:
(改良的升余弦窗)
窗函数的表达式:
其频率响应为:
其幅度响应为:
(5)布拉克曼(Blackman)窗:
窗函数的表达式:
其频率响应为:
其幅度响应为:
(6)凯塞(Kaiser)窗:
窗函数的表达式:
0≤n≤N-1,其余w(n)=0
其中
为零阶贝塞尔函数:
,
为主瓣宽度参数。
这几种窗函数的参数比较如表1所示。
表1 六种窗函数的大体参数
窗函数
旁瓣峰值幅度/dB
过渡带宽
阻带最小衰减/dB
矩形窗
-13
4π/N
-12
三角形窗
-25
8π/N
-25
汉宁窗
-31
8π/N
-44
哈明窗
-41
8π/N
-53
布莱克曼窗
-57
12π/N
-74
凯塞窗
-57
10π/N
-80
窗函数的选择原那么是:
(1)具有较低的旁瓣幅度,尤其是第一旁瓣幅度;
(2)旁瓣幅度下降速度要大,以利增加阻带衰减;
(3)主瓣的宽度要窄,以取得较陡的过渡带[12]。
通常上述三点很难同时知足。
被选用主瓣宽度较窄时,尽管取得较陡的过渡带,但通带和阻带的波动明显增加:
被选用最小的旁瓣幅度时,虽能取得匀滑的幅度响应和较小的阻带波动,但过渡带加宽。
因此,实际选用的窗函数往往是它们的折衷。
在保证主瓣宽度达到必然要求的条件下,适当捐躯主瓣宽度来换取旁瓣波动的减少。
3.2利用窗函数设计FIR带通滤波器的设计步骤
本文以带通滤波器的设计为例,介绍窗函数法的实现。
用窗函数法设计FIR数字滤波器的步骤如下:
1依照对阻带衰减及过渡带的指标要求,选择窗函数的类型,并估量窗口长度N。
先依照阻带衰减选择窗函数类型。
原那么是保证阻带衰减知足要求的情形下,尽可能选择主瓣窄的窗函数。
然后依照过渡带宽度估量窗口长度N。
待求滤波器的过渡带宽度
近似等于窗函数主瓣宽度,切近似与窗口长度N成反比,N≈
,A取决于窗口类型,例如,矩形窗A=4
,哈明窗的A=8
等。
2构造希望逼近的频率响应函数
,即
=
(14)
选择
为线性相位理想滤波器(理想低通、理想高通、理想带通、理想带阻)。
以带通滤波器为例,
应知足:
(15)
3计算
。
若是给出待求滤波器的频响函数
,那么单位脉冲响应用下式求出:
(16)
若是
较复杂,或不能用封锁公式表示,那么不能用上式求出
。
咱们能够对
从
=0到
=2
采样M点,采样值为
k=0,1,2,···,M-1,进行M点到IDFT(IFFT),取得:
(17)
依照频域采样理论,
与
应知足如下关系:
(18)
因此,若是M选的较大,能够保证在窗口内
有效逼近
。
对(15)式给出的线性相位理想带通滤波器作为
,可求出单位脉冲响应
:
(19)
3.3基于MATLAB的FIR数字带通滤波器的仿真实现
实例:
用窗函数法设计FIR数字带通滤波器,带通滤波器的指标如下:
通带截止频率
;阻带截止频率
;通带最大衰减
,
;阻带最小衰减
,
;过渡带
。
依次采用矩形窗、布莱克曼窗、汉宁窗和哈明窗进行设计。
仿真结果如图8-11所示。
实现程序如下:
clearall;closeall;clc;
wpl=0.4*pi;wph=0.6*pi;wsl=0.2*pi;wsh=0.8*pi;
wd1=(wpl+wsl)/2;wd2=(wph+wsh)/2;
Bt=min(abs(wsl-wpl),abs(wsh-wph));
N=ceil(11*pi/Bt);
wn=[wd1/pi,wd2/pi];
h=fir1(N-1,wn,'bandpass',boxcar(N));*//h=fir1(N-1,wn,'bandpass',blackman(N));//
*//h=fir1(N-1,wn,'bandpass',hanning(N));//
*//h=fir1(N-1,wn,'bandpass',hamming(N));//
wd=(wd2-wd1)/2;w0=0.5*pi;
M=(N-1)/2;nn=-M:
M;n=nn+eps;
hd=2*sin(wd*n).*cos(w0*n)./(pi*n);%理想冲激响应
w=boxcar(N)';*//w=blackman(N)';//
*//W=hanning(N)';//
*//w=hamming(N)';//
H=20*log10(abs(fft(h,1024)));%实际滤波器的分贝幅度特性
HH=[H(513:
1024)H(1:
512)];
subplot(221),stem(nn,hd,'k');
xlabel('n');title('(a)理想冲激响应');axis([-3030-0.40.5]);
subplot(222),stem(nn,w,'k');axis([-3030-0.11.2]);
title('(b)矩形窗');xlabel('n');*//title('(b)布莱克曼窗');xlabel('n');//
*//title('(b)汉宁窗');xlabel('n');//
*//title('(b)哈明窗');xlabel('n');//
subplot(223),stem(nn,h,'k');
axis([-3030-0.40.5]);xlabel('n');title('(c)实际冲激响应');
w=(-512:
511)/511;
subplot(224),plot(w,HH,'k');
axis([-1.21.2-14020]);xlabel('\omega/\pi');title('(d)滤波器分贝幅度特性');
set(gcf,'color','w');
图8带通滤波器仿真图(矩形窗)
图8为选用矩形窗窗设计带通滤波器的仿真结果图。
图8(a)表示所要设计的滤波器的冲激响应图,图8(b)为所选用的窗函数——矩形窗。
图8(c)为加窗后的实际冲击响应。
图8(d)为设计取得的带通滤波器的幅度损耗函数图。
由图能够看出,所设计的滤波器具有良好的带通滤波特性,知足设计任务要求。
矩形窗属于时刻变量的零次幂窗。
矩形窗利用最多,适应上不加窗确实是使信号通过了矩形窗。
这种窗的优势是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,致使变换中带进了高频干扰和泄漏,乃至显现负谱现象。
图9带通滤波器仿真图(布莱克曼窗)
图9为选用布莱克曼窗设计带通滤波器的仿真结果图。
图9(a)表示所要设计的滤波器的冲激响应图,图9(b)为所选用的窗函数——布莱克曼窗。
图9(c)为加窗后的实际冲击响应。
图9(d)为设计取得的带通滤波器的幅度损耗函数图。
由图能够看出,所设计的滤波器具有良好的带通滤波特性,知足设计任务要求。
布莱克曼窗增加一个二次谐波余弦分量,可进一步降低旁瓣,但主瓣宽度进一步增加,增加N可减少过渡带。
布莱克曼窗设计的阻带最小衰减最大,达-74dB,但过渡带最宽,约为矩形窗的三倍。
图10为选用汉宁窗设计带通滤波器的仿真结果图。
图10(a)表示所要设计的滤波器的冲激响应图,图10(b)为所选用的窗函数——汉宁窗。
图10(c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FIR 数字滤波器 MATLAB 中的 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)