Как рассчитать значение параметра сглаживания для фильтра нижних частот (в случае сглаживания данных датчика компаса)

Я хочу сгладить данные датчика компаса смартфона с помощью фильтра нижних частот и рассчитать параметр сглаживания для реализации фильтра нижних частот.

У меня есть вопрос относительно одного из вопросов/сообщений, доступных на этом форуме

В приведенном выше сообщении автор хочет сгладить данные датчика с помощью фильтра нижних частот и предложил установить параметр сглаживания (ALPHA) в соответствии с потребностями. Параметр сглаживания должен лежать между 0-1. Значение, близкое к 0, является гладким в данных.

Поэтому автор использовал АЛЬФА = 0,15.

По моему мнению и с научной точки зрения этого нельзя сделать, закрыв глаза и выбрав случайное значение от 0 до 1.

Итак, мой вопрос заключается в том, как рассчитать параметр сглаживания (АЛЬФА), в то время как моя частота дискретизации составляет 100 Гц. По моему мнению, этот параметр сглаживания различен для разной частоты дискретизации. Поэтому предположение или анализ параметра сглаживания не будет работать в режиме реального времени.

Поэтому я ищу, как рассчитать параметр сглаживания для фильтра нижних частот. В связи с этим я видел эту интересную презентацию.

На странице 13 можно увидеть формулу для расчета параметра сглаживания, если известна постоянная времени (Тау)

Формула для расчета Тау = Емкость * Сопротивление

из таблицы данных электронного компаса AK8974 я рассчитал сопротивление и емкость и рассчитал (Тау)

зная тау, можно легко вычислить параметр сглаживания по следующей формуле

АЛЬФА=Тау/Тау+дельтаТ

Значение АЛЬФА в моем случае (0,00714)

Мне нужны мнения о расчете постоянной времени (Тау) и параметра сглаживания. Это правильный способ выравнивания параметра сглаживания? Есть ли другой способ?


person user3123466    schedule 25.12.2013    source источник
comment
Как вы думаете, это правильный способ выбрать случайное значение АЛЬФА, которое соответствует требованию.   -  person user3123466    schedule 26.12.2013
comment
Что ж, из таблицы данных я взял емкость и сопротивление чипсета и рассчитал постоянную времени (TAU) = сопротивление * емкость. Как только Tau стало известно, я вычислил параметр сглаживания ALPHA=Tau/Tau+deltaT, где deltaT — моя частота дискретизации, т. е. 50 Гц = 20 миллисекунд = 0,02 секунды, а Tau — 0,144*10^-3 секунды.   -  person user3123466    schedule 26.12.2013
comment
Рассчитанный в этом случае AlPHA =0,00714   -  person user3123466    schedule 26.12.2013
comment
Ну, вы получили значение, вы пробовали, чтобы увидеть, подходит ли сигнал для вашего приложения? кажется низким значением, просто попробуйте. Это не чипсет, а просто микросхема электронного компаса :)   -  person Diego C Nascimento    schedule 26.12.2013
comment
Я попробовал это значение сглаживания на моих исходных данных, оно работает нормально. Я наблюдал стандартное отклонение 1,5 градуса в гладких данных и стандартное отклонение 10 градусов в моих исходных данных. Но есть проблема, всякий раз, когда происходит изменение ориентации (скажем, на 90 градусов), я наблюдал отставание в гладких данных примерно на 4-6 секунд.   -  person user3123466    schedule 26.12.2013


Ответы (1)


По моему мнению и с научной точки зрения этого нельзя сделать, закрыв глаза и выбрав случайное значение от 0 до 1.

Может быть, а может и нет. Настройка сглаживающего фильтра обычно является эмпирической задачей, вы выбираете значение, которое «достаточно хорошо работает» на практике. Вы компенсируете гладкость результата скоростью (то есть способностью быстро реагировать на изменения во входных данных).

С другой стороны, если есть существует конкретная постоянная времени, к которой вы стремитесь, то да, просто используйте ее! *

Вы можете проанализировать выражение фильтра, чтобы определить его частотную характеристику. Однако для этого обычно требуется преобразование Фурье с дискретным временем ( и, возможно, также Z-преобразование). Боюсь, это немного выходит за рамки ответа на переполнение стека!


* Тем не менее, я не уверен, что вы прочитали в этой таблице, что заставило вас поверить, что это конкретное значение тау — это то, что вам следует использовать...

person Oliver Charlesworth    schedule 26.12.2013
comment
Что ж, из таблицы данных я взял емкость и сопротивление чипсета и рассчитал постоянную времени (TAU) = сопротивление * емкость. Как только Тау стало известно, я вычислил параметр сглаживания АЛЬФА=Тау/Тау+дельтаТ, где дельтаТ — моя частота дискретизации, т. е. 50 Гц = 20 миллисекунд, а Тау — 0,144 миллисекунды. - person user3123466; 26.12.2013
comment
@ user3123466: Я действительно не смотрел техническое описание, но соответствуют ли R и C пути прохождения сигнала? - person Oliver Charlesworth; 26.12.2013