matlab的滤波函数filter与filtfilt比较
摘要
滤波器应用非常广泛,例如根据位置数据对机器人速度和加速度进行估计时,差分运算会放大噪声,滤波环节是必不可少的。 filter滤波器称为一维数字滤波器。filtfilt滤波器称为零相位数字滤波。其滤波算法是基于filter而来的。只是filtfilt实现了零相位。其基本实现过程为先让信号用filter滤波,再将信号时域反转再次通过filter滤波,这样两次滤波后相位实现了零相位。filter滤波有明显的延迟,filtfilt几乎没有延迟。
filter与filtfilt函数比较
(1)设置三种频率(10Hz,20Hz,30Hz)构成的信号y1
f1=10;
f2=20;
f3=30;
Fs=150;
t=0:1/Fs:1;
y1=5*sin(2*pi*f1*t)+10*sin(2*pi*f2*t)+8*sin(2*pi*f3*t);
(2)设计滤波参数,分别用filter滤波器和filtfilt滤波器把30Hz的信号滤掉。
%滤波
fp=25;%滤掉频率超过25Hz的信号
fs=40;
wp=2*fp/Fs;ws=2*fs/Fs;r