是否可以使用数字滤波器(例如巴特沃斯)来平滑以非恒定速率采样的传感器数据?两个连续样本之间的时间在 12 到 40 毫秒之间。
过滤离散数据
信息处理
低通滤波器
2022-02-20 21:34:52
1个回答
最幼稚和最简单的方法是对数据点进行插值。如果您知道信号中存在的最大频率是多少,那么您可以指定采样周期。假设您选择最低的:12ms。现在您可以对数据进行一些插值。通常我会建议你执行 sinc 插值,但你可以从线性/样条/三次开始。
在 MATLAB/Octave 中,您可以使用该interp1函数对数据点进行插值。如果你的数据被调用x,已知的时间戳是t,新的时间戳是t_new,那么你可以执行以下操作来计算新的数据集X:
t_new = 0:0.012:max(t); %spaced by 12ms up to maximum value of vector t
X = interp1(t, x, t_new, 'spline');
这是一种非常简单的方法,但应该可以工作——尽管您可能会遇到一些混叠。您还可以查看这篇文章以获得更智能的方法:Nonuniform Sampling and Reconstruction in Shift-Invariant Spaces。
现在,当您拥有数据集时,您可以执行任何您喜欢的过滤。我能问一下你的传感器是什么,所以它可以提供这样的数据吗?
其它你可能感兴趣的问题