通过FIR滤波后的信号发生明显的相位延迟,通过filtfilt函数可实现零相位延迟滤波。
filter滤波器称为一维数字滤波器。filtfilt滤波器称为零相位数字滤波。其滤波算法是基于filter而来的。只是filtfilt实现了零相位。其基本实现过程为先让信号用filter滤波,再将信号时域反转再次通过filter滤波,这样两次滤波后相位实现了零相位。
假设通过matlab的filter builder设计出的FIR滤波器为filter
data_f1 = filter(filter, data); % 显著的相位延迟
data_f2 = filtfilt(filter.Numerator, data); % 零相位延迟滤波