MATLAB数字滤波器设计方案设计方案原创版.docx

上传人:b****5 文档编号:5127158 上传时间:2022-12-13 格式:DOCX 页数:13 大小:44.01KB
下载 相关 举报
MATLAB数字滤波器设计方案设计方案原创版.docx_第1页
第1页 / 共13页
MATLAB数字滤波器设计方案设计方案原创版.docx_第2页
第2页 / 共13页
MATLAB数字滤波器设计方案设计方案原创版.docx_第3页
第3页 / 共13页
MATLAB数字滤波器设计方案设计方案原创版.docx_第4页
第4页 / 共13页
MATLAB数字滤波器设计方案设计方案原创版.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

MATLAB数字滤波器设计方案设计方案原创版.docx

《MATLAB数字滤波器设计方案设计方案原创版.docx》由会员分享,可在线阅读,更多相关《MATLAB数字滤波器设计方案设计方案原创版.docx(13页珍藏版)》请在冰豆网上搜索。

MATLAB数字滤波器设计方案设计方案原创版.docx

MATLAB数字滤波器设计方案设计方案原创版

封面

作者:

PanHongliang

仅供个人学习

编号

淮安信息职业技术学院

毕业论文

题目

基于MATLAB的数字滤波器设计

学生姓名

学号

系部

专业

班级

指导教师

顾问教师

摘要

本论文介绍了FIR数字滤波器的设计方法,即窗函数法。

在此基础上,用MATLAB实现IIR数字滤波器。

介绍了IIR数字滤波器的传统设计思想与步骤,及其计算机辅助设计方法。

以一数字带通滤波器为例,着重说明了基于MATLAB的三种滤波器的实现手段:

模拟低通原型、合适模拟带通及直接原型,为数字滤波器设计带来全新的实现手段。

关键词:

滤波IIR滤波器FIR滤波器MATLAB

目录

第一章 前言

1.1MATLAB软件简介………………………………………………………………(4)

1.2数字滤波器技术的发展状况…………………………………………………(5)

第二章 数字滤波器的基本概念

2.1数字滤波器的简况……………………………………………………………(6)

2.2FIR数字滤波器的基本概念……………………………………………………(6)

2.2.1FIR数字滤波器的窗函数设计法…………………………………………(7)

2.2.2窗函数设计法的步骤………………………………………………………(7)

2.3MATLAB环境下的实例…………………………………………………………(9)

2.3.1高通滤波器的设计……………………………………………………………(9)

2.3.2低通滤波器的设计…………………………………………………………(10)第三章 IIR数字滤波器的设计过程及方法

3.1IIR滤波器的基本特点…………………………………………………………(13)

3.2IIR滤波器的设计思路与步骤…………………………………………………(14)

3.3IIR滤波器的设计……………………………………………………………(14)

3.4IIR滤波器设计方法MATLAB的实现…………………………………………(15)

3.4.1基于模拟低通原型的MATLAB实现…………………………………………(15)

3.4.2基于合适类型模拟滤波器的MATLAB实现…………………………………(16)

3.4.3基于直接原型变换法的MATLAB实现………………………………………(18)

总 结…………………………………………………………………………………(19)

参考文献………………………………………………………………………………(20)

第一章 前言

1.1.MATLAB简介

MATLAB(MatrixLaboratory)为美国Mathworks公司1983年首次推出的一套高性能的数值分析和计算软件,其功能不断扩充,版本不断升级,1992年推出划时代的4.0版,1993年推出了可以配合MicrosoftWindous使用的微机版,95年4.2版,97年5.0版,99年5.3版,5.X版无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式和PDF格式,可以方便的浏览。

至2001年6月推出6.1版,2002年6月推出6.5版,继而推出6.5.1版,2004年7月MATLAB7和Simulink6.0被推出,目前的最新版本为7.1版。

   MATLAB将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台。

   MATLAB已发展成为适合众多学科,多种工作平台、功能强大的大型软件。

在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教案工具。

成为攻读学位的本科、硕士、博士生必须掌握的基本技能。

在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。

在中国,MATLAB也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从MATLAB中找到合适的功能。

