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

STM32F4: цифровой фильтр АЦП

а чем такой способ отличается от медианного фильтра (в 2х словах, если не сложно) ?

можно ровно в 2 словах:)

"Ни чем"

:)))

 

это стандартный медианый целочисленный фильтр

 

Если предположение подтвердится, то можно приподнять сигнал на входе АЦП ещё одним резистором (к Vref, например), чтобы сигнал на входе АЦП никогда не опускался ниже 0 даже в присутствии шумов. Ну а потом эту поправку от резистора учесть в расчётах, естественно.

все бы вам резисторы паять...

 

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

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


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

можно ровно в 2 словах:)

"Ни чем"

:)))

это стандартный медианый целочисленный фильтр

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

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


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

Сейчас задача - улучших характеристики АЦП уже эксплуатируемых устройств (т.е. программно)

Увеличивать время семплирования до максимума.

 

А можно посмотреть напряжение на ножке АЦП? Осциллограмму в студию! По картинке сразу будет виден и уровень шумов, и характер...

Обсуждение сейчас - пальцем в небо.

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


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

Обсуждение сейчас - пальцем в небо.

Ну так топикстартер на вопросы не любит отвечать. Ему, видимо, с бубном плясать приятнее :laughing:

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


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

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

 

А блин! Точно. Термины уже попутал.

Это обычный экспоненциальный фильтр.

 

Медиана, классическая, берет 4 значения, максимум - минимум отбрасывает, 2 оставшихся усредняет. Это фильтр который создан отсекать случайные выбросы.

 

 

 

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


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

1) Vref 3.3В

2) Вход АЦП (после резистивного делителя и ёмкости, прямо возле ножки МК) без подключенного напряжения

 

Шумит все, что можно: напряжение питания, опорное напряжение, вход АЦП. А вероятнее всего шумят земли. Понятное дело плату будут разводить, повторюсь, моя задача - улучшить показатели АЦП программно, насколько это возможно

 

SamplingTime = ADC_SAMPLETIME_480CYCLES;

АЦП конвертит беспрерывно и под DMA складывает результаты в память, а я из пати, когда мне надо забираю цифры (примерно раз в секунду)

Изменено пользователем IgorKossak
удалил "тяжёлые" картинки

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


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

2) Вход АЦП (после резистивного делителя и ёмкости, прямо возле ножки МК) без подключенного напряжения

Имя, сестра, имя! Номиналы резисторов!?

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


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

Шумит все, что можно: напряжение питания, опорное напряжение, вход АЦП.

Дык, 10мВ амплитуда. Где же ужасные "0.1 - 0.3В"?

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


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

Имя, сестра, имя! Номиналы резисторов!?

69.8K и 3.3К

 

Имя, сестра, имя! Номиналы резисторов!?

вот пример нескольких замеров АЦП (при разрешении 4095)

 

1: 4
2: 5
3: 0
4: 14
5: 1
6: 0
7: 0
8: 0
9: 4
10: 1

 

1: 0
2: 0
3: 4
4: 0
5: 13
6: 3
7: 4
8: 2
9: 10
10: 6

 

вот отсуда и получаются эти 0 - 0.3В

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


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

max = 14

 

14 * 3300 мВ / 4096 = 11 мВ = 0.011В

 

А вы как считаете?

* (R1 + R2)/R2 = 0.25В

 

R1 R2 резистивный делитель

 

Вот здесь рассматривалось много разных медиан.

применил способ Xenia

31 точка. в результате показания 0.02-0.07В при подключенных 0В

может стоит изменить количество точек?

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


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

может стоит изменить количество точек?

Медианный фильтр не пропускает выбросы длительностью меньше половины ширины фильтра. Т.е. если у Вас 31 точка, то шумовые выбросы длительностью меньше или равно времени 15 отсчетов не пройдут через фильтр. Думайте сами.

И после резестивного делителя повторитель поствьте.

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


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

И после резестивного делителя повторитель поствьте.

Это лишнее: входное сопротивление ADC (ножки в режиме AIN) - огого, потому 70K погоды не делают.

Изменено пользователем KnightIgor

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


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

Это лишнее: входное сопротивление ADC (ножки в режиме AIN) - огого, потому 70K погоды не делают.
При бесконечном времени выборки. А при конечном надо успеть за время выборки через выходное сопротивление этого делителя зарядить/разрядить конденсатор УВХ до входного напряжения плюс-минус половина напряжения младшего разряда АЦП. Емкость конденсатора УВХ - 4 пФ, проходное сопротивление ключа УВХ - 6 кОм, входное сопротивление входа АЦП - не менее 50 кОм (а совсем не огого).

 

post-17095-1421158024_thumb.png

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


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

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

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

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

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

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

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

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

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

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