1、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 所示。
2、图 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】 可
3、以把滤波器系数保存为 C 语言格式的头文件,其中系数变量的数据类型可以选择。 使用菜单【 File/Export to SPtool】可以把滤波器导出到信号处理工具 SPtool 中。 使用菜单【 File】中与 Session 有关的子菜单,可以把整个设计保存为一个 fda 文件,或调入一个已有的设计文件,继续进行设计。 (2) Edit 菜单 使用菜单【 Edit/Convert】可转换当前滤波器的实现结构。所有滤波器都能在直接型、直接型、转置直接型、转置直接型、状态空间模型和格形结构之间直接转换。此外,系统安装滤波器设计工具箱后将有更多的结构形式可供转换。 使用菜单【 Edit/Conv
4、ert to Secondorder Sections】或【 Edit/Convert to Single Section】实现滤波器级联结构与直接型结构之间的转换。 Analysis 菜单 使用【 Analysis】菜单可以对滤波器设计规格及各项性能进行分析。设计规格包括滤波器的阶次、通带频率、阻带频率、阻带、采样频率、通带衰减、阻带衰减等。 滤波器性能指标分析选项包括滤波器幅度响应、相位响应、群延迟响应、相位延迟、脉冲响应、阶跃响应、零极点图等。 FDATool 工具条上的各按钮与【 Analysis】菜单中的选项一一对应(如图 7-4-2 所示) 。 图 7-4-2 FDATool 窗口
5、界面快捷工具栏 (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 菜单包括的命令主要
6、有指定滤波器名称,图形放大,全屏显示等。 3. FDATool 用户界面介绍 FDATool 的界面分上、下两个部分:上面部分显示有关滤波器的信息,下面部分用来指定设计指标参数。 在 Response type 下可以选择滤波器类型,包括低通、高通、带通、带阻、微分器、Hilbert 变换器、多带、任意频率响应、升余弦等(如果安装了滤波器设计工具箱,则会有更多选项) 。 在 Design Method 下可以选择设计 IIR 或 FIR 滤波器,每种滤波器又 可以选择不同的设计方法(例如, IIR 滤波器的设计方法包括巴特沃斯、切比雪夫、椭圆滤波器、最大扁平、最小 P 阶范数等; FIR 滤波
7、器的设计方法包括等波纹、最小均方、窗函数、最大扁平、最小 P 阶范数等)。 在 Filter Order 下可以选择滤波器阶数,可以使用满足要求的最小滤波器阶数或直接指定滤波器的阶数。 根据前面两步中选择的设计方法, Options 下会显示与该方法对应的可调节参数。例如选择 FIR 等波纹设计法时, Options 面板的 Window 中可设置密度系数的大小。 选择滤波器的类型、 设计方法和滤波器阶数时, 相应的设计指标及其含义会在 Filter Specifications 中用图形直观地显示出来以供设计参考。 这些设计指标的具体参数需要在 Frequency Specification
8、s 和 Magnitude Specifications 下明确指定。 指定所有的设计指标后, 单击 FDATool最下面的 Design Filter按钮即可完成滤波器设计。(设计完成后 Design Filter 按钮变为不可用,除非再次修改了设计指标)。 7.5.2 滤波器设计 1 FIR 滤波器设计 FIR 滤波器设计时的参数设置主要包括响应类型、滤波器阶次、频率参数、幅度参数及密度因子等其他选项。 (1) 响应类型 在滤波器设计与分析工具 FDATool 中 FIR 滤波器响应类型可以设置为低通、 高通、带阻、微分器、 Hilbert 变换器、多带滤波器、任意幅度响应、升余弦、任意群
9、延迟、半带低通、半带高通、奈奎斯特、逆 sinc 低通或逆 sinc 高通滤波器。 (2) 设计方法 FIR 滤波器的设计方法可以选择为等波纹、最小均方、窗函数、最大扁平、最小 P 阶范数或约束等波纹。 (3) 滤波器阶次 FIR 滤波器的阶次可以由用户指定,也可以选择最小滤波器阶次。 (4) 频率参数 频率参数设置包括频率单位、采样频率、带通频率、带阻频率等。其中采 样频率,带通频率,带阻频率可以由用户根据实际制定,而频率单位可以通过面板上的频率单位下拉框进行选择,主要包括归一化频率( 0-1) 、 Hz、 kHz、 MHz 和 GHz 五种选项。 (5) 幅度参数 设计低通、高通滤波器时,
10、需要指定通带、阻带频率;设计带通滤波器时,需要指定阻带 1、通带、阻带 2 的频率;设计带阻滤波器时,需要指定通带 1、阻带、通带 2 的频率。 例 1: 设计一个 FIR 低通滤波器, 要求: 通带衰减 1dB, 阻带衰减 40dB, 通带截止频率 550Hz,带阻截止频率 650Hz,采样频率为 2000Hz。 利用 FDATool 设计滤波器基本步骤如下: 1) 在 MATLAB 命令窗口下输入“ fdatool”命令, “回车”调出滤波器设计界面; 2) 在 Respone Type 中选择低通滤波器( Lowpass) ; 3) 在 Design Method 中选择 FIR,同时在
11、滤波器设计方法下拉框中选择等波纹( 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) 最后,使用菜单【
12、File/Export】可导出或保存滤波器系数 h(n)。 图 7-4-3 设计好的 FIR 低通滤波器参数 7.5.3 滤波器性能分析 FDATool 不仅提供了滤波器设计工具,而且还提供了滤波器时域与频域的特性分析工具。本节将对例 1 设计的滤波器的幅度响应、相位响应、群延迟响应、相位延迟、脉冲响应、阶跃响应、零极点图、滤波器系数,以及滤波器信息等进行分析。 1. 幅度响应 单击 FDATool 窗口界面快捷工具栏的【 Magnitude Response】按钮,或者选择菜单栏【 Analysis/Magnitude Response】 选项, 就可以得到图 7-4-4 所示该型滤波器的幅
13、度响应曲线。 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9-100-80-60-40-20020Frequency (kHz)Magnitude (dB)Magnitude Response (dB)图 7-4-4 滤波器的幅度响应曲线 2. 相位响应 单击 FDATool 窗口界面快捷工具栏的【 Phase Response】按钮,或者选择菜单栏【 Analysis/Phase Response】选项,就可以得到图 7-4-5 所示该型滤波器的相位响应曲线。 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9-1800-1600-1400
14、-1200-1000-800-600-400-2000Frequency (kHz)Phase (degrees)Phase Response图 7-4-5 滤波器的相位响应曲线 3. 幅度与相位响应 单击 FDATool 窗口界面快捷工具栏的【 Magnitude and Phase Responses】按钮,或者选择菜单栏【 Analysis/Magnitude and Phase Response】选项,就可以得到图 7-4-6 所示该型滤波器的幅度与相位响应曲线。 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9-100-76-52-28-420Frequen
15、cy (kHz)Magnitude (dB)Magnitude (dB) and Phase Responses-1800-1440-1080-720-3600Phase (degrees)图 7-4-6 滤波器的幅度与相位响应曲线 4. 群延迟 单击 FDATool 窗口界面快捷工具栏的【 Group Delay Response】按钮,或者选择菜单栏【 Analysis/ Group Delay Response】 选项, 就可以得到图 7-4-7 所示该型滤波器的群延迟曲线。 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.913.213.413.613.8141
16、4.214.414.614.815Frequency (kHz)Group delay(in samples)Group Delay图 7-4-7 滤波器的群延迟曲线 5. 相位延迟 单击 FDATool 窗口界面快捷工具栏的【 Phase Delay】按钮,或者选择菜单栏【 Analysis/Phase Delay】选项,就可以得到图 7-4-8 所示该型滤波器的相位延迟曲线。 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.91.41.61.822.22.42.62.8Frequency (kHz)Phase Delay(degrees/Hz)Phase Delay
17、图 7-4-8 滤波器的相位延迟曲线 6. 冲击响应 单击 FDATool 窗口界面快捷工具栏的【 Impulse Response】按钮,或者选择菜单栏【 Analysis/Impulse Response】选项,就可以得到图 7-4-9 所示该型滤波器的冲击响应曲线。 0 2 4 6 8 10 12 14-0.100.10.20.30.40.50.6Time (mseconds)Impulse ResponseAmplitude图 7-4-9 滤波器的冲击响应曲线 7. 阶跃响应 单击 FDATool 窗口界面快捷工具栏的【 Step Response】按钮,或者选择菜单栏【 Analys
18、is/Step Response】选项,就可以得到图 7-4-10 所示该型滤波器的阶跃响应曲线。 0 2 4 6 8 10 12 14-0.200.20.40.60.811.2Time (mseconds)Step ResponseAmplitude图 7-4-10 滤波器的阶跃响应曲线 8. 零极点图 单击 FDATool 窗口界面快捷工具栏的 【 Pole/Zero Plot】 按钮, 或者选择菜单栏 【 Analysis/ Pole/Zero Plot】选项,就可以得到图 7-4-11 所示该型滤波器的零极点图。 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1
19、 1.5-1.5-1-0.500.511.528Real PartImaginaryPartPole/Zero Plot图 7-4-11 滤波器的零极点图 9. 滤波器系数 单击 FDATool 窗口界面快捷工具栏的【 Filter Coefficient】按钮,或者选择菜单栏【 Analysis/ Filter Coefficient】选项,就可以得到图 7-4-12 所示该型滤波器的系数。 图 7-4-12 滤波器的系数 10. 滤波器信息 单击 FDATool 窗口界面快捷工具栏的【 Filter Information】按钮,或者选择菜单栏【 Analysis/ Filter Info
20、rmation】选项,就可以得到图 7-4-13 所示该型滤波器的系数。 图 7-4-13 滤波器的信息 11. 滤波器对信号进行处理 假设有一信号 x=sin(2*pi*400*t)+ sin(2*pi*600*t)+ sin(2*pi*800*t), 用我们设计好的 FIR低通滤波器滤掉其高频部分,输出结果如图 7-4-14 所示。 200 400 600 800-100102030405060708090三个正弦信号的叠加频率(Hz)幅度(dB)200 400 600 800-100102030405060708090滤波后的信号频率(Hz)幅度(dB)图 7-4-14 用滤波器对信号进
21、行处理 从图 7-4-14中的输出结果可以看出, 在信号通过理想 FIR低通滤波器后, 通带内的 400Hz信号没有衰减;位于阻带内的 800Hz 信号,正如我们预先设计的,衰减了 40dB;位于阻带内的 600Hz 信号衰减了大约 10dB。 7.5.4 滤波器导入 当需要时, 单击 FDATool 窗口界面的垂直快捷工具栏中的 【 Import Filter from Workspace】按钮,就可将 MATLAB 工作空间中的滤波器导入到 FDATool 当前窗口,如图 7-4-15 所示,为参数设置界面。 滤波器导入步骤如下: 1) 切换到滤波器的导入界面; 2) 确定滤波器的结构类型
22、; 3) 确定是否将导入的滤波器作为二次分式结构的滤波器; 4) 确定相应滤波器的系统函数系数; 5) 确定采样频率及其单位; 6) 导入滤波器。 图 7-4-15 从 MATLAB 工作空间导入滤波器时的参数设置 7.5.5 滤波器量化 实际应用中的滤波器都是理想滤波器经过量化得到的,单击 FDATool 窗口界面垂直快捷工具栏的【 Set Quantization Parameters】按钮显示滤波器量化分析界面如图 7-4-6 所示。滤波器算法 (Filter Arithmetic)默认双精度浮点格式 (Double Precision Floating point)。这时不需要设置量化
23、参数。按照前面的步骤设计的滤波器(系数未量化)称为参考滤波器( Reference Filter) ,系数量化后的滤波器称为量化滤波器( Quantized Filter) 。 图 7-4-16 滤波器量化参数设置 选择 Filter arithmetic 为定点制( Fixed-point) ,进行 8 位量化,滤波器量化后的幅度与相位响应曲线如图 7-4-17 所示。其中实线部分为量化后的曲线,虚线部分为量化前的曲线。从图中可以看出,量化前后通带部分几乎没有变化,但阻带部分的衰减减小了。 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9-140-108-76-44
24、-1220Frequency (kHz)Magnitude (dB)Magnitude (dB) and Phase Responses-1800-1440-1080-720-3600Phase (degrees)7-4-17 滤波器量化后的幅度与相位响应曲线 如图 7-4-18 所示,例 1 中的信号经过 8 位量化后的滤波器,通带和过渡带内的信号衰减情况没有明显的变化,只有位于阻带内的信号由原来衰减 40dB 减小到 33dB 左右,二者相差了 7DB。 300 400 500 600 700 8000102030405060708090频率(Hz)幅度(dB)量化前后滤波器性能分析(1)滤波器量化前滤波器量化后700 750 800 850 900102030405060X: 800Y: 50.32频率(Hz)幅度(dB)量化前后滤波器性能分析(2)X: 800Y: 43.5滤波器量化前滤波器量化后7-4-18 量化后的滤波器对信号进行处理