![]() |
Фильтрация данных
Имеем девайс с акселерометром,с которого мы снимаем вектор.Но кроме вектора мы получаем еще и мусор в виде дельты.То есть даже если девайс лежит и не шевелится,в каждом фрейме мы получаем различное значение вектора.Каким образом отфильтровать мусор ? Средневзвешенное значение не проходит.
|
Ответ: Фильтрация данных
нужен low-pass filter (отрезает высокие частоты и оставляет низкие)
Цитата:
|
Ответ: Фильтрация данных
Цитата:
|
Ответ: Фильтрация данных
Акселерометр цифровой или аналоговый? Если аналоговый, то скорее всего это шум АЦП. Выход - просто игнорировать пару младших разрядов.
|
Ответ: Фильтрация данных
Аналоговый.Каким образом игнорировать?
|
Ответ: Фильтрация данных
Получил, проверил, есть что нада - обработал, то что не нада - проигнорировал.
Получил, проверил, есть только то что не нада - проигнорировал. Чтобы определить что нада а что нет, у тебя же есть спецификация бинарных данных, так? Так вот и пляши от неё. |
Ответ: Фильтрация данных
Цитата:
Напряжение вычисляется по формуле V=Val*Vref/(2^n-1), где n - разрядность АЦП, Val-значение, снимаемое с АЦП, Vref - опорное напряжение. Чтобы отсечь шумы, сдвигаем Val на 2 бита вправо, а разрядность (n) уменьшаем на те же 2. То есть, вместо V=Val*Vref/1023 пишем V=(Val shr 2)*Vref/255. Таким образом, получаем 8-разрядный АЦП вместо 10-разрядного, зато отсекаются шумы. |
Ответ: Фильтрация данных
Цитата:
|
Ответ: Фильтрация данных
Установи диапазон частот шума. Впиши соответствующий фильтр
http://ru.wikipedia.org/wiki/Линейная_фильтрация например покури. Ну и ключевое слово для поиска "ЦОС" (цифровая обработка сигнала - дисциплина такая в ВУЗах есть). Шум АЦП, как уже говорилось, подавляется игнорированием младших разрядов. Хотя и тут бы можно было провести спектральный анализ снятых данных (для уточнения картины) - делов то. |
Ответ: Фильтрация данных
Цитата:
Я как понял тут вовсе никакой проблемы с акселерометром, лишь с логикой приложения.. |
Ответ: Фильтрация данных
Я снимаю с девайса через прослойку вектор.Вектор с шумами.Как я уже писал выше,даже при лежащем девайсе значение вектора изменяется в пределах +/- 30%.Мне эти колебания нужно сгладить/отфильтровать до вменяемых значений.К самому девайсу/прослойке доступа нет.Я могу оперировать только значением вектора.
|
Ответ: Фильтрация данных
Запиши компоненты вектора во времени. У тебя получится три сигнала (компонента от времени). Построй их спектры. Если это действительно шум, который можно отделить (в противном случае задача нерешаема и для челвоека), то у него будет некое выраженное преобладание в распределении по частотам. Именно эти частоты можно подавить (особенно если они не пересекаются с областью рабочих частот (см. выше)), указав соответствующие параметры фильтра.
Кроме того (навряд ли твой случай) частотное распределение паразитных сигналов, порой, может позволить локализовать причину и источник помех. http://ru.wikipedia.org/wiki/Дискрет...азование_Фурье |
Ответ: Фильтрация данных
Кстати фильтрацию можно реализовать с помощью этой библиотеки. (Во 2-ом посте приводится упрощённое частное решение).
// на случай, если кто-то вновь будет искать решение проблемы |
Часовой пояс GMT +4, время: 00:17. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot