كيف يمكنك تطبيق مرشح Highpass لمقياس تسارع iPhone؟
-
02-07-2019 - |
سؤال
أتذكر أنني رأيت رمز مرشح Highpass قبل بضعة أيام في مكان ما في العينات، ولكن لا يمكنني العثور عليه في أي مكان الآن!هل يمكن لأحد أن يتذكرني أين كان رمز تنفيذ مرشح Highpass؟
أو الأفضل من ذلك نشر الخوارزمية؟
شكرًا!
المحلول
#define kFilteringFactor 0.1
static UIAccelerationValue rollingX=0, rollingY=0, rollingZ=0;
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
// Calculate low pass values
rollingX = (acceleration.x * kFilteringFactor) + (rollingX * (1.0 - kFilteringFactor));
rollingY = (acceleration.y * kFilteringFactor) + (rollingY * (1.0 - kFilteringFactor));
rollingZ = (acceleration.z * kFilteringFactor) + (rollingZ * (1.0 - kFilteringFactor));
// Subtract the low-pass value from the current value to get a simplified high-pass filter
float accelX = acceleration.x - rollingX;
float accelY = acceleration.y - rollingY;
float accelZ = acceleration.z - rollingZ;
// Use the acceleration data.
}
نصائح أخرى
فقط في حالة رغبة شخص ما في معرفة ذلك، يمكن العثور على مرشح التمرير العالي في عينة الرسم البياني لمقياس التسارع.
هذا هو الرابط وأنا كنت أبحث عنه أيضاهذا مثال على مرشح التمرير العالي والمنخفض التكيفي/غير التكيفي: مكتبة Apple iOS المرجعية - مثال على الرسم البياني لمقياس التسارع
لا تنتمي إلى StackOverflow