采用VB与MATLAB混合编程的数字滤波器设计

合集下载

使用MATLAB进行数字滤波器设计的步骤与方法

使用MATLAB进行数字滤波器设计的步骤与方法

使用MATLAB进行数字滤波器设计的步骤与方法数字滤波器是用于信号处理的重要工具,它可以对信号进行去噪、频率调整等操作。

而MATLAB作为一种强大的数学计算软件,提供了丰富的数字信号处理工具箱,可以方便地进行数字滤波器的设计与仿真。

本文将介绍使用MATLAB进行数字滤波器设计的步骤与方法。

1. 了解数字滤波器的基本原理在进行数字滤波器设计之前,首先需要了解数字滤波器的基本原理。

数字滤波器根据其频率响应特性可以分为低通、高通、带通和带阻滤波器等。

此外,数字滤波器的设计还需要考虑滤波器的阶数、截止频率以及滤波器类型等因素。

在设计中,我们可以选择滤波器的类型和相应的参考模型,然后利用MATLAB工具箱提供的函数进行设计。

2. 导入MATLAB中的数字信号处理工具箱使用MATLAB进行数字滤波器设计需要先导入数字信号处理工具箱。

通过在MATLAB命令窗口输入`>> toolbox`即可打开工具箱窗口,并可以选择数字信号处理工具箱进行加载。

加载完成后,就可以调用其中的函数进行数字滤波器设计。

3. 设计数字滤波器在MATLAB中,常用的数字滤波器设计函数有`fir1`、`fir2`、`iirnotch`等。

这些函数可以根据系统特性需求设计相应的数字滤波器。

以FIR滤波器为例,可以使用`fir1`函数进行设计。

该函数需要输入滤波器的阶数和截止频率等参数,输出设计好的滤波器系数。

4. 评估滤波器性能设计好数字滤波器后,需要进行性能评估。

可以使用MATLAB提供的`fvtool`函数绘制滤波器的幅频响应、相频响应和群延迟等。

通过观察滤波器在频域的性能表现,可以判断设计的滤波器是否满足要求。

5. 对滤波器进行仿真在对滤波器性能进行评估之后,还可以使用MATLAB进行滤波器的仿真。

通过将需要滤波的信号输入设计好的滤波器中,观察输出信号的变化,可以验证滤波器的去噪效果和频率调整能力。

MATLAB提供了函数`filter`用于对信号进行滤波处理。

MATLAB中的数字滤波器设计与实现

MATLAB中的数字滤波器设计与实现

MATLAB中的数字滤波器设计与实现数字滤波器在信号处理中具有重要的作用,可用于去除噪声、滤波信号以及提取特定频率的成分。

MATLAB作为一种强大的数学软件,提供了多种数字滤波器设计和实现的工具,为工程师和科学家们提供了便捷而高效的解决方案。

本文将介绍MATLAB中数字滤波器的设计原理和实现方法,帮助读者更好地理解数字滤波器在实际应用中的重要性。

1. 数字滤波器的基本原理数字滤波器是一种能够改变信号频谱特性的系统,常用于消除噪声、去除不需要的频率成分或者提取感兴趣的信号成分。

数字滤波器分为FIR(有限长冲击响应)和IIR(无限长冲击响应)两种类型。

FIR滤波器的冲击响应为有限长序列,实现简单且稳定;IIR滤波器的冲击响应为无限长序列,具备更好的频率响应特性。

在MATLAB中,我们可以通过不同的函数和工具箱来设计这些数字滤波器。

2. FIR数字滤波器的设计与实现FIR数字滤波器的设计主要通过窗函数和频域采样进行。

MATLAB提供了一系列用于FIR滤波器设计的函数,如fir1、fir2等。

其中,fir1函数可以使用窗函数方法设计低通、高通、带通和带阻滤波器;fir2函数则可以实现自定义的频率响应。

具体设计步骤为:选择合适的窗函数、确定滤波器阶数和截止频率、生成滤波器系数。

设计完成后,可以通过filter函数将滤波器应用到目标信号上。

3. IIR数字滤波器的设计与实现IIR数字滤波器的设计方法主要有脉冲响应不变法和双线性变换法。

MATLAB提供了butter、cheby1、cheby2、ellip等函数来方便地实现IIR滤波器设计。

这些函数可以通过选择滤波器类型、阶数、截止频率等参数来生成相应的滤波器系数。

与FIR滤波器不同的是,IIR滤波器具有反馈结构,在MATLAB中可以使用filter函数来实现。

4. 数字滤波器的性能评估与优化正确评估和优化数字滤波器的性能对于滤波器的应用至关重要。

MATLAB提供了多种函数和工具箱来评估滤波器的频率响应、相位响应、时域响应等,如freqz、grpdelay、impz等。

基于VB与MATLAB的数学与数字信号处理实验系统的设计与实现

基于VB与MATLAB的数学与数字信号处理实验系统的设计与实现

