matlab的fda工具使用方法

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)将设计好的滤波器导出,可以采用两种方式Export the filter either as filter coefficients variables or as a dfilt or mfilt filter object variable。(详细说明参见Matlab Help中的Signal Processing Toolbox-> FDATool-> Exporting a Filter Design。

导出:File---Export弹出EXPORT对话框,选择“Export As”为“Objects”,“Varable Names”可以更改,默认为Hd。

3. (a)如果导出的是dfilt or mfilt filter object variable,则可以用[b, a] = tf(Hd)将dfilt filter object转换为转移函数形式,然后用    d=filter(b,a,x); 使用这个滤波器。其中:filter是默认函数,b、a是刚刚设计的传递函数参数,x是原始采集信号,d为滤波后的信号。 x=importdata(‘E:\matlab_work\xy\bb\O6.txt‘);

N=length(x); %取长度

fs=4000; %采样频率

t=(0:N-1)/fs; 输出Hd;

[b,a]=tf(Hd);%得到传递函数

d=filter(b,a,x); subplot(311); plot(t,x); title(‘原始信号‘);

xlabel(‘t‘);

ylabel(‘y‘);

grid on;

基于 fdatool工具的数字滤波器的matlab设计 

数字滤波器的matlab设计

1.1    fdatool界面设计

1.1.1   fdatool的介绍

fdatool(filter design & analysis tool)是matlab信号处理工具箱里专用的滤波器设计分析工具,matlab6.0以上的版本还专门增加了滤波器设计工具箱(filter design toolbox)。fdatool可以设计几乎所有的基本的常规滤波器,包括fir和iir的各种设计方法。它操作简单,方便灵活。

fdatool界面总共分两大部分,一部分是design filter,在界面的下半部,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。design filter部分主要分为:

filter type(滤波器类型)选项,包括lowpass(低通)、highpass(高通)、bandpass(带通)、bandstop(带阻)和特殊的fir滤波器。

design method(设计方法)选项,包括iir滤波器的butterworth(巴特沃思)法、chebyshev type i(切比雪夫i型)法、 chebyshev type ii(切比雪夫ii型)法、elliptic(椭圆滤波器)法和fir滤波器的equiripple法、least-squares(最小乘方)法、window(窗函数)法。

filter order(滤波器阶数)选项,定义滤波器的阶数,包括specify order(指定阶数)和minimum order(最小阶数)。在specify order中填入所要设计的滤波器的阶数(n阶滤波器,specify order=n-1),如果选择minimum order则matlab根据所选择的滤波器类型自动使用最小阶数。

frenquency specifications选项,可以详细定义频带的各参数,包括采样频率fs和频带的截止频率。它的具体选项由filter type选项和design method选项决定,例如bandpass(带通)滤波器需要定义fstop1(下阻带截止频率)、fpass1(通带下限截止频率)、fpass2(通带上限截止频率)、fstop2(上阻带截止频率),而lowpass(低通)滤波器只需要定义fstop1、fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。

magnitude specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义wstop1(频率fstop1处的幅值衰减)、wpass(通带范围内的幅值衰减)、wstop2(频率fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。

window specifications选项,当选取采用窗函数设计时,该选项可定义,它包含了各种窗函数。

1.1.2  带通滤波器设计实例

本文将以一个fir 滤波器的设计为例来说明如何使用matlab设计数字滤波器:在小电流接地系统中注入83.3hz的正弦信号,对其进行跟踪分析,要求设计一带通数字滤波器,滤除工频及整次谐波,以便在非常复杂的信号中分离出该注入信号。参数要求:96阶fir数字滤波器,采样频率1000hz,采用hamming窗函数设计。

本例中,首先在filter type中选择bandpass(带通滤波器);在design method选项中选择fir window(fir滤波器窗函数法),接着在window specifications选项中选取hamming;指定filter order项中的specify order=95;由于采用窗函数法设计,只要给出通带下限截止频率fc1和通带上限截止频率fc2,选取fc1=70hz,fc2=84hz。设置完以后点击design filter即可得到所设计的fir滤波器。通过菜单选项analysis可以在特性区看到所设计滤波器的幅频响应、相频响应、零极点配置和滤波器系数等各种特性。设计完成后将结果保存为1.fda文件。

在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型,

以便得到最佳效果。其它类型的fir滤波器和iir滤波器也都可以使用fdatool来设计。

图1 滤波器幅频和相频响应(特性区)

fig.1 magnitude response and phase response of the filter

1.2 程序设计法

在matlab中,对各种滤波器的设计都有相应的计算振幅响应的函数【3】,可以用来做滤波器的程序设计。

上例的带通滤波器可以用程序设计:

c=95;                         %定义滤波器阶数96阶

w1=2*pi*fc1/fs;

w2=2*pi*fc2/fs;                %参数转换,将模拟滤波器的技术指标转换为数字滤波器的技术指标

window=hamming(c+1);         %使用hamming窗函数

h=fir1(c,[w1/pi w2/pi],window);   %使用标准响应的加窗设计函数fir1

freqz(h,1,512);                 %数字滤波器频率响应

在matlab环境下运行该程序即可得到滤波器幅频相频响应曲线和滤波器系数h。篇幅所限,这里不再将源程序详细列出。

2   simulink仿真

本文通过调用simulink中的功能模块构成数字滤波器的仿真框图,在仿真过程中,可以双击各功能模块,随时改变参数,获得不同状态下的仿真结果。例如构造以基波为主的原始信号,,通过simulink环境下的digital filter design(数字滤波器设计)模块导入2.1.2中fdatool所设计的滤波器文件1.fda。仿真图和滤波效果图如图2所示。

图2 simulink仿真图及滤波效果图

fig.2 simulated connections and waveform

可以看到经过离散采样、数字滤波后分离出了83.3hz的频率分量(scope1)。之所以选取上面的叠加信号作为原始信号,是由于在实际工作中是要对已经经过差分滤波的信号进一步做带通滤波,信号的各分量基本同一致,可以反映实际的情况。本例设计的滤波器已在实际工作中应用,取得了不错的效果。

matlab的fda工具使用方法

时间: 2024-11-05 02:08:32

matlab的fda工具使用方法的相关文章

基于MATLAB的多项式数据拟合方法研究-毕业论文

摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式曲线拟合的基本理论,对多项式数据拟合原理进行了全方面的理论阐述,同时也阐述了曲线拟合的基本原理及多项式曲线拟合模型的建立.具体记录了多项式曲线拟合的具体步骤,在建立理论的基础上具体实现多项式曲线的MATLAB实现方法的研究,采用MATLAB R2016a的平台对测量的数据进行多项式数据拟合,介绍了M

Python 之 h5py 读取 matlab 中 .mat 文件 cell 方法浅析

采用 Python 读取 matlab 中 .mat文件的方法有很多,中外文的论坛上都不少,相关博文 可见:Python 从 mat 文件的读写和存储 到 h5py 文件包. 详址:http://blog.csdn.net/u013630349/article/details/47090299 但是,在读取matlab文件的时候,往往不是一层 .mat 就足以解决问题的,.mat 文件中可能是存放的 cell(100*200) 数据, cell(100*200)数据中又分为多个 cell .那么

页面静态化1---概念(Apache内置压力测试工具使用方法)

三个概念 ①静态网址: http://127.0.0.1/regis.html ②动态网址:在请求页面时可以动态的传一些值进去. http://127.0.0.1/regis.php?id=45&title=今天天气不错 ③伪静态网址: 伪静态仅仅是对动态网址的一个重写,伪静态网址不能让动态网址静态化,搜索引擎不会认为伪静态就是HTML文档,其次伪静态可取,但是应把重心放在取出冗余参数.规范URL,竟可能的避免重复也等等. 举例说明:http://v.youku.com/v_show/id_XM

反编译classes.dex的工具和方法

Dex是Android系统中可以在Dalvik虚拟机上直接运行的文件格式.java源代码经过ADT的复杂编译后转换成Dex文件,这是一个逐步优化的过程.Dex文件的指令码就是Dalvik虚拟机专有的一套指令集,专门为嵌入式系统优化过,相比标准java的.class文件,它体积小,运行效率高.纯手打! 反编译classes.dex的工具和方法 需要两个工具baksmali.jar和smali.jar,电脑需配置好java环境 Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalv

android反编译-反编译工具和方法

前言 开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式,解开其他的程序,来了解一些它的做法,同时啊,还可以借鉴别人的软件结构,资源文件,等等,哈哈.那我就来讲解一些关于反编译相关的知识,主要分三篇,第一篇介绍反编译的工具和方法,第二篇,介绍smali的语法,第三篇介绍如何防止反编译,主要通过这几篇文章,了解如何去做反编译和代码加固. 工具 apktools-目前最强大的反编译工具 轻松反编译apk,解析出资源文件,xml文件,生成sma

《高效团队开发工具与方法》

一直以来都在用所谓的敏捷开发,但是也只是简单的说,用什么用什么,从开始感觉不方便,到后来感觉习惯了,可没有考虑过到底能带来什么改变,所以最近在上下班的地铁上在看完了<高效团队开发工具与方法>,感觉有很大收获. 这本书从团队开讲,讲了团队开发中遇到的一些共性问题,接着对版本管理系统(VCS).缺陷管理系统(ITS/BTS).持续集成(CI).持续交付(CD).回归测试以及GitHub做了易懂的讲解. 版本管理系统:什么时候,谁,做了什么,所以是可追溯,可退回,就像一台摄影机,随时可对不满意的地方

Apache ab测试工具使用方法(无参、get传参、post传参)(转)

转自Apache ab测试工具使用方法(无参.get传参.post传参) Ab测试工具是apache自带的测试工具,具有简单易上手的特性,下面我总结一下我的使用方法,首先去官方下载apache程序包,我下的最新版本apache2.4.23,下载地址http://httpd.apache.org/download.cgi 我下载的windows版本,解压后放到某一目录即可. 1.呼出控制台 可以使用系统自带cmd或者Xshell工具均可 2.进入apache下的bin目录ab.exe就在此处 3.

Matlab read_grib.r4 安装新方法(转自:http://blog.sina.com.cn/s/blog_9f36648b010179s7.html)

最近,打算用Matlab处理些GRIB格式的文件,需要在Matlab中添加read_grib.m文件,其实相当于是添加一个工具箱.read_grib.m的下载见:http://www.renci.org/~bblanton/files/ReadGrib/ 但是,要read_grib.m真正起作用,需要“安装”和“编译”两步. 按照网页上的说法,所谓安装,就是把下载下来的read_grib.r4.tar文件解压,然后将解压后的文件夹路径写到“startup.m”文件中.但是,我的Matlab201

CentOS x64上Matlab R2015b的镜像安装方法与卸载

CentOS x64上Matlab R2015b的镜像安装方法与卸载 0. 原料 (1). CentOS_x64系统 CentOS 2.6.32-573.el6.x86_64 (2). Matlab  R2015b_glnxa64.iso,可以从百度网盘下载到:链接: http://pan.baidu.com/s/1dD9F8RJ 密码: t8zi 1. CentOS/Linux 安装MATLAB (0). Matlab的安装说明readme.txt,全文摘抄如下(可略过). I offer t