【问题标题】:Second order low-pass filter algorithm二阶低通滤波算法
【发布时间】:2011-03-07 15:45:59
【问题描述】:

我需要从信号中滤除一些噪声,而简单的 RC 一阶滤波器似乎还不够。我一直在环顾四周,但还没有找到其他滤波器的算法(尽管有很多例子说明如何使用模拟电路来做到这一点)。有人能指出我在哪里可以找到这样的算法吗?或者至少在这里写一个?

澄清一下:我从示波器中获取信号,我只有一个周期。这个循环有点像:

125 * (x > 3 ? exp(-(x - 3) / 2) : exp(5*(x - 3)))

现在,信号并不总是具有那种形状,我需要计算信号的导数,如果不是这样的话,这很容易,因为当一个人将信号放大到足够大时(每个点是 160 纳秒),你可以看到很多噪音。因此,在计算导数之前,我需要对信号进行展平。

【问题讨论】:

  • 如果它是真正的白噪声(静态),它在所有频率上都是平等的,并且是不可过滤的。到底是什么噪音?
  • 我认为他要求的是能够滤除某些频段上的白噪声。比如说,信号在 1Mhz 到 10Mhz 的频段,那么有一个截止频率超过 10Mhz 的低通滤波器是合适的。
  • 从这里选择一个过滤器怎么样:en.wikipedia.org/wiki/Filter_(signal_processing)

标签: algorithm signal-processing


【解决方案1】:

如果您询问如何设计比简单的一阶滤波器更高的滤波器,请从这里选择滤波器:wiki on Filter_(signal_processing)

只是假设您的问题,所以这里有几个设计点。

1) 您可能不希望在通带中出现纹波(增益变化),因为这会使您的信号失真。

2) 您可能不关心阻带中的纹波,因为无论如何信号应该接近 0。

3) 滤波器的阶数越高,越像理想的方形滤波器。

4) 滚降越高越好,您希望尽快降低通带外的噪声。

5) 您可能关心也可能不关心“群延迟”,这是衡量不同频率需要不同时间通过滤波器所引起的失真的量度。对于音频,您可能需要不太高的群延迟,因为您可以想象不同的频率分量经历不同的时间(因此相位)偏移会导致一些失真。

一旦您根据这些(可能还有其他)考虑选择了您想要的过滤器,然后只需使用一些拓扑来实现它,就像提到的那些 here

【讨论】:

    【解决方案2】:

    只有对您的要求的模糊描述,很难给出任何具体的建议。

    您需要指定滤波器的参数:采样率、截止频率、过渡带宽度、通带纹波、最小阻带抑制、相位和群延迟是否是一个问题等。一旦您至少确定其中一些参数,然后您就可以开始选择合适的滤波器设计,即基本滤波器类型、级数等。

    了解您想要过滤什么样的信号也很有帮助 - 是音频还是其他什么?每个样本有多少位?

    【讨论】:

      【解决方案3】:

      您需要对信号进行良好的定义,对噪声进行良好的分析,并清楚地了解两者之间的区别,以便确定哪些算法可能适合于去除其中一种信息而不是消除另一种信息中的信息。然后您需要定义计算环境(整数或浮点 ALU,加和乘循环?),并设置计算预算。二阶 IIR 和千兆点 FFT 之间存在很大差异。

      RBJ's biquad cookbook 中描述了一些非常常用的二阶数字滤波器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-22
        • 2018-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-29
        • 2014-02-09
        • 2011-05-29
        相关资源
        最近更新 更多