C 哪些DSP滤波算法易于实现?

C 哪些DSP滤波算法易于实现?,c,algorithm,filter,filtering,signal-processing,C,Algorithm,Filter,Filtering,Signal Processing,我有一个内存很少的数据记录器,我想在固件中实现对过滤器的支持 在不需要缓冲区或大型函数的情况下,我可以轻松实现哪些类型的过滤器 我想到的是指数移动平均线,类似于: sample = (alpha * new_sample) + (1.0 - alpha) * sample 有没有其他众所周知的DSP滤波器可以在几行内完成 如果没有缓冲,就不可能实现频率选择性滤波。即使您给出的示例也需要一个样本缓冲区。首先,对于大多数过滤应用程序,当然也包括您关心内存的应用程序,您需要使用时域过滤器 时域滤波器

我有一个内存很少的数据记录器,我想在固件中实现对过滤器的支持

在不需要缓冲区或大型函数的情况下,我可以轻松实现哪些类型的过滤器

我想到的是指数移动平均线,类似于:

sample = (alpha * new_sample) + (1.0 - alpha) * sample

有没有其他众所周知的DSP滤波器可以在几行内完成

如果没有缓冲,就不可能实现频率选择性滤波。即使您给出的示例也需要一个样本缓冲区。首先,对于大多数过滤应用程序,当然也包括您关心内存的应用程序,您需要使用时域过滤器

时域滤波器通常有两种,IIR和FIR。过滤器也根据其“顺序”进行区分。上面给出的示例是一阶IIR滤波器。有关事实如下:

  • 广义而言,IIR滤波器对给定响应的要求比FIR低
  • 可以使用与过滤器顺序相同的多个内存位置来实现过滤器。这并不总是实现过滤器的最佳方式,但可以使用一种称为

对于广泛的应用,二阶IIR滤波器(有时称为“双四阶”)是一个很好的选择。我有一个关于二阶四次曲线的教程。它面向音频应用,但您可能会发现它很有用。请记住,本教程使用直接形式I,它在数值上更稳定,但需要更多内存位置。不过,在四个位置,我认为即使是对于高度内存不足的应用程序,也没什么好担心的。

Hi!此外,您的累加器还需要额外的内存(用于存储“累加器”值。此外,它不是真正的过滤器,因为当某些标准不可用时,过滤器应该拒绝“新_值”。)met@FloF:取决于您的定义。从信号处理的角度来看,这绝对是一个过滤器。@FloF当然需要内存来容纳几个变量,但不需要大的缓冲区。@FloFike FFT和大多数其他DSP滤波器需要。