MATLAB6.1的新功能

(1)全新的开发环境GUIDE(GUIDevelopmentEnvironment):

由早期的单一命令窗口发展为将一些常用的交互式工作界面高度的集中于操作桌面;

(2)在命令窗口增加了错误跟踪功能(errordisplaymessageandabortfunction);

(3)提供了许多新的数值处理功能(numericalTreatmentTechniques),更新了部分函数的功能和算法,增加了许多新函数;

(4)在图形窗口增加了曲线拟合、数据统计等交互工具;(CurveFitting,DataAnalyzing)

(5)引入了类与对象及函数句柄等概念。

(Object,Handle)用户可以创建自己定义的类函数和函数句柄;

(6)改进了编辑/调试器的界面及功能。

(Editor/Debugger)增加了行号和书签等功能;

(7)属性编辑器功能更强(PropertyDebugger),使用更方便;

(8)建立了一个与以前完全不同的图形用户界面(GUI)图形窗口,(GraphicalWindow)使用更加方便灵活;

(9)增加了虚拟现实工具箱,(VirtualRealityToolbox)使用标准的虚拟现实建模语言(VRML)技术,可以创建由MATLAB和simulink环境驱动的三维动画场景;

(10)在应用程序接口方面增加了与Java的接口(InterfaceforJava),并为二者的数据交换提供了相应的程序库。

1.2数字滤波器技术的发展状况及简介

   数字滤波器是数字信号处理理论的一部分。

数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更为有希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。

具体来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、固定、识别、产生等加工处理,都可纳入数字信号处理领域。

滤波器的种类很多,从功能上可以分为低通、高通、带通和带阻滤波器,上述每种滤波器又可以分为模拟滤波器和数字滤波器。

如果滤波器的输入输出都是数字信号,则这样的滤波器称之为数字滤波器,它通常通过一定的运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分来实现滤波。

根据数字滤波器冲激响应的时域特性,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。

有数字信号处理的一般理论可知,IIR滤波器的特征是具有无限持续时间的冲激响应,而FIR滤波器使冲激响应只能持续一定的时间。

第二章数字滤波器的基本概念

2.1数字滤波器的简况

数字滤波技术是数字信号处理的一个重要组成部分,滤波器的设计是信号处理的核心问题之一。

根据FIR滤波器的原理,提出了FIR滤波器的窗函数设计法,并对常用的几种窗函数进行了比较。

给出了在MATLAB环境下,用窗函数法设计FIR滤波器的过程和设计实例。

仿真结果表明,设计的FIR滤波器的各项性能指标均达到了指定要求,设计过程简便易行。

该方法为快速、高效地设计FIR滤波器提供了一个可靠而有效的途径。

随着信息时代的到来,数字信号处理已经成为当今一门极其重要的学科和技术,并且在通信、语音、图像、自动控制等众多领域得到了广泛的应用。

在数字信号处理中,数字滤波器占有极其重要的地位,它具有精度高、可靠性好、灵活性大等特点。

现代数字滤波器可以用软件或硬件两种方式来实现。

软件方式实现的优点是可以通过滤波器参数的改变去调整滤波器的性能。

  MATLAB是一种面向科学和工程计算的语言,它集数值分析、矩阵运算、信号处理和图形显示于一体,具有编程效率高、调试手段丰富、扩充能力强等特点。

MATLAB的信号处理工具箱具有强大的函数功能,它不仅可以用来设计数字滤波器,还可以使设计达到最忧化,是数字滤波器设计的强有力工具。

2.2FIR数字滤波器的基本概念

R滤波器的数学表达式为:

式中,N是FIR滤波器的抽头数,x(n)表示第n时刻的输入样本;h(i)是FIR滤波器的第i级抽头系数。

普通的直接型FIR滤波器结构如图1所示。

FIR滤波器实质上是一个分节的延迟线,把每一节的输出加权累加,便得到滤波器的输出。

对于FIR滤波器,幅度上只需满足以下两个条件之一,就能构成线性相位FIR滤波器。

h(n)=h(N-1-n)

(2)

