1、 I 2011 届 学士学位论文 基于 MATLAB 的滤波器设计 系 别 : 电子信息系 专 业 : 电子信息科学与技术 学 号 : 姓 名 : 指 导 教 师 : 指 导教师职称 : 教 授 2011 年 4 月 30 日 学士学位论文 基于 Mathlab 的滤波器设计 II 基于 MATLAB 的滤波器设计 摘 要 论文结合滤波器的不同种类进行设计, 运用 MATLAB 软件,针对性 地 进行 了 实例分析。设计 了 巴特沃斯 模拟滤波器 ( 50Hz 处的衰减为 1dB, 400Hz 处的最小衰减为 60dB, 带内增益为 4,通带内无波纹 ), 和切比雪夫滤波器 ( 通带频率23k
2、Hz、两边的过渡带宽为 0.5 kHz、通带纹波为 1dB、阻带衰减大于 100dB) ,并给出相应的程序。 对于 数字滤波器 , 通过 FIR 滤波器 和 IIR 滤波器 实例 , 运用MATLAB 实现 , 给出了的相应的图形 。 关键词 滤波器 ; MATLAB; FIR 滤波器 ; 巴特沃斯滤波器 ; 切比雪夫滤波器 ; 学士学位论文 基于 MATLAB 的滤波器设计 III Based on the MATLAB filter design Abstract This paper combining the different kinds of filter to achieve t
3、he design, used the MATLAB software, and analyzed the problems which aimed particular. the simulation filter is based on the examples of Bartheworth filter (Request the attenuation in 50Hz is 1dB, require gain that located in the minimum attenuation at 60dB in 400Hz place is 4, and the no ripple in
4、the pass-band) and Chebyshev filter (Pass band frequency is between 2 3 kHz, both sides of transition bandwidth is 0.5 kHz, pass band ripple is 1dB, and stop band attenuation beyond 100dB), then provides the corresponding program. Though Digital filters is mainly by the example of analyzing FIR filt
5、ers, using the MATLAB to realize; this paper uses the MATLAB gave out the graphics displays. Key-words Filter; MATLAB; FIR filter; Bartheworth filter; Chebyshev filter 学士学位论文 基于 MATLAB 的滤波器设计 IV 目录 1 引 言 . 1 2 MATLAB 软件的简单介绍 . 2 3 基于 MATLAB的滤波器设计 . 3 3.1基于 MATLAB的模拟 滤波器的设计 . 3 3.1.1 利用 MATLAB 确定低通滤波
6、器的阶数和幅频特性曲线 . 3 3.1.2 利用 MATLAB设计带通滤波器 . 4 3.2 基于 MATLAB的数字滤波器的设计 . 7 3.2.1 FIR 数字滤波器设计原理 . 7 3.2.2 窗函数法设计及 MATLAB 实现 . 7 3.2.3 程序设计法 . 8 3.2.4 IIR 数字滤波器的设计 . 10 结论 . 12 参考文献 . 13 致 谢 . 14 学士学位论文 基于 Mathlab 的滤波器设计 1 1 引 言 在工程实际中遇到的信号经常伴有噪声,为了消除或减弱噪声,提取有用信号,必须进行滤波,能实现滤波功能的系统称为滤波器。严格地讲,滤波器可以定义为对已知的激励提
7、供规定响应的系统,响应的要求可以在时域或频域内给定。滤波器的功能主要由其系统函数决定。滤波技术在通信测量、数据采集、控制系统及 电力系统等领域得到了广泛的应用。滤波器的设计在这些领域中必不可少 , 甚至是至关重要的环节 , 其优劣将直接影响整个系统的性能。滤波器设计的关键是找到一个稳定可实现的逼近函数 , 其频率特性满足所需滤波器的所有要求。虽然目前已有多种成熟的逼近函 数(矩形窗等 ) , 然而不论哪种逼近函数都需要进行非常繁琐的计算 , 而且通过综合设计确定实现这一传递函数的电路及其元件值的过程也很复杂。 MATLAB 中提供了丰富的用于模拟滤波器设计和数字滤波器设计的函数 , 通过编程可
8、以很容易实现低通、高通、带通、带阻滤波器 , 并能画出滤波器 的幅频、相频特性曲线。 本 文是通过举例设计模拟和数字两种滤波器的设计方法的实现、电路图的以及仿真出其波形 。 学士学位论文 基于 Mathlab 的滤波器设计 2 2 MATLAB软件的简单介绍 MATLAB 是国际公认的优秀科技应用软件,是计算机辅助分析与设计、算法研究和应用开发的基础工具和首选平台,是目前科学研究领域最流行的应用软件,其特点概括为 1: (1) 高效的数字计算方法及符号计算功能,使用户从繁杂的数学运算分析中解脱出来。 (2) 完备的图形处理功能,实现计算结果和编程的可视化。 (3) 友好的用户界面及接近数学表达
9、式的自然化语言 ,使学习者易于学习和掌握。 (4) 功能丰富的应用工具箱,为用户提供了大量方便而实用的处理工具。 (5) Simulink 动态建模与仿真系统,丰富而功能强大的器件库,提供了实时方便的仿真手段。 MATLAB 软件是由美国 Mathworks 公司推出的用于数值计算和图形处理的科学计算系统环境。 MATLAB 是英文 Matrix Laborutory( 矩阵实验室 )的缩写。是现今国际公认的最优秀的科技应用软件,它具有强大的数值计算和工程运算功能、符号计算功能和科学数据可视化能力。广泛应用于数值计算、图形分析、过程控制、系 统识别、实时控制和动态仿真等领域。成为大学生、硕士生
10、和博士生必须掌握的基本技能。同时, MATLAB 也被研究单位和工业部门广泛应用,使科学研究和解决各种具体问题的效率大大提高。 MATLAB 集成环境主要包括五个部分 2: MATLAB 语言、 MATLAB 工作环境、句柄图形、 MATLAB 数学函数库和数学建模、小波分析、 MATLAB API(App lication Program Interface)。 MATLAB 语言是以数组为基本数据单位,包括控制流程语句、函数、数据结构、输人输出及面向对象等特点的高级语言。利 用SIMULINK 对系统进行仿真与分析 3,在进入虚拟实验环境后,不需要书写代码,只需使用鼠标拖动库中的功能模块并
11、将它们连接起来,再按照实验要求修改各元器件的参数。通过虚拟实验环境建立实验仿真电路模型,可使一些枯燥的电路变得有趣味,复杂的波形变得形象生动,使得各种复杂的能量转换过程比较直观地呈现。 学士学位论文 基于 Mathlab 的滤波器设计 3 3 基于 MATLAB的滤波器设计 由于滤波器种类的不同,在此讨论基于 MATLAB 的模拟滤波器设计和基于MATLAB 的数字滤波器的设计 。 3.1 基于 MATLAB 的模拟滤波器的设计 3.1.1 利用 MATLAB 确定 低通滤波器的阶数 和幅频特性曲线 设计要求 : 模拟信号输入滤波器 , 要求在 50Hz处的衰减为 1dB, 在 400Hz处的
12、最小衰减为 60dB带内增益为 4, 通带内无波纹 , 而且要减小截止频率后波形的起伏。 根据对设计要求的分析 , 低通滤波器采用 Butterworth滤波器 , 因为它具有较平坦的幅频特性 , 而且其元件值比较合乎实际、对精度要求稍宽。下面利用MATLAB 确定该低通滤波器的阶数 , 并画出其幅频特性 (图 1), 程序代码如下 4: Wp= 50*2*pi; Ws=400*2*pi; Rp=1; Rs=60; N,Wn=buttord(Wp,Ws,Rp,Rs,s) Fc=Wn/(2*pi) ; b,a=butter(N,Wn,s); w=linspace(1,800,10000)*2*p
13、i; H=freqs(b,a,w); magH =abs(H); plot(w/(2*pi),20*log10(magH) ; x label( 频率 (Hz); y label( 幅度 (dB); title( 幅频特性 ); 运行结果: N= 学士学位论文 基于 Mathlab 的滤波器设计 4 4 Wn= 446.9304 0 100 200 300 400 500 600 700 800- 9 0- 8 0- 7 0- 6 0- 5 0- 4 0- 3 0- 2 0- 1 00图 1 4阶 Butterworth滤波器的幅频特性 由图 1可以看出 , 由 MATLAB所设计的 5阶 B
14、utterworth滤波器波形在通带内平直、没有波纹 , 阻带内陡降 , 符合我们对滤波特性的实际要求 , 所以滤波器的阶数选为 4阶。在 MATLAB中,用 N,Wn=buttord(Wp,Ws,Rp,Rs,s)语句实现Butterworth滤波器阶数和边缘频率的确定 ; b,a=butter(N,Wn,s)语句来实现 Butterworth滤波器的设计。其中 Wp为 通带截止频率 ; Rp为 通带截止频率处的衰减 ; Ws为 阻带截止频率 ; Rs为 阻带截止频率处的衰减 ; b,a是滤波器传递函数多项式的系数 ; n为滤波器的阶数 ; Wn为截止频率 ; s 表示模拟滤波器的。 3.1.
15、2 利用 MATLAB设计带通滤波器 设计高通、带通、 带阻滤波器的传统方法是 : 根据对高通、带通、带阻滤波器的特性指标要求 , 导出相应的低通原型的指标来 , 然后确定低通原型的传递函数 H(s) ,再根据一定变换关系得出高通、带通、带阻滤波器的传递函数。而用学士学位论文 基于 Mathlab 的滤波器设计 5 MATLAB可以像设计低通滤波器一样直接得出高通、带通、带阻滤波器的参数和特性曲线。 设计 一带通滤波器 , 设计要求为 : 通带频率 2 3 kHz、两边的过渡带宽为 0.5 kHz、通带纹波为 1dB、阻带衰减大于 100dB, 并画出幅频特性曲线 5(如图 2所示 )。 程序
16、如下: wp=2000 3000*2*pi; ws=1500 3500*2*pi; Rp=1; Rs=100; N,Wn = buttord(wp,ws,Rp,Rs,s); %计算阶数和截止频率 Fc= Wn/( 2* pi); b,a=butter(N,Wn,s); %计算滤波器传递函数多项式系数 w=linspace(1,4000,1000)*2*pi; H=freqs(b,a,w); magH=abs(H); phaH=unwrap(angle(H) ); plot(w/2*pi),20*log10(magH),b); xlabel(频率 /Hz ); ylabel(幅度 /dB ); grid on 运行结果: N= 22 Wn= 1.0e+004*1.9070 学士学位论文 基于 Mathlab 的滤波器设计 6 0 0 . 5 1 1 . 5 2 2 . 5 3 3 . 5 4x 1 04- 1 8 0 0- 1 6 0 0- 1 4 0 0- 1 2 0 0- 1 0 0 0- 8 0 0- 6 0 0- 4 0 0- 2 0 00200图 2 巴特沃思带通滤波器的幅频特性 因此该带通滤波器的阶数为 N=22