styjzx 发表于 2010-5-19 15:38

关于filter的滤波结果

滤波小白求教!
以前只知道,假如已知滤波器系数b,a,就可以利用filter函数对信号序列x进行滤波。
格式为:y=filter(b,a,x)
然而这次遇到了具有4097个滤波器系数的FIR滤波器滤波的问题,利用上述格式滤波后,发现y相对于x貌似平移了2048点。(不知道为什么,传不上图片)。
望高手给予解释!不胜感激。

styjzx 发表于 2010-5-19 15:51

了解了,知道了这个现象叫做群延迟。但是不知道该怎么处理。是否可以直接将滤波后的信号反向平移?

wanyeqing2003 发表于 2010-5-19 20:08

根据我的经验,滤波后,信号会有相位变化。

styjzx 发表于 2010-5-20 09:15

回复 板凳 wanyeqing2003 的帖子

已经解决了,可以使用filtfilt函数,进行零相位滤波。也就是滤波后的信号相对于原信号的相位延迟为零。
函数格式同样为y=filtfilt(b,a,x);

wanyeqing2003 发表于 2010-5-20 10:09

原帖由 styjzx 于 2010-5-20 09:15 发表 http://www.chinavib.com/forum/images/common/back.gif
已经解决了,可以使用filtfilt函数,进行零相位滤波。也就是滤波后的信号相对于原信号的相位延迟为零。
函数格式同样为y=filtfilt(b,a,x);
奥!?太好了。
没考虑到这个问题。

yanxin1109 发表于 2010-5-20 16:18

受教了!非常感谢!
页: [1]
查看完整版本: 关于filter的滤波结果