h(n)=-h(N-1-n)(3)(没有式一?

(2)称为第一类线性相位的幅度条件(偶对称),式(3)称为第二类线性相位的幅度条件(奇对称)。

2.2.1FIR滤波器的设计

  根据冲激响应的时域特性,数字滤波器可分为无限长冲激响应滤波器(IIR)和有限长冲激响应滤波器(FIR)。

FIR的突出优点是:

系统总是稳定的、易于实现线性相位、允许设计多通带(或多阻带)滤波器,但与IIR相比,在满足同样阻带衰减的情况下需要的阶数较高。

滤波器的阶数越高,占用的运算时间越多,因此在满足指标要求的情况下应尽量减少滤波器的阶数。

  FIR滤波器的基本结构可以理解为一个分节的延时线,把每一节的输出加权累加,可得到滤波器的输出。

FIR滤波器的冲激响应h(n)是有限长的,数学上M阶FIR滤波器可以表示为:

 

  FIR滤波器的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数的问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。

2.2.2窗函数设计法的步骤

窗函数设计法是一种通过截短和计权的方法使无限长非因果序列成为有限长脉冲响应序列的设计方法。

通常在设计滤波器之前,应该先根据具体的工程应用确定滤波器的技术指标。

在大多数实际应用中,数字滤波器常常被用来实现选频操作,所以指标的形式一般为在频域中以分贝值给出的相对幅度响应和相位响应。

  用窗函数法设计FIR滤波器的步骤如下:

  

(1)根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N(或阶数M=N-1)。

窗函数类型可根据最小阻带衰减AS独立选择,因为窗口长度N对最小阻带衰减AS没有影响。

在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N。

设待求滤波器的过渡带宽为△ω,它与窗口长度N近似成反比。

窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正。

原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N。

在N和窗函数类型确定后,即可调用MATLAB中的窗函数求出窗函数wd(n)。

  

(2)根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n)。

如果给出待求滤波器的频率响应为Hd(ejω),则理想的单位脉冲响应可以用下面的傅里叶反

变换式求出:

  

  在一般情况下,hd(n)是不能用封闭公式表示的,需要采用数值方法表示。

从ω=0到ω=2π采样N点,采用离散傅里叶反变换(IDFT)即可求出。

  (3)计算滤波器的单位脉冲响应h(n)。

它是理想单位脉冲响应和窗函数的乘积,即h(n)=hd(n)·wd(n),在MATLAB中用点乘命令表示为h=hd·wd。

  (4)验算技术指标是否满足要求。

为了计算数字滤波器在频域中的特性,可调用freqz子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足要求为止。

  使用窗函数法设计时要满足以下两个条件:

  

(1)窗谱主瓣尽可能地窄,以获得较陡的过渡带;

  

(2)尽量减少窗谱的最大旁瓣的相对幅度,也就是使能量尽量集中于主瓣,减小峰肩和纹波,进而增加阻带的衰减。

  根据工程经验,给定的滤波器指标参数一般为通带截止频率ωp、阻带截止频率ωs、实际通带波动Rp和最小阻带衰减As。

窗函数设计的经验公式为:

  

  在实际工程中常用的窗函数有五种,即矩形窗、三角窗、汉宁窗、海明窗和凯泽窗。

这些窗函数在MATLAB中分别用boxcar、triang、hanning、hamming、kaiser实现,它们之间的性能比较如表1所示。

表15种窗函数性能比较

窗类型

旁瓣峰值

主瓣峰值

最小阻带衰减

矩形窗

13dB

4π/M

21dB

三角窗

25dB

8π/M

25dB

汉宁窗

31dB

8π/M

44dB

海明窗

41dB

8π/M

53dB

凯泽窗

57dB

12π/M

74dB

2.3MATLAB环境下的设计实例

2.3.1高通滤波器的设计

用窗函数设计高通滤波器,性能指标如下:

通带截止频率ωs=0.2π,阻带截止频率ωp=0.3π,实际通带波动Rp=0.25dB,最小阻带衰减As=70dB。

  分析:

