Android传感器之间的差异';s采样率

Android传感器之间的差异';s采样率,android,accelerometer,android-sensors,gyroscope,magnetometer,Android,Accelerometer,Android Sensors,Gyroscope,Magnetometer,我正在尝试将加速度计、陀螺仪和磁强计传感器的值写入txt文件。我把这个传感器的值写进了不同的文件。但我意识到,当我把传感器的延迟设为最快时,加速计和陀螺仪传感器的采样次数是相同的,但与它们不同的是,磁强计传感器的采样次数几乎是一半。然后我尝试了所有传感器的延迟数到200000毫秒,它们的采样数几乎相同。我想知道为什么会产生这种差异。我对Android和传感器还不熟悉,所以我非常感谢您的帮助 谢谢 if(sensor.getType() == Sensor.TYPE_ACCELEROME

我正在尝试将加速度计、陀螺仪和磁强计传感器的值写入txt文件。我把这个传感器的值写进了不同的文件。但我意识到,当我把传感器的延迟设为最快时,加速计和陀螺仪传感器的采样次数是相同的,但与它们不同的是,磁强计传感器的采样次数几乎是一半。然后我尝试了所有传感器的延迟数到200000毫秒,它们的采样数几乎相同。我想知道为什么会产生这种差异。我对Android和传感器还不熟悉,所以我非常感谢您的帮助

谢谢

     if(sensor.getType() == Sensor.TYPE_ACCELEROMETER) {

            x_axis = event.values[0];
            y_axis = event.values[1];
            z_axis = event.values[2];

            try {
                writeToFile("accelerometer.txt", letter + " " + subject + " " + timestamp + " " + x_axis + " " + y_axis + " " + z_axis + "\n");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        if(sensor.getType() == Sensor.TYPE_GYROSCOPE) {

            gyro_x_axis = event.values[0];
            gyro_y_axis = event.values[1];
            gyro_z_axis = event.values[2];

            try {
                writeToFile("gyroscope.txt", letter + " " + subject + " " + timestamp + " " + gyro_x_axis + " " + gyro_y_axis + " " + gyro_z_axis + "\n");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        if(sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
            mag_x_axis = event.values[0];
            mag_y_axis = event.values[1];
            mag_z_axis = event.values[2];

            try {
                writeToFile("magnetometer.txt", letter + " " + subject + " " + timestamp + " " + mag_x_axis + " " + mag_y_axis + " " + mag_z_axis + "\n");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

传感器是物理设备。这意味着它们都以不同的速率响应输入。例如,加速计传感器可能在2毫秒内检测到变化,而光传感器可能需要100毫秒。因此,您有两种选择-要么以设备上最慢的传感器的速率采样(在本例中,在这种情况下,您会丢失来自加速计的98%数据),要么让每个传感器具有不同的采样速率以获得最快的数据。Android选择了第二个,因为否则会丢失大量有价值的数据


每个设备和传感器的最快速度会有所不同-不同的设备会有不同的传感器实现,它们以不同的方式工作。

请尽量让您的问题更加具体。你们想知道为什么磁强计产生的样品更少吗?或者,您正在询问如何以最快的速率轮询所有传感器,以提供每个传感器的样本?还是别的什么?。如果可能,提供一些代码和示例输出来演示问题。感谢您的建议。我在问题中做了一些补充。谢谢你的回答。现在我明白了,不同的采样次数是正常的。我想再问一件事,我将在手势识别中使用这些值,所以我需要使它们具有相同的采样长度吗?如果是这样,我应该用零来填充空白空间吗?绝对不要使用0。更正确的做法是使用最后一个值,直到你得到一个新值。对不起,我知道我问的问题太多了,但我如何才能做到你所说的?有新价值的东西吗?