8
이동 평균을 사용하여 가속도계 값을 필터링하고 싶습니다. 어떻게 수행합니까? 감사합니다.iPhone OS의 가속도계 값을 필터링하는 데 이동 평균을 사용하는 방법
이동 평균을 사용하여 가속도계 값을 필터링하고 싶습니다. 어떻게 수행합니까? 감사합니다.iPhone OS의 가속도계 값을 필터링하는 데 이동 평균을 사용하는 방법
단순한 단일 극, 로우 패스, 재귀 IIR 필터는 빠르고 쉽게 구현할 수 있습니다. 여기서 x, y는 원 (필터링되지 않은) X/Y 가속도계 신호 XF있다
xf = k * xf + (1.0 - k) * x;
yf = k * yf + (1.0 - k) * y;
는 YF 필터링 된 출력 신호이고, k는 필터 시간 상수 (0.9 0.9999 사이 통상 값을 결정한다. .., 여기서 더 큰 k는 더 긴 시간 상수를 의미 함).
당신은 경험적으로 k
를 결정할 수있다, 또는 당신이 당신의 요구 차단 주파수, Fc
을 알고 있다면, 다음 수식을 사용할 수 있습니다 Fs
는 샘플 속도입니다
k = 1 - exp(-2.0 * PI * Fc/Fs)
.
xf, yf는 RHS의 출력 신호의 이전 값이고 위의 식의 LHS의 새로운 출력 값입니다.
가속도계 신호를 일정한 시간 간격으로 샘플링한다고 가정합니다. 10ms마다. 시간 상수는 k와이 샘플링 간격의 함수가됩니다.
그래서 x와 y는 가속도계 x와 가속도계입니다. 저는 혼란 스럽습니다. '원시 입력 신호'가 무엇인지 모르겠습니다. :/ – DotSlashSlash
아니요, y는 필터링 된 신호이고, x는 가속도계가 준 것입니다. xf = k * xf + (1.0-k) * x' 여기서 xf는 x의 필터링 된 버전이고, y 축은 비슷한 방정식입니다. –
@Andrew - 제안 해 주셔서 감사합니다. 이제 선명도가 향상되도록 편집되었습니다 (희망 사항입니다.). –