2011-08-02 18 views
1

iphone加速度計の最大サンプリングレートは何ですか? 私は更新レートが高いことを望みます。私は1.0/300.0にupdateIntervalに設定します しかし、それはあまり更新レートを取得していないようです。iphoneの加速度計の最大サンプリングレート

私たちが得ることができる最大の更新レートはどれくらいであるか、どのように高い更新レートを得ることができるかは、どのボディからもわかります。

答えて

1

iPhone 6の最大加速度計とジャイロスコープのサンプリングレートは、100Hzです。あなた自身がこれを経験的にテストすることができます。ここにコードがあります。

/******************************************************************************/ 
// First create and initialize two NSMutableArrays. One for accel data and one 
// for gyro data. Then create and initialize CMMotionManager. Finally, 
// call this function 

- (void) TestRawSensors 
{ 
    speedTest = 0.0001; // Lets try 10,000Hz 
    motionManager.accelerometerUpdateInterval = speedTest; 
    motionManager.gyroUpdateInterval = speedTest; 


    [motionManager startAccelerometerUpdatesToQueue: [NSOperationQueue currentQueue] 
    withHandler: ^(CMAccelerometerData *accelerometerData, NSError *error) 
    { 
     [rawAccelSpeedTest addObject: [NSNumber numberWithDouble: accelerometerData.timestamp]]; 
     [rawAccelSpeedTest addObject: [NSNumber numberWithDouble: accelerometerData.acceleration.x]]; 

     if (error) 
     { 
      NSLog(@"%@", error); 
     } 

     if (rawAccelSpeedTest.count > 100) 
     { 
      [motionManager stopAccelerometerUpdates]; 

      for (uint16_t i = 0; i < rawAccelSpeedTest.count; i+=2) 
      { 
      NSLog(@"Time: %f Accel: %f", [rawAccelSpeedTest[i] doubleValue], 
              [rawAccelSpeedTest[i+1] doubleValue]); 
      } 
     } 
    }]; 


    [motionManager startGyroUpdatesToQueue: [NSOperationQueue currentQueue] 
           withHandler: ^(CMGyroData *gyroData, NSError *error) 
    { 
     [rawGryoSpeedTest addObject: [NSNumber numberWithDouble: gyroData.timestamp]]; 
     [rawGryoSpeedTest addObject: [NSNumber numberWithDouble: gyroData.rotationRate.x]]; 

     if (error) 
     { 
      NSLog(@"%@", error); 
     } 

     if (rawGryoSpeedTest.count > 100) 
     { 
      [motionManager stopGyroUpdates]; 

      for (uint16_t i = 0; i < rawGryoSpeedTest.count; i+=2) 
      { 
      NSLog(@"Time: %f Rate: %f", [rawGryoSpeedTest[i] doubleValue], 
              [rawGryoSpeedTest[i+1] doubleValue]); 
      } 

     } 
    }]; 
} 
+0

もう少し詳細を教えてください。私は生データを取得しますが、どのように解釈する必要がありますか?また、標準偏差はどうですか?ありがとう! –

関連する問題