转载地址http://blog.sina.com.cn/s/blog_6163bdeb0102e1dj.html

滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程。滤波器的实现包括滤波器结构的选择和滤波器参数的计算。只有完成了滤波器的设计和实现,才能最终完成数据的滤波。

滤波器设计的目标是实现数据序列的频率成分变更。严格的设计规格需要指定通带波纹数、阻带衰减、过渡带宽度等。更准确的指定可能需要实现最小阶数的滤波器、需要实现任意形状的滤波器形状或者需要用fir滤波器实现。指定的要求不同,滤波器的设计也不同。

Matlab的信号处理工具箱软件提供了两种方式设计滤波器:面向对象的和非面向对象的。面向对象的方法首先创建一个滤波器对象fdesign,然后调用合适的design参数设计。如实现一个5阶的低通巴特沃斯滤波器,3dB截止频率为200Hz,采样频率1000Hz,代码如下

Fs=1000; %Sampling Frequency

time = 0:(1/Fs):1; %time vector

% Data vector

x = cos(2*pi*60*time)+sin(2*pi*120*time)+randn(size(time));

d=fdesign.lowpass('N,F3dB',5,200,Fs); %lowpass filter specification object

% Invoke Butterworth design method

Hd=design(d,'butter');

y=filter(Hd,x);

非面向对象的方法则适用函数实现滤波器设计,如butter、firpm。所有非面向对象的滤波器设计函数使用的是归一化频率,归一化频率[0, 1]之间,1表示πrad。将Hz频率转化为归一化频率的方法为乘以2除以采样频率。设计上面同样的滤波器,使用非面向对象的方法如下

Wn = (2*200)/1000; %Convert 3-dB frequency

% to normalized frequency: 0.4*pi rad/sample

[B,A] = butter(5,Wn,'low');

y = filter(B,A,x);

滤波函数

* filter:利用递归滤波器(IIR)或非递归滤波器(FIR)对数据进行数字滤波;

* fftfilt:利用基于FFT的重叠相加法对数据进行滤波,只适用于非递归滤波器(FIR);

* filter2:二维FIR数字滤波;

* filtfilt:零相位滤波(IIR与FIR均可)。

滤波器特性分析

* 脉冲响应Impz

等价于使用函数filter输入一个脉冲信号x=[1;zero(N-1,1)]。

* 频率响应freqz与freqs

Freqz:求解数字滤波器的频率响应

Freqs:求解模拟滤波器的频率响应

* 幅频和相频abs与angle、unwrap

Unwrap:解卷绕

* 群延迟grpdelay

群延迟即为滤波器相位响应的负一阶导数,是滤波器平均延迟的度量。

* 零极点分析zplane

IIR数字滤波器设计

模拟低通滤波器设计

* 巴特沃斯低通滤波器设计buttap

* 切比雪夫低通滤波器设计cheb1ap与cheb2ap

* 椭圆低通滤波器设计ellipap

模拟滤波器最小阶数的选择

* 巴特沃斯滤波器Buttord

* 切比雪夫1型滤波器Cheb1ord

* 切比雪夫2型滤波器Cheb2ord

* 椭圆滤波器Ellipord

模拟高通、带通、带阻滤波器设计

* 模拟低通到模拟低通lp2lp

* 模拟低通到模拟高通lp2hp

* 模拟低通到模拟带通lp2bp

* 模拟低通到模拟带阻lp2bs

IIR实频变换

* IIR实频率移位变换iirshift

* 实低通到实低通的频率移位变换iirlp2lp

* 实低通到实高通的频率移位变换iirlp2hp

* 实低通到实带通的频率移位变换iirlp2bp

* 实低通到实带阻的频率移位变换iirlp2bs

* 实低通到实多带的频率移位变换iirlp2mb

* 实低通到实多点的频率移位变换iirlp2xn

IIR复频变换

* IIR复频率移位变换iirshiftc

* 实低通到复带通的频率移位变换iirlp2bpc

* 实低通到复带阻的频率移位变换iirlp2bsc

* 实低通到复多带的频率移位变换iirlp2mbc

* 实低通到复多点的频率移位变换iirlp2xnc

