时间同步平均 - MATLAB

信息处理 matlab 平均 时域
2022-01-25 05:30:28

我有一个对应于机器振动信号的时域信号。我有一个对应于转速计信号的第二个信号(轴每转一圈就有一个脉冲)。我想在 MATLAB 下使用时间同步平均。我想从时域信号中提取所有时间块,其持续时间是信号一转的持续时间,并将它们平均出来。 这是我想做的事情 我遇到的问题是轴的速度略有波动。我已将其设置为 900RPM,但在采集期间它从 895RPM 变为 904RPM,因此一转的持续时间也会波动(几毫秒)。我的问题是平均不同持续时间的信号块会是一个问题吗?如果是这样,我应该如何处理?

4个回答

您的问题“是否有问题”的答案实际上取决于您来确定。有时简单的事情就足够了。

有一种称为动态时间扭曲的技术:

https://en.wikipedia.org/wiki/Dynamic_time_warping

Matlab有一个函数dtw

https://www.mathworks.com/help/signal/ref/dtw.html

这可以用来确定是否有问题。

我建议你选择一个参考区间,这将是最接近平均轴区间的,并使用它来扭曲其余部分。

在这类问题中,常见的方法是将数据从时域重新采样到角度域。涉及的步骤是:

  1. 使用转速计信号获取速度信号。这是每个触发点的时间差的倒数。
  2. 根据转速计信号的可变性,经常使用最小二乘三次样条拟合。Matlab 样条库将与 matlab 中央库一样工作。我使用 fastBspline 库。
  3. 积分速度信号以获得轴角位置。
  4. 确定要使用的等角度增量。请牢记奈奎斯特定理,换句话说,角域中的点数应该与时域中的点数大致相同。
  5. 将(时间,角度)数据切换为(角度,时间)。
  6. 重新采样(角度,时间)数据以获得统一的角度增量。

完成此操作后,请执行您将完成的所有相同处理,但现在您处于角度顺序域中。

为什么不在tsaMatlab 中使用?

您及时以固定的采样率对数据进行采样吗?

但是,2 转之间的时间延迟不是恒定的,因为您提到您的 RPM 不是恒定的。

如果您将数据拆分为对应于一圈的块,则您的块将不会具有相同的时间长度。