FDATool(Filter Design and Analysis Tool)是MATLAB信号处理工具箱(Signal Processing Toolbox)中一个强有力的进行快速设计与分析滤波器的图形用户界面工具。FDATool可以设计包括FIR和IIR的几乎所有常规滤波器。

FDATool也提供对滤波器将进行分析的工具,例如幅频和相频响应曲线和极零点图等。FDATool可以喝MATLAB产品族的其他产品无缝结合以开发综合项目。

FDATool用户界面

FDATool主窗口分为菜单栏、工具栏及GUI面板三大部分。其中GUI部分包括三个主要区域:左上部分为当前滤波器信息区域,右上部分为滤波器显示区域,下半部分为设计面板区域。

2、SPTool用户界面

SPTool主窗口包含三个列表框:Signals列表框、Filter列表框和Spectra列表框,主窗口下部的按钮分别对应SPTool的四个信号处理功能模块。

1.滤波器的概念

滤波是信号处理中的一种最基本而又重要的技术,利用滤波,可以从复杂的信号中提取所需的信号,抑制不需要的信号。所谓滤波器,就是对已知激励,可以在时间域或频域产生规定响应的网络,要使滤波器能够提取有用信号,要求滤波器对信号与噪声有不同的增益,对有用信号尽量无失真放大,而对噪声尽量衰减。

2.滤波器的定义

所谓滤波器,就是对已知激励,可以在时间域或频域产生规定响应的网络,要使滤波器能够提取有用信号,要求滤波器对信号与噪声有不同的增益,对有用信号尽量无失真放大,而对噪声尽量衰减。

3.滤波器的分类

滤波器一般分两类:模拟滤波器和数字滤波器;从功能上分为低通滤波器(LPF),高通滤波器(HPF),带通滤波器(BPF),带阻滤波器(BSF);从实现方法上可分为IIR滤波器和FIR滤波器。

3.1数字滤波器的概述

数字滤波器是近几十年迅速发展起来的一门新技术和学科,它在理论和实践中都有巨大的意义。数字滤波器理论在网络与滤波理论中占有越来越重要的地位。数字滤波器是数字信号处理中的基础部分,与模拟滤波器相比具有的优点有:精度高、可靠性高、灵活性高、便于大规模集成及多位过滤等。

数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置。数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。

数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波器输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即1/2抽样频率点呈镜像对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。

  数字滤波器有低通、高通、带通、带阻和全通等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器,以及FIR滤波器。

由于IIR数字滤波器能够保留一些模拟滤波器的优良特性,因此应用很广。但是这些特性是以牺牲线性相位频率特性为代价的,即用Butterworth、chelbchev和椭圆法设计的数字滤波器逼近理想的滤波器的幅度频率特性,得到的滤波器往往是非线性的。在许多电子系统中,对幅度频率特性和线性相位特性都有较高的要求,所以IIR滤波器在这些系统中往往难以胜任。有限长单位冲激响应(FIR)数字滤波器具有以下优良的特点:

(1)可在设计任意幅度频率特性滤波器的同时,保证精确、严格的线性相位特性。

(2) FIR数字滤波器的单位冲激响应h(n)是有限长的,可以用一个固定的系统来实现,因而FIR数字滤波器可以做成因果稳定系统。

(3)允许设计多通带(多阻带)系统。

根据FIR滤波器的幅频特性,可以将其分为以下4种情况,其中h(n)为FIR滤波器的冲激响应:

1. h(n)为偶对称,且N为奇数(Ⅰ型滤波器)

Ⅰ型滤波器的幅频函数可以通过例程4-1的MATLAB语言来实现。

function [Hr,w,a,L]=hr_type1(h);

%计算所设计的1型滤波器的振幅响应

%Hr=振幅响应

%a=1型滤波器的系数

%L=Hr的阶次

%h=1型滤波器的单位冲击响应

M=length(h);

L=(M-1)/2;

a=[h(L+1) 2*h(L:-1:1)];

n=[0:1:L];

w=[0:1:500]'*2*pi/500;

Hr=cos(w*n)*a';

2. h(n)为偶对称,且N为偶数(Ⅱ型滤波器)