* 复带通到复带通的频率移位变换iirbpc2bpc

模拟滤波器的离散化

* 脉冲响应不变法impinvar

* 双线性变换法bilinear

IIR滤波器的直接设计

* 贝塞尔模拟滤波器Besself

* 巴特沃斯滤波器Butter

* 切比雪夫1型滤波器Cheby1

* 切比雪夫2型滤波器Cheby2

* 椭圆型滤波器Ellip

* 递归数字滤波器Yulewalk

使用最小二乘法拟合频率响应函数。

* 一般数字滤波器Maxplat

小结

相对于FIR滤波器,IIR滤波器的主要优点在于它以比FIR更小的阶数满足指定的滤波要求。虽然IIR滤波器有非线性的相位,但matlab软件中的数据处理方式是离散的,即全部数据序列被用于滤波。这允许了零相位滤波方法存在,可以使用函数filtfilt函数实现,它可以消除IIR滤波器的非线性相位偏移。

IIR滤波方法小结

滤波方法

描述

滤波器函数

模拟原型

使用连续域的经典低通原型滤波器模型零极点,再通过频率变换和滤波器离散化得到数字滤波器

直接滤波器设计函数:

besself,butter,cheby1, cheby2, ellip

阶数预测函数:

buttord, cheb1ord, cheb2ord, ellipord

低通模拟原型函数:

besselap, buttap, cheb1ap, cheb2ap, ellipap

频率变换函数:

lp2bp, lp2bs, lp2hp, lp2lp

滤波器离散函数:

bilinear, impinvar

直接设计

通过逼近线性幅值响应直接在离散域设计数字滤波器

yulewalk

广义巴特沃斯滤波器设计

设计零点多于极点的低通巴特沃斯滤波器

maxflat

参数建模

通过逼近给定的时域或频域响应得到数字滤波器

时域建模函数:

lpc, prony, stmcb

频域建模函数:

invfreqs, invfreqz

FIR数字滤波器设计

窗函数法

* 设计具有标准频率响应的FIR滤波器Fir1

* 设计具有任意频率响应的FIR滤波器Fir2(如多带通滤波器)

使用凯塞窗时可以使用kaiserord函数设计FIR参数

切比雪夫逼近法

* 最佳一致逼近法设计firpm

估计最佳一致逼近法滤波器的阶次firpmord

* 任意响应法cfirpm

约束最小二乘法

* 设计线性相位滤波器firls

* 设计多带线性相位滤波器fircls

* 设计低通或高通线性相位滤波器fircls1

设计Savitzky-Golay平滑滤波器sgolay
小结

FIR滤波器有如下主要优点:

* 准确线性相位

* 总是稳定的

* 设计方法是线性的

* 可以有效的在硬件上实现

* 滤波初始过渡阶段持续时间有限

它的主要缺点是它需要比IIR更高的阶数来实现给定的响应,相应的,它的滤波器延迟也比IIR的大。

FIR滤波方法小结:

滤波器设计方法

描述

滤波器函数

窗函数设计法

对傅里叶逆变换加窗

fir1, fir2, kaiserord

多带逼近

最小二乘法一致逼近多带频率响应

firls, firpm, firpmord

约束最小二乘法

在最大误差的约束下最小化误差平方和

fircls, fircls1

任意响应

任意响应设计,包括非线性相位、复频域滤波器

cfirpm

Raised Cosine

平滑正弦过渡的低通响应

firrcos

工具箱GUI

Sptool信号分析工具箱GUI

Wintool窗函数查看工具箱GUI

