您好,欢迎来到华拓科技网。
搜索
您的当前位置:首页滤波器设计分析工具 FDATool和滤波器可视化工具 FVTool.

滤波器设计分析工具 FDATool和滤波器可视化工具 FVTool.

来源:华拓科技网
 讲座13 滤波器设计分析工具 FDATool 和滤波器可视化工具FVTool

13.1.简介

FDATool (Filter Design and Analysis Tool) 是一个功能强大的数字滤波器分析设计工具。它的主要功能如下:

(1) 设计参考滤波器

所谓参考滤波器就是不考虑所有量化效应而采用双精度浮点数据格式、在通用计算机 上实现的滤波器。FDATool涵盖了信号处理工具箱中所有的滤波器设计方法。利用它可以方便地设计出满足各种性能指标(或直接指定滤波器系数)的滤波器,并且可以查看该滤波器的各种分析图形(例如滤波器的模频特性、相频特性、群时延、令极点图等)。待设计出满意的滤波器后,还可以将其系数直接导出为Matlab 变量、文本文件或C语言头文件等。

(2) 仿真和分析量化滤波器的性能

参考滤波器是一种不考虑数据量化的理想滤波器。实际滤波器则使用一定的量化器, 把滤波器从双精度浮点格式转换为定点或变精度浮点格式。这样的滤波器称为量化滤波器。 量化滤波器的频率特性往往与原来的滤波器不一致,有时甚至会使一个稳定的滤波器变得不稳定。滤波器量化效应与滤波器的运算结构密切相关。为了仿真和分析量化滤波器的性能,滤波器设计工具箱提供了一整套定义在量化对象基础上的量化函数。图13.1.1示出量化对象的层次结构。

图13.1.1 滤波器设计工具箱中的量化对象

FVTool (Filter Visual Tool ) 是附属于FDATool的工具。可以在Matlab 的工作区或在.M.文件调用这两种工具。本讲座将介绍这两种调用方法。

本讲座只介绍用 FDATool 设计参考滤波器。关于用FDATool仿真和分析量化滤波器的问题,读者可参阅

《Matlab 6.5 及其在数字信号处理中的应用》(王宏著,清华大学出版社,2004年) 《数字信号处理原理、实现与应用》(高西全著,电子工业出版社,2006年)

13.2 FDATool 的界面

在Matlab 的命令窗键入 FDATtool 命令,就可以进入滤波器仿真和分析环境,得到

1

图13.2.1 所示的界面。

图13.2.1 FDATtool 的起始界面 图13.2.2 示出FDATool的主菜单和工具条。其中,

钮对用户学习FDATool的使

用很有帮助。用户可先用鼠标点击该钮,然后点击界面上某个需要提供帮助的区域。这时, Matlab便将该区域用黑色粗线圈起,并给出详细的说明。

图13.2.2 FDATool 的主菜单和工具条

FDATool 的工作区大致上可以分为图13.2.1所示的5个区域。 区域1显示当前滤波器的信息。

区域2有5个可供选择的按钮,如图13.2.3所示。

区域3显示滤波器的模频特性容限图以及设计所得滤波器的模频特性、相频特性、群时延特性、零极点分布、滤波器系数等。如果用户选用图13.2.3中的“滤波器设计”(设计不考虑量化效应的滤波器),则区域3所显示的内容由用户从主菜单的Analysis项的子菜单中选择。图13.2.4示出这个子菜单。

2

图13.2.3 工作选择按钮

图13.2.4 “Analysis”项的子菜单

区域4的具体内容取决于用户所选的工作状态(图13.2.3)。例如,用户若选滤波器设计,则这个区域的内容如图13.2.1所示。这时,Matlab 需要用户确定对滤波器的技术要求。 区域5有命令钮Design Filter。当这个命令钮的字样从灰色变为黑色时,按下它就进行滤波器设计。

下面举例说明用FDATool 设计参考滤波器的方法。

13.3 FIR滤波器设计

13.3.1 设计低通滤波器

启动FDATool后,如果要创建新的滤波器,可用图13.3.1 所示的New | Session 命令得到图13.3.2所示的界面。图中右上方显示低通滤波器的模频特性容限图。用户可在图13.3.2的左方选择所需滤波器的型式(FIR、IIR、低通、高通、带通、…等)。如果设计一个新的FIR低通数字滤波器,则应在FIR下拉菜单中,选择所需的算法,例如Equiripple(等波纹),

3

并在输入设计要求和技术指标后,点击Design Filter按钮,就可以得到所需滤波器。

图13.3.1. 主菜单选项File 的子菜单

现在选用图13.3.2原有技术指标设计FIR等波纹低通滤波器。所得滤波器的模频特性示于该图的上方。

图13.3.2 低通FIR滤波器的模频特性

