Android 传感器采样率之间的差异
Difference between Android sensors's sampling rates
我正在尝试将加速度计、陀螺仪和磁力计传感器值写入 txt 文件。我将这个传感器值写入不同的文件。但我意识到,当我将传感器的延迟设为 最快 时,加速度计和陀螺仪传感器的采样次数相同,但与它们不同的是,磁力计传感器的采样次数几乎减半。然后我尝试了所有传感器延迟数 200000 ms 并且它们的采样数几乎相同。我想知道为什么会造成这种差异。我是 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% 的数据),要么让每个传感器对 FASTEST 具有不同的采样率。 Android 选择了第二个,否则你会丢失很多有价值的数据。
每个设备和传感器的 FASTEST 是什么会有所不同 - 不同的设备将具有以不同方式工作的传感器的不同实现。
我正在尝试将加速度计、陀螺仪和磁力计传感器值写入 txt 文件。我将这个传感器值写入不同的文件。但我意识到,当我将传感器的延迟设为 最快 时,加速度计和陀螺仪传感器的采样次数相同,但与它们不同的是,磁力计传感器的采样次数几乎减半。然后我尝试了所有传感器延迟数 200000 ms 并且它们的采样数几乎相同。我想知道为什么会造成这种差异。我是 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% 的数据),要么让每个传感器对 FASTEST 具有不同的采样率。 Android 选择了第二个,否则你会丢失很多有价值的数据。
每个设备和传感器的 FASTEST 是什么会有所不同 - 不同的设备将具有以不同方式工作的传感器的不同实现。