如何处理 AD 转换器数据流的介绍
扫描二维码
随时随地手机看文章
如果我们已经设置了 A/D 转换器或智能传感器,并且主机处理器正在从读数中获取数据,这是第一步。对于某些应用程序,按需读取一次可能很有用。许多应用程序要求对读数流进行一些计算。
信号处理是一个深奥的话题,但我们将为制造商保持简单。这里有一些关于处理 A/D 数据流的基础知识。
1. 时间是一个重要的维度
分析二维 (2D) 数据,例如来自图像传感器的像素数据,要复杂得多。为此,我们假设我们正在处理来自每个传感器的连续、实时的一维 (1D) 时间序列。时间序列就是它听起来的样子:在连续时间点采集的样本,从最早到最近。
使分析更容易的是一致间隔的 A/D 样本。理想情况下,样本具有恒定的输出数据速率 (ODR),以设定的频率触发读数。无论主机何时读取数据,样本间距都是已知且一致的。例如,20 Hz 的 ODR 意味着样本相隔 50 毫秒。虽然可以为不规则样本加上时间戳并计算出间距,但这需要更多的存储和更多的处理。
1. 本地决策可以提供帮助
另一个简化来自理解应用程序和解释数据及其意义。这是边缘计算的关键原则之一——不要将原始数据发送到云端进行处理,这并不有趣。本地决策有助于减少网络拥塞和云存储需求。
几个例子可能有助于说明这一点。假设传感器正在监测泵电机的温度。您需要查看完全正常的读数吗?不,您想知道传感器是否正常工作,它会在温度升高并接近过热时提醒您。
另一个例子是模型火箭高度计。当它坐在发射台上时,它是静止的,除了设置参考零高度之外,读数并不是很有趣。从高度计的角度来看,“发射”是在高于阈值(如 5 米)的高度变化加上加速度时出现的。数据收集从那时开始。
1. 处理的三个基本方案
制造商可能熟悉一批样本数据的统计计算。处理实时采样的 A/D 数据流有点不同。流处理有三个基本动机。
· 降噪:使用平均技术可以轻松消除均匀分布的“白”噪声。移动平均线试图平滑信号,取最近的 N 个样本并对它们进行平均。当下一个样本进来时,它与最近的 N-1 个样本一起被扔进去并再次平均。移动平均引入了滞后,随着周期变大,滞后变大。通常,计算并比较两个移动平均线,一个具有较短周期的 M 个样本,另一个具有较长周期的 N 个样本。
· 预测:对于控制系统,能够预测或至少对来自一组先前样本的下一个样本进行有根据的猜测是非常有用的。例如,用外力(如工作中的风速变化)来预测无人机的运动是一项挑战。有“过滤”步骤预测器,将不确定性纳入最佳新估计。最常见的是卡尔曼滤波器,通常在罐装库算法中可用。
· 频域分析:时间序列可能会揭示一些信息,但真正的信息往往在于频域。假设 Nyquist 采样,快速傅立叶变换 (FFT) 将时间序列数据转换为频率区间中的能量。对于分析音频数据或振动模式,使用频域是必不可少的。
1. 传感器融合可以提供洞察力
最后,还有传感器融合的想法。来自不同类型传感器的读数结合起来产生的信息比单独一个传感器所能提供的信息多。传感器融合也会很快变得复杂。在传感器之间融合具有不同采样率和时间延迟的数据变得不切实际。
简化有帮助。让我们回到我们的模型火箭高度计示例。好的高度计同时具有压力传感器和加速度计,并且它们以相同的低采样率运行,因此没有明显的相位延迟。我们谈到了检测“发射”。仅从压力读数就可以得出近似的最大高度或远地点。更准确的读数来自加速度停止的样本的相关性——1 g,直线下降。
传感器融合在无人机和机器人中广泛使用的惯性测量单元 (IMU) 中也很常见。结合加速度计、陀螺仪和磁力计读数,可以更完整地了解姿势。具有集成处理功能的封装 IMU 可以完成大部分计算。
重述处理 A/D 数据流的步骤
给定关键算法的库,时间序列数据分析是可行的。以下是步骤的摘要:
· 为传感器选择并设置 ODR,并为任何其他传感器选择相同的速率。
· 应用本地决策以减少数据传输、处理和存储要求。
· 确定应用程序需要什么:降噪、预测或频域分析。
· 尽可能从应用程序库中为更复杂的算法借用经过验证的代码。
· 在问题得到充分探索且解决方案已知的情况下,利用传感器融合。
通过处理 A/D 数据流获得信心可以从数据中获得更多见解。它甚至可能会激发您使用自己的传感器包和算法进行创新。