当前位置:首页 >> 信息与通信 >>

FIR数字滤波器的MATLAB设计与仿真


FIR 数字滤波器的 MATLAB 设计与仿真
摘要:滤波器设计在数字信号处理中占有极其重要的地位, 数字滤波器又是 FIR
滤波器设计的重要组成部分之一。MATLAB 因其强大的数据处理功能被广泛的应 用在多个领域,其丰富的工具箱为各种计算提供了便利。利用 MATLAB 信号处理 工具箱可以快速有效地设计各种数字滤波器。本文使用最佳一致逼近来设计 FIR 数

字滤波器,并利用 MATLAB 作为辅助工具完成设计中的计算与图形的绘制。对 所设计滤波器的仿真和频率特性分析表明,利用 MATLAB 信号处理工具箱可以有 效地设计 FIR 数字滤波器, 过程简单方便, 结果的各项性能指标均达到指定要求。 关键词:FIR(有限冲激响应)数字滤波器;MATLAB;最佳一致逼近

1.引言
数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采 集、 变换、 综合、 估值与识别等加工处理, 借以达到提取信息和便于应用的目的。 它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获 得了极其广泛的应用。具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度 快等优点。数字滤波器, 是数字信号处理中及其重要的一部分。随着信息时代和 数字技术的发展,受到人们越来越多的重视。数字滤波器根据其冲激响应函数的 时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤 波器和无限冲激响应( IIR,Infinite Impulse Response)滤波器。FIR 滤波器 因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点 受到了人们的青睐。 FIR 滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。 随着 MATLAB 软件及信号处理工具箱的不断完善,MATLAB 很快成为应用学科等领域不可或缺 的基础软件。它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减 轻了工作量,有利于滤波器设计的最优化。

2.FIR 数字滤波器的设计原理
FIR 数字滤波器的系统传递函数为:
H ( z ) = ∑ bn z ? n
n =0 M

( 1)

系数



… …

为该系统的单位抽样响应 h(0),h(1) ,… …h(M),

且当 n>M 时,h(n)=0 。FIR 数字滤波器的设计方法主要是建立在对理想滤波器

频率特性作某种近似的基础上的。这些近似方法有窗函数法、频率抽样法及切比 雪夫最佳一致逼近法(等波纹最佳逼近法) 。本文以切比雪夫最佳一致逼近法为 例。 从 FIR 数字滤波器的系统函数可以看出,极点都是在 z 平面的原点,而零点的分 布是任意的。不同的分布将对应不同的频率响应,最优化设计实际上就是调节这 些零点的分布,使得实际滤波器的频率响应 Hd (ejω)与理想滤波器的频率响应 Hd jω (e )之间的最大绝对误差最小。等波纹最佳逼近法利用逼近定理设计 FIR 数字 jω 滤波器,由于是在一致意义上对 Hd (e )作最佳逼近,因而获得了较好的通带和 阻带性能,并能准确地指定通带和阻带的边缘,是一种更佳有效的设计方法。 设理想滤波器的频率响应函数为:

(2)

式中ωp 为通带频率,ωs 为阻带频率。 现在的任务就是设计一个 Hd (ejω),它在通带和阻带内最佳一致地逼近 Hd (ejω)。 为了保证 Hd (ejω)具有线性相位,h(n)应满足 FIR 数字滤波器的线性相位的充要 条件,并且根据实际设计的滤波器的冲激函数的奇偶对称性,以及抽样长度 N 的奇偶性, 可以将滤波器分为Ⅰ型(抽样序列 Hd(ejω)偶对称, 为奇数)、 N Ⅱ型(抽 jω jω 样序列 Hd(e )偶对称,N 为偶数)、Ⅲ型(抽样序列 Hd(e )奇对称,N 为奇数)、 jω Ⅳ型(抽样序列 Hd(e )奇对称,N 为偶数)等 4 种型号,这 4 种型号的滤波器频率 响应函数可统一表示为:
(3)

其中Ⅰ型、Ⅱ型滤波器,k=0;Ⅲ型、Ⅳ型滤波器,k=1; 致逼近函数,可表示为:

为 Hd(e )的一



(4) 其中 Q(ejω)为 的固定函数,P(ejω)为 M 个余弦函数的线性组合,有利于采用同 、Q(ejω)和 P(ej

一种算法进行最佳逼近。4 类线性相位 FIR 实际滤波器的
ω

)的统一表示形式如表所示:

表1

4 种 FIR 线性相位数字滤波器统一表示形式
Q(ejω) 1 P(ejω) M (N-1)/2 N/2

表达式 类型 Ⅰ型 Ⅱ型

Ⅲ型 Ⅳ型

(N-1)/2 N/2

设计滤波器时对通带和阻带常要求不同的逼近精度,所以乘以不同的加权函数, 这种逼近又称切比雪夫一致逼近,可以得到逼近误差函数的表达式: (5) 其中: (6)

(7) 在表 1 表示的逼近最大误差最小化的准则下, 设计最优滤波器就是求出滤波器系 数组(a(n)、 、 和 )。所以切比雪夫逼近问题可以描述为:在实行逼

