有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android如何借助SensorEvent获得不同频率的振幅

我想计算车辆移动时的振动。我在onSensorChanged事件中获取此数据。我需要计算12hz、24hz和36hz的振动

@Override    
public void onSensorChanged(SensorEvent event) {

    if (started) {

        long timestamp = System.currentTimeMillis();


        final float alpha = 0.8f;
        gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
        gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
        gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];

        accelerometer_data[0] = event.values[0] - gravity[0];
        accelerometer_data[1] = event.values[1] - gravity[1];
        accelerometer_data[2] = event.values[2] - gravity[2];




        long differ = (timestamp - previousTime);


        if (differ > 1500 ){
            Log.e(Tag, rotation_per_second * accelerometer_data[0]+"--12hz");
            Log.e(Tag, rotation_per_second *2* accelerometer_data[1]+ "--24hz");
            Log.e(Tag, rotation_per_second *3* accelerometer_data[2]+"--36hz");
            previousTime = timestamp;




        }

        else
        {

            //Log.e(Tag, "Difference = "+differ+"");
        }





        AccelData data = new AccelData(timestamp,  accelerometer_data[0], accelerometer_data[1], accelerometer_data[2]);
        sensorData.add(data);


    }
}

每秒旋转是我在车辆移动时得到的频率。例如,如果车辆以每小时60英里的速度行驶,我将获得12赫兹的频率。现在,我想从onSensorChanged事件计算12hz、24hz和36hz的振幅


共 (0) 个答案