Страница 1 из 1

Цифровой сглаживающий фильтр для сенсоров

Добавлено: Ср дек 19, 2012 11:27 am
Alex
Собственно вот. Смысл сего кода виден на графике. Вместо скачков показаний сенсора видим реальный график роста температуры.

Вызов

&fil01=x

,где x — это глубина фильтра (от 1 до …). Подбирается индивидуально, ходовые значения от 1 до 500. При x=500 сглаживает в почти ровную линию. На втором графике х=100.

Работает быстро и не тормозит!

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


//---------------------------- fil01 
  
if ($_GET['fil01']) {
  $fil01=$_GET['fil01'];
} else {
   $fil01=0;
  }


 if($fil01!=0){
   $all = count($values);
   for($z=0; $z<$fil01; $z++){
     for($i=0; $i<$all-1; $i++){
       if ($values[$i]!=0 && $values[$i+1]!=0) {
       $values[$i]=($values[$i]+$values[$i+1])/2;
	}
  }
   for($i=$all-1; $i>=0; $i--){
     if ($values[$i]!=0 && $values[$i-1]!=0) {
       $values[$i]=($values[$i]+$values[$i-1])/2;
     }
   }
  } //for($z=0;
 } //if($fil01==1)
Вставляется перед этими строчками (перед добавлением в DataSet)

$DataSet->AddPoint($values,"Serie1");
$DataSet->AddPoint($hours,"Serie3");

Re: Цифровой сглаживающий фильтр для сенсоров

Добавлено: Ср дек 19, 2012 12:07 pm
sergejey
Любопытно. Попробую со своими графиками поэкспериментировать.

Re: Цифровой сглаживающий фильтр для сенсоров

Добавлено: Ср ноя 06, 2019 11:05 pm
Kashalex
А можно по подробнее про использование фильтра

Re: Цифровой сглаживающий фильтр для сенсоров

Добавлено: Чт ноя 07, 2019 11:07 am
xor
Kashalex писал(а):А можно по подробнее про использование фильтра
Тема 2012 года, тс ушел из проекта давно

Отправлено с моего Redmi 4X через Tapatalk


Re: Цифровой сглаживающий фильтр для сенсоров

Добавлено: Чт ноя 07, 2019 1:12 pm
serghei
Хозяин ушёл15 января , но наследие живет до сих пор. И если код написан правильно , надо его только прочитать. Смысл любого фильтра - усреднение соседних значений. В простом случае - берем несколько соседних значений из массива и усредняем их . А потом уже по усреднённым данным строим график

Re: Цифровой сглаживающий фильтр для сенсоров

Добавлено: Чт ноя 07, 2019 2:03 pm
Logrus
это пчартс и это там давно уже есть из коробки, помнится даже в блоге было ...

Re: Цифровой сглаживающий фильтр для сенсоров

Добавлено: Чт ноя 07, 2019 7:11 pm
Kashalex
Спасибо за ответы. Но хотелось бы более предметно. У меня есть набор данных, график из которых похож на пилу и есть соответственно желание как то его сгладить. ТС предлагает способ, но я не совсем понимаю как его применить практически. Потому и вопрос к умеющим, как.

Re: Цифровой сглаживающий фильтр для сенсоров

Добавлено: Чт ноя 07, 2019 10:15 pm
Logrus
$fil01 = ''; //сглаживание, по умолчанию = 0 (отсутствует, но можно подставить цифру в кавычки и чем она больше, тем больше сгладит)
https://connect.smartliving.ru/profile/ ... chart.html