मैंने एक्सेलेरोमीटर को पढ़कर एक आईफोन के साथ किए गए चरणों को मापने के कई तरीकों की कोशिश की है, लेकिन कोई भी बहुत सटीक नहीं रहा है। मैंने उपयोग किया गया सबसे सटीक कार्यान्वयन निम्न है:मैं इस pedometer एल्गोरिदम की सटीकता में सुधार कैसे करूं?
float xx = acceleration.x;
float yy = acceleration.y;
float zz = acceleration.z;
float dot = (mOldAccX * xx) + (mOldAccY * yy) + (mOldAccZ * zz);
float a = ABS(sqrt(mOldAccX * mOldAccX + mOldAccY * mOldAccY + mOldAccZ * mOldAccZ));
float b = ABS(sqrt(xx * xx + yy * yy + zz * zz));
dot /= (a * b);
if (dot <= 0.994 && dot > 0.90) // bounce
{
if (!isChange)
{
isChange = YES;
mNumberOfSteps += 1;
} else {
isChange = NO;
}
}
mOldAccX = xx;
mOldAccY = yy;
mOldAccZ = zz;
}
हालांकि, यह केवल उपयोगकर्ता के 80% कदमों को पकड़ता है। मैं अपने पैडोमीटर की शुद्धता कैसे सुधार सकता हूं?
लापता 20% जोड़ने के लिए एक कारक द्वारा अपना उत्तर गुणा करें - मुझे लगता है कि सस्ते पैडोमीटर क्या करते हैं - उनके पास संवेदनशीलता डायल है;) – deanWombourne