MATLAB 中filtfilt 函数使用说明
(2011-03-18 15:43:49)
标签:
matlab杂谈 |
分类: 专业知识 |
任何一个数字滤波器都有幅频特性和相频特性,如果对于滤波不要求实时性,我们可以设计一种滤波器,使得它的相频特性始终为0,这种数字滤波器就称为零相移数字滤波器。
在Matlab中,零相移滤波器对应的函数名称为filtfilt,其帮助中提供的信息如下,翻译一下:
FILTFILT Zero-phase forward and reverse digital filtering.
FILTFILT 零相移前向后向数字滤波器
After filtering in the forward direction, the filtered sequence
is then reversed and run back through the filter; Y is the time
reverse of the output of the second filtering operation. The result
has precisely zero phase distortion and magnitude modified by the
square of the filter's magnitude response.
通过前向滤波之后,滤波序列被反折并且再次通过滤波器,Y是第二次滤波器输出的时间反折序列。其结果是相位特性精确的为零,没有变形并且幅频特性被滤波器幅频特性的平方所改变。初值和终值都被选择的很小的跳变来匹配初始条件。
The length of the input x must be more than three times the filter order, defined as max(length(b)-1,length(a)-1). Note that FILTFILT should not be used with differentiator and Hilbert FIR filters, since the operation of these filters depends heavily on their phase response.
输入序列x的长度必须大于滤波器阶数的三倍,阶数定义为max(length(b)-1,length(a)-1)。注意FILTFILT不应当被用于Hilbert FIR滤波器,因为这些滤波器的相位特性是很重要的。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/iamoyjj/archive/2009/09/15/4556381.aspx