【问题标题】:Filter Function with Low Pass Filter带低通滤波器的滤波功能
【发布时间】:2023-04-10 06:34:01
【问题描述】:

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

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

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

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

现在系数是给我最大的麻烦。基于一阶拉普拉斯传递函数如下:

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

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

【问题讨论】:

    标签: matlab signal-processing lowpass-filter


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 2010-10-23
      • 1970-01-01
      • 2019-06-04
      • 2011-05-29
      • 2019-04-29
      • 2015-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多