Matlab在FIR数字滤波器中的应

最新更新时间:2012-02-12来源: 互联网关键字:Matlab  FIR  数字滤波器 手机看文章 扫描二维码
随时随地手机看文章

提出FIR数字滤波器的设计方案,并基于Matlab实现滤波仿真。通过使用Matlab信号处理工具箱提供的函数,选择适当的窗函数编写程序,其中窗函数按照实际信号的处理需求,参数折中选择。实验获得了比较理想的滤波器特性,可以实现较好的滤波作用。而且在实际应用中只需按需求修改滤波器参数,并结合程序的相应改动,即可实现不同功能的滤波器。另外,介绍了利用FDATool设计滤波器的方法,简单修改参数即可实现多种滤波器。

  1 数字滤波器及设计方案

  应用数字滤波器处理模拟信号时,首先要对输入模拟信号进行限带、抽样和模/数转换,数字滤波器输入信号的抽样率应大于被处理信号带竟的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即1/2抽样频率点呈镜像对称。滤波器的输出信号须经数/模转换、平滑处理。

  FIR数字滤波器的输出值u(Kt)与输出的过去值u(Kt-kt)表达关系如下:

  

a.jpg

 

  这是不断乘累加的过程,解决了滤波器的系数α问题,再加上乘法和加法计算即可实现滤波器设计。由于FIR滤波器的单位脉冲响应h(n)是有限长序列,因此滤波器没有不稳定的问题,FIR滤波器一般为非递归结构,因此在采用Matlab设计时采用有限精度的计算,以避免出现递归结构中极性震荡等不稳定现象。常见的两种FIR滤波器设计方法是窗函数法和频率采样法。虽然频率采样法可以精确控制采样点的频率响应,但是设计中必须插入过渡点来改善纹波,而且截止频率不易控制,过渡点也需要进一步的优化,对比来看窗函数法则是一种基本的设计理念,设计方法比较成熟。并且Matlab中提供的函数可以方便地实现加窗线性相位FIR滤波器设计,包括了比较常见的低通、带通、高通和带阻数字滤波器。本文采用的是窗函数结合编程的设计方法。

  窗函数法的基本思想是先给定理想的滤波器频响为

b.jpg

 

  

 

  式中:ωc为截止频率;α为采样延迟。

  而所要求设计的频响为

d.jpg

,之后的工作便是使

e.jpg

逼近

。加窗w(n)对理想滤波器的单位抽样响应hd(n)(见式(3))截断,得到所要设计的h(n)。

 

  

e.jpg

 

  对于FDATool设计法,本文通过选择适当参数,利用Matlab完成。

  2 FIR数字滤波器设计

  2.1 窗函数法设计FIR滤波器方案

  在Matlab中可直接产生窗函数:矩形窗(Rectangle Window),三角窗(Triangular Window),汉宁窗(Hanging Window),凯塞窗(Kaiser Window)等,通过调用系统的函数即可实现窗的加载。具体调用方法如下:调用格式:w=函数名(n),根据长度n产生一个矩形窗w。一般正常的心电信号频率范围在0.05~100 Hz之内,这本身就是一种比较微弱的电信号,当受到身体其他器官的干扰信号后,心电信号将会严重失真。另外还要考虑到电子器件噪声和50 Hz的工频信号的存在。这就需要尽量消除噪声和干扰的影响。这里选取低通滤波器的设计指标为:通带截止频率ωp=0.2π,阻带截止频率ωs=0.3π,最小阻带衰减As≥50 dB。所以得出过渡带宽tr_width=ωs-ωp,列长N=10 π/tr_width。选择窗函数一般是选择主瓣较宽的,这样可以增加阻带的衰减,保证了通带的平稳,另外在保证阻带最小衰减指标的情况下,适当增加列长N值,窄化过渡带。根据窗函数最小阻带衰减的特性。只有海明窗和凯塞窗可提供大于50 dB的衰减。实际应用中选用窗函数大多是它们的折中,凯塞窗可以通过改变参数值来折中选择主瓣宽度和旁瓣衰减,基于此的滤波器适应能力强且比较灵活。本文即是采用的凯塞窗编程设计。窗函数设计法是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,设计步骤为:

  (1)通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。

  

