带低通滤波器的滤波器功能

时间:2018-07-24 17:59:45

标签: matlab signal-processing lowpass-filter

我一直在搜索,但似乎无法理解2009年在此处提供的以下示例。

我正在尝试在Matlab中为一组数据实现一个简单的低通滤波器,这是在SO上引用的以下示例。 Link to example

xfilt = filter(a, [1 a-1], x);

其中a = T/τT =采样之间的时间,而τ(tau)是过滤器时间常数。

现在,系数是给我最大的麻烦。基于以下一阶Laplace传递函数:

(1/Ts) / (1 + (1/Ts)),其中(1/Ts) = a

很高兴知道如何找到上述函数的分母系数。

1 个答案:

答案 0 :(得分:1)

根据filter文档,第一个参数是有理传递函数的分子系数,我们称它们为[b0 b1 b2 ...],第二个参数是分母的分母系数有理传递函数,我们称它们为[a0 a1 a2]

由于需要单极点低通滤波器,因此时域方程为:

A0*y(n) = B0*x(n) - A1*y(n-1);

您可以简化上述公式,使a0 = 1;b0 = B0/A0a1 = A1/A0;

y(n) = b0*x(n) - a1*y(n-1);

出于稳定性的原因,如果您不希望改变增益,则将修复b0 - a1 = 1;

y(n) = b0*x(n) - (b0-1)*y(n-1);

等效传递函数是

H(z) = b0 / (1 + (b0-1)*z^-1);

因此,分子系数为b0,分母系数为1b0-1。因此,xfilt = filter(b0, [1 b0-1], x);

的写法

如果fc是频率削减,而Fs是频率采样b0 = 2*pi*fc/Fs