【发布时间】:2017-05-22 02:41:51
【问题描述】:
我使用了 MathDotNet 库并对输入信号进行了数字过滤。我从我的 ADC 中获取 40 个样本,并在获取每个数据样本时对其进行过滤。我使用了 FIR 在线滤波器和 2 个中值滤波器。 在图像中有一条红线是原始信号,一条蓝线是滤波信号。正如所见,我的滤波信号存在相移。我想删除它。有什么想法吗?
如果您想在 vb.net 中查看我的代码以获得一些想法,那么我也可以发布它。
【问题讨论】:
-
根据代码的工作方式(时间基准),您可能会遇到一些简单的问题,例如何时绘制两条相对于彼此的曲线。但是,如果我正确地记得我 25 年前的信号处理课程......你不能用 FIR 滤波器创建 0 相位滤波器......(如果我错了,请不要杀了我!)。 dspguru.com/dsp/faqs/fir/properties
-
所以你是说我得到的相位滞后是可以接受的?如果您对 vb.net 编程有一些想法,我可以发布一些想法的代码。现在我停留在那个阶段滞后。
-
我在之前的评论中提供的链接可以让您仅根据 FIR 滤波器的顺序(我认为是 40)来估计您的系统 FIR 滤波器滞后。如果这与您的图表显示的一致,您就有了解释。如果没有,您将不得不检查图表的绘图和时间管理是如何工作的。
-
正如@SluethEye 提到的,这种延迟是预期的,并且与采样频率和滤波器阶数直接相关。通常,IIR 滤波器可以在低得多的阶数下实现相同的频率响应,从而实现更低的相位延迟。也就是说,您必须小心 IIR 滤波器的不稳定性和非线性相位响应方面。
标签: .net vb.net signal-processing median digital-filter