我正在记录交流电机(50Hz 欧洲)的振动,并试图确定它是否通电。当我记录这些振动时,我基本上得到了振动值(到) 随着时间的推移。
我想开发一个程序来检测稳定的输入数据流中是否存在 50Hz 正弦波。我会有和测量,其中表示幅度和时间(以 100Hz 采样 - 可以将采样率增加到最大 200Hz 或 400Hz)
这是一项适合神经网络的任务吗?如果是,它会比其他检测方法效率低吗?
我正在记录交流电机(50Hz 欧洲)的振动,并试图确定它是否通电。当我记录这些振动时,我基本上得到了振动值(到) 随着时间的推移。
我想开发一个程序来检测稳定的输入数据流中是否存在 50Hz 正弦波。我会有和测量,其中表示幅度和时间(以 100Hz 采样 - 可以将采样率增加到最大 200Hz 或 400Hz)
这是一项适合神经网络的任务吗?如果是,它会比其他检测方法效率低吗?
这是适合神经网络的任务吗
是的。事实上,你有选择:
全连接网络将是最简单的架构,如果你给它一些样本时间窗口(例如每 0.5 秒或每 50 个样本)和受监督的训练数据 - 具有传感器读数的样本集和地面实况值是否电机是否打开。
一维卷积神经网络可能是最有效和最健壮的训练,并且将采用与全连接网络相同的输入和输出。
循环神经网络训练起来会比较棘手,但是一个更好的设计,因为你可以一次给它一个样本。输入将是当前样本,并输出电机开启的概率。在训练这个时,您还希望在电机开启和关闭之间提供转换。这样做的好处是它应该给你关于电机是打开还是关闭的快速反馈 - 需要注意的是它可能更有可能触发间歇性误报,因此可能需要一些额外的后处理。
以上所有要求您收集训练数据,最好是在与计划使用探测器相同的情况下。因此,如果电机安装在可能会经历其他振动的地方,则应在电机开启和关闭的情况下模拟其中一些场景。
如果是这样,它会比其他检测手段效率低吗?
就您的计算能力和工作量而言,您可能会发现在目标频率处具有简单阈值的现成快速傅里叶变换 (FFT) 库函数将成为一个强大且简单的检测器,无需神经网络。
通常,对于特定频率检测,您将获取一个样本窗口,调整它们(使用例如汉明窗口)以减少在转换中显示为频率的边缘效应,然后运行 FFT。这种组合非常常见,您可能会发现它已经组合在 FFT 库中。有关这方面的更多信息,您可能想在Signal Processing Stack Exchange中询问,那里对 FFT 的使用非常了解。
如果环境嘈杂或目标频率可能会漂移(难以设置简单的阈值),那么您还可以将 FFT 与神经网络结合使用。这种组合可以解决更复杂的信号检测,例如用于语音处理。
以 100Hz 采样 - 可以将采样率提高到最大 200Hz 或 400Hz
为了可靠地检测 50Hz 信号,我会说 200Hz 采样率是最低的。理论最小值为 100Hz(即信号频率的两倍),但可能会给您带来噪音问题,并且您的采样点可能恰好落在振荡的低振幅部分,即使它看起来像电机关闭也是如此在。
您可以实现自动编码器网络。自动编码器是一种无监督的人工神经网络,它学习如何有效地压缩和编码数据,然后学习如何将数据从简化的编码表示重建回尽可能接近原始输入的表示。当您使用 50Hz 正弦波数据训练自动编码器时,如果将 50Hz 正弦波数据作为输入,您的模型可以正确重建。当输入的“重建损失”小于您的阈值时,可以说给定的输入是 50Hz 正弦波。