7.5 MATLAB 滤波器设计工具(FDATool)
FDATool(Filter Design and Analysis Tool)是 MATLAB 信号处理工具箱提供的一种综合、
简便的图形用户工具。通过该工具提供的先进可视化滤波器集成设计环境,用户可以方便地
设计几乎所有的常规滤波器,包括 FIR 和 IIR 的各种设计方法。本节主要介绍 FDATool 的
各项功能以及设计一款滤波器的关键步骤。
7.5.1 FDATool 快速入门
1. FDATool 启动
在 MATLAB 命令窗口下,执行“FDATool”命令,按“回车”调出 FDATool 用户图形
界面,如图 7-4-1 所示。
图 7-4-1 FDATool 启动界面
2. FDATool 菜单主要功能介绍
FDATool 窗口的命令菜单包括 File、Edit、Analysis、Targets、View,下面简要介绍这些
菜单的意义与功能。
(1) File 菜单
使用菜单【File/Export】可导出或保存设计结果。可以选择导出的是滤波器的系数向量
还是整个滤波器对象(把设计结果导出为滤波器对象 qfilt 时,系统应安装有滤波器设计工
具箱),可以选择把导出结果保存为 MATLAB 工作空间中的变量、文本文件或.MAT 文件。
使用菜单【File/Export to C Header File】可以把滤波器系数保存为 C 语言格式的头文件,
其中系数变量的数据类型可以选择。
使用菜单【File/Export to SPtool】可以把滤波器导出到信号处理工具 SPtool 中。
使用菜单【File】中与 Session 有关的子菜单,可以把整个设计保存为一个.fda 文件,
或调入一个已有的设计文件,继续进行设计。
(2) Edit 菜单
使用菜单【Edit/Convert】可转换当前滤波器的实现结构。所有滤波器都能在直接Ⅰ型、
直接Ⅱ型、转置直接Ⅰ型、转置直接Ⅱ型、状态空间模型和格形结构之间直接转换。此外,
系统安装滤波器设计工具箱后将有更多的结构形式可供转换。
使用菜单【Edit/Convert to Second—order Sections】或【Edit/Convert to Single Section】
实现滤波器级联结构与直接型结构之间的转换。
Analysis 菜单
使用【Analysis】菜单可以对滤波器设计规格及各项性能进行分析。设计规格包括滤波
器的阶次、通带频率、阻带频率、阻带、采样频率、通带衰减、阻带衰减等。
滤波器性能指标分析选项包括滤波器幅度响应、相位响应、群延迟响应、相位延迟、脉
冲响应、阶跃响应、零极点图等。FDATool 工具条上的各按钮与【Analysis】菜单中的选项
一一对应(如图 7-4-2 所示)。
图 7-4-2 FDATool 窗口界面快捷工具栏
(3) Targets 菜单
使用菜单【Targets/Generate M-file】菜单可以生成滤波器的 MATLAB 脚步文件。
使用菜单【Targets/Simulink Model】菜单可以建立 Simulink 模型。
使用菜单【Targets/XILINX Coefficient (.COE) File】可以生成滤波器的 XILINX 系数文
件。
使用菜单【Targets/Code Composer Studio (R) IDE】可以将滤波器输出到该代码生成生成
集成开发环境,并可以下载到 DSP 芯片。
(4) View 菜单
View 菜单包括的命令主要有指定滤波器名称,图形放大,全屏显示等。
3. FDATool 用户界面介绍
FDATool 的界面分上、下两个部分:上面部分显示有关滤波器的信息,下面部分用来指
定设计指标参数。
在 Response type 下可以选择滤波器类型,包括低通、高通、带通、带阻、微分器、
Hilbert 变换器、多带、任意频率响应、升余弦等(如果安装了滤波器设计工具箱,
则会有更多选项)。
在 Design Method 下可以选择设计 IIR 或 FIR 滤波器,每种滤波器又
可以选择不同的设计方法(例如,IIR 滤波器的设计方法包括巴特沃斯、切比雪夫、
椭圆滤波器、最大扁平、最小 P 阶范数等;FIR 滤波器的设计方法包括等波纹、最
小均方、窗函数、最大扁平、最小 P 阶范数等)。
在 Filter Order 下可以选择滤波器阶数,可以使用满足要求的最小滤波器阶数或直
接指定滤波器的阶数。
根据前面两步中选择的设计方法,Options 下会显示与该方法对应的可调节参数。
例如选择 FIR 等波纹设计法时,Options 面板的 Window 中可设置密度系数的大小。
选择滤波器的类型、设计方法和滤波器阶数时,相应的设计指标及其含义会在 Filter
Specifications 中用图形直观地显示出来以供设计参考。这些设计指标的具体参数需
要在 Frequency Specifications 和 Magnitude Specifications 下明确指定。
指定所有的设计指标后,单击 FDATool 最下面的 Design Filter 按钮即可完成滤波器设计。
(设计完成后 Design Filter 按钮变为不可用,除非再次修改了设计指标)。
7.5.2 滤波器设计
1.FIR 滤波器设计
FIR 滤波器设计时的参数设置主要包括响应类型、滤波器阶次、频率参数、幅度参数及
密度因子等其他选项。
(1) 响应类型
在滤波器设计与分析工具 FDATool 中 FIR 滤波器响应类型可以设置为低通、
高通、带阻、微分器、Hilbert 变换器、多带滤波器、任意幅度响应、升余弦、任意群延迟、
半带低通、半带高通、奈奎斯特、逆 sinc 低通或逆 sinc 高通滤波器。
(2) 设计方法
FIR 滤波器的设计方法可以选择为等波纹、最小均方、窗函数、最大扁平、最小 P 阶范
数或约束等波纹。
(3) 滤波器阶次
FIR 滤波器的阶次可以由用户指定,也可以选择最小滤波器阶次。
(4) 频率参数
频率参数设置包括频率单位、采样频率、带通频率、带阻频率等。其中采
样频率,带通频率,带阻频率可以由用户根据实际制定,而频率单位可以通过面板上的频率
单位下拉框进行选择,主要包括归一化频率(0-1)、Hz、kHz、MHz 和 GHz 五种选项。
(5) 幅度参数
设计低通、高通滤波器时,需要指定通带、阻带频率;设计带通滤波器时,需要指定阻
带 1、通带、阻带 2 的频率;设计带阻滤波器时,需要指定通带 1、阻带、通带 2 的频率。
例 1:
设计一个 FIR 低通滤波器,要求:通带衰减 1dB,阻带衰减 40dB,通带截止频率 550Hz,
带阻截止频率 650Hz,采样频率为 2000Hz。
利用 FDATool 设计滤波器基本步骤如下:
1) 在 MATLAB 命令窗口下输入“fdatool”命令,“回车”调出滤波器设计界面;
2) 在 Respone Type 中选择低通滤波器(Lowpass);
3) 在 Design Method 中选择 FIR,同时在滤波器设计方法下拉框中选择等波纹
(Equiripple)设计方法;
4) 在 Filter Order 中选择最小滤波器阶次(Minimum Order);
5) Options 中 Desity Factor 默认值为 20;
6) 在 Frequency Specification 中指定采样频率 Fs=2000Hz,带通频率 Fpass=650Hz,
带阻频率 Fstop=550Hz;
7) 在 Magnitude Specification 中指定 Apass=1dB,Astop=40dB;
8) 单击“Design Filter”即可完成滤波器设计。
9) 最后,使用菜单【File/Export】可导出或保存滤波器系数 h(n)。
图 7-4-3 设计好的 FIR 低通滤波器参数
7.5.3 滤波器性能分析
FDATool 不仅提供了滤波器设计工具,而且还提供了滤波器时域与频域的特性分析工
具。本节将对例 1 设计的滤波器的幅度响应、相位响应、群延迟响应、相位延迟、脉冲响应、
阶跃响应、零极点图、滤波器系数,以及滤波器信息等进行分析。
1. 幅度响应
单击 FDATool 窗口界面快捷工具栏的【Magnitude Response】按钮,或者选择菜单栏
【Analysis/Magnitude Response】选项,就可以得到图 7-4-4 所示该型滤波器的幅度响应曲线。
Magnitude Response (dB)
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frequency (kHz)
图 7-4-4 滤波器的幅度响应曲线
)
B
d
(
e
d
u
t
i
n
g
a
M
20
0
-20
-40
-60
-80
-100
0
2. 相位响应
单击 FDATool 窗口界面快捷工具栏的【Phase Response】按钮,或者选择菜单栏
【Analysis/Phase Response】选项,就可以得到图 7-4-5 所示该型滤波器的相位响应曲线。
)
s
e
e
r
g
e
d
(
e
s
a
h
P
0
-200
-400
-600
-800
-1000
-1200
-1400
-1600
-1800
0
Phase Response
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frequency (kHz)
图 7-4-5 滤波器的相位响应曲线
3. 幅度与相位响应
单击 FDATool 窗口界面快捷工具栏的【Magnitude and Phase Responses】按钮,或者选
择菜单栏【Analysis/Magnitude and Phase Response】选项,就可以得到图 7-4-6 所示该型滤
波器的幅度与相位响应曲线。
)
B
d
(
e
d
u
t
i
n
g
a
M
20
-4
-28
-52
-76
-100
0
4. 群延迟
Magnitude (dB) and Phase Responses
0
-360
-720
)
s
e
e
r
g
e
d
(
e
s
a
h
P
-1080
-1440
-1800
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frequency (kHz)
图 7-4-6 滤波器的幅度与相位响应曲线
单击 FDATool 窗口界面快捷工具栏的【Group Delay Response】按钮,或者选择菜单栏
【Analysis/ Group Delay Response】选项,就可以得到图 7-4-7 所示该型滤波器的群延迟曲线。
l
)
s
e
p
m
a
s
n
i
(
y
a
e
d
p
u
o
r
l
G
Group Delay
15
14.8
14.6
14.4
14.2
14
13.8
13.6
13.4
13.2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frequency (kHz)
图 7-4-7 滤波器的群延迟曲线
5. 相位延迟
单 击 FDATool 窗 口 界 面 快 捷 工 具 栏 的 【 Phase Delay 】 按 钮 , 或 者 选 择 菜 单 栏
【Analysis/Phase Delay】选项,就可以得到图 7-4-8 所示该型滤波器的相位延迟曲线。
Phase Delay
2.8
2.6
2.4
2.2
2
1.8
1.6
1.4
)
z
H
/
s
e
e
r
g
e
d
(
y
a
e
D
e
s
a
h
P
l
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frequency (kHz)
6. 冲击响应
图 7-4-8 滤波器的相位延迟曲线
单击 FDATool 窗口界面快捷工具栏的【Impulse Response】按钮,或者选择菜单栏
【Analysis/Impulse Response】选项,就可以得到图 7-4-9 所示该型滤波器的冲击响应曲线。
e
d
u
t
i
l
p
m
A
Impulse Response
0.6
0.5
0.4
0.3
0.2
0.1
0
-0.1
0
2
4
6
8
Time (mseconds)
10
12
14
图 7-4-9 滤波器的冲击响应曲线