f.jpg

 

  (2)由性能指标确定窗函数W(n)和窗口长度N。

  (3)求得实际滤波器的单位脉冲响应h(n),h(n)即为所设计FIR滤波器系数向量a(n)。

  

g.jpg
(4)检验滤波器性能。

  Matlab信号处理工具箱提供了各种窗函数、滤波器设计函数和滤波器实现函数。设计中利用Matlab提供的函数firl来实现,编程则是直接调用这些函数简单直观的完成设计。调用格式:firl(n,Wn,‘ftype’,Window),其中n为阶数、Wn为截止频率、ftype是滤波器的类型、Window是窗函数。应用凯塞窗的代码如下:

  

 

  程序执行的结果如图1,图2所示。

  

 

  从滤波效果图看,所设计的滤波器基本消除了噪声和干扰的影响,客观的得出真实信号。按照设计方案中滤波器的指标,执行函数操作可以得到:N=68,As=59。之后增加参数N值。在该设计中,利用凯塞窗函数,执行了多种N值的改变。伴随N值增大,过渡带变窄,但阻带的最小衰减没有改变。

  2.2 FDATool设计方案

  FDATool(Filter Design&Analysis Too1)是Matlab信号处理工具箱专用的滤波器设计分析工具,操作简单、灵活,可以采用多种方法设计FIR滤波器。这种方法设计的数字滤波器,可以随时调整滤波器滤披特性,而且滤波结果实时显示在图形区,减少了工作量,有利于滤波器设计的进一步优化。在Matlab命令窗口输入FDATool后回车会弹出FDATool界面,也可在Matlab主界面下方选择“start”→“toolbox”→“ filterdesign”。具体参数选择为:

  (1)滤波器类型(filter type)为lowpass;

  (2)设计方法(design method)为FIR,使用窗口Window;

  (3)滤波器的阶数(fiter order)为15;

  (4)窗口类型(Window)为Kaiser,beta为0.5;

  (5)fs为48 000 Hz,fc为10 800 Hz。

  点击“design filter”即可。值得注意的是,这里选择filter order为15阶,而不是所设计的16阶滤波器。因为常数系数项h(0)=0。通过菜单“analysis”选择“magnitude”和“phase response”即可得到图3,图4的特性显示。“analysis”选择“step response”和“im-pulse”可以得到图5,图6的响应显示。可以看出所设计FIR滤波器的阶跃响应和冲击响应比较接近理想状态。

  

 

 

  

3 结论

  从图1~4的特性曲线中可以看出该滤波器的性能基本达到了妻求,滤波作用比较明显。曲线相对比较平稳,能够满足微弱信号滤波器的设计技术指标。特别是从方案二中的相频特性曲线来看,曲线通过原点且为一条平滑直线,说明具有良好的线性相位特性,而这也是在应用中选择FIR数字滤波器的重要原因,但是它的实际效果还要经过实践的检验。FIR幅频特性精度比IIR低,且滤波器所需阶次比较高,但是它拥有很好的线性相位,即不同频率分量的信号经过FIR滤波器后他们的时问差不变。另外,FIR还存在的缺点应加以改善,如信号的延迟偏大。这就考虑到用高性能的DSP器件,由于其处理速度快,此缺点在一点程度上是可以改善的。

  4 结语

  由于Matl-ah具有强大的接口功能,仿真后的结果可以很方便的移植到DSP,CPLD或FPGA等器件中。在实际应用中,只需按要求修改滤波器参数,并对程序作较少的改动,即可实现不同的滤波器,实用性较强。

关键字:Matlab  FIR  数字滤波器 编辑:神话 引用地址:Matlab在FIR数字滤波器中的应

