抽取物理数据

信息处理 无限脉冲响应 抽取
2022-02-06 06:42:12

在工作中,我们运行一个物理模拟器(视频游戏),它在 360 Hz 的内部循环中运行。来自该内部循环的数据每秒收集 60 次,然后发送到硬件(力反馈方向盘),以便播放给用户。

我对这个系统有两个问题。

首先,将 360 Hz 数据抽取到 60 Hz 的最佳方法是什么。现在我们对 6 个样本进行直接平均,但我怀疑这会导致数据出现一些混叠,而且我们对高频噪声非常敏感。我们对延迟也非常敏感,即使添加 4 个延迟样本(在 60 Hz 循环中)也会导致屏幕显示和用户会选择的力反馈设备之间出现明显的延迟。

其次,硬件(方向盘)通常具有非常差的容差,并且通常很难在信号显着劣化之前播放高于约 20 Hz 的数据。将 360 Hz 数据低通滤波至 20 Hz 或将 60 Hz 数据低通至 20 Hz 会更好吗?处理此问题的最有效方法是什么。

我目前有一个单极 IIR 滤波器,您可以选择在 60 Hz 信号上定义它,这确实可以平滑数据,并增加相当多的延迟。混合小于 0.20 的当前样本会导致车轮出现奇怪的断开感,因此这是我的下限。我会假设使用更复杂的滤波器会给我带来更快的衰减,并且既可以消除轮中的高频颤动和噪声,又不会增加超过 4 个样本(66 毫秒)的延迟

我已经完成了 Steven W. Smith 的书“数字信号处理的科学家和工程师指南”的一半,所以我对 DSP 的了解有限。我在 2D 图像处理方面确实有 20 多年的编程经验,所以我一直在使用 dsp,但不知道它们是什么。关键是我可怜的头脑很容易:)

我还应该指出,60 Hz 循环是“实时”运行的,它与 PC 时钟同步,并且与轮子的所有通信也是实时的,但是内部循环每秒处理 60 次,并且有无法以高于 60 Hz 的速率访问内部循环数据。

1个回答

这是一个非常好的应用信号处理问题。不幸的是,您缺乏 DSP 和物理专业知识,这给您的理解造成了一些障碍。希望这个答案有助于隧道通过。

现在,您的第一个问题是关于对离散时间信号进行下采样。事实上,在插值器、下采样等标题下,这里已经有很多这样的问题。这些问题已经得到了非常详细的回答。您最好在网站上搜索以获得更详细的答案,但在这里我将再次给出一个简短的答复。

在对离散时间信号进行下采样时(例如,在您的情况下,从 360 赫兹到 60 赫兹,按因数 6),要考虑的最关键的事情是原始(360 赫兹)信号的频谱利用。根据香农-奈奎斯特采样定理标准,假设该信号在 0 到 180 hz 的频带中包含有意义的(非平凡的)信息。然而,对于许多应用来说,在 0-180 赫兹范围内感兴趣的频带将是一个小得多的频带,例如从 0-20 赫兹。在这种情况下,原始信号被称为“过采样”(在这种情况下为 9 倍)。当一个信号被一个因子 M 过采样时,那么丢弃每(M-1)个样本并使用第M个样本来表示原始信号的信息内容而没有损失是可以接受的(除非在频带的较高端达到混叠限制)。但这会/可能会产生一些噪音,因为混叠位于它的最边缘。

只要原始信号中不感兴趣的频带不包含能量,就不会有任何混叠。为了保证感兴趣带外能量为零的情况,需要在抽取信号之前通过质量足够的合适滤波器滤除感兴趣带外的那些。

因此,这种滤波器的质量取决于 i-原始信号的频谱分布、ii-感兴趣的频带、iii-下采样因子和其他要求,例如实时处理或离线、精度、CPU 功率等。

在您的情况下,答案如下:最好的下采样器应该产生最准确的感兴趣频带信号表示,并拒绝任何不相关的信息供您的转向硬件处理。

简短的回答是这样的:只要您的系统配置为使用 60 hz 信息(30 hz 频段)进行力反馈处理,似乎(根据我对机械加速度信号的经验,确实如此)这个频段的信号足以代表平均机械控制。(据我所知,大多数机械加速度传感器最多使用几百赫兹的频带)。因此,只需使用一个简单的截止频率为 pi/6 的低通滤波器,以获得更好的性能。

第二个问题只是问选择 i-filtering 360hz into 20hz 或 ii-60hz into 20hz 哪个更好。答案是后者。这将是一个更短的过滤器,并且过渡带也会更容易。

当一些样本的延迟变得如此重要时,例如在物理模拟器的实时强制反馈控制示例中,那么使用高精度过滤器变得不切实际。可能您应该完全放弃使用任何过滤器,因为您已经指出车轮力学的物理限制已经阻止响应速度超过 20 hz...