近的频率范围内(即滤波器的通带和阻带), 使得误差函数 E(ejω)的最大绝对值最 小,并以此确定线性相位滤波器的系数组(a(n)、
jω jω





)。

若用符号||E(e )||表示使误差函数 E(e )的最大绝对值最小的值,则切比雪夫 逼近公式可以写成: jω jω || E(e )||=[max(|E(e )|)] (8) 采用切比雪夫逼近设计方法能够得到既有严格线性相位, 又有很好的衰减特性的 滤波器,因此切比雪夫逼近法在滤波器设计中占有很重要的位置。

3.FIR 数字滤波器的 MATLAB 实现
3.1 程序设计 FIR 数字滤波器
以下用等波纹最佳逼近逼近法设计 FIR 低通滤波器,并给出了相应的 MATLAB 程 序。 设计 FIR 低通滤波器,通带为(0~200Hz) ,过渡带为(200~220Hz),通带最大衰 减为 1dB,阻带最大衰减为 80dB,绘出滤波器幅频特性与抽样值。 根据要求编程如下: clear all; clc; Fs=1000; f=[200,220];

m=[1,0]; rp=1; rs=80; dat1=(10^(rp/20) -1)/(10^(rp/20)+1); dat2=10^(-rs/20); rip=[dat1,dat2]; [M,fo,mo,w]=remezord(f,m,rip,Fs); M=M+1; hn=remez(M,fo,mo,w); [h,w]=freqz(hn,1,256,1000); h=abs(h); h=20*log10(h); subplot(211) stem(hn,'.'); grid; title('切比雪夫逼近滤波器的抽样值 ') subplot(212) plot(w,h); grid; title('滤波器幅频特性(dB)') 运行结果如图一:

图一程序运行结果

3.2 FDATOOL 设计 FIR 数字滤波器
FDATool(Filter Design & Analysis Tool)是 MATLAB 信号处理工具箱专用的滤 波器设计分析工具,操作简单、灵活,可以采用多种方法设计 FIR 滤波器。在 MATLAB 命令窗口输入 FDATool 后回车就会弹出 FDATool 界面。 我们将以一个 FIR 滤波器的设计实例来具体说明使用 MATLAB 工具箱的方便。 要求设计 Equiripple 型低通滤波器满足指标,首先在 Response Type 中选择 Lowpass 低通滤波器,然后在下面的 Desigh Method 中选择 FIR 类型,并且选 定 Filter Order 项中的 Minimum order, 其下面 Option 指定 Density Factor=20。

然后在 FrequencySpecifications 中选择 Unit 为 Hz,给出采样频率 Fs=1000, Fpass=200,Fstop=210;最后在 Magnitude Specifications 中选择 Unit 为 dB, Apass=1, Astop=80。 设置完成后点击 Design Filter 即可得到所设计的 FIR 滤 波器。 通过菜单选项 Analysis 可以在特性区看到所设计的幅频响应、 相频响应、 冲击响应和零极点配置等特性。设计完成后将结果保存,封装为 lbq.fda 文件, 下面是运用 FDATool 设计滤波器,其中幅频特性如图二所示:

图二幅频特性曲线

3.3 SPTOOL 设计 FIR 数字滤波器
SPTool 是 MATLAB 信号处理工具箱中自带的交互式图形用户界面工具,它包含了 信号处理工具箱中的大部分函数,可以方便快捷地完成对信号、滤波器及频谱的 分析、设计和浏览。在本例中按以下步骤完成滤波器的设计和滤波: (1)创建并导入心电信号。 (2)单击 Filters 列表下的 New,按照参数要求设计出滤波器 hd。 (3)将滤波器 hd 应用到 sig1 信号序列。分别在 Signals、Filters、Spectra 列表中选择 sig1、hd、mtlbse,单击 Filters 列表下的 Apply 按钮,在弹出的 Apply Filter 对话框中将输出信号命名为 sig2。 分别选中信号 sig1,sig2 单击列表下方的 View 按钮,即可观察他们的波形, 如图三,四所示:

图三 滤波前的心电信号

图四 滤波后的心电信号

3.4 SIMULINK 仿真框图设计
在 Simulink 环境下,将滤波器文件 lvboqi.fda 导入 Digital Filter Design 模块,输入信号为 s(t)=sin(100πt)+sin(2000πt),生成的仿真图和滤波效果 如图五,六所示。

图五 Simulink 仿真图

图六 Simulink 滤波效果图

