紧接上一篇,简单分析matlab中的非常好用的 filtfilt 函数,一款零相移滤波函数。
其matlab中的语法如下:
y = filtfilt(data,x);
非常简单,不是一般的简单!然而,其他语言中,不能用!。。。所以只能深扒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);
意思即: 滤波–翻转–再滤波–再翻转
所以在c语言的编写中,只