matlab中利用filtfilt函数实现零相位延迟滤波

通过FIR滤波后的信号发生明显的相位延迟,通过filtfilt函数可实现零相位延迟滤波。

filter滤波器称为一维数字滤波器。filtfilt滤波器称为零相位数字滤波。其滤波算法是基于filter而来的。只是filtfilt实现了零相位。其基本实现过程为先让信号用filter滤波,再将信号时域反转再次通过filter滤波,这样两次滤波后相位实现了零相位。

假设通过matlab的filter builder设计出的FIR滤波器为filter

data_f1 = filter(filter, data); % 显著的相位延迟

data_f2 = filtfilt(filter.Numerator, data); % 零相位延迟滤波

 

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

 

posted on 2020-07-16 18:43  那抹阳光1994  阅读(4045)  评论(0编辑  收藏  举报

导航