滤波器设计 - 阶跃响应

信息处理 过滤器 即时的 数字滤波器
2022-02-14 13:37:03

我正在寻找一种工具\方法,它允许我设计一个完全不涉及频率响应的滤波器。
具体来说,我正在尝试为读取不同模拟传感器的嵌入式系统设计一个简单的 FIR 平滑滤波器。我的采样率为 1kHz,我想生成一个具有 0 过冲和平滑效果的 FIR 滤波器(例如在附图中)。 在此处输入图像描述

我发现的不同工具(包括 MATLAB)都涉及围绕 LP 滤波器的设计,这意味着我必须分析系统的频率响应。

有任何相关的工具\方法吗?

3个回答

对于线性滤波器,二项式滤波器可以被认为是对高斯的 FIR 近似,非常简单。它们的系数由下式给出:

hk=(nk)2n.
例如,你可以得到H3=[14,12,14], 或者H5=[116,14,38,14,116]. 由于它们的系数是正的,它们不会过冲。

以下是图表n=5,17,25,31

阶跃响应

执行多项式插值的 Savitzky-Golay 滤波器也很有趣,但往往会以更高的次数过冲。

不过不要自欺欺人:只要滤波器是线性的,频率的概念就在后面。

设计具有给定阶跃响应的 FIR 滤波器非常容易。自从

(1)a[n]=k=nh[k]

在哪里a[n]是阶跃响应,并且h[n]是脉冲响应,脉冲响应可以从给定的阶跃响应中获得

(2)h[n]=a[n]a[n1]

对于因果过滤器,您有a[1]=0作为递归的初始条件(2). 所以你得到

h[0]=a[0]h[1]=a[1]a[0]h[2]=a[2]a[1]

您可能需要检查二项式系数的公式和命名。当我试图重现你的结果直到我意识到问题时,它让我失望了。我的帖子本着帮助其他阅读它的人的精神。

H0 是帕斯卡三角形的第一行,仅包含一个“1”。H1 包含“1 1”,H2 包含“1 2 1”,依此类推。因此,H4 包含“1 4 6 4 1”,产生您为 H5 指定的系数。我认为表达式应该是

  hk = (n-1 pick k)/2^(n-1) for v from 0 to n-1

其中 n 是您想要在滤波器中使用的系数的数量。这会给你上面的答案。

问题是 k = 0 和 k = n-1 都包括在内,因此 (n, pick k) for k 从 0 到 n 产生 n+1 个系数,因此这属于 Hn+1,而不是 Hn。

或者,您可以重新定义 Hn 的含义,但这不太直观。H5 表示 5 个系数对我来说似乎很自然,就像对你一样。

最好的祝福,

彼得