紧接上一篇,简单分析matlab中的很是好用的 filtfilt 函数,一款零相移滤波函数。
其matlab中的语法以下:函数
y = filtfilt(data,x);
1
很是简单,不是通常的简单!然而,其余语言中,不能用!。。。因此只能深扒matlab代码。。。.net
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语言的编写中,只要写好了滤波函数,加之以上的整个过程,便可实现此零相移滤波函数。blog
另外,在matlab中的filtfilt函数中,对原始信号进行了一次拼接语法
————————————————
版权声明:本文为CSDN博主「yuchendai」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接及本声明。
原文连接:https://blog.csdn.net/u010856402/article/details/79296531协议