Java 如何使用手机的加速度传感器计算振动频率(Hz或G或等效值)?
我正在开发一款android手机应用程序。我想使用提供m/s^2三轴输出(x、y、z)的加速度计传感器计算振动频率。 样品: x:9.89403849 y:5.99348859 z:10.9458495 这是一个React原生应用程序,我使用该库访问传感器的输出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
constructor() {
super();
this.state = {
value: null
}
setUpdateIntervalForType(SensorTypes.accelerometer, 1000);
}
componentWillMount() {
const subscription = accelerometer.subscribe(({ x, y, z, timestamp }) =>
this.setState({
value: z
})
);
}
是否可以使用上述移动加速计传感器的输出以及如何计算振动频率?您需要收集加速度数据的采样时间序列,然后应用a将数据分解为组成频率分量,假设存在清晰的信号。有几件事需要考虑:
- 数据的时间分辨率应至少比预期频率小一个数量级
- 样本的总长度应至少为预期频率周期的几倍
- 如果没有清晰的信号(手机静止不动等),仍然会有一个计算结果,但您需要有一个置信度来丢弃低于某个任意置信阈值的结果
- 加速度数据提供三个空间轴,但您只需要一个结果编号?然后,你需要考虑如何根据计算得出的三个不同的频率定义这个数。