在图13.3.2所显示的特性曲线上,用户点击任何点,就会出现一个文本框,标出该点的横、纵坐标值,如图13.3.3所示。这样的标志点可以设置多个。以鼠标右键点击该框,从跳出的现场菜单,可改变框中的字体大小、框的位置等,也可以撤销该框。

4

图13.3.3 带标志点的特性曲线

从图13.2.4所示Analysis 项的子菜单可以做出选择,以显示滤波器的模频特性、相频特性、合在一起的模频特性和相频特性、群时延特性、冲激响应、阶跃响应、零极点分布和滤波系数,分别如图13.3.3 ~ 13.3.10所示。此外,还可以显示噪声加载方法,这里不作介绍。

图13.3.4 FIR低通滤波器的相频特性

图13.3.5 FIR低通滤波器的模频特性和相频特性

图13.3.6 FIR低通滤波器的群时延特性

5

图13.3.7 FIR低通滤波器的冲激响应

图13.3.8 FIR低通滤波器的阶跃响应

图13.3.9 FIR低通滤波器的零极点分布

图13.3.10 FIR低通滤波器的滤波系数

在图13.2.4中,若点击Analysis项子菜单中的Full View Analysis (全景分析)选项,则滤波器特性将在一个单独的图中显示出来,如图13.3.11所示。

6

图13.3.11 低通FIR滤波器的模频特性

Analysis 项子菜单中有Analysis Parameters 选项。点击这个选项,出现图13.3.12的对话框。通过该对话框上方的列表框Range,可以选择频率坐标的范围:[0,Fs/2],[0,Fs]和

[Fs/2,Fs/2]。例如,若选频率范围为[Fs/2,Fs/2],则滤波器器的模频特性将如图13.3.13

所示。

图13.3.12 ”Analysis Parameters” 选项

对话框

