基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成

一、摘要
  除了采用编程的方法实现滤波器之外,Mat l ab中自带工具箱FDATool 也能很方便快速的
实现滤波器的设计。另外FPGA、DS P等实现数字滤波器算法时,经常要用到滤波器系数,采
用FDATool 工具箱也能快速的得到滤波器系数。
二、实验平台
  Matlab7.1
三、实现步骤
3.1 滤波器指标
若需要设计一个16阶的FIR滤波器(h(0)=0),给定的参数如下:
(1) 低通滤波器
(2) 采样频率F
s 为48kHz ,滤波器F
c为10.8kHz
(3) 输入序列位宽为9位(最高位为符号位)
在此利用MATLAB来完成FIR滤波器系数的确定。
3.2 打开MATLAB的FDATool
MATLAB集成了一套功能强大的滤波器设计工具FDATool (Fi l t er Desi g n  & An al y si s Tool ),可
以完成多种滤波器的设计、分析和性能评估。
单击MATLAB主窗口下方的“St art ”按钮,如图B.1所示,选择菜单“Tool Box ” →“Fi l t er Desi g n ”
→“Fi l t er Desi g n  & An al y si s Tool (FDATool )”命令,打开FDATool ,另外,在MATLAB主命令窗口内键入“fdat ool ”,同样可打开FDATool 程序界面。

如图B.2所示。

3.3 选择Des ign Filter
FDATool 界面左下侧排列了一组工具按钮,其功能分别如下所述:
● 创建多速率滤波器(Cr eat e a Mul t i r at e Fi l t er )
● 滤波器转换(Tr ans For m Fi l t er )
● 设置量化参数(S et  Quant i zat i on Par amet er s)

● 实现模型(Real i ze Model )
● 零极点编辑器(Pol e-zer o Edi t or )
● 导入滤波器(Impor t  Fi l t er )
● 设计滤波器(Des i gn Fi l t er )
选择其中的按钮,进入设计滤波器界面,进行下列选择,如图B.3所示

● 滤波器类型(Fi l er  Type)为低通(Low Pass)
● 设计方法(Des i gn Met hod)为FIR,采用窗函数法(Wi ndow)
● 滤波器阶数(Fi l t er order)定制为15
● 窗口类型为Kai ser,Bet a为0.5
● F
s 为48kHz ,F
c为10.8kHz
最后单击Des i gn Fi l t er 图标,让MATLAB计算FIR滤波器系数并作相关分析。
其系统函数H(z)可用下式来表示:
H(z)=
显然上式可以写成:
H(z)=
即可以看成是一个15阶的FIR滤波器的输出结果经过了一个单位延时单元,所以在FDATool 中,
把它看成15阶FIR滤波器来计算参数。
因此,设置滤波器阶数时,要比要求的小1 。
3.4 滤波器分析
计算完FIR滤波器系数以后,往往需要对设计好的FIR滤波器进行相关的性能分析,以便了解该
滤波器是否满足设计要求。分析操作步骤如下:

选择FDATool 的菜单“An al y si s”→“Mag n i t u de Respon se”,启动幅频响应分析如图B.4所示,x
轴为频率,y 轴为幅度值(单位为dB)。

在图的左侧列出了当前滤波器的相关信息:
● 滤波器类型为Di rect  Form  FIR(直接I型FIR滤波器)
● 滤波器阶数为15
选择菜单“An al y si s”→“Ph ase Respon se”,启动相频响应分析,如图B.5所示。由该图可以看到
设计的FIR滤波器在通带内其相位响应为线性的,即该滤波器是一个线性相位的滤波器

图B.6显示了滤波器幅频特性与相频特性的比较,这可以通过菜单“An al y si s”→“Mag n i t u de an d
Ph ase Respon se”来启动分析。

选择菜单“An al y si s”→“Grou p Del ay  Respon se”,启动群时延分析。
FDATool 还提供了以下几种分析工具:
● 群时延响应分析。
● 冲激响应分析(Im pu l se Respon se),如图B.7所示。

● 阶跃响应分析(St ep Respon se),如图B.8所示。
● 零极点图分析(Pol e/Zero Pl ot),如图B.9所示。

求出的FIR滤波器的系数可以通过选择菜单“An al y si s”→“Fi l t er Coef f i ci en t s”来观察。如图B.10
所示,图中列出了FDATool 计算的15阶直接I型FIR滤波器的部分系数。

3.5 量化
可以看到,FDATool 计算出的值是一个有符号的小数,如果建立的FIR滤波器模型需要一个整
数作为滤波器系数,就必须进行量化,并对得到的系数进行归一化。为此,单击FDATool 左下
侧的工具按钮进行量化参数设置。量化参数有三种方式:双精度、单精度和定点。在使用定点
量化前,必须确保MATLAB中已经安装定点工具箱并有相应的授权。
3.6 导出滤波器系数
为导出设计好的滤波器系数,选择FDATool 菜单的“Fi l e”→“Ex port”命令,打开Ex port(导
出)对话框,如图B.11所示。

在该窗口中,选择导出到工作区(Workpl ace)。这时滤波器系数就存入到一个一维变量Nu m 中
了。不过这时Nu m 中的元素是以小数形式出现的:
Num=
Col umns  1 t hr ough 9
-0.0369  0.0109  0.0558  0.0054  -0.0873  -0.0484  0.1805  0.4133  0.4133
Col umns  10 t hr ough 16
0.1805  -0.0484  -0.0873  0.0054  0.0558  0.0109  -0.0369
  
