filter函数 与filtfilt函数的效果区别

filter滤波器称为一维数字滤波器。filtfilt滤波器称为零相位数字滤波。其滤波算法是基于filter而来的。只是filtfilt实现了零相位。其基本实现过程为先让信号用filter滤波,再将信号时域反转再次通过filter滤波,这样两次滤波后相位实现了零相位。filter滤波有明显的延迟,filtfilt滤波延时比filter小很多。分析如下(程序参见matlab脚本,完整程序下载链接):
(1)设置三种频率(10Hz,20Hz,30Hz)构成的信号y1

f1=10;
f2=20;
f3=30;
Fs=150;
t=0:1/Fs:1;
y1=5*sin(2*pi*f1*t)+10*sin(2*pi*f2*t)+8*sin(2*pi*f3*t);

(2)设计滤波参数,分别用filter滤波器和filtfilt滤波器把30Hz的信号滤掉。

%滤波
fp=25;%滤掉频率超过25Hz的信号
fs=40;
wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60;   %DF指标(低通滤波器的通、阻带边界频)
[N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord计算椭圆DF阶数N和通带截止频率wp
[B,A]=ellip(N,rp,rs,wp);      %调用ellip计算椭圆带通DF系统函数系数向量B和A
y2=filter(B,A,y1); %滤波
y3=filtfilt(B,A,y1);

(3)绘制滤波效果图和FFT频谱分析图,对比滤波效果。
如图所示,第1个时域图可以发现经过filter滤波的信号比原始信号明显有延迟,而经过filtfilt滤波后的信号几乎没有延迟。第2频谱图可以发现,按照设计的参数,两个滤波器都能把频率为30Hz的信号滤除了。

filter函数 与filtfilt函数的效果区别相关推荐

  1. Matlab的filtfilt函数解析与C++实现

    Matlab的filtfilt函数解析与C++实现 0.前言 1.filtfilt函数的解析 1.1 主要流程 1.2 边界的延拓 1.3 边界效应的优化 1.4 滤波器系数获取 2.C++实现及对比 ...

  2. Matlab中filter.m和filtfilt.m函数C语言实现

    一.一些基础知识 filter.m函数是依据z变换的一些知识进行的滤波方法. filtfilt.m则还有另一个名字是零相位滤波,顾名思义,通过filtfilt函数滤波后的信号,幅值会发生变化,但相位不 ...

  3. matlab 函数调试实验,C语言实验matlab中filter和filtfilt函数

    本学期的创造工房,课题为使用睡眠观测仪器所采集的混合了心拍数.呼吸数以及体动等杂音的原始数据,利用滤波器将心拍和呼吸数据抽出.本次工房我的分工为设计算法,由于时间仓促此次工房仅使用高低通滤波器进行简单 ...

  4. 函数参数三种传递方式的区别

    函数参数三种传递方式的区别 问题提出: 1.当一个类的对象作为实参数传递时,使用值传递和引用传递有什么区别? 比如: DateType ExampleFun(CString &strFileN ...

  5. matlab中filtfilt函数解析

    紧接上一篇,简单分析matlab中的非常好用的 filtfilt 函数,一款零相移滤波函数. 其matlab中的语法如下: y = filtfilt(data,x); 非常简单,不是一般的简单!然而, ...

  6. C语言strlen函数与sizeof函数的区别

    strlen函数与sizeof函数的区别 strlen函数和sizeof函数都可以用于获取字符串的长度,但是它们有几个重要的区别. strlen函数返回字符串的长度,而sizeof函数返回的是整个数组 ...

  7. SQL中CharIndex函数、InStr 函数、PatIndex函数、Stuff函数区别与作用

    在c#中可以用字符串的IndexOf方法来判断一个字符串中是否含有指定的字符.而在SQL SERVER中也就相关的函数来实现IndexOf的功能.CharIndex,InStr,PatIndex三个函 ...

  8. 17.JavaScript函数的不同形态,函数是个表达式、函数是一个值,函数声明和函数表达式的区别

    函数的不同形态 文章目录 函数的不同形态 函数可以是个表达式 函数的本质是一个值 回调函数 函数表达式和函数声明的差别 课后作业 函数可以是个表达式 在上文<JavaScript函数>我们 ...

  9. render函数和redirect函数的区别+反向解析

    render函数和redirect函数的区别+反向解析 1.视图函数:一定是要包含两个对象的(render源码里面有HttpResponse对象)   request对象:----->所有的请求 ...

  10. 友元函数、类的非静态成员函数、静态成员函数的区别

    类中申明的函数相对于类来说有三层意思: 1.有this指针 2.函数在类的作用区域中 3.可以访问类中私有部分 4.可以被继承 非静态成员函数具有1234 静态成员函数具有234 友元函数具有3 静态 ...

最新文章

  1. PS切图篇(一)---界面设置
  2. 关于Silverlight_Tools.exe安装不上的问题
  3. 强化学习笔记:Sarsa算法
  4. 【Socket网络编程】6.两个既能收也能发的udp客户端进行通信的原理
  5. office文件已损坏 该服务器,Office文件可能已损坏处理方法
  6. 使用SAP Analytics Cloud显示新冠肺炎病毒感染人数的实时信息
  7. java 怎么页面授权访问_Java调用Linkedin接口API之:获取授权
  8. jumpserver 使用教程_Jumpserver之快速入门
  9. C# 设置Word文档背景(纯色/渐变/图片背景)
  10. apache kafka源代码工程环境搭建(IDEA)
  11. 处理异常:org.springframework.beans.factory.BeanNotOfRequiredTypeException
  12. arm平台linux移植ethtool工具
  13. Java 输入输出流 解决中文乱码问题【不一定详细但一定实用篇】【全文4800字】
  14. VBlog项目代码理解之前端
  15. 博世中国的战略与战术,如何应对复杂多变的中国市场需求
  16. 科技圈以 A 取名的时尚潮流
  17. 用 Python 给程序加个进度条,让你的程序看起来更炫酷
  18. Leetcode刷题:贪心算法
  19. Visual Studio 2008 官方破解版
  20. VBUS引脚外围电路设计

热门文章

  1. navicat的使用技巧
  2. 5线上模式刷2亿bug_GTA5还想冲销量?玩家利用BUG刷钱,遭受比封号更严厉惩罚
  3. 什么是 Uptime TIER 数据中心等级认证体系?-孙长青
  4. u盘安全删除 linux,如何安全删除U盘技巧
  5. 2020秋招提前批--大疆--机器学习算法工程师--线上笔试题
  6. LaTeX常用的希腊字符、数学符号、矩阵、公式、排版、中括号、大括号以及插入图片等操作手册
  7. 团队管理之—— 大项目:把握关键点,谋定而后动
  8. python + selenium + chrome 如何清理浏览器缓存
  9. electron 剪贴板 截图_利用 Electron 开发快速截图工具(二)
  10. 微信公众号申请人身核验-流程