从表1可以看出凯泽窗能提供74dB的最小阻带衰减,所以选用凯泽窗进行设计,程序主要部分如下:

  As=70。

  ωs=0.2*π。

  ωp=0.3*π

  tr_width=ωp-ωs。

                %计算过渡带宽

  M=ceil((As-7.95)*2*π/(14.36*tr_width)+1)+1。

 按凯泽窗计算滤波器长度

  disp([’滤波器的长度为’,num2str(M)])。

  beta=0.1102*(As-8.7)。

%计算凯泽窗的β值

  n=[0:

1:

M-1]。

  disp([’线性相位斜率为’,num2str(beta)])。

 w_kai=(kaiser(M,beta))’。

%求凯泽窗函数

 ωc=(ωs+ωp)/2。

 hd=ideal_lp(π,M)-ideal_lp(ωc,M)。

%求理想脉冲响应

  h=hd*w_kai。

%设计的脉冲响应为理想脉冲响应与窗函数乘积

    [db,mag,pha,grd,ω]=freqz_m(h,[1])。

    delta_ω=2*π/1000。

    Rp=-(min(db(ωp/delta_ω+1:

1:

501)))。

    disp([’实际通带波动为’,num2str(Rp)])。

   %以下为作图程序

    As=-round(max(db(1:

1:

ωs/delta_ω+1)))。

    disp([’最小阻带衰减为’,num2str(As)])。

subplot(1,1,1)。

subplot(2,2,1)。

 stem(n,hd)。

title(’理想脉冲响应’)。

 

axis([0M-1-0.40.8])。

ylabel(’hd(n)’)。

subplot(2,2,2)。

stem(n,w_kai)。

title(’凯泽窗’)。

axis([0M-101.1])。

      ylabel(’wd(n)’)。

      subplot(2,2,3)。

      stem(n,h)。

      title(’实际脉冲响应’)。

      axis([0M-1-0.40.8])。

      xlabel(’n’)。

ylabel(’h(n)’)。

      subplot(2,2,4)。

      plot(ω/π,db)。

      title(’幅度响应/dB’)。

      axis([01-10010])。

      grid。

      xlabel(’以π为单位的频率’)。

      ylabel(’分贝数/dB’)。

  程序运行结果如图1所示。

实际通带波动为0.04369,最小阻带衰减为70,滤波器长度为89,线性相位斜率为6.7553,符合设计要求。