·Ⅱ型滤波器的幅频函数可以通过例程4-2的MATLAB语言来实现。

··例程4-2  Ⅱ型滤波器的幅频函数

function [Hr,w,b,L]=hr_type2(h);

%计算所设计的2型滤波器的振幅响应

%Hr=振幅响应

%b=2型滤波器的系数

%L=Hr的阶次

%h=2型滤波器的单位冲击响应

M=length(h);

L=M/2;

b= 2*h(L:-1:1);

n=[1:1:L];

n=n-0.5;

w=[0:1:500]’*2*pi/500;

Hr=cos(w*n)*b';

3. h(n)为奇对称,且N为奇数(Ⅲ型滤波器)

Ⅲ型滤波器的幅频函数可以通过例程4-3的MATLAB语言来实现。

例程4-3  Ⅲ型滤波器的幅频函数

function [Hr,w,c,L]=hr_type3(h);

%计算所设计的3型滤波器的振幅响应

%Hr=振幅响应

%b=3型滤波器的系数

%L=Hr的阶次

%h=3型滤波器的单位冲击响应

M=length(h);

L=(M-1)/2;

c= [2*h(L+1:-1:1)];

n=[0:1:L];

w=[0:1:500]’*2*pi/500;

Hr=sin(w*n)*c';

4.h(n)为奇对称,且N为偶数(IV型滤波器)

IV 型滤波器的幅频函数可以通过例程4-4的MATLAB语言来实现。

例程4-4 IV 型滤波器的幅频函数

function [Hr,w,d,L]=hr_type4(h);

%计算所设计的4型滤波器的振幅响应

%Hr=振幅响应

%b=4型滤波器的系数

%L=Hr的阶次

%h=4型滤波器的单位冲击响应

M=length(h);

L=M/2;

c= 2*[h(L:-1:1)];

n=[1:1:L];

n=n-0.5

w=[0:1:500]’*2*pi/500;

Hr=sin(w*n)*d';

针对FIR数字滤波器的结构特点,目前主要采用窗函数法、频率采样法和最优化法等三种方法设计FIR数字滤波器。

4.2窗函数设计法设计FIR数字滤波器

窗函数法就是设计FIR数字滤波器最简单的方法。它在设计FIR数字滤波器中有很重要的作用,正确地选择窗函数可以提高设计数字滤波器的性能,或者在满足设计要求的情况下,减小FIR数字滤波器的阶次。常用的窗函数有以下几种:矩形窗(Rectangular window)、三角窗(Triangular window)、汉宁窗(Hanning window)、海明窗(Hamming window)、布拉克曼窗(Blackman window)切比雪夫窗(Chebyshev window)、巴特利特窗(Bartlett window)及凯塞窗(Kaiser window)。

在MATLAB中,实现矩形窗的函数为boxcar和rectwin,其调用格式如下:

w=boxcar(N)

w=rectwin(N)

其中N是窗函数的长度,返回值w是一个N阶的向量,它的元素由窗函数的值组成。实际上,w=boxcar(N)等价于w=ones(N,1)。

在MATLAB中实现三角窗的函数为triang,调用格式为:

w=triang(N)

在MATLAB中实现三角窗的函数为hann,调用格式为:

w=hann(N)

w=hann(N,’sflag’)

Hann函数中的参数sflag为采样方式,其值可取symmetric(默认值)或periodic。当sflag=symmetric时,为对称采样;当sflag=periodic时,为周期采样,此时hann函数计算N+1个点的窗,但是仅返回前N个点。

在MATLAB中,实现海明窗的函数为hamming,调用格式分别如下:

w=hamming(N)

w=hamming(N,’sflag’)

其中sflag的用法同上。

在MATLAB中,实现布拉克曼窗的函数为blackman,调用格式如下:

w=blackman(N)

w=blackman(N,’sflag’)

在MATLAB中,实现切比雪夫窗的函数为chebwin,调用格式如下:

w=chebwin(N,r)

其中r表示切比雪夫窗函数的傅里叶变换旁瓣幅度比主瓣低rdB(其默认值为100dB),且旁瓣是等波纹的。

在MATLAB中,实现巴特里特窗的函数为bartlett,调用格式为:

w=bartlett(N)