,s/2]时的模频特性 图13.3.13 频率范围为[Fs/2F 7

下面解释图13.3.6所示的群时延特性。教材中,第2.8.6节介绍了群时延的概念。群时延是相频特性的负斜率, ngd() (2.8.32) d第9.2节又说明了数字滤波器的群时延用样点数来量度。现在来看看图13.3.14所示的模频特性和相频特性。由图(b)看出滤波器在通带内具有线性相位特性(线段ab)。a点的坐标为(0,

o0)。 b 点的横坐标为 bx12000Hz,纵坐标为by-2250。若b 点的横坐标用数字频

率表示,则2*12000/fs,而用弧度表示时,b 点的纵坐标为p2250* / 180。由于采样频率为fs48000Hz,故根据群时延的定义,得群时延为

gp/25 samples。这与图13.3.6的结果是一致的。

图13.3.14 FIR滤波器的模频特性和相频特性

(fs48000Hz) Hz, fc10800

13.3.2 FIR 低通滤波器的频率变换

按照上一小节所讲的方法设计好低通滤波器后,就可以通过变换获得另一个低通、高通、带通、带阻滤波器。方法如下。

按下图13.2.3 所示的滤波器变换钮

,得到图13.3.15 a。该面板适用于低通滤波器

8

作为目标滤波器。若目标滤波器是其他类型的滤波器,则可以通过面板右上角的Transformed filter type列表框来选择。例如,如果选高通滤波器或带通滤波器作为目标滤波器,则面板右方将分别如图 (b ) 和 (c) 所示。面板左方和右方的文本框示出频率变换前后的对应频率,由用户确定。

图13.3.15 频率变换面板

图13.3.16 示出频率变换例子。图(a)是原来设计好的低通滤波器,经变换,可分别得到图(b)和(c)所示的高通、带通滤波器。

9

图13.3.16 FIR滤波器变换

13.4 IIR滤波器设计

也可以用 FDATool 工具来设计IIR滤波器,其方法类似于FIR滤波器设计。

在设计滤波器时,利用FDATool 界面左下角的 Filter Type面板,选择滤波器类型,如图13.4.1所示。该图表示被设计的滤波器是IIR低通ChebyshevⅡ型滤波器。

设计好低通滤波器后,可以把它变换为其它类型的滤波器。例如,按照 FDATool 原先已设定的指标设计好图13.4.2 a 所示的低通滤波器,则经过低通-带通和低通-带阻变换,便分别得到图 (b) 和 (c) 的带通和带阻滤波器。

10

图13.4.1 滤波器类型面板

(a) 低通滤波器 (源滤波器)

(b) 带通滤波器 (目标滤波器)

11

(c) 带阻通滤波器 (目标滤波器)

图13.4.2 IIR滤波器变换

13.5 导入与导出滤波器

本节举例说明怎样将已有的滤波器导入FDATool,或者相反,将已在FDATool 中设计 好的滤波器导出到 FDATool 环境以外。

13.5.1 导入滤波器

现在以第二章的程序M020808.M 为例,说明导入滤波器的方法。该程序给出一个FIR滤波器,演示有弯折和无弯折的滤波器相频特性(对此,读者可参阅第2章)。程序文本如下。程序中,b = [1, 1.5, 2.4, 2.8, 3.2, 3.2, 2.8, 2.4, 1.5, 1] 是滤波器系统函数的分子多项式系数组;对于FIR滤波器来说,系统函数的分母多项式系数组为1。程序运行结果示于图13.5.1

% M020808

% 解释系统的相频特性和函数 unwrap 的用法 %

set(gcf, 'color', 'w')

b = [1, 1.5, 2.4, 2.8, 3.2, 3.2, 2.8, 2.4, 1.5, 1]; [H, w] = freqz(b, 1, 512) subplot(221)

plot(w/pi, abs(H)); grid subplot(222)

plot(w/pi, angle(H)); grid subplot(223)

plot(w/pi, unwrap(angle(H))); grid subplot(224)

plot(w/pi, 20*log10(abs(H))); grid

12

图13.5.1 程序M020808的运行结果

下面将这个滤波器导入FDATool。方法如下。

在FDATool的菜单中,执行File | Import Filter 命令后,在界面的下方出现图13.5.2 的面板。读者可以通过左边的Filter Structure 列表框选用滤波器的结构。对于本例,选直接Ⅰ型或Ⅱ型结构均可。在标以Numberator(分子)的文本框中键入上述系数组b,而在标以Denominator(分母)的文本框中键入系数组a (a = 1),如图13.5.3 所示。 至此,按下界面上的滤波器导入命令钮

,即可将程序M020808.M中的滤

波器导入到FDATool,得到如图13.5.4所示的滤波器特性。显然,子图 a和 b 是分别与图13.5.1的子图b 和 d 完全一致的。

图13.5.2 用以输入滤波器参数的面板 (默认)

图13.5.3 已经输入滤波器参数的面板

13

图13.5.4 在FDATool 中得到的滤波器特性

13.5.2 导出滤波器

可以将FDATool 中的滤波器参数导出到FDATool环境之外。滤波器参数可以有5个去向,即:

 到Matlab 的工作区(Workspace)  到 SPTool 工具中

 形成为C 语言的头文件  形成文本文件.txt

 形成 Matlab 的.MAT 文件

下面说明怎样将滤波器参数导出到Matlab 的工作区。 在FDATool 中,执行 File | Export。。。,得到图13.5.5。

图13.5.5 “Export“ 对话框

在对话框的列表框Export To中,选导出目标是 Workspace, 导出对象是 Coefficient

14

(系数),导出的变量名是Num (Numerator,,分子多项式系数组)和Den(Denominator,分母多项式系数组)。确认后,在Matlab 的工作区得到变量Num和Den如图13.5.6所示。

图13.5.6 在Matlab中的工作区可以访问变量 Num 和 Den

在列表框Export To中,若选导出目标是 Text -file,则在确认后,系统要求用户输入文件名和路径。如果按照图13.5.7确定文件名及其路径,则在work 目录中形成名为 untitled.txt 的文本文件,其内容如13.5.8所示。

图13.5.7 系统提示用户输入文件名和路径

图13.5.8 文件untitled.txt 的内容

15

13.6 用程序调用FVTool

FVTool 是附属于 FDATool 的可视化工具。它提供的界面就是图13.3.1所示的Full View Analysis界面。在Matlab 的workspace 键入行命令fvtool(b, a),就可以调用FVTool工具,显示滤波器的各种特性。行命令中的参数 b 和a分别是滤波器系统函数的分子、分母多项式的系数组。若执行行命令fdatool,则不论是否带滤波器参数,都只能出现图13.2.1所示的界面。

下面的程序用来调用FVTool 工具,显示作为参数的滤波器的特性。程序中,用Remez算法设计两个FIR滤波器,它们的系统函数分子多项式的系数组分别是 b1 和b2,而分母多项式系数组为1。指令fvtool(b1,1,b2,1) 使用这两个滤波器的系统函数作为参数。程序运行后,FVTool被调用,显示两个滤波器的特性(图13.6.1)。使用工具条上的按钮以在特性图上标出图例或撤除当前的图例。其它按钮的功能与FDATool相同。

% 演示滤波器可视化工具 FVTool 的用法 %

n = 20; % 滤波器阶数 f = [0 0.4 0.5 1]; % 边界频率向量 a = [1 1 0 0]; % 幅度向量

b1 = remez(n, f, a); % 第一个滤波器,其阶数为20 b2 = remez(n * 2, f, a); % 第二个滤波器,其阶数为 2 * 20 = 40

fvtool(b1, 1, b2 , 1); % 以两个滤波器的系统函数作为参数调用 FVTool 工具

,可

图13.6.1 用程序调用FVTool工具

16

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务