由此,可以得到低通滤波器的系数。

时间: 2024-10-04 13:10:26

基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成的相关文章

基于MATLAB的GUI(Graphical User Interface)音频实时显示设计

摘要:本文章的设计主要讲基于matlab的gui音频实时显示设计,此次设计的gui相当于一个简洁的音乐播放器,界面只有”录音“和”播放“两个控件,哈哈,够简洁吧.通过”录音“按钮可以实现声音从电脑的声卡录入,并且实时显示录入声音的时域图形和频域图形:待录音结束,通过”播放“按钮可以播放刚录入的声音,并且一边播放一遍实时显示时域和频域图形.本设计的编码在matlab2013a上亲测,可以实现... 一.首先matlab的gui界面设计 打开matlab—>在命令行执行guide—>出现gui编辑

例说信号处理与滤波器设计

许多公式在转换时成了乱码,相应的word版本请点这里 目录 数字时代    2 数字信号处理的应用    3 频率——信号的指纹    5 卷积可以不卷    8 向量运算的启示    11 滤波器设计征程    16 最后一击——滤波的实现方法    22 纵览全局    27 数字时代 信号处理是对原始信号进行改变,以提取有用信息的过程,它是对信号进行变换.滤波.分析.综合等处理过程的统称.数字信号处理是将信号以数字方式表示并处理的理论和技术:模拟信号处理是指用模拟系统对模拟信号进行处理的方

MATLAB中文件的读写和数据的导入导出

http://blog.163.com/tawney_daylily/blog/static/13614643620111117853933/ 在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件.MATLAB使用多种格式打开和保存数据.本章将要介绍 MATLAB中文件的读写和数据的导入导出. 13.1 数据基本操作 本节介绍基本的数据操作,包括工作区的保存.导入和文件打开.13.1.1 文件的存储 MATLAB支持工作区的保存.用户可以将工作区或工作区中的变量以文件的形式保

保存MATLAB中间变量值的方法:保存为txt文件或者mat文件

1.直接保存为TXT文件: 具体的命令是:用save *.txt -ascii x (x为变量: *.txt为文件名,该文件存储于当前工作目录下,再打开就可以 打开后,数据有可能是以指数形式保存的.) 例子: a =[17 24 1 8 15;23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 ]: save afile.txt -ascii a afile.txt打开之后,是这样的: 1.7000000e+001 2.4000000e+00

【转帖】MATLAB中用FDATool设计滤波器及使用

MATLAB中用FDATool设计滤波器及使用 该文章讲述了MATLAB中用FDATool设计滤波器及使用. 1. 在Matlab中键入fdatool运行Filter Design and Analysis Tool.具体使用请参见Matlab Help中的Signal Processing Toolbox->FDATool. 2. 在fdatool工具中应该注意的几个问题:(a)Fstop(阻带截止频率)不能大于或等于采样频率Fs/2,这是由于数字滤波器设计的方式决定的.(b)将设计好的滤波器

基于MATLAB的IIR滤波器设计与实现

基于MATLAB的IIR滤波器设计与实现 IIR滤波器的设计主要有经典设计法.直接设计法和最大平滑滤波器设计法三种方法. 1.经典设计法是基于模拟滤波器的变换原理,首先根据滤波器的技术指标设计出相应的模拟滤波器,然后再离散化为满足给定技术指标的数字滤波器.对应的工具函数由完全设计函数——butter.cheby1.cheby2.ellip.besself:阶数估计函数——buttord.cheb1ord.cheb2ord.ellipord:低通模拟原型滤波器函数——buttap.cheb1ap.

matlab中使用fuzzy工具箱

4步教你学会使用matlab模糊控制工具箱 Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化.模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便.下面将根据模糊控制器设计步骤,一步步利用Matlab工具箱设计模糊控制器. 首先我们在Matlab的命令窗口(command window)中输入fuzzy,回车就会出来这样一个窗口. 下面我们都是在这样一个窗口中进行模糊控制器的设计. 1.确定模糊控制

Python在信号与系统中的应用(1)——Hilbert变换,Hilbert在单边带包络检波的应用,FIR_LPF滤波器设计,还有逼格高高的FM(PM)调制

多谢董老师,董老师是个好老师! 心情久久不能平静,主要是高频这门课的分析方法实在是让我难以理解,公式也背不过,还是放放吧. 最近厌恶了Matlab臃肿的体积和频繁的读写对我的Mac的损害,所以学习了一下Python这一轻量级的脚本,发现"Python自诞生那天就跟科学计算分不开"这个事实.无聊,写写心得. 配置环境什么的还是弄了几个晚上的.在Mac下用PyCharm还是很好滴,装上NumPy,SciPy等等一众免费的,很不错的Python包,就可以灰了! 1.Hilbert变换及其在单

Matconvnet工具箱在Matlab中的安装

安装 编译前确保Matab已绑定C++编译器,否则使用命令>>mex -setup 进行绑定编译器. 将Matalb的工作路径切换到Matconvnet目录下,../matconvnet-1.0-beta23. 编译工具箱,>>run matlab/vl_compilenn ; 安装工具箱,>>run matlab/vl_setupnn ; 测试 在Matlab工作空间输入一下代码,并运行:成功显示图片说明安装成功. % Download a pre-trained C