【问题标题】:How to calculate Vibration Frequency (Hz or G or Equivalent) using Accelerometer Sensor of Mobile phone?如何使用手机的加速度计传感器计算振动频率(Hz 或 G 或等效)?
【发布时间】:2019-01-18 09:36:52
【问题描述】:

我正在开发一个安卓移动应用。我想使用提供 m/s^2 三轴输出(x、y、z)的加速度计传感器来计算振动频率。 样品: x: 9.89403849 是:5.99348859 z: 10.9458495

它是一个 React Native 应用程序,我使用库 https://react-native-sensors.github.io/docs/Usage.html 来访问传感器的输出。

constructor() {
  super();

  this.state = {
    value: null
  }

  setUpdateIntervalForType(SensorTypes.accelerometer, 1000);
}

componentWillMount() {
 const subscription = accelerometer.subscribe(({ x, y, z, timestamp }) =>
    this.setState({
      value: z
   })
 );
}

是否可以使用上述移动加速度计传感器的输出计算振动频率以及如何计算?

【问题讨论】:

  • 通常智能手机加速度计的分辨率为 5 毫秒,因此它们可以每 5 毫秒返回一个值。所以最大可检测频率为200Hz。够你吃吗?

标签: java android react-native kotlin android-sensors


【解决方案1】:

您需要收集加速度数据的样本时间序列,然后应用Fourier transform 将数据分解为组成频率分量,假设有一个清晰的信号。有几点需要考虑:

  • 数据的时间分辨率应至少比预期频率小一个数量级
  • 样本的总长度应至少是预期频率周期的几倍
  • 如果没有清晰的信号(手机静止不动等),仍然会有计算结果,但您需要有一定的置信度才能丢弃低于任意置信度阈值的结果。
  • 加速度数据提供三个空间轴,但您只想要一个结果编号?然后,您需要考虑如何根据计算可能产生的三个独立频率来定义该数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    相关资源
    最近更新 更多