上一篇:手持式移动设备显示器效果分析
下一篇:触摸屏操作技巧

推荐阅读最新更新时间:2023-10-12 20:35

IIR数字滤波器设计-在FPGA上实现任意阶IIR数字滤波器
IIR数字滤波器设计-在FPGA上实现任意阶IIR数字滤波器 摘 要:本文介绍了一种采用级联结构在FPGA上实现任意阶IIR数字滤波器的方法。此设计扩展性好,便于调节滤波器的性能,可以根据不同的要求在不同规模的FPGA上加以实现。 IIR数字滤波器在很多领域中有着广阔的应用。与FIR数字滤波器相比,它可以用较低的阶数获得高选择性,所用存储单元少,经济而效率高,在相同门级规模和相同时钟速度下可以提供更好的带外衰减特性。下面介绍一种在FPGA上实现IIR数字滤波器的方法。 IIR数字滤波器的结构 任意阶的IIR滤波器可通过数学分解,表示为: 其中为如下的二阶形式: 这样就可以将任意阶的IIR滤波器通过若
[嵌入式]
IIR<font color='red'>数字滤波器</font>设计-在FPGA上实现任意阶IIR<font color='red'>数字滤波器</font>
基于PSO的FIR数字滤波器设计
由于FIR数字滤波器具有系统稳定,容易实现线性相位,允许设计多通带(或多阻带)以及硬件容易实现等特点,使得其在数字信号处理中有着广泛的应用。传统FIR滤波器的设计方法是建立在对理想滤波器频率特性作某种近似的基础上进行设计的,其中包括窗函数法、频率采样法及最佳一致逼近法。窗函数法计算简单,但不能很好地折衷过渡带与幅频响应误差之间的矛盾。频率采样法直接从频域处理,原理简单,计算也不复杂,但不易精确确定其通带和阻带的边缘频率,并且使用传统的查表法,不能保证数据最优。最佳一致逼近法着眼于整个区间内的总误差为最小,但并不一定能保证在每个局部误差都最小。近年来许多学者将先进方法用于FIR滤波器优化设计,如神经网络法和遗传算法等。这些算法具备一定
[测试测量]
基于PSO的<font color='red'>FIR</font><font color='red'>数字滤波器</font>设计
基于DSP C54x的数字滤波器设计
摘要:本文主要介绍基于DSP的数字滤波器的设计,使用CCS5000Simulator 实现FTSK数据输入, 使用FIR滤波器对FTSK调制信号进行处理,输出需要的波形与频谱。文中采用线性缓冲区和带移位双操作寻址的方法实现FIR滤波器。 关键词:数字滤波器,Matlab,Simulator 前言 一个实际的应用系统中,总存在各种干扰。使用DSP进行数字信号处理时,可以从噪声中提取信号,即对一个具有噪声和信号的混合源进行采样,然后经过一个数字滤波器,滤除噪声,提取有用信号;数字滤波器是DSP最基本的应用领域,也是熟悉DSP应用的重要环节。在系统设计中,滤波器的好坏将直接影响系统的性能。 数字滤波器的基本理论和设计
[嵌入式]
基于FPGA+MATLAB的串行多阶FIR滤波器设计
数字滤波器是用于过滤时间离散信号的数字系统,通过对抽样数据进行数学处理达到频域滤波的目的。根据单位冲激响应函数的时域特性可分为两类:无限冲激响应(Infinite Impulse Response,IIR)滤波器和有限冲激响应(Finite Inpulse Response,FIR)滤波器。与IIR滤波器相比,FIR滤波器的实现是非递归的,较稳定;且FIR滤波器可获得严格的线性相位特性。因此,应用领域较广。 FIR滤波器具有成熟的结构,使用Matlab强大的功能使得本来繁重的计算工作变得轻松。在具体应用时,要根据工程当中信号的特点:采样速率、信号带宽等具体使用Matlab得到FIR滤波器系数。滤波器的结构实现可以使用PC软件、单片
[嵌入式]
基于FPGA+<font color='red'>MATLAB</font>的串行多阶<font color='red'>FIR</font>滤波器设计
Matlab语言在供电系统谐波分析中的应用
引言 供电系统负荷正从传统的线性负荷 , 如电动机 、热辐射式电气照明、电加热设备向非线性负荷过渡 ,如变频器、电动车充电器、气体放电式照明、带有整流装置的家电等 。这些非线性负荷造成的高次谐波严重污染了供电环境 ,使电能质量严重下降 。高次谐波的预防、检测和治理依赖于对供电系统瞬时电流的检测和谐波分析 。对于50 Hz的工频电流 ,其32次谐波的频率为1 600 Hz ,根据申农定理 , 为了信号保真 ,采样频率至少要达到3 200次/s ,这就限定了电流信号的采集 、运算需要运用计算机 ,所获得的电流电压检测信号则是离散的信息流 。 本文采用Matlab语言 ,编制了一个对电流、电压信号进行谐波分析的子程序 ,用户可以在获
[嵌入式]
<font color='red'>Matlab</font>语言在供电系统谐波分析中的应用
MATLAB环境下的模糊推理程序化方法
    摘要: 介绍了在MATLAB环境下,实现模糊推理的程序化的方法,解决了由于增加模糊量化论域而产生的复杂计算问题,为模糊控制的研究和应用提供了方便的条件。     关键词: 模糊控制  近似推理  模糊推理程序化     模糊控制具有不依赖对象的数学模型、鲁棒性强、能够很好地克服传动系统中模型参数变化和非线性等不确定因素的优点,因此,模糊控制在实际控制系统中得到广泛应用。模糊控制器普遍采用的是离线进行模糊推理产生的模糊控制表,然后把控制表存储在单片机中进行在线查表控制,但模糊推理计算量大,这给模糊控制器的设计和调整带来了许多困难。此外,模糊控制存在的一个较大的缺点是稳态精度不高。为此,人们
