Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用手机的加速度传感器计算振动频率(Hz或G或等效值)?_Java_Android_React Native_Kotlin_Android Sensors - Fatal编程技术网

Java 如何使用手机的加速度传感器计算振动频率(Hz或G或等效值)?

Java 如何使用手机的加速度传感器计算振动频率(Hz或G或等效值)?,java,android,react-native,kotlin,android-sensors,Java,Android,React Native,Kotlin,Android Sensors,我正在开发一款android手机应用程序。我想使用提供m/s^2三轴输出(x、y、z)的加速度计传感器计算振动频率。 样品: x:9.89403849 y:5.99348859 z:10.9458495 这是一个React原生应用程序,我使用该库访问传感器的输出 constructor() { super(); this.state = { value: null } setUpdateIntervalForType(SensorTypes.accelerometer

我正在开发一款android手机应用程序。我想使用提供m/s^2三轴输出(x、y、z)的加速度计传感器计算振动频率。 样品: x:9.89403849 y:5.99348859 z:10.9458495

这是一个React原生应用程序,我使用该库访问传感器的输出

constructor() {
  super();

  this.state = {
    value: null
  }

  setUpdateIntervalForType(SensorTypes.accelerometer, 1000);
}

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

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

您需要收集加速度数据的采样时间序列,然后应用a将数据分解为组成频率分量,假设存在清晰的信号。有几件事需要考虑:

  • 数据的时间分辨率应至少比预期频率小一个数量级
  • 样本的总长度应至少为预期频率周期的几倍
  • 如果没有清晰的信号(手机静止不动等),仍然会有一个计算结果,但您需要有一个置信度来丢弃低于某个任意置信阈值的结果
  • 加速度数据提供三个空间轴,但您只需要一个结果编号?然后,你需要考虑如何根据计算得出的三个不同的频率定义这个数。
通常智能手机加速计的分辨率为5毫秒,因此它们可以每5毫秒返回一个值。因此,最大可检测频率为200Hz。对你来说够了吗?