Перейти к содержанию
    

Ко всем: EMA - это КИХ или БИХ?
БИХ. Вам же вроде давали эту ссылку => http://www.may.nnov.ru/mak/DSP/wisIIR.shtml

Кстати, EMA эквивалентно установке RC-цепи на входе измерителя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Бугагага:

// SMA - Simple Moving Average

// EMA - Exponential Moving Average

// WMA - Weighted Moving Average

// DEMA - Double Exponential Moving Average

// TEMA - Triple Exponential Moving Average

// TRIMA - Triangular Moving Average

// KAMA - Kaufman Adaptive Moving Average

// MAMA - MESA Adaptive Moving Average

// T3 - Triple Exponential Moving Average

А вообще говоря, имея в виду обобщенное среднее, можно этих средних придумать бесконечно много...

A=Sum(a(i)*b(i)/Sum(b(i)) Или интеграл вместо суммы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Усреднение не всегда есть хорошо.

Если есть время( а оно у автора есть) лучше применить вероятностный метод

(не знаю как он называтся по научному)

 

мз массива оцифрованных значенний выбрать наиболее часто встречающееся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мз массива оцифрованных значенний выбрать наиболее часто встречающееся.
Медианная фильтрация?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, EMA эквивалентно установке RC-цепи на входе измерителя.

 

Я уже заметил =).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да нет, похоже не медианная.
Почему не похоже? Если вашу фразу продолжить

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Усреднение не всегда есть хорошо.

Если есть время( а оно у автора есть) лучше применить вероятностный метод

(не знаю как он называтся по научному)

 

мз массива оцифрованных значенний выбрать наиболее часто встречающееся.

Вы предлагаете построить гистограмму выборки? Могу предположить, что закон распределения для выборки, не очень искаженной какими-либо неприличными факторами, будет близок к нормальному, и, соответственно, максимум распределения совпадет со средним значением выборки. Если же закон распределения будет даже несимметричен, то имеет смысл сначала проверить смехотехнику и программу, а потом уж пускаться во всякие тяжкие.

Если выборка содержит выбросы (ну, н-р, АЦП не вовремя прочитали), то их, как уже отметил ув. rezident, можно попробовать отрезать медианным фильтром.

Но:

1) нужны ли такие навороты в придумываемой коробочке?

2) готов ли автор (которого пугают греческие буквы:)) лезть в теорию измерений? Там этих буковок...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал сделать осреднение результата АЦП. Примерно так:

[*]АЦП в режиме постоянного преобразования (free run)

[*]По совпадению таймера с OCR0 вызывается прерывание, при помощи которого реализована дин.индикация

[*]В этом же обработчике прерывания:

Блин, всю свадьбу пропустил... Вот мне одно непонятно: как можно так мощно дрыгать ногами в динамич. индикации и не отбрасывать значения АЦП, полученные за период, в котором было переключение ног ?

Я так понимаю, что у нас должно быть прерывание во free run, и прерывание по OCR0, если угодно.

В gcc-шной нотации где-то так:

volatile uint8_t bad_adc; // used as flag
volatile uint8_t ad_cnt;   //counter
volatile uint32_t ad_sum;
volatile uint16_t ad_result;
ISR(SIG_ADC)
{
if(!bad_adc)
{
    ad_sum+=(uint32_t) ADC;
    if(ad_cnt++ == 0) 
     {
       ad_result = (ad_sum >>8) & 1023;
            ad_sum = 0;
     }
}
else
{
   bad_adc = 0;
}
}

ISR(SIG_OUTPUT_COMPARE0)
{
/* здесь динамическая индикация*/
/* и обязательно пометка о плохих измерениях */
bad_adc = 1;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы предлагаете построить гистограмму выборки? Могу предположить, что закон распределения для выборки, не очень искаженной какими-либо неприличными факторами, будет близок к нормальному, и, соответственно, максимум распределения совпадет со средним значением выборки. Если же закон распределения будет даже несимметричен, то имеет смысл сначала проверить смехотехнику и программу, а потом уж пускаться во всякие тяжкие.

Если выборка содержит выбросы (ну, н-р, АЦП не вовремя прочитали), то их, как уже отметил ув. rezident, можно попробовать отрезать медианным фильтром.

Но:

1) нужны ли такие навороты в придумываемой коробочке?

2) готов ли автор (которого пугают греческие буквы:)) лезть в теорию измерений? Там этих буковок...

Автору же точность нужна и пусть тренируется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Блин, всю свадьбу пропустил... Вот мне одно непонятно: как можно так мощно дрыгать ногами в динамич. индикации и не отбрасывать значения АЦП, полученные за период, в котором было переключение ног ?

Я так понимаю, что у нас должно быть прерывание во free run, и прерывание по OCR0, если угодно.

А зачем freerun? Пусть хочется вывести 4 десятичных разряда для индикации с частотой обновления 100 Гц (2.5 мс на разряд). Пусть АЦП стоит в single shot с частотой 100 кГц (135 мкс на преобразование). Вывели все разряды, погасили индикаторы, запустили АЦП (хоть с noise canceller'ом), проснулись и поехали дальше индицировать.

 

Автору же точность нужна и пусть тренируется.

:bb-offtopic: Автору сначала нужно понять, что такое точность. От того, что он выведет на индикатор 10 бит, зафильтрованные по дальше некуда, точность не увеличится.

Да и пытаться одним камнем и измерять на пределе точности АЦП, и светодиодами мыргать - не совсем разумный подход.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас с макетки на плату переведу, и займусь повышением точности АЦП.

Кстати, я решил вынести с платы все транзисторы, кнопки... Все это будет на другой плате, куда будет впаян индикатор. Точность в пределе градуса обеспечивается. Все же зависит от типа датчика и опорного напряжения + шумы. :|

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А зачем freerun? Пусть хочется вывести 4 десятичных разряда для индикации с частотой обновления 100 Гц (2.5 мс на разряд). Пусть АЦП стоит в single shot с частотой 100 кГц (135 мкс на преобразование). Вывели все разряды, погасили индикаторы, запустили АЦП (хоть с noise canceller'ом), проснулись и поехали дальше индицировать.

:bb-offtopic: Автору сначала нужно понять, что такое точность. От того, что он выведет на индикатор 10 бит, зафильтрованные по дальше некуда, точность не увеличится.

Да и пытаться одним камнем и измерять на пределе точности АЦП, и светодиодами мыргать - не совсем разумный подход.

Согласен

Lost_Viking-у стоило сперва сделать АЦП без динамической индикации, а потом усовершенствовать индикацию.

Я думаю 3 индикатора с 514ИДх - подошло бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Lost_Viking как устройство, получилось?

Вот _http://www.kosmodrom.com.ua/data/kty.php_ вроде неплохие датчики для вашего устройства, а вот это устройство сделано на этих датчиках _http://www.radiokot.ru/lab/controller/21/ .

Может вам будет интересно. Данный термометр я сейчас изготавливаю, жду когда приедут датчики. Прошу прощения может чего-то недосмотрел где можно посмотреть схему вашего устройства.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет. Не стал создавать новую тему. У меня собственно тоже терморегулятор только на ATtiny88. И проблема с АЦП. Как видно на скриншоте не соответствуют значения. Это идет самое первое измерение после включения. Второе уже показывает правильно. Вопрос почему значение BuffADC после присвоения не равно значению ADC?

 

 

read_adc.jpg

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...