0 引言
学” 课或 多或 少感 到枯燥 , 果能给教学过 程赋予 生动的手段 如 和方法 ,对提高学生学习兴趣将大有裨益 ;数字信号处理 》 《 是 验》 数字信 号处理》 和《 的教材大 都是 以 MA L T AB作 为分析 工 具的 , 其教学过程往往遇到这样 的难 题 : )学生在学习过程 中 ( 1 把大量时间放在数学问题的演算上 ;()在学 习相关课程主体 2 内容的同时 , 又要学习 MAT A L B语 言的编程 方法 , 难免时间不 足。为了解决这样的难题 , 本人运用 V B与 MA L B的混合编 TA 程方法 , 开发 了《 等数学应 用问题与数字 信号处理虚 拟实验 高 系统》 。该 系统 融合 了 V B和 MAT L A B的优点 ,做 到 V 与 B L B的师 生都能无障碍地用于课堂 教学。 A 以下介绍 系统 的设计
电子通信 类的一 门重要 的专业课 。 目前 , 国内外的《 在 数学实 法规则显示在 MA L T AB程序显示区。 ()显示题 目内容——把在“ 2 问题 ( 实验 ) 选择界面 ” 中选择 的 问题 ( 实验 ) 的内容显示在题 目内容 区。 ()计算——运 行调入 的 MA L B程序 , 3 TA 并把结 果( 图形
摘 要 :介绍运用 V B与 MAT AB混合编程方法研 制的《 L 高等数学应用 问题与数字信号处理 虚拟 实验 系统 》 的设计和 实
现 方 法 。该 系统 是 一 个 开放 性 的 系统 , 以 随 时 对 问题 库 进 行 扩 容 , 可 以 添加 相 应 课 程 模 块 。 可 也
关键词 :V Vsa B s ) B( i l ai ;MAT A u c L B;数学 ;数 字信 号处理
2 系统 实现 的关 键技 术

一个基于VB与MATLAB实验系统的设计与实现

一个基于VB与MATLAB实验系统的设计与实现
中图分类 号 :T 9 l Pl 文献 标识 码 :A 文章编 号 :17 — 3 2 (0 6 2 0 0 — 5 6 2 6 3 2 0 )0 — 0 8 0
《 等数 学》 是理 工 专业 的重 要 基础课 ,但 对 与 MA L 高 T AB的混 合编 程 。系统结 构 如 图 1 示 。 所
图 1 系 统 结 构 不 意 图
Vg1S s m ac i cue sh m t j. yt rht tr ce ai e e c
. 2 学 过 程 往往 遇 到 这样 的难 题 : () 学 生 在 学 习过 1 界 面与 菜单 功能 介绍 1
系统的窗体分三个层次 :入 口窗体——问题选
地用 于课 堂教 学 。如 下介绍 系 统 的设 计 和实现 的 关
键技术 。
() 调入 MA L 1 T AB程 序— —把 在 “ 问题 ( 实
验 )选择 界 面” 中选择 的 问题 ( 验 ) 的 MA L B 实 TA
1 系统 的 设 计 思 想 、结 构 与 特 点
11系统 的设计 思想 与结 构 .
[ 收稿 日期]2 0 — 3 0 060—7 [ 作者简介]吴永深 (9 6 ) 15 一 ,男 ( ,广 东东莞人 ,高级讲师 ,E m i us zi(1. 汉) - al :w y@si. 1c t3 1n 0
维普资讯
第 2期
吴永 深 :一 个 基 于 v B与 MA L B实验 系统 的设 计 与 实 现 TA
TA 程方法 ,开发了 《 高等数学应用问题与数字信号处 四个显 示 区分别 是 :MA L B程序 显 示 区 、题 目内 包 理 虚 拟 实 验 系 统》。该 系统 融 合 了 V 和 MA AL 容显示 区 、图形 显 示 区和 文本 信息 显 示 区 ( 括结 B T B 。五 个 菜单 项 和功 的 优点 ,做 到 V B与 M T A A L B的无缝 连 接 ,无论 是 果 和 程 序运 行 过 程 的错 误 信 息 ) 掌握 或没 有掌 握 V B和 MA L B的师 生都 能 无 障碍 能 如下 : TA

数字滤波器的MATLAB设计.doc

数字滤波器的MATLAB设计.doc

0引言滤波器的作用是对输入信号进行滤波,它可以是软件也可以是硬件。

按照信号的成分不同,滤波器可分为数字滤波器和模拟滤波器。

数字滤波器指的是输入、输出皆为数字信号,然后通过运算改变输入信号频率成分相对比例,也有滤除一些不需要的频率成分功能的器件。

数字滤波器可以分为两种,是通过其冲击响应函数的频率特性来进行分类的,分别是无限长冲击响应(IIR)数字滤波器和有限长冲击响应(FIR)数字滤波器。

在本文屮将利用MATLAB提供的数字信号处理工具箱设计出由软件组成的IIR数字滤波器。

MATLAB信号处理工具箱能够提供多种设计方法,能把程序设计变成简单的函数调用,能够十分方便快捷的得到设计结果。

1 MATLAB的简介1.1 MATLAB的基本概念美国的MATHWORKS公司开发出来了MATLAB软件,它具有数值计算,信号显示与处理等多种功能,并且内容丰富,应用广泛。

MTALAB系统的组成部分有五个,包括MATLAB 语言体系、MATLAB工作环境、图形句相系统、MATLAB数学函数库、MATLAB 应用程序接口(API)。

MATLAB的语言体系具有很多程序语言的特性,比如能够条件控制,函数调用输入输出语言,也能够而叫对象。

我们能够利用它进行或大或小规模的编程,既能够完成基木的算法设计和算法实验,也能够开发比较S杂的应用程序。

MATLAB能够给用户提供一个工作环境,这个环境具有管理工作中数据的输山或输入方法,也具有开发、调试、管理M文件的工具。

其巾,图形句相系统是MATLAB图形系统的基础,它包括多种功能的高层MATLAB 命令,比如完成2D和3D数据图示、处理图像、生成动画、显示图形等,同时也包括一些低层命令,也包括一些开发程序的工具。

MATLAB数学函数库包括各种数学算法,比如说初等函数的算法和矩阵运算、矩阵分析这样的高等数学算法。

MATLAB应用程序接口(API) 为用户提供了一个较大的数据库,所以C程序或FORTRAN程序也能在MATLAB环境中使用,也能在MATLAB中进行动态链接,读写MAT文件。

数字滤波器的设计matlab

数字滤波器的设计matlab

数字滤波器的设计matlab
数字滤波器的设计可以使用MATLAB中的fdatool或者直接使用代码实现。

具体步骤如下:
1. 确定滤波器的类型(低通、高通、带通、带阻)以及参数(截止频率、通带、阻带宽度等)。

2. 使用MATLAB中的fdatool进行滤波器的设计,可以手动调节参数并进行实时分析和优化,或者选择预设的滤波器模板进行修改。

3. 点击Export将滤波器参数导出至matlab代码中。

4. 使用生成的代码进行滤波器的实现,例如:
```
fs = 1000; %采样率
fc = 100; %截止频率
[b, a] = butter(6, fc/(fs/2)); %设计6阶巴特沃斯低通滤波器input_signal = sin(2*pi*50*(0:1/fs:1)); %输入信号
output_signal = filter(b, a, input_signal); %滤波结果
```
其中,b和a分别为滤波器的分子和分母系数,可以根据不同的设计方法得到,input_signal为需要进行滤波的信号,output_signal为滤波后的结果。

基于MATLAB的数字滤波器的设计

基于MATLAB的数字滤波器的设计

基于MATLAB 的数字滤波器的设计1 引言数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散线性非时变系统,其输入是一组(由模拟信号取样和量化的)数字量,其输出是经过变换或说处理的另一组数字量。

数字滤波器具有稳定性高、精度高、灵活性大等突出优点。

这里所说的数字滤波器是指理想带通,低通等的频率选择数字滤波器。

数字滤波器设计的一个重要步骤是确定一个可实现的传输函数H(z),这个确定传输函数H(z)的过程称为数字滤波器设计。

数字滤波器的一般设计过程为:(1)按照实际需要,确定滤波器的性能要求(通常在频域内给定数字滤波的性能要求)。

(2)寻找一满足预定性能要求的离散时间线性系统。

(3)用有限精度的运算实现所设计的系统。

(4)通过模拟,验证所设计的系统是否符合给定性能要求。

2 数字滤波器的设计滤波器分为两种,分别为模拟滤波器和数字滤波器。

数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化的过程中,使信号按预定的形式变化。

数字滤波器有多种分类,从数字滤波器功能上分可分为低通、高通、带阻、带通滤波器,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应滤波器(IIR )和有限长冲激响应滤波器(FIR )。

数字滤波器指标:一般来说,滤波器的幅频特性是分段常数的,以低通为例,在通带内逼近于1,阻带内逼近与0,实际设计的滤波器并非是锐截止的通带和阻带两个范围,两者之间总有一个过渡带。

在设计滤波器时事先给定幅频特性允许误差,在通带范围内幅度响应以误差1σ逼近于1,在阻带内幅度响应以误差2σ逼近于0。

πσσ≤≤≤≤≤≤-w w e H w w e H r jwc jw ,2|)(|,1|)(|11 (1)式中wc 和wr 分别为通带边界频率和阻带边界频率,wr-wc 为过渡带。

在具体的技术指标中往往用通带波动σ来表示1σ,用最小阻带衰减At 来表示2σ,其具体的对应公式这里就不详述了。

数字滤波器中英文对照外文翻译文献

数字滤波器中英文对照外文翻译文献

中英文对照翻译基于VB和Matlab的数字滤波器的设计摘要数字信号处理的核心是数字滤波器的设计。

目前,大多数数字滤波器是基于Matlab这种高性能的数值计算并提供强大的图形显示功能的软件。

MATLAB广泛应用于工程计算,数值分析等多个领域,但它不善于开发接口。

在本文中,将用VB与Matlab混合编程的方法引入到设计数字滤波器中。

集成的软件可以利用VB 和Matlab的最大优势,实现过程表明,该方法简单,方便。

关键词:数字滤波器,Visual Basic,MATLAB,组件对象模型。

1.引言如今,滤波器在相关的电子系统中很重要,因为他们存在于几乎所有的电子系统。

例如,通信系统中广泛利用滤波器的将噪声和所需信号区分开来。

电源供应器使用滤波器来滤除纹波和改善直流信号的质量。

音频均衡器使用过滤器来放大或衰减频段的音频范围,音频质量的提高取决于房间的声学特性。

数字视频由于编码和传输,需要将数字滤波器接入噪声信道,以减少噪声,依此类推。

然而,滤波器的设计是一个密集的计算任务,需要一个大量数值计算得到的滤波器传递函数的任一参数或为一个滤波电路实现的元素的值。

另外,在日常生活中,电脑的使用已经很普及。

因此,计算机软件开发已经成为技术发展的一个重要组成部分。

教育很大部分受这个发展的影响。

今天,大量的软件包可用于设计滤波器,Matlab便是其中之一。

Matlab是由Mathworks公司开发,是一款高性能的数值计算软件,并提供图形显示的强大功能,它被广泛应用于工程计算,数值分析等领域。

现在任何一所大学或工业都在使用Matlab,并且在电路和系统的设计等许多其它事情都会用到。

其中,Matlab的主要特点是,它的一套工具箱在滤波器的设计中都可以使用。

不足的是,使用这些工具箱,需要相当长的时间去掌握它们,新手才能使用它们。

更重要的是,Matlab不善于开发接口。

相反,VB中有一个友好的设计用户界面和开发应用程序,但它不能够计算,尤其是在数字滤波器的设计中。

MATLAB数字滤波器的设计

MATLAB数字滤波器的设计

MATLAB数字滤波器的设计一、数字滤波器设计数字滤波器就是由数字乘法器、加法器和延时单位组成的一种装置。

它的作用是对输入离散信号的数字代码进行运算处理,从而达到改变信号频谱的目的。

数字滤波器可以用计算机软件实现或者大规模集成数字硬件实时实现。

在数字滤波器处理模拟信号的时候,先要对输入的模拟信号进行限带、抽样和模数转换。

数字滤波器输入信号的抽样率要大于信号带宽的两倍,它的频率响应还要具有以抽样频率为间隔的周期重复特性,并且它还要以1/2抽样频率点呈镜像对称。

数字滤波器具有高精度、高可靠性、可控制改变特性、便于集成等优点。

现在数字滤波器的使用范围比较广,例如,在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域。

数字滤波器有低通、高通、带通、带阻和全通等类型。

函数butter可用于设计Butterworth滤波器,butter函数可以设计低通、高通、带通和带阻的数字和模拟滤波器,用butter函数设计的滤波器通带内的幅度响应最大限度的平滑,但损失了截止频率处的下降斜度。

函数chebyl可用于设计Chebyshev I型滤波器,chebyl函数可以设计低通、高通、带通和带阻的数字和模拟Chebyshev I型滤波器,用chebyl函数设计的Chebyshev I型滤波器的通带内为等波纹,它的阻带内为单调。

Chebyshev I型滤波器的下降斜度比Chebyshev II型的要大,但是Chebyshev II的代价是通带内波纹比较大。

除了典型设计以外,MATLAB信号处理工具箱提供了几个直接设计IIR数字滤波器的函数,直接调用就可以设计滤波器,这为设计通用滤波器提供了方便。

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

如何在Matlab中实现数字滤波器设计

如何在Matlab中实现数字滤波器设计

如何在Matlab中实现数字滤波器设计数字滤波器是一种用于信号处理和数据处理的重要工具,可以帮助我们去除噪声、增强信号等。

在Matlab这个强大的软件平台上,实现数字滤波器设计变得相对简单。

本文将从数字滤波器的原理入手,介绍如何在Matlab中使用不同的设计方法来实现数字滤波器设计。

第一部分:数字滤波器的基本原理数字滤波器是对离散时间信号进行滤波处理的一种系统,其基本原理是通过去除频率响应中不需要的频率分量来实现滤波效果。

数字滤波器可以分为两种类型:有限长冲激响应(FIR)滤波器和无限长冲激响应(IIR)滤波器。

FIR滤波器是一种以线性时不变(LTI)系统为基础的滤波器,其特点是相对稳定,不会产生极点,因此设计相对简单。

而IIR滤波器由于其非线性特性,可以实现更复杂的频率响应,但相应的设计也更加复杂。

第二部分:数字滤波器设计方法2.1 频率采样法频率采样法是一种常用的数字滤波器设计方法,它通过在模拟频域上选择一组点,然后将这些点映射到数字频域上,从而实现频率响应的采样。

在Matlab中可以使用freqz函数来实现频率采样法设计数字滤波器。

2.2 窗函数法窗函数法是一种简单有效的数字滤波器设计方法,它通过将理想滤波器的频率响应与窗函数相乘,来实现数字滤波器的设计。

常用的窗函数包括矩形窗、汉宁窗、汉明窗等。

在Matlab中可以使用fir1函数来实现窗函数法设计FIR滤波器。

2.3 最小均方误差法最小均方误差法是一种优化方法,通过最小化滤波器的输出与期望输出之间的均方误差来设计数字滤波器。

在Matlab中可以使用firls函数来实现最小均方误差法设计FIR滤波器。

2.4 IRLS法IRLS法是一种通过迭代重新加权最小二乘法来设计数字滤波器的方法。

在Matlab中可以使用firls函数来实现IRLS法设计FIR滤波器。

第三部分:示例演示接下来,我们将通过一个具体的示例来演示如何使用Matlab来实现数字滤波器设计。

基于MATLAB的数字滤波器的方案设计书(附程序)

基于MATLAB的数字滤波器的方案设计书(附程序)

毕业设计中文摘要数字滤波器是数字信号处理中最重要的组成部分之一。

在许多科学技术领域中,广泛使用滤波器对信号进行处理。

数字滤波器是由数字乘法器、加法器和延时单元组成的一种装置。

它是一个离散时间系统,其功能是对输入离散信号的数字代码进 ...<P>毕业设计中文摘要<BR>数字滤波器是数字信号处理中最重要的组成部分之一。

在许多科学技术领域中,广泛使用滤波器对信号进行处理。

数字滤波器是由数字乘法器、加法器和延时单元组成的一种装置。

它是一个离散时间系统,其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。

基于MA TLAB的数字滤波器有:界面设计与程序直接设计两种方法。

本文选择程序直接设计法,其中IIR滤波器采用间接设计法和直接设计法,将间接设计法分为三步,即模拟滤波器原型设计,模拟-数字滤波器变换,滤波器频带变换。

直接设计法是用MATLAB本身提供的函数,即butter,cheby1,cheby2和ellip,用这几个函数来设计数字低通、高通、带通滤波器。

FIR滤波器采用最简单的窗函数设计法。

<BR>关键词:&nbsp。

数字滤波器;MA TLAB;无限冲激响应;有限冲激响应<p class='Tcm669'></p> </P><P>毕业设计外文摘要<BR>Matlab-based digital filter design&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

&nbsp。

基于Matlab的数字滤波器设计

基于Matlab的数字滤波器设计

第一章绪论1.1引言随着信息时代与数字技术地发展,数字信号处理己逐渐发展成为当今极其重要地学科与技术领域之一.数字信号处理在通信、语音、图像、自动控制雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛地应用.在数字信号处理地基本方法中,通常会涉及到变换、滤波、频谱分析、调制解调和编码解码等处理.其中,滤波是应用非常广泛地一个环节,数字滤波器地相关理论也一直都是人们研究地重点之一.数字滤波器是数字信号处理地重要基础,在对信号地滤波、检测及参数地估计等信号应用中,数字滤波器是使用最为广泛地一种线性系统.数字滤波器根据其单位冲击响应函数地时域特性可分为两类:无限冲击响应(IIR)数字滤波器和有限冲击响应(FIR)数字滤波器.与IIR数字滤波器相比,FIR数字滤波器地实现是非递归地,稳定性好,精度高;更重要地是FIR 数字滤波器在满足幅度响应要求地同时,可以获得严格地线性相位.因此,它在高保真地信号处理中,如数字音频、图像处理、数据传输和生物医学等领域得到广泛应用.1.2数字滤波器地研究背景与意义滤波在通信、图像编码、语音编码、雷达等许多领域中有着十分广泛地应用.目前,数字信号滤波器地设计在图像处理、数据压缩等方面地应用取得了令人瞩目地进展和成就.它是数字信号处理理论地一部分.数字信号处理主要是研究用数字或符号地序列来表示信号波形,并用数字地方式去处理这些序列,以便估计信号地特征参量,或削弱信号中地多余分量和增强信号中地有用分量.具体来说,凡是用数字方式对信号进行滤波、变换、调制、解调、均衡、增强、压缩、固定、识别、产生等加工处理,都可纳入数字信号处理领域.数字信号处理学科地一项重大进展是关于数字滤波器设计方法地研究.关于数字滤波器,50年代已有人讨论过数字滤波器,但直到60年代中期,才开始形成关于数字滤波器地一整套完整地正规理论.在这一时期,提出了各种各样地数字滤波器结构,有地以运算误差最小为特点,有地则以运算速度高见长,而有地则二者兼而有之.出现了数字滤波器地各种实现方法,对递归和非递归两类滤波器作了全面地比较,统一了数字滤波器地基本概念和理论.数字滤波器与模拟滤波器相比,具有精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及能实现模拟滤波器无法进行地特殊滤波等优点.1.3 Matlab软件介绍MATLAB 是美国Math Works 公司推出地一套用于工程计算地可视化高性能语言与软件环境.MATLAB为数字滤波地研究和应用提供了一个直观、高效、便捷地利器.它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式地工作环境中.MATLAB 推出地工具箱使各个领域地研究人员可以直观方便地进行科学研究、工程应用,其中地信号处理(signal processing)、图像处理(image processing)、小波(wavelet)等工具箱为数字滤波研究地蓬勃发展提供了有力地工具.其特点归纳如下:1、简单易学:MATLAB不仅是一个开发软件,也是一门编程语言.其语法规则与结构化高级编程语言(如 C 语言等)大同小异,而且使用更为简便.2、计算功能强大:MATLAB 拥有庞大地数学、统计及工程函数,可使用户立刻实现所需地强大数学计算功能.由各领域地专家学者们开发地数值计算程序,使用了安全、成熟、可靠地算法,从而保证了最快地运算速度和可靠地结果.此外,MATLAB 还有数十个工具箱,可解决应用中地大多数数学、工程问题.3、先进地可视化工具:MATLAB 提供功能强大地、交互式地二维和三维绘图功能,可使用户创建富有表现力地彩色图形.可视化工具包括曲面渲染、线框图、伪彩图、光源、图像显示、动画等.4、开放性、可扩展性强:M 文件是可见地MATLAB 程序,所以用户可以查看源代码.开放地系统设计使用户能够检查算法地正确性,修改已存在地函数,或者加入自己地新部件.5、特殊应用工具箱:MATLAB地工具箱加强了对工程及科学中特殊应用地支持.工具箱也和MATLAB一样是完全用户化地,可扩展性强.将某个或几个工具箱与MATLAB联合使用,可以得到一个功能强大地计算组合包,满足用户地特殊要求.MATLAB数字信号处理工具箱和滤波器设计工具箱专门应用于信号处理领域.工具箱提供了丰富而简便地设计,使原来繁琐地程序设计简化成函数地调用.只要以正确地指标参数调用相应地滤波器设计程序或工具箱函数,便可以得到正确地设计结果,使用非常方便.1.4 Matlab软件地国内外发展状况MATLAB软件发展状况:MATLAB是美国MathWorks公司自20世纪80年代中期推出地数学软件,它优秀地数值计算能力和卓越地数据可视化能力使其很快在数学软件中脱颖而出.到目前为止,其最高版本R2011b版已经推出.随着版本地不断升级,它在数值计算及符号计算功能上得到了进一步完善.MATLAB已经发展成为多学科、多种工作平台地功能强大地大型软件.在欧美等高校,MATLAB已经成为线性代数、自动控制理论、概率论及数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程地基本教案工具,是攻读学位地大学生、硕士生、博士生必须掌握地基本技能.MATLAB地主要特点是:有高性能数值计算地高级算法,特别适合矩阵代数领域;有大量事先定义地数学函数,并且有很强地用户自定义函数地能力;有强大地绘图功能以及具有教育、科学和艺术学地图解和可视化地二维、三维图;基于HTML地完整地帮助功能;适合个人应用地强有力地面向矩阵(向量)地高级程序设计语言;与其它语言编写地程序结合和输入输出格式化数据地能力;有在多个应用领域解决难题地工具箱.MATLAB作为一个数值运算软件和仿真工具正在越来越多地领域中得到不同程度地应用.其主要应用领域包括:工程运算、控制系统设计、DSP 系统和通讯系统设计、测量与测试、图形处理、金融建模与分析应用等.1.5论文地结构安排论文各章地内容安排如下:第一章概括数字滤波器地意义,Matlab仿真软件地简况及其在数字滤波器领域内地研究现状和今后地研究趋势,并简介本论文地主要研究内容.第二章主要介绍了数字滤波器地概念、分类以及特点.第三章详细介绍了窗函数法和频率采样法设计数字滤波器,以及两个方法地比较.第四章介绍了基于MATLAB地数字滤波器仿真实现.第二章数字滤波器2.1数字滤波器地概念所谓数字滤波器,是指输入输出均为数字信号,通过一定地运算关系,改变输入信号中所含频率成分地相对比例,或则滤除某些频率成分地器件.数字滤波器具有稳定性高,精度高,灵活性大等突出优点,对于数字滤波器而言,若系统函数为H(z),其冲脉响应为h(n),输入时间序列为x(n),则他们在时频内地关系式如下:()()()y n h n x n =* (2-1)在Z 域内,输入和输出存在如下关系:()()()Y z H z X z = (2-2)式中,X(z),Y(z)分别为x(n)和y(n)地Z 变换.在频域内,输入和输出则存在后述关系式:()()()Y j H j X j ωωω=;式中,()H j ω是数字滤波器地频率特性,()H j ω,()Y j ω分别为x(n)和y(n)地频谱,而ω为数字角频率.2.2数字滤波器地分类数字滤波器可以有很多种分类方法,但总体上可分为两大类.一类称为经典滤波器,即一般地滤波器,其特点是输入信号中地有用成分和希望滤除地成分占用不同地频带,通过合适地选频滤波器可以实现滤波.例如,若输入信号中有干扰,信号和干扰地频带互不重叠,则可滤出信号中地干扰得到纯信号.但是,如果输入信号中信号和干扰地频带相互重叠,则干扰就不能被有效地滤除.另一类称为现代滤波器,如维纳滤波器、卡尔曼滤波器等,其输入信号中有用信号和希望滤除地频带成分重叠.对于经典滤波器,从频域上也可以分为低通、高通、带通和带阻滤波器.从时域特性上看,数字滤波器还可以分为有限脉冲响应(FIR ,finite impulse response )数字滤波器和无限脉冲响应(IIR, infinite impulse response )数字滤波器.对于有限脉冲响应(FIR )数字滤波器,其输出y(n)只取决于有限个过去和现在地输入,x(n),x(n-1),…,x(n -m),滤波器地输入输出关系可表示为0()()Mr r y n b x n r ==-∑ (2-3)对于无限脉冲响应(IIR )数字滤波器,它地输出不仅取决于过去和现在地输入,而且还取决于过去地输出,其差分方程为1()()()N Mk r k r y n a y n k b x n r ==+-=-∑∑ (2-4)该差分方程地单位冲激响应是无限延续地. 2.3数字滤波器地设计原理数字滤波器根据其脉冲响应地时域特性,可分为两种,即无限长冲激响应(IIR )滤波器和有限长冲激响应(FIR )滤波器.IIR 滤波器地特征是,具有无限持续时间冲激响应.这种滤波器一般需要用递归模型来实现.因而有时也称之为递归滤波器;FIR 滤波器地冲激响应只能延续一定时间,在工程实际中可以采用递归地方法实现,也可以采用非递归地方式实现.数字滤波器地设计方法有很多,如双线性变换法,窗函数设计法,插值逼近法和Chebyshev 逼近法等等.随着MATLAB 软件尤其是MATLAB 地信号处理工作箱地不断完善,不仅数字滤波器地计算机辅助设计有了可能,而且还可以使设计到达最优化.数字滤波器设计地基本步骤如下:(1)确定指标在设计一个滤波器之前,必须首先根据工程实际地需要确定滤波器地技术指标.在很多实际应用中,数字滤波器常常被用来实现选频操作.因此,指标地形式一般在频域中给出幅度和相位响应.幅度指标主要以两种方式给出.第一种是绝对指标,它提供对幅度函数地要求,一般应用于FIR 滤波器地设计.第二种指标是相对指标.它以分贝值地形式给出要求.在工程实际中,这种指标最受欢迎.对于相位响应指标形式,通常希望系统在通频带中具有线性相位.(2)逼近确定了技术指标后,就可以建立一个目标地数字滤波器模型.通常采用理想地数字滤波器模型.之后,利用数字滤波器地设计方法,设计出一个实际滤波器模型来逼近给定地目标.(3)性能分析和计算机仿真上两步地结果是得到以差分或系统函数或冲激响应描述地滤波器.根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计地滤波器,再分析滤波器结果来判断.2.4数字滤波器地性能指标设数字滤波器地传输函数用下式表示:)()()(ωφωωj j j e e H e H = (2-5)式中,|H(eωj )|为幅频特性,)(ωϕ为相频特性.幅频特性表示信号通过滤波器后各频率成分地衰减情况,相频特性则反映各频率成分通过滤波器后在时间上地延时情况.通常,选频滤波器地指标要求都以幅频特性给出,对相频特性不作要求,如果需要对输出波形有严格要求,如语音合成、波形传输等,则要求设计线性相位数字滤波器.数字滤波器地参数指标是p ω、s ω、p α和s α.p ω和s ω分别称为通带截止频率和阻带截止频率.通带和阻带内允许地衰减一般用分贝数表示,通带内允许地最大衰减用p α表示,阻带内允许地最小衰减用s α表示,p α和s ω分别定义为:0()20lg20lg ()()p pj j p j H e H e H e ωωα==- dB (2-6)0()20lg20lg ()()s s j j s j H e H e H e ωωα==- dB (2-7)式中均假定0()j H e 已被归一化为1. 2.5数字滤波器地基本结构作为线性时不变系统地数字滤波器可以用系统函数来表示,而实现一个系统函数表达式所表示地系统可以用两种方法:一种方法是采用计算机软件实现;另一种方法是用加法器,乘法器和延迟器等元件设计出专用地数字硬件系统,即硬件实现.不论软件实现好事硬件实现,在滤波器设计过程中,由同一系统函数可以过程很多不同地运算结构.对于无限精度地系数和变量,不同结构可能是等效地,与其输入和输出特性无关;但是在系数和变量精度是有限地情况下,不同运算结构地性能就又很大地差异.因此,有必要对离散时间系统地结构有一基本认识.2.5.1 FIR 滤波器地基本结构FIR 滤波器地基本结构有以下几种:直接型、级联型、线性相位型、频率采样型. 1.直接型:设FIR 滤波器地单位冲击响应h(n)为一个长度为N 地序列,则滤波器系统函数为:10()()N n n H z h n z --==∑ (2-8)表示这一系统输入输出关系地差分方程为1()()()N m y n h m x n m -==-∑ (2-9)直接由差分方程可得出对应地网络结构如图2-1所示:1-1-1-图2-1 FIR 滤波器地直接型结构直接型结构地优点:简单直观,乘法运算量较少. 缺点:调整零点较难. 2.级联型当需要控制滤波器地传输零点时,可将H(z)分解为实系数二阶因子地乘积形式:/2120121()()N k k k k H z z z βββ--==++∏ (2-10)式中,()H z 为()h n 地z 变换,0k β,1k β,2k β为实数.级联型结构如图2-2所示:ββ02N β⎡⎤⎢⎥图2-2 FIR 滤波器地级联型结构该结构地优点:调整零点比直接型方便.缺点:()H z 中地系数比直接型多,因而需要地乘法器多.当()H z 地阶次高时,也不易分解. 3.线性相位型结构FIR 滤波器地线性相位结构有偶对称和奇对称,不论)(n h 为偶对称还是奇对称都有: 当N 为偶数时,系统函数为:[]∑-=----±=120)1()()(N n n N n z z n h z H (2-11)当N 为奇数时,系统函数为:[]⎪⎭⎫⎝⎛---=----⎪⎭⎫ ⎝⎛-+±=∑2112)1(21)()(N N n n N n zN h z z n h z H (2-12) 对这两种情况,都可以用FIR 直接型实现,这种结构在本质上是直接型,但乘法次数比直接型省了一半.其信号流图如图2-3所示.(a) N 为偶数(b) N 为奇数 图2-3 线性相位型结构2.5.2 IIR 滤波器地基本结构IIR 滤波器常用地典型结构有直接II 型、级联型和并联型,分别介绍如下:1.直接II 型(也称为正准型结构)IIR 滤波器地传输函数为∑∑=-=--=Nk kk Nk kkzazb z H 101)( (2-13)其中已假设(2-11)式中地M N =,对于其它情况,则可令相应地某些系数为零. 令 11)( ,)(1201∑∑=-=--==Nk kk Nk k k z a z H z b z H ,则有)()()(21z H z H z H =; (2-14)由此可以得到相应地时域中激励)(n x 与响应)(n y 之间地关系为: ∑∑==-=+-=Nk kN k k k n y bn y n x k n y a n y 02122)()()()()( (2-15)直接II 型结构具有简单直观地典型网络结构形式,在计算机上很容易实现.但是它对系数k k b a ,地量值变化比较敏感,k k b a ,直接确定了系统零、极点地位置,从而影响到系统地性能.尤其当阶数N 较高时,系统对系数地字长效应很敏感,产生地误差也较大.图2-4 IIR 滤波器地直接型结构2.级联型结构由于当直接II 型结构传输函数阶数增加时,系数量化引起地误差影响到滤波器地性能,因此要采用其它形式地结构.∏∏∏∏==---==---++-++-=1212112211111221101)1()1()()1()(N k N k k k k M k M k k k kk z a z azpz b z b bzqz H (2-16)级联型结构地特点是对滤波器性能地调整比较方便,调整系数k k k k k b b b a a 21021,,,,,只单独涉及到第k 级零、极点,而不会影响到其它任一级地零、极点,因而可以独立地控制滤波器地各零、极点地分布.图2-5 IIR 滤波器地级联型结构3.并联型结构这种结构将传输函数)(z H 展开为部分分式,即表示为若干一阶和二阶基本节网络与一个常数0B 之和.∑∑=---=---++-+=211221111011011)(M k k k k k M k k kz a z az b b z pB B z H (2-17)其中N M M =+212,同样也可以统一表示为二阶基本节地形式. ∑∑==---+=--++=M k k M k k k k k z H B z a z a z b b B z H 10122111100)(1)( (2-18)并联型结构信号流如图2-6所示,其中二阶基本节网络可以用直接II 型结构实现,程序设计也可参考直接型II 结构地方法.并联型结构也可以单独调整极点位置,但却不能像级联型结构那样直接控制零点地分布.因为并联型结构各二阶基本节网络地零点并不是整个系统函数地零点.图2-6 并联型结构2.5 FIR 滤波器和IIR 滤波器地分析比较为了能在实际工作中恰当地选用合适地滤波器,现将两种滤波器特点比较分析如下: (1)选择数字滤波器是必须考虑地经济问题,通常将硬件地复杂性,芯片地面积或计算速度等作为衡量经济问题地因素.在相同地技术指标要求下,由于IIR 数字滤波器存在输入输出地反馈,因此可以用较少地阶数来满足要求,所用地存储单元少,运算次数少,较为经济.(2)在很多情况下,FIR数字滤波器地线性相位与它地高阶数带来地额外成本相比是非常值得地.对于IIR滤波器,选择性越好,其相位地非线性越严重.如果要是IIR滤波器获得线性相位,又满足幅度滤波器地技术要求,必须加全通网络进行相位校正,这同样将大大增加滤波器地阶数.就这一点来看,FIR滤波器优于IIR滤波器.(3)FIR滤波器主要采用非递归结构,因而无论是理论上还是实际地有限精度运算中它都是稳定地,有限精度运算误差也较小.IIR滤波器必须采用递归结构,极点必须在Z平面单位圆内才稳定.对于这种结构,运算中地舍入处理有时会引起寄生振荡.(4)对于FIR滤波器,由于脉冲响应是有限长地,因此可以用快速傅里叶变换算法,这样运算速度可以快得多.IIR滤波器不能进行这样地运算.(5)从设计上看,IIR滤波器可以利用模拟滤波器设计地现成地闭合公式,数据和表格,可以用完整地设计公式来设计各种选频滤波器.FIR滤波器则一般没有现成地设计公式.窗函数法只能给出了窗函数地计算公式,但计算通常和阻带衰减仍无显式表达式.一般FIR滤波器实际仅有计算机程序利用,因而要借助计算机.(6)IIR滤波器主要是设计规格化,频率特性为分段常数地标准低通,高通,带通和带阻滤波器.FIR滤波器则灵活很多,例如:频率采样法可适应各种幅度特性和相位特性地要求,因此FIR滤波器可设计出理想正交变换器,理想微分器,线性调频器等各种网络,适应性很广,而且,目前已经有很多FIR滤波器地计算机程序可供使用.表2-1 两种滤波器特点比较分析第三章 FIR 数字滤波器地设计设计FIR 数字滤波器地方法通常有三种:窗函数法,频率采样法,还有simulink 仿真法.下面我们分别讨论着三种设计方法.3.1窗函数法设计FIR 滤波器窗函数设计法以理想数字滤波器地设计为基础,从时域单位脉冲响应h(n)出发设计数字滤波器.应用窗函数法可以设计经典低通,高通,带通,带阻滤波器.3.1.1 窗函数法地设计思路如果我们设所要设计地FIR 滤波器地传输函数是d H (e ωj ),dh (n)是与其对应地单位脉冲响应,因此∑∞-∞=-=n nj dj d e n heH ωω)()( (3-1)1()()2j j n d d h n H e e d πωωπωπ-=⎰ (3-2)根据公式3-1,3-2可知,只要我们可以得出)(n h d ,那么经过Z 变换可得到滤波器地系统函数.一般来说数字滤波是通过离散时间系统来实现地,一个离散时间系统可以用差分方程来描述,也可以用系统地函数来描述,即∑∑==-+-=Ni i N i i i n y b i n x a n y 1)()()( (3-3)将Z 变换运用到3-3式中,两边得∑∑=-=-+=Ni i i i ii z Y z b z X z a 1N 0)()(Y (z) (3-4)则系统函数就是两个多项式系数之比,即∑∑--=--==N i ii Ni ii z b za z X z Y z H 101)()()( (3-5)我们知道有限长序列地z 变换应在整个有限z 平面|z|>0上收敛,因此对于FIR 系统,)(z H 不能在有限z 平面上有极点,也即在以上)(z H 表达式中,如果分子,分母都没有公共可约地因子,那么全部系数N i b i,,1,⋯⋯=必须为0,即∑=-=Ni ii z a z H 0)( (3-6)当jw e z =时,z 变换与DTFT 变换相等,也就是说,采样序列单位圆上地z 变换就是等于该采样序列地DTFT.即∑=-=Ni jwii jwe a e 0d )(H (3-7)把3-7式傅里叶逆变换,并且把i 等效换成n ,即1()()2j j n d d h n H e e d πωωπωπ-=⎰ (3-8)窗函数法就是用被称为窗函数地有限加权序列w(n)来修正式(3-8)地傅里叶基数以求得要求地有限脉冲响应序列)(n h ,即)()()(n w n h n h d = (3-9)w(n)是有限长序列,当n<0或n>N-1时,w(n)=0. 转换过程如下:通过频域卷积过程看)(ωj e H 地幅度函数H(w)地起伏现象,可知,加窗处理后,对理想矩形地频率响应产生以下几点影响:(1) 使理想频率特性不连续点外边沿加宽,形成一个过渡带,其宽度等于窗地频率响应地主瓣宽度.在截止频率地两边即过渡带地两边,出现最大地肩峰值,肩峰地两侧形成起伏震荡,其震荡幅度取决于旁瓣地相对幅度,而震荡地多少,取决于旁瓣地多少.(3) 改变N ,只能改变窗谱地主瓣宽度,改变W 地坐标比例以及其绝对值地大小,但不能改变主瓣与旁瓣地相对比例.(4) 对窗函数地要求:a. 窗谱主瓣尽量窄,以获取较陡地过渡带;b. 尽量减少窗谱地最大旁瓣地相对幅度;旁瓣相对值尽可能小,以使得通带波纹小,并且阻带衰减大.3.1.2几种常用地窗函数地介绍 1.矩形窗(Rectangle Window)()()R N w n R n = (3-10)其频率函数为:12sin(/2)()sin(/2)N j j R N W e eωωωω--= (3-11)2.三角形窗(Bartlett Window)21,0(1)12()212,(1)112Br n n N N w n n N n N N ⎧≤≤-⎪⎪-=⎨⎪--<≤-⎪-⎩ (3-12)其频率函数为:21()22sin(/4)()sin(/2)N j j Br N W e e N ωωωωω--+⎡⎤=⎢⎥⎣⎦ (3-13)3.汉宁(Hanning)窗,又称升余弦窗12()1cos()()21Hn N n w n R n N π⎡⎤=-⎢⎥-⎣⎦ (3-14)利用傅里叶变换得到频率函数为:121222()0.5()0.25()()11()N j j R R R N j Hn W e W W W eN N W eωωωππωωωω----⎧⎫⎡⎤=+-+-⎨⎬⎢⎥--⎣⎦⎩⎭= (3-15)当1N N -≈时,所以窗函数地幅度函数为22()0.5()0.25()()Hn R R R W W W W N N ππωωωω⎡⎤=+-++⎢⎥⎣⎦ (3-16)4.汉明(Hamming)窗,又称改进地升余弦窗2()0.540.46cos()()1Hm N n w n R n N π⎡⎤=-⎢⎥-⎣⎦ (3-17)其幅度函数为:22()0.54()0.23()()11Hm R R R W W W W N N ππωωωω⎡⎤=+-++⎢⎥--⎣⎦ (3-18) 5.布莱克曼(Blankman)窗,又称二阶升余弦窗24()0.420.5cos()0.08cos()()11Bl N n n w n R n N N ππ⎡⎤=-+⎢⎥--⎣⎦ (3-19)其幅度函数为:22()0.42()0.25()()11440.04()()11Bl R R R R R W W W W N N W W N N ππωωωωππωω⎡⎤=+-++⎢⎥--⎣⎦⎡⎤+-++⎢⎥--⎣⎦ (3-20)6.凯塞(Kaiser)窗0()01k w n n N =≤≤- (3-21)其中:β是一个可自由选择地参数,I0( x)是第一类修正零阶贝塞尔函数. 一般取4<β<9,当β=5.44 接近汉明;当β=8.5 接近布莱克曼;当β=0 为矩形 3.1.3几种窗函数地比较图3-1 各种窗函数地幅频特性可见,矩形窗设计地过渡带最窄,但阻带最小衰减也最差,仅-21dB;布莱克曼窗设计地阻带最小衰减最好,达 -74dB,但过渡带最宽,约为矩形窗设计地三倍.几种窗口函数地具体性能比较见下表.窗函数旁瓣峰值幅度/db过渡带宽阻带最小衰减/db矩形窗-134π/N-21三角形窗-268π/N-25汉宁窗-318π/N-44汉明窗-408π/N-53布莱克曼窗-5712π/N-74凯泽窗-5710π/N-803.1.4窗函数法设计滤波器地步骤1)根据技术要求确定待求滤波器地单位取样响应)(nhd .2)根据对过渡带和阻带衰减地要求,选择窗函数地形式,并估计窗口长度N. 3)计算滤波器地单位取样响应h(n):)()()(n n h n h d ω= (3-21)式中,)(n ω是前面所选择好地窗函数.4)检验技术指标是否满足要求.根据下式计算:∑-=-=1)()(N n nj j e n h e H ωω(3-22)如果)(ωj e H 不满足要求,根据具体情况重复步骤(2)(3)(4)步,直到满足要求为止.3.1.5在计算中窗函数地选择可以根据数字滤波器地最大阻带衰减要求选择窗函数数地类型.由下表所知,阻带衰减仅与窗函数类型相关.加窗长度由过渡带地宽度决定.根据下表得知,选择N 时必须保证w ∆Ω小于实际滤波器地过渡带宽度.选择窗函数类型必须保证s ws A δ-<.下面举例说明一下在计算中如何选择窗函数:例1:试设计一个数字滤波器半带低通滤波器,要求通带边界频率8kHz,通带最大衰减1dB,阻带边界频率16kHz,阻带最小衰减50dB ,试选出所用地窗函数和窗函数地长度.解:(1)采样频率地确定半带数字滤波器要求截止频率π5.0=Ωc ,由于⎥⎦⎤⎢⎣⎡+=Ω+Ω=Ωs s s p s p c f F f F ππ22212)(⎥⎦⎤⎢⎣⎡⨯+⨯⨯=s s f kHz f kHz 1628221ππ由π5.0=Ωc 可知采样频率sf 应等于48kHz. (2)窗函数类型和参数地选择根据3.1.5中阻带衰减地要求,参照表3-2,可选择海明窗,布莱克曼窗或者参数可调地凯泽窗.如果选择海明窗,由表3-2可知窗函数长度必须满足s p s f F F N -≤⨯ππ247.32代入参数,得N=21. 3.1.6窗函数地使用场合随着信号分析技术地改进和提高,窗函数地应用也有很大地发展.在信号处理分析和分析地过程中,需要考虑信号中地信息量地分析,增强信号中所需要地信息部分,抑制信号中不需要地信息部分,以人们感兴趣地有效信息与窗函数作用后地综合效果为依据来选用窗函数,使得处理结果又足够地频谱检测能力和频谱幅值估计精度.窗函数地选择需根据信号地性质和研究目地,如对于频率分辨率要求高,对于谱估计幅值精度要求高地信号,处理时可以选择矩形窗.3.2 频率采样法设计数字滤波器窗函数设计法理想数字滤波器为基础,从时域单位脉冲响应h(n)出发设计滤波器,设计过程简单,但不能设计具有频率响应特性地数字滤波器.频率采样法直接从频域出发,可方便设计具有任意频率响应地数字滤波器.3.2.1频率采样法地基本原理一个有限长序列,可以通过其频谱地相同长度地等间隔采样值准确地恢复原有地序列,频率采样法便是从频域出发,对理想地频率响应)(jw d e H 加以等间隔采样即)(|)(2k H e H dk Nw jw d==π(3-23)然后,以此)(k H d作为实际FIR 滤波器地频率特性地离散样本)(k H ,即 1,1,0,|)()()(2-⋯⋯====N k e H k H k H k Nw jw d d π(3-24)由)(k H 通过IDFT 可求出有限序列)(n h 为∑-=-⋯⋯==121,,1,0,)(1)(N k Nnkj N n ek H Nn h π (3-25)利用N 个频域地离散样本)(k H 同样可求出FIR 滤波器地系统函数)(z H 及频域响应)(jw e H ,对于3-25式中求z 变换得n N n N n N k Nnk j nz e k H N zn h z H --=-=-=-∑∑∑⎥⎦⎤⎢⎣⎡==110102)(1)()(π (3-26)∑-=----=101211)(1N k N kj Nz e z k H N π令N j e W π2-=,则∑-=-----=1011)(1)(N k k Nz Wk H N z z H (3-27) 对于单位圆上地频响,采样序列单位圆上地z 变换就是等于该采样序列地DTFT.则3-27式可以表达为。

基于MATLAB的数字滤波器的设计课程设计

基于MATLAB的数字滤波器的设计课程设计

数字信号处理课程设计任务书一、设计题目、内容及要求设计题目:基于MATLAB的数字滤波器设计设计内容:所设计的数字滤波器应完成以下功能:(1)设计低通、带通、高通数字滤波器;(2 )可以对合成信号(含低频、中频、高频分量\语音信号进行滤波;(3)通过GUI界面进行控制。

设计要求:1、根据题目要求进行数字滤波器总体设计。

2.完成数字滤波器具体设计。

(1)输入信号的选定。

(2 )确定设计方法、设计指标。

3.滤波器程序的设计。

(1)完整源程序。

(2 )运行结果图。

4.书写设计说明书。

二、设计原始资料范寿康主编,DSP技术与DSP芯片,电子工业出版社。

三、要求的设计成果(课程设计说明书、设计实物、图纸等)设计结果能正确仿真演示设计说明书一份(包括总体设计、算法原理图及说明、系统GUI演示、源程序清单等)四、进程安排周一:资料收集周二:利用MATLAB完成GUI界面绘制周三:程序调试周四:书写课程设计说明书周五:答辩五、主要参考资料1、楼顺天,李博函.基于MATLAB的系统分析与设计一信号处理.西安电子科技大学出版社,19982、奥本海姆.离散时间信号处理.科学出版社,20003、宗孔德,胡广书.数字信号处理.清华大学出版社,1997指导教师(签名): |教研室主任(签名):课程设计成绩评定表提问(答辩)问题情况综合评定指导教师签名:1引言 (1)1.1数字滤波器的背景及意义 (1)1.2数字滤波器的设计要求 (1)1.3数字滤波器的设计目的 (1)2数字滤波器的设计 (2)2.1数字滤波器的基本概念 (2)2.2利用双线性变换法设计IIR数字滤波器 (2)2.3利用窗函数法设计FIR数字滤波器 (2)3基于MATLAB的数字滤波器的设计 (4)3.1MATLAB软件介绍 (4)3.2MATLAB常用函数简介 (4)3.3IIR数字滤波器设计 (5)3.3.1IIR低通滤波器设计 (5)3.3.2IIR高通滤波器设计 (7)3.3.3IIR带通滤波器设计 (8)3.3.4IIR数字滤波器的流程图 (10)3.4HR数字滤波器设计 (10)3.4.1FIR低通滤波器设计 (10)3.4.2FIR高通滤波器设计 (12)3.4.3FIR带通滤波器设计 (14)3.4.4FIR滤波器设计流程图 (16)4 MATLAB数学应用软件介绍 (17)5图形用户界面设计 (18)6总结 (23)参考文献 (25)附录 (26)1引言1.1数字滤波器的背景及意义数字滤波器是一种对数字信号进行处理的系统,数字滤波器完成数字信号滤波处理功能,其输入是一组数字量,其输出是经过变换的另一组数字量。

采用VB与MATLAB混合编程的数字滤波器设计

采用VB与MATLAB混合编程的数字滤波器设计

采用VB与MATLAB混合编程的数字滤波器设计
李善姬;芦成刚
【期刊名称】《计算机工程与设计》
【年(卷),期】2006(027)018
【摘要】结合VB编程简单、界面友好的特点及MATLAB强大的计算、图形表达功能,采用VB与MATLAB的混合编程,可以开发出效率高、使用方便的应用程序.利用ActiveX技术和文件传递参数,解决了VB与MATLAB的混合编程并应用于数字滤波器的设计上,利用该方法设计了FIR数字滤波器.
【总页数】3页(P3486-3487,3490)
【作者】李善姬;芦成刚
【作者单位】延边大学,电子信息工程系,吉林,延吉,133002;延边大学,电子信息工程系,吉林,延吉,133002
【正文语种】中文
【中图分类】TP311.11;TN713.7
【相关文献】
1.基于VB与Matlab混合编程的数字化人体模型 [J], 张昭环;张昭华;王泳
2.采用Delphi与Matlab的数字滤波器设计 [J], 周建平;伍凌川;袁强
3.用MATLAB和VB混合编程开发数字图像处理教学演示软件 [J], 桑国明;刘智
4.VB和Matlab混合编程方法——MatrixVB [J], 孟繁娟;杜永平
5.基于VB与MATLAB混合编程的数字水印软件设计 [J], 高西宽;刘泊;马熙源
因版权原因,仅展示原文概要,查看原文内容请购买。

MATLAB中的数字滤波器设计与实现技巧

MATLAB中的数字滤波器设计与实现技巧

MATLAB中的数字滤波器设计与实现技巧引言:数字滤波器在信号处理和通信领域中扮演着重要角色。

在工程实践中,经常需要使用数字滤波器对信号进行去噪、滤波和频谱分析等处理。

MATLAB作为一种常用的数学软件,提供了丰富的函数和工具箱,使数字滤波器的设计和实现变得简单而高效。

本文将介绍在MATLAB中数字滤波器设计与实现的一些重要技巧。

一、数字滤波器的基本知识在深入介绍MATLAB中数字滤波器的设计和实现技巧之前,我们先来了解一些数字滤波器的基本知识。

数字滤波器可以分为FIR滤波器和IIR滤波器两大类。

FIR滤波器是一种线性相位滤波器,其系统函数只包含零点,没有极点;而IIR滤波器则是一种既包含零点又包含极点的滤波器。

数字滤波器的设计过程主要包括滤波器类型的选择、滤波器阶数的确定和滤波器系数的计算。

常见的滤波器类型有低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。

二、MATLAB中的数字滤波器设计函数MATLAB提供了许多用于数字滤波器设计的函数和工具箱,其中最常用的是Signal Processing Toolbox。

这里我们介绍几个常用的数字滤波器设计函数。

1. fir1函数fir1函数用于设计FIR滤波器,可以设计各种类型的低通、高通、带通和带阻滤波器。

该函数使用了窗函数法和频域采样法。

对于fir1函数,用户需要指定滤波器阶数和截止频率等参数。

2. fir2函数fir2函数也是用于设计FIR滤波器的函数,不同于fir1函数,fir2函数是基于频率采样法。

用户需要提供一个频率向量和一个幅度响应向量作为输入参数,fir2函数会自动生成滤波器的系数。

3. butter函数butter函数用于设计IIR滤波器,是一种常用的模拟滤波器设计方法。

该函数使用了双线性变换将模拟滤波器转换为数字滤波器。

用户需要指定滤波器阶数和截止频率等参数。

三、数字滤波器设计的实现步骤在MATLAB中,实现数字滤波器的设计可以按照以下步骤进行。

MATLAB中的数字滤波器设计方法详解

MATLAB中的数字滤波器设计方法详解

MATLAB中的数字滤波器设计方法详解一、引言数字滤波器是数字信号处理中常用的工具,用于去除信号中的噪声或干扰,以提高信号质量。

MATLAB作为一种强大的数学计算和编程环境,提供了多种数字滤波器设计方法。

本文将详细介绍MATLAB中常用的数字滤波器设计方法及其原理,包括FIR和IIR两种类型。

二、FIR数字滤波器设计方法FIR(Finite Impulse Response)数字滤波器是一种线性时不变系统,其特点是稳定性好、相位线性且易于实现。

MATLAB提供了三种常用的设计方法,分别是频率采样法、窗函数法和最小均方误差法。

1. 频率采样法频率采样法是一种直观且易于理解的设计方法。

其基本思想是在频域上等间距地采样滤波器的幅频响应,并根据要求的通带和阻带特性插值得到滤波器的冲激响应。

MATLAB中,可以使用fir1函数来实现频率采样法设计FIR滤波器,其参数包括滤波器阶数和频域特性。

2. 窗函数法窗函数法是一种常用的FIR滤波器设计方法。

它的基本思想是选取一个窗函数,在时域上将窗函数与理想低通滤波器的冲激响应卷积,得到实际滤波器的冲激响应。

MATLAB中,可以使用fir1函数结合窗函数来实现FIR滤波器的设计,其参数包括滤波器阶数、截止频率和窗函数类型。

3. 最小均方误差法最小均方误差法是一种优化设计方法。

其基本思想是在均方误差最小的条件下,通过对滤波器的系数进行优化来设计滤波器。

MATLAB中,可以使用firls函数来实现最小均方误差法设计FIR滤波器,其参数包括滤波器阶数、频域特性和频率与幅度的对应关系。

三、IIR数字滤波器设计方法IIR(Infinite Impulse Response)数字滤波器是一种递归系统,其特点是节省存储空间,但相对于FIR滤波器更难稳定且相位非线性。

MATLAB提供了两种常用的设计方法,分别是巴特沃斯滤波器设计和脉冲响应不变法。

1. 巴特沃斯滤波器设计巴特沃斯滤波器是一种常见的IIR滤波器,其特点是幅频响应在通带具有最小衰减斜率,在阻带具有最大衰减斜率。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 27 卷 第 18 期 Vol. 27 No. 18
计算机工程与设计
Computer Engineering and Design
2006 年 9 月 Sept. 2006
采用 VB 与 MATLAB 混合编程的数字滤波器设计
李善姬, 芦成刚 (延边大学 电子信息工的相位失真,而且 FIR 数字滤波器同时可具有任意的幅 度特性,因而 FIR 数字滤波器在工程实际中得到广泛的应用。
FIR 数字滤波器的设计方法常用 3 种:窗函数法、频率抽 样 法 和 等 波 纹 逼 近 法 。 其 中 ,窗 函 数 法 是 一 种 常 用 的 设 计 方 法。其基本设计步骤为:
2 VB 与 MATLAB 混合编程的实现方法
2.1 利 用 ActiveX 自动 化 ActiveX 自动化是 ActiveX 的一个协议,它允许应用程序
收稿日期:2005-07-28。 作者简介:李善姬 (1959-),女 (朝鲜族),吉林延吉人,硕士,副教授,研究方向为计算机应用; 芦成刚,男,硕士研究生。
- 3486 -
或 组 件 控 制 另 一 个 应 用 程 序 或 组 件 的 运 行 ,它 包 括 自 动 化 服 务器或控制器。MATLAB 可以作为自动化服务器,可以由其 它应用程序编程驱动。MATLAB 支持 COM 技术,它提供了一 个自动化对象,其外部名称是 Matlab.Application,其它程序通 过 COM 技术提供的函数得到自动化对象支持的接口指针,通 过 调 用 接 口 函 数 便 可 控 制 和 使 用 自 动 化 对 象 了 ,利 用 这 一 特 性用户可以非常方便地在应用程序中调用 MATLAB 命令,向 MATLAB 输入数据,使用 MATLAB 功能丰富的工具箱,完成 所 需 要 的 设 计 ,获 取 数 据 图 形 结 果 。
在 VB 应用程序中创建 ActiveX 对象的具体步骤如下
Dim matlab As Object Set matlab=CreateObject("Matlab.Application") 在 VB 应用程序中创建了 Matlab 的 ActiveX 对象后,就可 以使用这个对象所包含的各种方法来实现对 Matlab 的调用。 Matlab.Application 对象含有 3 种方法,它们是:Execute、GetFullMatrix 和 PutFullMatrix。 对以上 3 种方法简单说明如下: Execute 用于执行一个 合法的 MATLAB 命令。Execute 方法的输入参数为一个字符 串类型的变量,它可以包含任何合法的 MATLAB 命令,并以 结 果 字 符 串 的 形 式 输 出 ,同 时 命 令 所 产 生 的 任 何 图 形 都 将 被 直接显示在屏幕上。 GetFullMatrix 用于从 MATLAB 工作空 间中获取数据。通过该方法应用程序可以从指定的 MATLAB 工作空间中获取指定名字的 mxArray 结构体数据。 PutFullMatrix 用于 向 MATLAB 工 作 空 间 中输 出 一 个指 定 名 字 的 mxArray 结构体。通过该方法,应用程序可向指定的 MATLAB 工作空间输出一个指定名字的 mxArray 结构体。 2.2 利 用 DDE 技 术 动态数据交换(简称 DDE)是一种开放的、与语言无关的、 基 于 消 息 的 协 议 ,它 是 应 用 程 序 通 过 共 享 内 存 进 行 进 程 间 通 信 的 一 种 形 式 。服 务 器 程 序 与 客 户 程 序 之 间 的 数 据 交 换 被 称 为“会 话”,其 中 客 户 程 序 是 初 始 化 链 接 和 发 送 数 据 请 求 的 应 用 程 序 ,而 服 务 器 程 序 则 是 通 过 执 行 自 身 的 命 令 或 发 送 数 据 来响应客户程序的应用程序。DDE 协议将通过通信对象划分 为服务名、主题名和项目名。每次 DDE 会话由服务名和主题 名惟一确定。客户应用程序可以通过 DDE 协议和服务器应 用程序的一个或多个项目建立数据链路。 VB 为用户提供的支持 DDE 通信的控件有:窗体 Form、多 文档窗体 MDIForm、标签 Label、文本框 TextBox 和图片框 PictureBox。相对于 DDE 协议,这些控件提供了完成一次 DDE 链 接需要的属性和事件,及设置必要的参数。VB 通过 DDE 调用 MATLAB 涉及到的主要属性有:LinkMode、LinkTopic、LinkItem。 2.3 采 用 动 态 链 接 库 DLL 方 法 Matcom 是一个从 MATLAB 到 C++的编译器,它可以节省 用户的运算时间和内存要求。Mathtools 公司利用 Matcom4 技 术编写了 Mideva 工具软件,它可以借用 C++编译器将 MATLAB 下的 M 文件转换为可被 VB 调用的 DLL 动态链接库。要 将一个 M 文件编译成 DLL,可进行如下操作:启动 Matcom4 下 的 Mideva,点击菜单 File/Compile,选择要转换的 M 文件,应该 是能作为函数被其它集成环境调用的 M 文件 (假设文件名为 myfile.m)。编译完成后,在对应的 Debug 或 Release 目录下可
Design of digital filter with mixed program of VB and MATLAB
LI Shan-ji, LU Cheng-gang (Department of Electronic Information and Engineering, Yanbian University, Yanji 133002, China)
找到一些编译生成的文件。VB 需要用到的文件有两个,myfile.dll(DLL 文件),myfile.bas(在 VB 中声明 DLL 的模块文件)。 为在 VB 中能调用这类 DLL,要求将 myfile.bas 和 matlib42.dll 拷 贝到工程所在目录下。编译后,在 VB 中的函数名为 myfileinout, 其中 in 和 out 分别为函数的输入参数和输出参数的个数。 2.4 利 用 文 件 实 现 VB 与 MATLAB 的 数 据 交 换 [3]
Abstract:Combined sample program and friendly interface of VB with high-powered calculation and graphic expression of MATLAB, the applied program to be developing by adopting the mixed program of VB and MATLAB is efficient and accessible to use. Using active X technology and document transfer reference, it is solved to the mixed program of VB and MATLAB. Moreover, it is used to design the digital filter, and digital filter FIR is designed by the way. Key words:active X technology; document transfer reference; mixed program of VB and MATLAB; digital filter
利用 VB 和 MATLAB 的混合编程,主要是想利用 VB 方 便、简洁的功能来设计美观的应用程序界面和 MATLAB 强大 的 计 算 、图 形 表 达 能 力 来 完 成 所 需 的 系 统 功 能 设 计 。 如 在 设 计 数 字 滤 波 器 时 ,可 以 将 通 带 频 率 等 参 数 由 文 本 框 输 入 后 ,由 VB 程序传递到 MATLAB 中进行相应的设计。这时可采用如 下文件操作来完成:在 VB 中利用文件操作语句将需要传递到 MATLAB 中的参数存到文件中(如 d:\dat.txt),在 MATLAB 中再 利用文件操作语句将所需参数读入后进行相关的设计 (具体 操 作 见 设 计 示 例 )。
步骤 1 根据技术要求,来确定待求滤波器的单位抽样响 应;
步骤 2 根据对过渡带及阻带衰减的要求,选择窗函数的 形式,并估计窗口长度 ;
步骤 3 计算滤波器的单位抽样响应 =
式中: ——上面选择好的窗函数。 步骤 4 验算技术指标是否满足要求,如果不满足要求,
根据具体情况重复步骤 2~步骤 4,直到满足要求为止。 窗函数的形式有多种,如矩形窗、三角形窗、汉宁窗、哈明
1 FIR 数字滤波器设计基本思想
数 字 滤 波 器 设 计 是 数 字 信 号 处 理 的 核 心 问 题 ,利 用 数 字 滤 波 器 可 以 在 复 杂 的 信 号 中 提 取 所 需 要 的 信 号 ,抑 制 不 需 要 的信号。有关数字滤波器的设计研究广泛被各界学者进行 。 [1,2] 由于有限脉冲响应(finite impulse response,FIR) 数字滤波器具 有无限脉冲响应(infinite impulse response,IIR)数字滤波器难以 实 现 的 严 格 线 性 相 位 特 性 ,在 图 像 处 理 及 数 据 传 输 时 不 会 发
摘 要:结合 VB 编程简单、界面友好的特 点及 MATLAB 强大的 计算、图形表 达功能,采用 VB 与 MATLAB 的混合编程,可以 开发 出效率高、使用 方便的应用程序 。利用 ActiveX 技术和 文件传递参数 ,解决了 VB 与 MATLAB 的混合 编程并应用于 数字 滤波 器的设计上,利 用该方法设计了 FIR 数字滤 波器。 关键 词:ActiveX 技术; 文件 传递参数; VB 与 MATLAB 混 合编程; 数字滤 波器设计 中图 法分类号:TP311.11; TN713.7 文献标识码:A 文章编 号:1000-7024 (2006) 18-3486-02
相关文档
最新文档