基于MATLAB的数字滤波器设计
题 目 学院名称 指导教师 班 级 小组成员 学 号
基于MATLAB的IIR数字
高通滤波器设计 信息科学与工程学院
摘要
数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活以及实现模拟滤波器无法实现的特殊功能等优点。利用MATLAB 设计滤波器,可以按照设计要求非常方便地调整设计参数,极大地减轻了设计的工作量,有利于滤波器设计的最优化。Matlab因其强大的数据处理功能被广泛应用于工程计算,其丰富的工具箱为工程计算提供了便利,利用Matlab信号处理工具箱可以快速有效地设计各种数字滤波器,设计简单方便。本文介绍了在MATLAB 7.0 环境下IIR高通数字滤波器设计的方法和步骤。
关键词:数字滤波器 模拟滤波器 IIR数字高通滤波器 MATLAB
1 IIR数字高通滤波器的设计
1.1数字滤波器的概述
与模拟滤波器相对应,在离散系统中广泛应用数字滤波器。所谓数字滤波
器,是指输入、输出均为数字信号,通过数值运算处理改变输入信号所含频率成分的数字器件或程序。它的作用是利用离散时间系统的特性对输入信号波形或频率进行加工处理。或者说,把输入信号变成一定的输出信号,从而达到改变信号频谱的目的。
下图给出了一个具有模拟输入信号和输出信号的实时数字滤波器的简化方框图。
1.2 数字滤波器的设计步骤
设计一个IIR数字滤波器主要包括以下几个步骤:
(1) 确定滤波器要求的计算
(2) 选择合适的滤波器系数的计算。(如图一流程图所示) (3) 用一个适当的结构来表示滤波器。
(4) 有限长效应对滤波器性能的影响分析。 (5) 用软件或硬件来实现滤波器。
图一 流程图
本次设计的IIR数字滤波器系数的计算是根据已知的模拟滤波器的特性转换到等价的数字滤波器。两个常用的基本方法是冲击响应不变法和双线性变换法。本次设计使用的是双线性变换法。
1.3 IIR数字高通滤波器的技术指标
常用的数字滤波器一般属于选频滤波器。假设数字滤波器的频率响应函数
H(ejw)用下式表示:
H(ejω)=| H(ejω)|ejθ(ω)
式中,| H(ejω)|称为幅频特性函数;θ(ω)称为相频特性函数。幅频特性表示信号通过该滤波器后各频率成分振幅衰减情况,而相频特性反映各频率成分通过滤波器后在时间上的延时情况。
数字滤波器的设计一般包括以下几个步骤:
(1) 确定数字滤波器的性能指标。这些指标包括:通带截止频率fc、阻带截
止频率fst;通带内的最大衰减α1;阻带内的最小衰减α2;采样周期T。 (2) 确定相应的数字频率,ωc=2πfcT; ωst=2πfstT.
(3) 计算经过频率畸变的相应参考模拟低通原型的频率。 Ωc=tg(
ωc2
); Ωst= tg(
ωst2
) (4)计算低通原型阶数N;计算3dB归一化频率,从而求得低通原型的传递函
数Ha(s) (5)变换公式
1−z−1
s=c1 1+z−1 代入Ha(s),求得数字滤波器传递函数 H(z)=Ha(s)|
s=c1
1−z−11+z−1
(6)分析滤波器频率特性,检查其指标是否满足要求。
1.4 IIR巴特沃斯数字高通滤波器的设计 (1)设计要求
设计一个巴特沃斯数字高通滤波器,要求通带截止频率fc=800Hz, 阻
带截止频率fst=400Hz;通带衰减不大于1dB;阻带最小衰减不小于15dB;抽样频率fs=5kHz.
(2)求对应的各数字频率 ωc=2πf
fc2π×3×103
s
10×103=0.32π
=0.16π
ωst=2πf=
s
fst
2πc2×10310×103 (3)求常数c1。采用归一化原型低通滤波器作为变型的低
通原型
c1=Ωctan(2c)=1×tan(
ω
0.32π2
)=0.54942286
(4)求低通原型 Ωst。设Ωst为满足数字高通滤波器的归一化原型
模拟低通滤波器的阻带起始截止频率。 Ωst=c1cot(
ωst2
)=0.54942286×3.680406=2.141
(5)求阶次N。按阻带衰减求原型归一化模拟低通滤波器的阶次N。 20log|Ha(jΩst)|=−10log10[1+( Ωst)2N]≤−15
c
Ω
其中Ωc=1,解得(
N= 取N=4.
log (101.5−1)2log (2.141)
=3.1349
(6)求归一化巴特沃斯低通原型的Ha(s)。取N=4,查表得HLP(s)为
HLP(s)=s4+2.613s3+3.4142s2+2s+1
1
(7)求数字高通滤波器的系统函数HLP(z) HLP(z)=HLP(s)|
s=c1
1+z−1
1−z−1
==
(1−z−1)
44
2232−1−13−1−1−1−1−13(c41(1+z))+2.613c1(1+z)(1−z)+3.4142c1(1+z)(1−z)+2c1(1+z)(1−z)+1
将c1代入,可求得 HLP(z)=
0.37−1.4587z−1+2.1881z−2−1.4587z−3+0.37z−4
1−2.0578z−1+1.8545z−2−0.75z−3+0.1331z−4
2软件仿真工具及实现环境简介
2.1 MATLAB的简介
MATLAB是由美国Mathworks公司推出的用于数值计算和图形处理的科学计
算系统环境。MATLAB是英文MATrix LABoratory(矩形实验室)的缩写。在MATLAB环境下,用户可以集成地进行程序设计,数值计算,图形绘制,输入输出,文件管理等各项操作。除此之外,MATLAB还具有很强的功能扩展能力,与它的主系统一起,可以配备各种各样的工具箱,以完成一些特定的任务。目前,Mathworks公司推出了18种工具箱。用户可以根据自己的工作任务,开发自己的工具箱
2.2 MATLAB工作环境简要的介绍
MATLAB有两种常用的工作方式:一种是直接交互的命令行操作方式;
另一种是文件的编辑工作方式。在前一种工作方式下,MATLAB被当作一种高级“数字演算和图示器”来使用,MATLAB程序是一个ASCII码文件(标准的文本文件)扩展名为“.m”,即M文件。从功能上来讲,M文件大大扩展了 MATLAB的能力。通过工具箱,MATLAB才能被应用到控制、信号处、小波分析、系统的辨识、图像处理等各个方面这些工具箱全部是由M文件构成的,本次设计就将应用其中的FDATOLL工具箱辅助函数用以滤波器的辅助设计和分析。
2.3 MATLAB直接设计IIR巴特沃斯数字高通滤波器
MATLAB编程如下: fs=5000; ωc=0.32π; ωst=0.16π; rc=1; rst=15; Nn=128;
[N,ωn]=buttord(ωc,ωst,rc,rst); [b,a]=butter(N, ωn,′high′)
Freqz(b,a, Nn,fs) MATLAB运算结果如下: N=4
ωn=0.2388
b= 0.37 −1.4587 2.1881 −1.4587 0.37 a= 1.0000 −2.0578 1.8545 −0.75 0.1331
基于巴特沃斯模拟滤波器设计的数字高通滤波器的幅频响应曲线
基于巴特沃斯模拟滤波器设计的数字高通滤波器的损耗函数
基于巴特沃斯模拟滤波器设计的数字高通滤波器的群延迟特性
基于巴特沃斯模拟滤波器设计的数字高通滤波器的冲击响应特性
基于巴特沃斯模拟滤波器设计的数字高通滤波器的阶跃响应特性
基于巴特沃斯模拟滤波器设计的数字高通滤波器的零极点特性图
心得体会
通过这次课程设计,我们不仅对数字信号处理方面的知识有了进一步的了解,
而且学会了用MATLAB软件仿真数字滤波器的设计,培养了自己的自学能力,这些进步对在以后的工作学习中起了很好的帮助,对我们以后写毕业论文打下了基础。
在此要感谢我们的指导老师雷可君老师对我们的悉心指导和帮助。在完成课程设计的这段时间里,雷老师给我们细心指点,及时解决我们的疑难问题,帮助我们开拓研究思路,以致我们能顺利的完成这次课程设计。虽然设计做的不是很好,但是我们在课程设计的过程中学到了很多,使我们终身受益。