转载,matla滤波函数的更多相关文章

  1. matlab-----均值滤波函数的实现

    均值滤波的原理是对图像以一个区域(方形,圆形)等为模板,对该区域内的数据求平均后赋值给区域的中心 这种滤波方式原理简单,但是在滤波的同时会造成图像模糊. 本文将尝试对matlab中的filter2() ...

  2. [转载]C++虚函数浅析

    原文:http://glgjing.github.io/blog/2015/01/03/c-plus-plus-xu-han-shu-qian-xi/ 感谢:单刀土豆 C++虚函数浅析 JAN 3RD ...

  3. 转载 C#匿名函数 委托和Lambda表达式

    转载原出处: http://blog.csdn.net/honantic/article/details/46331875 匿名函数 匿名函数(Anonymous Function)是表示“内联”方法 ...

  4. (转载)prepare函数的学习,我要学习php第二天

    (转载)http://www.boyuan78.com/htm/company/2012_1030_60.html prepare函数的学习,我要学习php第二天 $mysqli = new mysq ...

  5. (转载)PHP_Memcache函数详解

    (转载)http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/04/19/2021605.html memcache函数所有的方法列表如下: M ...

  6. 转载——CLR标量函数、表值函数和聚合函数(UDA)

    本节主要介绍使用CLR创建标量函数,表值函数和聚合函数. 所谓标量函数指的就是此函数只返回一个值.表值函数返回值是一个表.聚合函数是在select语句中使用的,用来聚合一个结果集,类似于Sum()或是 ...

  7. [转载]MySQL UUID() 函数

    目录 目录 一 引子 二 MySQL UUID() 函数 三 复制中的 UUID()四 UUID_SHORT() 函数 3.1 实验环境介绍 3.2 搭建复制环境 3.3 基于 STATEMENT 模 ...

  8. 转载:C++函数中new一块内存,作为返回值

    转载来自:http://blog.itpub.net/7728585/viewspace-2123621/ 今天遇到一个问题,C++编程时,函数中new一块内存,然后将申请内存的指针作为返回值.怎么d ...

  9. 转载:approxPolyDP函数

    本文转载http://blog.csdn.net/qq_18343569/article/details/47999257 1.approxPolyDP函数 函数的作用: 对图像轮廓点进行多边形拟合 ...

随机推荐

  1. 【原创】大叔问题定位分享(23)Ambari安装向导点击下一步卡住

    ambari安装第一步是输入集群name,点击next时页面卡住不动,如下图: 注意到其中一个接口请求结果异常,http://ambari.server:8080/api/v1/version_def ...

  2. centos6.8_manul_install_oracle112040&manu_create_db

    --1.1上传oracle软件包及安装环境检查--redhat6.8下载链接:https://pan.baidu.com/s/1eTyw102 密码:cpfs--虚拟机使用独立磁盘时不能拍摄快照--创 ...

  3. apache基础

    apache基于多域名的虚拟主机 NameVirtualHost *:80<VirtualHost *:80> DocumentRoot "/var/www/html/xk/sh ...

  4. echarts的地图点击事件

    1.echarts的地图展示,有时候展示出的数据,虽然鼠标点击上去某个省份或者某个地方会有数据显示,但是点击一下地图没有任何动态效果,如何添加地图点击效果呢,这里自己也是坐下笔记,方便以后使用. 参考 ...

  5. BZOJ4836 [Lydsy1704月赛]二元运算 分治 多项式 FFT

    原文链接http://www.cnblogs.com/zhouzhendong/p/8830036.html 题目传送门 - BZOJ4836 题意 定义二元运算$opt$满足 $$x\ opt\ y ...

  6. hdu5701-中位数计数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5701 题目: Problem Description 中位数定义为所有值从小到大排序后排在正中间的那个 ...

  7. win10安装Oracle11g-出现INS-13001环境不满足最低要求问题

    今天安装Oracle11g,出现INS-13001环境不满足最低要求问题: 解决方法 在安装时点击setup.exe之后,出现了:[INS-13001]环境不满足最低要求 这时,打开你的解压后的dat ...

  8. String painter HDU - 2476 -区间DP

    HDU - 2476 思路:分解问题,先考虑从一个空串染色成 B串的最小花费 ,区间DP可以解决这个问题 具体的就是,当 str [ l ] = = str [ r ]时 dp [ L ] [ R ] ...

  9. (二)文档请求不同源之flash跨域

    对于FLash,IE是认object标签的,但是FF和Chrome是认embed标签的. 1.客户端 <param name="allowScriptAccess" valu ...

  10. C#中new的三种用法

    在 C# 中,new 关键字可用作运算符.修饰符或约束. 1)new 运算符:用于创建对象和调用构造函数. 2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员. 3)new ...