(下图是否能通过仿真完成?

2.3.2低通滤波器的设计

用窗函数设计低通滤波器,性能指标如下:

通带截止频率ωp=0.1π,阻带截止频率ωs=0.25π,实际通带波动Rp=0.10dB,最小阻带衰减As=40dB。

  分析:

从表1可以看出,汉宁窗、海明窗和凯泽窗能提供大于40dB的最小阻带衰减。

但汉宁窗的旁瓣峰值较小,而主瓣宽度和海明窗一样。

可以使滤波器的阶数较少,所以选用汉宁窗进行设计,程序主要部分如下:

  ωp=0.10*π。

  ωs=0.25*π。

 

  tr_width=ωs-ωp。

%计算过渡带宽

  M=ceil(6.6*/tr_width)+1。

%按汉宁窗计算滤波器长度

  disp([’滤波器的长度为’,num2str(M)])。

  n=0:

M-1。

  ωc=(ωs+ωp)/2。

%截止频率取为两边缘频率的平均值

  hd=ideal_lp(ωc,M)。

%求理想脉冲响应

  w_han=(hanning(M))’。

%求汉宁窗函数

  h=hd*w_han。

%设计的脉冲响应为理想脉冲响应与窗函数乘积

  [db,mag,pha,grd,ω]=freqz_m(h,[1])。

%以下为作图语句

  delta_ω=2*π/1000。

  Rp=-(min(db(1:

1:

ωp/delta_ω+1)))。

  disp([’实际通带波动为’,num2str(Rp)])。

%以下为作图程序

  As=-round(max(db(ωs/delta_ω+1:

1:

501)))。

  disp([’最小阻带衰减为’,num2str(As)])。

    subplot(221)

    stem(n,hd)。

    title(’理想冲击响应’),

    axis([0M-1-0.10.3])。

    ylabel(’hd(n)’)。

    subplot(222)

    stem(n,w_han)。

    title(’汉宁窗’),

    axis([0M-101.1])。

    ylabel(’wd(n)’)。

    subplot(223)

    stem(n,h)。

    title(’实际冲击响应’),

axis([0M-1-0.10.3])。

    xlabel(’n’)。

    ylabel(′h(n)′)。

    subplot(224)。

    plot(ω/π,db)。

    title(′幅度响应(db)′)。

    axis([01-10010]),

    grid。

    xlabel(′以π为单位的频率′)。

    ylabel(′分贝数′)。

    仿真结果如图2所示。

实际通带波动为0.076565,最小阻带衰减为44,滤波器长度为67,符合设计要求。

    与其他高级语言的程序设计相比,MATLAB环境下可以更方便、快捷地设计出具有严格线性相位的FIR滤波器,节省大量的编程时间,提高编程效率,且参数的修改也十分方便,还可以进一步进行优化设计。

相信随着版本的不断提高,MATLAB在数字滤波器技术中必将发挥更大的作用。

同时,用MATLAB计算有关数字滤波器的设计参数,如H(z)、h(n)等,对于数字滤波器的硬件实现也提供了一条简单而准确的途径和依据。

第三章IIR数字滤波器设计过程及方法3.1IIR数字滤波器的基本特点

1.IIR数字滤波器的系统函数可以写成封闭函数的形式。

2.IIR数字滤波器采用递归型结构,即结构上带有反馈环路。

IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。

由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。

3.IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。

在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。

4.IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。

在MATLAB下设计IIR滤波器可使用Butterworth函数设计出巴特沃斯滤波器,使用Cheby1函数设计出契比雪夫I型滤波器,使用Cheby2设计出契比雪夫II型滤波器,使用ellipord函数设计出椭圆滤波器。

下面主要介绍前两个函数的使用。

与FIR滤波器的设计不同,IIR滤波器设计时的阶数不是由设计者指定,而是根据设计者输入的各个滤波器参数(截止频率、通带滤纹、阻带衰减等),由软件设计出满足这些参数的最低滤波器阶数。

在MATLAB下设计不同类型IIR滤波器均有与之对应的函数用于阶数的选择。

IIR单位响应为无限脉冲序列FIR单位响应为有限的。

iir幅频特性精度很高,不是线性相位的,可以应用于对相位信息不敏感的音频信号上;fir幅频特性精度较之于iir低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变。

这是很好的性质。

另外有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。

数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。

它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。

数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型,与模拟滤波器相比,数字滤波器除了具有数字信号处理的固有优点外,还有滤波精度高(与系统字长有关)、稳定性好(仅运行在0与l两个电平状态)、灵活性强等优点。

数字滤波器按单位脉冲响应的性质可分为无限长单位脉冲响应滤波器IIR和有限长单位脉冲响应滤波器(FIR)两种。

本文介绍(IIR)数字滤波器的设计与分析。

3.2IIR数字滤波器设计思路与步骤  IIR数字滤波器可用一个n阶差分方程

y(n)=Σbrx(n-r)+Σaky(n-k),

或用它的Z域系统函数:

 

对照模拟滤波器的传递函数:

   不难看出,数字滤波器与模拟滤波器的设计思路相仿,其设计实质也是寻找一组系数{b,a},去逼近所要求的频率响应,使其在性能上满足预定的技术要求。

不同的是模拟滤波器的设计是在S平面上用数学逼近法去寻找近似的所需特性H(S),而数字滤波器则是在Z平面寻找合适的H(z)。

IIR数字滤波器的单位响应是无限长的,而模拟滤波器一般都具有无限长的单位脉冲响应,因此与模拟滤波器相匹配。

由于模拟滤波器的设计在理论上已十分成熟,因此数字滤波器设计的关键是将H(S)→H(Z),即,利用复值映射将模拟滤波器离散化。

已经证明,冲击响应不变法和双线性变换法能较好地担当此任,则在此基础上,数字滤波器的设计就可首先归结为模拟滤波器的设计了。

  数字滤波器的设计步骤如图3.1所示。

 

图3.1数字滤波器设计步骤

3.3IIR数字滤

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1