通過FIR濾波后的信號發生明顯的相位延遲,通過filtfilt函數可實現零相位延遲濾波。
filter濾波器稱為一維數字濾波器。filtfilt濾波器稱為零相位數字濾波。其濾波算法是基於filter而來的。只是filtfilt實現了零相位。其基本實現過程為先讓信號用filter濾波,再將信號時域反轉再次通過filter濾波,這樣兩次濾波后相位實現了零相位。
假設通過matlab的filter builder設計出的FIR濾波器為filter
data_f1 = filter(filter, data); % 顯著的相位延遲
data_f2 = filtfilt(filter.Numerator, data); % 零相位延遲濾波