在MATLAB中,实现凯塞窗的函数为kaiser,调用格式为:

w=kaiser(N, beta)

其中beta为窗函数的参数。

各种窗函数的性能比较可见下表

窗函数

第一旁瓣相对于主瓣衰减/dB

主瓣宽

阻带最小衰减/dB

矩形窗

-13

4/N

21

三角窗

-25

8/N

25

汉宁窗

-31

8/N

44

海明窗

-41

8/N

53

布拉克曼窗

-57

12/N

74

凯塞窗

可调

可调

可调

切比雪夫窗

可调

可调

可调

下面用一个实例来设计FIR数字滤波器。

根据下列技术指标,设计一个FIR数字低通滤波器:

=800Hz, =1000Hz, =0.5dB, =40dB

选择一个适当的窗函数,确定单位冲激响应,绘出所设计的滤波器的幅度响应。

根据窗函数最小阻带衰减的特性表,可采用海明窗和布拉克曼窗提供大于50Dbde 衰减。本设计采用海明窗,其过渡带为6.6/N,因此具有较小的阶次。

clear all;

Wp=0.2*pi;

Ws=0.4*pi;

tr_width=Ws-Wp;                    %过渡带宽度

N=ceil(6.6*pi/tr_width)+1          %滤波器长度

n=0:1:N-1;

Wc=(Ws+Wp)/2;                      %理想低通滤波器的截止频率

hd=ideal_lp1(Wc,N);                %理想低通滤波器的单位冲激响应

w_ham=(hamming(N))';               %海明窗

h=hd.*w_ham;                       %截取得到实际的单位冲激响应

[db,mag,pha,w]=freqz_m2(h,[1]);    %计算实际滤波器的幅度响应

delta_w=2*pi/1000;

Ap=-(min(db(1;1;Wp/delta_w+1)))    %实际通带波纹

As=-round(max(db(Ws/delta_w+1;1;501))) %实际阻带波纹

subplot(221)

stem(n,hd)

title('理想单位脉冲响应hd(n)')

subplot(222)

stem(n,w_ham)

title('海明窗w(n)')

subplot(223)

stem(n,h)

title('实际单位脉冲响应hd(n)')

subplot(224)

plot(w/pi,db)

title('幅度响应(dB)')

axis([0,1,-100,10])

%---------------------------------------

function[db,mag,pha,w]=freqz_m2(b,a)

%滤波器的幅度响应(相对、绝对)、相位响应

%db:相对幅值响应

%mag:绝对幅值响应

%pha:相位响应

%w 采样频率

%b 系统函数H(z)的分子项(对FIR,b=h)

%a 系统函数H(z)的分母项(对FIR,a=1)

[H,w]=freqz(b,a,1000,’whole’);

H=(H(1;1;501))’;

w=(w(1:1:501))’;

mag=abs(H);

db=20*log10((mag+eps)/max(mag));

pha=angle(H);

运行结果:N=

34

Ap=

0.0447

As=

52

由此结果可知,所设计的低通滤波器为Ⅱ型滤波器,它的通带纹波和阻带纹波均满足设计要求。