[传感技术]
基于MATLAB的远程信号分析与诊断系统的开发
    摘要: 讨论了MATLAB通过WWW实现异地信号分析的原理和关键技术,设计了基于MATLAB的机械设备远程信号分析及远程故障诊断系统。     关键词: 远程诊断 信号处理 MATLAB软件 WEB INTERNET MATLAB语言及其系统是MathWorks公司推出的一套高性能的数值计算和可视化数学软件 。它集数值分析、矩阵运算、信号处理、仿真控制和图形显示等于一体,构成了一个方便的、功能强大的、界面友好的用户环境和系统开发平台,在故障诊断等众多工程领域有着广泛的应用 。 近年来,随着计算机技术与通信技术的发展,Internet/Intranet技术已成为远程信号分析与处理系统开发的理想平台
[嵌入式]
不同阶数的FIR数字滤波器的DSP实现
FIR滤波器的结构主要是非递归结构,没有输出到输入的反馈。并且FIR滤波器很容易获得 严格的线性相位特性,避免被处理信号产生相位失真。而线性相位体现在时域中仅仅是h( n)在时间上的延迟,这个特点在图像信号处理、数据传输等波形传递系统中是非常重要的。此外,他不会发生阻塞现象,能避免强信号淹没弱信号,因此特别适合信号强弱相差悬殊的情况。其主要的不足之处是,其较好的性能是以较高的阶数为代价换来的。因此,在保证相同性能的前提下,努力降低其阶数是FIR数字滤波器设计的重要因素之一。 下面介绍应用Matlab和DSP芯片来实现FIR滤波器的通用模式。 1 FIR滤波器的设计方法 通常采用窗函数法设计FIR滤
[测试测量]
不同阶数的<font color='red'>FIR</font><font color='red'>数字滤波器</font>的DSP实现
小广播
热门活动
换一批
更多
最新模拟电子文章
更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved