1 背景

在线性系统中,信号滤波过程一般定义为,当输入波形通过一个系统时,对它作一个线性运算,在时间域上这种变换如像内插,外插微分和积分,在频率域上这种变换则如低通滤波或平滑,带通滤波,谱设计和谱分析。如模拟滤波器对连续时间信号的这种运算,在数学上是用线性常系数微分方程确定的。用拉普拉斯变换可在S域内进行这些运算的分析。用傅立叶变换则在f域内分析。同样的,可用常系数线性方程来定义离散时间信号的线性变换,并且用二变换来分析和合成离散时间滤波器[1]。

1.1 数字滤波器的研究背景和意义

当今,数字信号处理技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科;它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们普遍的关注。

数字化、智能化和网络化是当代信息技术发展的大趋势,而数字化是智能化和网络化的基础,实际生活中遇到的信号多种多样,例如广播信号、电视信号、雷达信号、通信信号、导航信号等等。上述这些信号大部分是模拟信号,也有小部分是数字信号。模拟信号是自变量的连续函数,自变量可以是一维的,也可以是二维或多维的。大多数情况下一维模拟信号的自变量是时间,经过时间上的离散化(采样)和幅度上的离散化(量化),这类模拟信号便成为一维数字信号。因此,数字信号实际上是数字序列表示的信号,语音信号经采样和量化后,得到的数字信号是一个一维离散时间序列;而图像信号的经采样和量化后,得到的是数字信号是一个二维离散空间序列[2]。

数字滤波技术是数字信号分析、处理技术的重要分支。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输时至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了。数字滤波器的优劣直接决定产品的优劣。

1.2 数字滤波器的发展及其现状

数字滤波是从20世纪60年代发展起来的,当时主要采用计算机模拟的方法研究数字滤波问题。到了70年代,开始将微处理器应用于数字滤波。但是由于微处理器速度不高,在很多场合都难以实现实时处理。随着VLSI技术的发展,使用硬件来实现数字滤波器已成为可能。80年代,通用数字信号处理器的成熟和大量涌现,使得音频范围内数字滤波技术迅速得到广泛的应用。近些年来,除了不断提高通用信号处理器的速度和功能外,还出现了许多工作频率达100MHZ以上的专用芯片和积木式部件,从而使数字滤波技术进入视频实时处理阶段[3]。

数字滤波在通信、图像编码、语言编码、雷达等许多领域中有着十分广泛的应用。目前,数字信号滤波器的设计图像处理、数据压缩等方面的应用取得了令人瞩目的进展和成就。近年来迅速发展起来的小波理论,由于其局部分析性能的优异在图像处理中的应用研究,尤其是在图像压缩、图像去噪等方面的应用研究。

3 FIR数字滤波器的设计与实现

FIR数字滤波器以其良好的线性特性被广泛应用于现代电子通信系统中,是数字信号处理的重要内容之一。Matlab软件含有多种现成的函数和工具箱,在滤波器设计时只需要调用这些窗函数修改关键数据即可实现不同要求的滤波器设计 [11]。本文主要介绍的是采用窗函数法设计实现FIR带通滤波器。

3.1几种常用的窗函数

