时域实时 FIR 滤波

信息处理 过滤器 有限脉冲响应 高通滤波器
2022-02-07 04:24:37

我之前的问题不清楚。所以我认为重新发布更多细节是个好主意。

我为采样率为 100Hz 的 ADC 数据设计了一个截止频率为 3Hz 的 100 阶加窗高通 FIR 滤波器。我目前正在将我的数据堆积在缓冲区中。然后将该缓冲区与我的 FIR 系数数组进行卷积。最后,对卷积的输出进行 FFT。这种方式效果很好。我可以清楚地看到我想要的 FIR 滤波器的响应。但是,由于输出是一个数组,我无法显示它来表示我的时域图。

由于我正在处理实时数据绘图,因此我需要一一发送过滤的时域值以在我的绘图应用程序中显示它们。为了获得单个输出,我尝试减少我的 adc 数据的数组大小以过滤器的数组大小并实现y(n)=h0x(n)+h1x(n1)++hN1x(nN+1)这而不是卷积。

我给出了 3Hz 0.2V 幅度的正弦波信号,带有 1V DC 偏移。我已经在视频中记录了结果。在视频中,您可以看到它消除了直流偏移并且幅度正确,但波形不再是正弦波。在视频的后面,我将频率更改为 1Hz,它切断了预期的信号。在频域中,一切都是错误的,因为无论实际频率是多少,它都显示相同的频率值。

1个回答

视频中的绿色输出看起来只是过滤数据的块,每个块的开头都有瞬态。这可能就是为什么频谱看起来总是一样的原因,你只是看到了阻塞伪影/频率。您可能每次都从头开始过滤,而您需要将过滤器的数据(状态)从一个块保存到下一个块。