《数字信号处理理论与实践》讲座13 滤波器设计分析设计工具FDATool和滤波器可视化工具FVTool版本N01.docx
- 文档编号:7657918
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:18
- 大小:1.61MB
《数字信号处理理论与实践》讲座13 滤波器设计分析设计工具FDATool和滤波器可视化工具FVTool版本N01.docx
《《数字信号处理理论与实践》讲座13 滤波器设计分析设计工具FDATool和滤波器可视化工具FVTool版本N01.docx》由会员分享,可在线阅读,更多相关《《数字信号处理理论与实践》讲座13 滤波器设计分析设计工具FDATool和滤波器可视化工具FVTool版本N01.docx(18页珍藏版)》请在冰豆网上搜索。
《数字信号处理理论与实践》讲座13滤波器设计分析设计工具FDATool和滤波器可视化工具FVTool版本N01
版本2012-08-20-N01
%%%%%%%%%%%
说明:
本人(王大伦)编写的《数字信号处理---理论与实践》一书2010年由清华大学出版社出版。
为了开阔视野,该书所附光盘开设15个讲座,作为书中内容的补充。
现在,陆续向网友提供这些讲座内容,意在交流经验。
再者,对学习、演绎数字信号处理课程有用的一些MATLAB程序,也将抛砖引玉,奉献给朋友们。
请雅正。
讲座13滤波器设计分析工具FDATool
和滤波器可视化工具FVTool
13.1.简介
FDATool(FilterDesignandAnalysisTool)是一个功能强大的数字滤波器分析设计工具。
它的主要功能如下:
(1)设计参考滤波器
所谓参考滤波器就是不考虑所有量化效应而采用双精度浮点数据格式、在通用计算机
上实现的滤波器。
FDATool涵盖了信号处理工具箱中所有的滤波器设计方法。
利用它可以方便地设计出满足各种性能指标(或直接指定滤波器系数)的滤波器,并且可以查看该滤波器的各种分析图形(例如滤波器的模频特性、相频特性、群时延、令极点图等)。
待设计出满意的滤波器后,还可以将其系数直接导出为Matlab变量、文本文件或C语言头文件等。
(2)仿真和分析量化滤波器的性能
参考滤波器是一种不考虑数据量化的理想滤波器。
实际滤波器则使用一定的量化器,
把滤波器从双精度浮点格式转换为定点或变精度浮点格式。
这样的滤波器称为量化滤波器。
量化滤波器的频率特性往往与原来的滤波器不一致,有时甚至会使一个稳定的滤波器变得不稳定。
滤波器量化效应与滤波器的运算结构密切相关。
为了仿真和分析量化滤波器的性能,滤波器设计工具箱提供了一整套定义在量化对象基础上的量化函数。
图13.1.1示出量化对象的层次结构。
图13.1.1滤波器设计工具箱中的量化对象
FVTool(FilterVisualTool)是附属于FDATool的工具。
可以在Matlab的工作区或在.M.文件调用这两种工具。
本讲座将介绍这两种调用方法。
本讲座只介绍用FDATool设计参考滤波器。
关于用FDATool仿真和分析量化滤波器的问题,读者可参阅
《Matlab6.5及其在数字信号处理中的应用》(王宏著,清华大学出版社,2004年)
《数字信号处理原理、实现与应用》(高西全著,电子工业出版社,2006年)
13.2FDATool的界面
在Matlab的命令窗键入FDATtool命令,就可以进入滤波器仿真和分析环境,得到图13.2.1所示的界面。
图13.2.1FDATtool的起始界面
图13.2.2示出FDATool的主菜单和工具条。
其中,
钮对用户学习FDATool的使用很有帮助。
用户可先用鼠标点击该钮,然后点击界面上某个需要提供帮助的区域。
这时,Matlab便将该区域用黑色粗线圈起,并给出详细的说明。
图13.2.2FDATool的主菜单和工具条
FDATool的工作区大致上可以分为图13.2.1所示的5个区域。
区域1显示当前滤波器的信息。
区域2有5个可供选择的按钮,如图13.2.3所示。
区域3显示滤波器的模频特性容限图以及设计所得滤波器的模频特性、相频特性、群时延特性、零极点分布、滤波器系数等。
如果用户选用图13.2.3中的“滤波器设计”(设计不考虑量化效应的滤波器),则区域3所显示的内容由用户从主菜单的Analysis项的子菜单中选择。
图13.2.4示出这个子菜单。
图13.2.3工作选择按钮
图13.2.4“Analysis”项的子菜单
区域4的具体内容取决于用户所选的工作状态(图13.2.3)。
例如,用户若选滤波器设计,则这个区域的内容如图13.2.1所示。
这时,Matlab需要用户确定对滤波器的技术要求。
区域5有命令钮DesignFilter。
当这个命令钮的字样从灰色变为黑色时,按下它就进行滤波器设计。
下面举例说明用FDATool设计参考滤波器的方法。
13.3FIR滤波器设计
13.3.1设计低通滤波器
启动FDATool后,如果要创建新的滤波器,可用图13.3.1所示的New|Session命令得到图13.3.2所示的界面。
图中右上方显示低通滤波器的模频特性容限图。
用户可在图13.3.2的左方选择所需滤波器的型式(FIR、IIR、低通、高通、带通、…等)。
如果设计一个新的FIR低通数字滤波器,则应在FIR下拉菜单中,选择所需的算法,例如Equiripple(等波纹),并在输入设计要求和技术指标后,点击DesignFilter按钮
,就可以得到所需滤波器。
图13.3.1.主菜单选项File的子菜单
现在选用图13.3.2原有技术指标设计FIR等波纹低通滤波器。
所得滤波器的模频特性示于该图的上方。
图13.3.2低通FIR滤波器的模频特性
在图13.3.2所显示的特性曲线上,用户点击任何点,就会出现一个文本框,标出该点的横、纵坐标值,如图13.3.3所示。
这样的标志点可以设置多个。
以鼠标右键点击该框,从跳出的现场菜单,可改变框中的字体大小、框的位置等,也可以撤销该框。
图13.3.3带标志点的特性曲线
从图13.2.4所示Analysis项的子菜单可以做出选择,以显示滤波器的模频特性、相频特性、合在一起的模频特性和相频特性、群时延特性、冲激响应、阶跃响应、零极点分布和滤波系数,分别如图13.3.3~13.3.10所示。
此外,还可以显示噪声加载方法,这里不作介绍。
图13.3.4FIR低通滤波器的相频特性
图13.3.5FIR低通滤波器的模频特性和相频特性
图13.3.6FIR低通滤波器的群时延特性
图13.3.7FIR低通滤波器的冲激响应
图13.3.8FIR低通滤波器的阶跃响应
图13.3.9FIR低通滤波器的零极点分布
图13.3.10FIR低通滤波器的滤波系数
在图13.2.4中,若点击Analysis项子菜单中的FullViewAnalysis(全景分析)选项,则滤波器特性将在一个单独的图中显示出来,如图13.3.11所示。
图13.3.11低通FIR滤波器的模频特性
Analysis项子菜单中有AnalysisParameters选项。
点击这个选项,出现图13.3.12的对话框。
通过该对话框上方的列表框Range,可以选择频率坐标的范围:
和
。
例如,若选频率范围为
,则滤波器器的模频特性将如图13.3.13所示。
图13.3.12”AnalysisParameters”选项
对话框
图13.3.13频率范围为
时的模频特性
下面解释图13.3.6所示的群时延特性。
教材中,第2.8.6节介绍了群时延的概念。
群时延是相频特性的负斜率,
(2.8.32)
第9.2节又说明了数字滤波器的群时延用样点数来量度。
现在来看看图13.3.14所示的模频特性和相频特性。
由图(b)看出滤波器在通带内具有线性相位特性(线段ab)。
a点的坐标为(0,0)。
b点的横坐标为
,纵坐标为
。
若b点的横坐标用数字频率表示,则
,而用弧度表示时,b点的纵坐标为
。
由于采样频率为
,故根据群时延的定义,得群时延为
。
这与图13.3.6的结果是一致的。
图13.3.14FIR滤波器的模频特性和相频特性
(
,
)
13.3.2FIR低通滤波器的频率变换
按照上一小节所讲的方法设计好低通滤波器后,就可以通过变换获得另一个低通、高通、带通、带阻滤波器。
方法如下。
按下图13.2.3所示的滤波器变换钮
,得到图13.3.15a。
该面板适用于低通滤波器作为目标滤波器。
若目标滤波器是其他类型的滤波器,则可以通过面板右上角的Transformedfiltertype列表框来选择。
例如,如果选高通滤波器或带通滤波器作为目标滤波器,则面板右方将分别如图(b)和(c)所示。
面板左方和右方的文本框示出频率变换前后的对应频率,由用户确定。
图13.3.15频率变换面板
图13.3.16示出频率变换例子。
图(a)是原来设计好的低通滤波器,经变换,可分别得到图(b)和(c)所示的高通、带通滤波器。
图13.3.16FIR滤波器变换
13.4IIR滤波器设计
也可以用FDATool工具来设计IIR滤波器,其方法类似于FIR滤波器设计。
在设计滤波器时,利用FDATool界面左下角的FilterType面板,选择滤波器类型,如图13.4.1所示。
该图表示被设计的滤波器是IIR低通ChebyshevⅡ型滤波器。
设计好低通滤波器后,可以把它变换为其它类型的滤波器。
例如,按照FDATool原先已设定的指标设计好图13.4.2a所示的低通滤波器,则经过低通-带通和低通-带阻变换,便分别得到图(b)和(c)的带通和带阻滤波器。
图13.4.1滤波器类型面板
(a)低通滤波器(源滤波器)
(b)带通滤波器(目标滤波器)
(c)带阻通滤波器(目标滤波器)
图13.4.2IIR滤波器变换
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
图13.5.1程序M020808的运行结果
下面将这个滤波器导入FDATool。
方法如下。
在FDATool的菜单中,执行File|ImportFilter命令后,在界面的下方出现图13.5.2
的面板。
读者可以通过左边的FilterStructure列表框选用滤波器的结构。
对于本例,选直接Ⅰ型或Ⅱ型结构均可。
在标以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.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“对话框
在对话框的列表框ExportTo中,选导出目标是Workspace,导出对象是Coefficient(系数),导出的变量名是Num(Numerator,,分子多项式系数组)和Den(Denominator,分母多项式系数组)。
确认后,在Matlab的工作区得到变量Num和Den如图13.5.6所示。
图13.5.6在Matlab中的工作区可以访问变量Num和Den
在列表框ExportTo中,若选导出目标是Text-file,则在确认后,系统要求用户输入文件名和路径。
如果按照图13.5.7确定文件名及其路径,则在work目录中形成名为untitled.txt的文本文件,其内容如13.5.8所示。
图13.5.7系统提示用户输入文件名和路径
图13.5.8文件untitled.txt的内容
13.6用程序调用FVTool
FVTool是附属于FDATool的可视化工具。
它提供的界面就是图13.3.1所示的FullViewAnalysis界面。
在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=[00.40.51];%边界频率向量
a=[1100];%幅度向量
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工具
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号处理理论与实践 数字信号处理理论与实践讲座13 滤波器设计分析设计工具FDATool和滤波器可视化
链接地址:https://www.bdocx.com/doc/7657918.html