4 结束语
本文在对滤波器实际设计中用到了多种设计方法, 与其他高级语言的程序设计相 比, MATLAB 环境下可以更方便、快捷地设计出 FIR 数字滤波器,节省大量的编程时 间, 提高编程效率,且参数的修改也十分方便,还可以进一步进行优化设计。但是运 用函数设计 法,整个过程的运算量是很大的。设计阶数较高的 FIR 滤波器时,计算量更大, 设计过程中要改变参数或滤波器类型时都要重新计算。它需要反复的实验,而且 需要设计者凭借经验设定参数,平时所要设计的数字滤波器,阶数和类型并不一 定是完全给定的,很多时候要根据设计要求和滤波效果不断地调整,以达到设计 的最优化。在这种情况下,滤波器设计就要进行大量复杂的运算,单纯的靠公式 计算和编制简单的程序很难在短时间内完成。因此,基于对象的信号处理工具 FDATOOL 以及 SPTOOL 界面设计滤波器,可以有效的的解决这一问题,它不仅减 少了设计复杂度,而且还为用户提供了一个便于分析和观察的界面。 本文利用 Matlab 的信号处理工具及其 SIMULINK 仿真工具包箱能够方便快捷地 设计和 实现各种滤波器,使信号波形更加直观,并且用 FDATOOL 工具箱以及专门用于 滤波器设计的工具界面 SPTOOL 来设计 FIR 数字滤波器,充分利用了 MATLAB 的 交互性好的特点,而且最后用到了 SIMULINK 仿真工具箱来实现信号传输和滤波 器的设计,将滤波器的设计置于一个新的平台,这对于研究信号的传输和处理有 着极其重要的作用。

参考文献: [1]郑君里等. 《信号与系统》北京:高等教育出版社 ,2000 [2]丁玉美.高西全.《数字信号处理》西安:西安电子科技大学出版社,2008 [3]薛年喜. 《MATLAB 在数字信号处理中的应用》北京:清华大学出版社,2008

The design and simulation of FIR digital filter based on MATLAB
College of Physics and Electronics Engineering,Shanxi University,Applied Physics , ,

Abstract
Filter design plays a very important role in digital signal processing. FIR digital filter is one of the most important parts of Filter design. MATLAB have been widely used in many fields because of its powerful data processing functions. Its rich toolbox makes the calculations easy. With

MATLAB Signal Processing Toolbox, various digital filters can be quickly and efficiently designed. This paper use the best uniform approximation to design FIR digital filters, and achieve the calculations in design and graphics rendering based on MATLAB. The simulation and frequency characteristics analysis of the designed filters shows that with MATLAB Signal Processing Toolbox, FIR digital filters can be designed effectively in simple way. The results are up to the requirements very well.

Keywords: FIR digital filter

;MATLAB ;The best uniform approximation


相关文章:
基于MATLAB的FIR数字滤波器的设计与仿真
基于MATLABFIR数字滤波器的设计与仿真_电子/电路_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档 基于MATLABFIR数字滤波器的设计与仿真_电子/电路_工程...
基于Matlab的数字滤波器的设计与仿真
关键词:.FDAtools;FIR 数字滤波器;simullink 仿真;窗函数法;频率采样法 西安欧亚学院本科毕业论文(设计) Matlab-based digital filter design and simulation ...
基于Matlab的FIR滤波器的设计与仿真
基于Matlab的FIR滤波器的设计与仿真_电子/电路_工程科技_专业资料。Matlab FIR数字滤波器 FDAtool ,窗口函数,simulink西南科技大学 通信原理设计报告 课程名称: 设计名...
基于MATLAB的数字滤波器的设计与仿真分析
011 申请日期: 2011 年 5 月 10 日 宁夏大学新华学院本科学位论文 摘要 本文研究了 IIR 数字滤波器 FIR 数字滤波器Matlab 环境下的设计方法及仿真分 析...
FIR数字滤波器设计与仿真
matlab 基础上采用了窗函数设计 法、波纹逼近设计法、最小乘方设计法分别设计了低通、带阻、带通、高通 FIR 数字滤波器,比较了不同方法 设计滤波器的通带、阻...
基于MATLAB的FIR数字滤波器的设计与仿真(开题报告)
设计□ 基于 MATLABFIR 数字滤波器的设计与仿真 学号 生产□ 论文□ 实验室□ 其他□ 指导教师 专题研究□ 一、选题的意义 随着信息技术的迅猛发展,数字...
基于matlab的FIR滤波器的设计与仿真
28 III 毕业设计论文 基于 matlabFIR 滤波器的设计与仿真 第1 章 绪论 1.1 数字滤波器的研究背景和意义 当今,数字信号处理技术正飞速发展,它不但自成一...
基于MATLAB的FIR带通滤波器的设计与仿真
基于MATLAB 的 FIR 带通滤波器的设计与仿真摘要:利用数字信号处理理论与方法,基于 MATLAB 语言,通过实例设计(FIR 数字带通 滤波器) ,给出了 MATLAB 完整程序。...
基于MATLAB的FIR数字滤波器仿真与设计(开题报告)
基于MATLABFIR数字滤波器仿真与设计(开题报告)_信息与通信_工程科技_专业资料...湖北理工学院 1、课题来源 毕业设计(论文)开题报告 实现数字滤波器的方法一般有...
更多相关标签:
fir数字滤波器matlab | ccs仿真fir滤波器 | ccs仿真fir带通滤波器 | matlab fir滤波器设计 | matlab fir滤波器 | matlab fir带通滤波器 | matlab fir低通滤波器 | matlab fir滤波器函数 |