Помогите собрать фильтр с адаптивным коэфициентом

Создаем свой блок. Вопросы, помощь знатоков.
Ответить
Sams
Рядовой
Сообщения: 22
Зарегистрирован: 31.03.2023{, 13:28}
Репутация: 2
Имя: Вася

Помогите собрать фильтр с адаптивным коэфициентом

#1

Сообщение Sams » 23.08.2023{, 12:28}

Код: Выделить всё

// бегущее среднее с адаптивным коэффициентом
float expRunningAverageAdaptive(float newVal) {
  static float filVal = 0;
  float k;
  // резкость фильтра зависит от модуля разности значений
  if (abs(newVal - filVal) > 1.5) k = 0.9;
  else k = 0.03;
  
  filVal += (newVal - filVal) * k;
  return filVal;
}

Naladchik
Капитан
Сообщения: 824
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 153
Откуда: Новосибирск
Имя: Павел

Помогите собрать фильтр с адаптивным коэфициентом

#2

Сообщение Naladchik » 23.08.2023{, 13:28}

собрано в версии 8.2.3
P.S.
Небольшая корректировка.
Добавил блок в проф. редакторе (не создает лишних переменных).
Вложения
expRunningAverageAdaptive_.flp
(239.68 КБ) 22 скачивания
Win10-64. FLProg Portable.
Изображение

Ответить

Вернуться в «Разработка пользовательских блоков»