由上面的分析可知,窗函数法的设计关键是窗函数的选择。实际应用中比较常用的窗函数有:矩形窗函数、三角形((Bartlett)窗函数、汉宁(Hanning)窗函数、哈明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞(Kaiser)窗函数。下面首先介绍这些窗函数的特点。

(1)矩形窗(Rectangle Window):

窗函数的表达式:

其频率响应为:

其幅度函数为:

(2)三角形窗(Bartlett Window):

窗函数的表达式:

其频率响应为:

(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所示。

实现程序如下:

clear all;close all;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([-30 30 -0.4 0.5]);

subplot(222),stem(nn,w,'k');axis([-30 30 -0.1 1.2]);

title('(b)矩形窗');xlabel('n'); *// title('(b)布莱克曼窗');xlabel('n');//

*// title('(b)汉宁窗');xlabel('n');//

*// title('(b)哈明窗');xlabel('n');//

subplot(223),stem(nn,h,'k');

axis([-30 30 -0.4 0.5]);xlabel('n');title('(c)实际冲激响应');

w=(-512:511)/511;

subplot(224),plot(w,HH,'k');

axis([-1.2 1.2 -140 20]);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)为加窗后的实际冲击响应。图10(d)为设计得到的带通滤波器的幅度损耗函数图。由图可以看出,所设计的滤波器具有良好的带通滤波特性,满足设计任务要求。

汉宁窗主瓣加宽并降低,旁瓣则显著减小,从减小泄漏观点出发,汉宁窗优于矩形窗.但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。

图10带通滤波器仿真图(汉宁窗)

图11带通滤波器仿真图(哈明窗)

图11为选用哈明窗设计带通滤波器的仿真结果图。图11(a)表示所要设计的滤波器的冲激响应图,图11(b)为所选用的窗函数——哈明窗。图9(c)为加窗后的实际冲击响应。图11(d)为设计得到的带通滤波器的幅度损耗函数图。由图可以看出,所设计的滤波器具有良好的带通滤波特性,满足设计任务要求。

哈明窗是对汉宁窗的改进,只是加权系数不同。哈明窗加权的系数能使旁瓣达到更小。在主瓣宽度(对应第一零点的宽度)相同的情况下,旁瓣进一步减小,可使99.96%的能量集中在主瓣内。

结论

本文首先介绍了数字滤波器的研究背景及其发展现状,然后介绍了FIR数字滤波器的设计原理。在理解设计方法的基础上,最后基于MATLAB软件利用窗函数法实现了FIR数字带通滤波器的设计。仿真结果表明,所设计的滤波器具有良好的滤波器特性,所设计的指标符合设计任务要求。

FIR数字滤波器的设计要取得好的逼近效果,除阶数N外,选择适合的窗函数也是重要方面的。通过对窗函数合理的选择,使得滤波器的通带衰减较小,阻带衰减较大;有较陡的过渡带,有利于对信号频带的选择。

在FIR滤波器中突出的性能中,也存在着一些不足:

1. 窗函数设计法是从时域出发的一种设计法,但一般技术指标是在频率给出的,其边界频率不容易控制,为达到较好的效果,需要多次调试。

2. 由于FIR滤波器的传输函数的极点固定在原点,所以只能采用较高的阶数来达到高的选择性。因此,它的经济性就相对差一些。

MATLAB由于本身带有多种工具箱和窗函数对于滤波器的设计有着多种设计方式,只需修改关键程序即可实现多种滤波器的设计。在图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域有着不可替代应用前进。

FIR数字滤波器在MATLAB中的实现相关推荐

  1. 信号处理之FIR数字滤波器(Matlab仿真)

    数字滤波器的作用是滤除不感兴趣的信号,留下想要的信号.数字滤波器可分为无限脉冲响应(IIR)数字滤波器.有限脉冲响应(FIR)数字滤波器两种,两者各有优缺点,其中FIR数字滤波器因其具有良好的线性相位 ...

  2. fir数字滤波器MATLAB设计,基于FIR数字滤波器的Matlab设计

    摘 要 :阐迷了FIR数字浦波器的窗a数设计方法,并利用Matlab语言实现了浦波器的设计与仿真.Matlab语言可以 方便.快捷地设计具有严格线性相位的FIR系跳,可节省大It的编程时间,提高编租效 ...

  3. FIR数字滤波器设计(中)

    今天给大侠带来FIR数字滤波器设计,由于篇幅较长,分三篇.今天带来第二篇,FIR数字滤波器设计基础,包括FIR数字滤波器的特点.线性相位条件以及基本结构.话不多说,上货. 数字滤波器的输入输出均为数字 ...

  4. 基于等波纹最佳逼近法的FIR数字滤波器实现matlab仿真

    目录 一.理论基础 二.案例背景 三.MATLAB核心代码 四.仿真结论分析 一.理论基础 等波纹最佳逼近法,其本质是一种优化算法,该方法有效克服了基于窗函数的FIR滤波器设计方法以及基于频率抽样的F ...

  5. FIR数字滤波器设计

    今天给大侠带来FIR数字滤波器设计,由于篇幅较长,分三篇.今天带来第三篇,FIR数字滤波器设计,包括窗函数法设计FIR滤波器.频率采样法设计FIR滤波器以及基于firls函数和remez函数的最优化方 ...

  6. matlab中fir1中的边界频率,FIR滤波器的MATLAB设计与实现.pdf

    FIR滤波器的MATLAB设计与实现 1.设计任务 1.用MATLAB软件实现FIR滤波器: 2.设计基于DSP 的FIR滤波器硬件框图: 3.了解用DSP实现FIR滤波器的关键问题: 4.完成必要的 ...

  7. fir滤波器课程设计matlab,Matlab课程设计---FIR数字滤波器

    Matlab课程设计---FIR数字滤波器 课程设计任务书课程设计任务书 学生姓名学生姓名 xxxxxx 专业班级专业班级 信息信息 xxxxxx 班班 指导教师指导教师 xxxxxx 工作单位工作单 ...

  8. FIR窗函数和IIR模拟、数字滤波器的MATLAB实现

    导语 本文采用MATLAB R2014b对x.mat信号进行了时域频域的分析,同时创建窗函数.IIR模拟巴特沃兹.IIR数字滤波器对x.mat信号进行滤波处理. 原始信号的时频域分析 我是把x.mat ...

  9. MATLAB设计FIR数字滤波器GUI界面

    MATLAB设计FIR数字滤波器GUI界面 目录 MATLAB设计FIR数字滤波器GUI界面 前言 一.GUI界面设计 1.创建工程 2.GUI界面设计 二.代码讲解 1.参数输入 2.单选按钮 3. ...

  10. FIR数字滤波器的设计[Matlab][带源码]

    本次为实验项目,在学习数字信号处理课程需要利用matlab来巩固所学知识 参考博主为整个项目实验,本次我们所需只需前三问即可. FIR数字滤波器的设计_A Master的博客-CSDN博客_fir数字 ...

最新文章

  1. Science综述:人类与微生物共进退
  2. 博客文章的置顶功能『博客帮助』
  3. AMD Developer Center有关ATI Stream的内容
  4. 个人电脑详细的安全设置方法之一
  5. html语言右对齐,在HTML中右对齐块元素
  6. 95-140-116-源码-transform-算子union
  7. Lesson3.2 variables
  8. 机器学习的所有资源链接和经验教训(八)深度学习框架
  9. matlab插值拟合
  10. 基于Android的BMI指数运算
  11. linux mount iso文件系统,在Linux中挂载ISO文件的两种方法(mount命令与mount软件)
  12. 深度信念网络_静园5号院前沿讲座 | Geoffery Hinton谈深度信念网络
  13. 前端css中常见的-moz-,-webkit-,-o-分别是什么?
  14. 判断手机号所属运营商--课后程序(Python程序开发案例教程-黑马程序员编著-第11章-课后作业)
  15. 如何看待人工智能威胁论?
  16. Xcode 卡死 解决方法
  17. 视觉神经网络的工作机理,计算机视觉和神经网络
  18. 冒泡排序算法基本思路
  19. 哈工大软件构造2022笔记(持续更新----1)
  20. PSNR峰值信噪比matlab实现

热门文章

  1. 创客使用Fusion 360 - 制作模型
  2. java微信开发之--更换背景图片
  3. 网络资源下载操作及其原理学习: 如迅雷与百度网盘
  4. mysql 执行存储过程
  5. python编程求一个数的平方根_用Python求一个数的平方根.
  6. 域名解析邮箱服务器地址,邮件域名设置解析
  7. mysql查询父子关系树_数据库 SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点...
  8. Office 2010安装过程中修复“错误2203。发生内部错误”
  9. html文件恢复工具,小飞文件恢复工具
  10. 解决通过无线路由上网,但有些网站打不开的问题