matlab filtfilt 函数

╄→尐↘猪︶ㄣ 提交于 2019-11-30 11:55:16

紧接上一篇,简单分析matlab中的非常好用的 filtfilt 函数,一款零相移滤波函数。
其matlab中的语法如下:

y = filtfilt(data,x);
1
非常简单,不是一般的简单!然而,其他语言中,不能用!。。。所以只能深扒matlab代码。。。

y = filter(b(:,ii),a(:,ii),y,zi(:,ii)*y(1));
y = y(end:-1:1);
y = filter(b(:,ii),a(:,ii),y,zi(:,ii)*y(1));
y = y(end-nfact:-1:nfact+1);
1
2
3
4
意思即: 滤波–翻转–再滤波–再翻转
所以在c语言的编写中,只要写好了滤波函数,加之以上的整个过程,即可实现此零相移滤波函数。

另外,在matlab中的filtfilt函数中,对原始信号进行了一次拼接


————————————————
版权声明:本文为CSDN博主「yuchendai」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010856402/article/details/79296531

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!