窗函数设计法设计FIR数字滤波器——FDATool相关推荐

  1. 基于等波纹最佳逼近法的FIR数字滤波器实现matlab仿真

    目录 一.理论基础 二.案例背景 三.MATLAB核心代码 四.仿真结论分析 一.理论基础 等波纹最佳逼近法,其本质是一种优化算法,该方法有效克服了基于窗函数的FIR滤波器设计方法以及基于频率抽样的F ...

  2. 正交表设计法设计测试用例

    注:接口测试的时候,遇到入参很多的接口,同时也要全面覆盖参数的不同情况,由此引入了正交表设计测试用例的方法. 概念:正交试验设计是研究多因素多水平的一种设计方法,它是根据正交性从全面试验中挑选出部分有 ...

  3. matlab 滤波窗函数,FIR滤波器窗函数设计法详细步骤以及Matlab代码

    采用窗函数法设计理想低通,高通滤波器,参考北京交通大学陈后金主编的[数字信号处理]5.2节 窗函数法设计线性相位FIR数字滤波器P164,和P188. 设计步骤如下: 1) 确定滤波器类型,不同的FI ...

  4. FIR数字滤波器的设计及应用——MATLAB

    一.实验目的 1.掌握FIR数字滤波器设计的一般方法和步骤: 2.了解各种窗函数的性能 3.学会利用窗函数法设计FIR数字滤波器: 4.掌握FIR数字滤波器的实现方法 5.学会用所设计的滤波器对实际信 ...

  5. MATLAB设计FIR数字滤波器GUI界面

    MATLAB设计FIR数字滤波器GUI界面 目录 MATLAB设计FIR数字滤波器GUI界面 前言 一.GUI界面设计 1.创建工程 2.GUI界面设计 二.代码讲解 1.参数输入 2.单选按钮 3. ...

  6. c语言 汉宁窗,汉宁窗设计线性相位FIR低通数字滤波器.docx

    MACROBUTTON MTEditEquationSection2 SEQ MTEqn \r \h \* MERGEFORMAT SEQ MTSec \r 1 \h \* MERGEFORMAT S ...

  7. 场景法设计测试用例atm_软件测试零基础入门:常用八大测试用例设计方法,含案例...

    测试用例的十大特点 测试用例编号.测试项.测试标题.用例属性.重要级别(高中低).预置条件.测试输入.操作步骤.预期结果.实际结果: 测试用例的编写原则:100%的覆盖需求文档,如需求变更时,测试用例 ...

  8. FIR数字滤波器设计_窗函数法

    1.前言 在数字信号处理中 ,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的, 因此数字滤波器占有极其重要的地位 .数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入与 ...

  9. Matlab | 数字信号处理:用窗函数法设计FIR数字滤波器

    ========================================== 博主github:https://github.com/MichaelBeechan 博主CSDN:https:/ ...

  10. MATLAB窗函数法设计FIR 数字滤波器

    一.实验目的 1. 熟悉线性相位 FIR 数字滤波器特性. 2. 了解各种窗函数对滤波特性的影响. 3. 掌握用窗函数法设计 FIR 数字滤波器的原理.方法及计算机编程. 此时的h(n) 是有限长的, ...

最新文章

  1. python中正确的输入语句x、y=input_语句x=input()执行时,如果从键盘输入12并按回车键,则x的值是( )。_学小易找答案...
  2. Visual Studio 2013开发 mini-filter driver step by step 获取文件读写内容(6)
  3. shp文件导入数据库
  4. 用aspiration造句_aspiration
  5. 把exe里面的资源通通取出来
  6. Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.
  7. 排序算法lowb三人组-插入排序
  8. 曝微软将发布基于 Excel 的低代码语言:Power Fx
  9. 2019最有意思的五大 ZDI 案例之:通过调色板索引实现 Win32k.sys 本地提权漏洞 (下)...
  10. python地图图表和3d_Python地图可视化三大秘密武器
  11. 同一域名对应多个IP时,PHP获取远程网页内容的函数
  12. Idea在debug时打上断点没有用 Skipped breakpoint at ... because it happened inside debugger evaluation
  13. php如何从获取数据,如何从​​获取值并保存到php的数据库
  14. Hadoop学习心得一
  15. jsp九大内置对象的作用及用法
  16. eviews建立时间序列模型_如何用eviews分析时间序列(全面).pdf
  17. 微信开发者工具使用bug
  18. 关于印发国家测绘地理信息局2013年立法工作计划的通知
  19. Hadoop基本原理
  20. 【C语言练习——打印上三角及其变形】

热门文章

  1. Mysql数据库轻松学04——约束条件
  2. 海康录像机能用别的摄像头吗_海康威视录像机NVR如何添加其它品牌(大华)摄像头...
  3. 开源ext2read代码走读之--“\\\\.\\PhysicalDrive0”意义?
  4. 1996年考研数学一解析pdf
  5. UniFi AP 5.5.20的基本使用与设置(普通漫游和无缝漫游)
  6. 利用wireshark分析IP报文结构
  7. 「Java代码审计」Java代码审计基础知识「一」
  8. 峰值信噪比和结构相似性
  9. 图片|视频|音频文件扩展名(后缀)
  10. Vbs 脚本编程简明教程之一