просто накапливать и усреднять шум нужно окном не короче 4^N
Чтобы что? откуда цифра 4 и что такое N?
Шум, не зависимо какой он носит характер, амплитудой к примеру 2милли вольта, а при режиме ограничения тока он может достигать 100 милли вольт, нельзя идентифицировать как полезный сигнал.
Хоть заусредняйтесь, всему есть предел.
Это всё мат.статистика. Шум имеет такую характеристику как матожидание, если он случайный с нормальным распределением - его матожидание равно нулю, а значит что в результате усреднения мы получим исходную величину полезного сигнала. В идеале - при бесконечном усреднении, в реале нам надо ограничиваться каким-то разумным пределом, т.к. у нас нет времени ждать результата. из двух выборок, понятное дело ничего хорошего получить не выйдет, из миллиона выборок - пожалуй да. Но у нас же лааапки... ограниченный контроллер, а значит есть не так много выборок. 1-2К Но ещё у нас есть ограничение по скорости выборок и время на "результат", если ограничить задержкой в 1 секунду и 1000выб/сек у нас просто нет шансов на другой размер окна...
Частота среза фильтра должна быть половине частоты работы ацп. Если вы будете еще резать, вы будете урезать динамический диапазон АЦП.
Никому она ничего не должна. Просто на АЦП НЕ ДОЛЖНО попасть частоты выше чем половина частоты семплирования, т.к. это приводит к стробоскопическому эффекту и восстановить исходный сигнал по отсчетам невозможно - возникает фантомный сигнал. Что вы делаете фильтром на 500Гц? он только после 500Гц начинает резать сигнал... причем на 1кГц он срежет только 20дБ, т.е. не такой уж сильный сигнал частотой в 1кГц легко проникает на вход АЦП и делает свои дела. Чтобы фильтр с частотой среза реально работал он должен быть очень высокого порядка, для ваших 10 бит навскидку это должен быть фильтр 400Гц 3-4 порядка. Сделаете на 100Гц может можно будет условно обойтись и фильтром 1-го порядка - т.е. обычной RC-цепочкой.
Alexeyslav писал(а):Чтобы что? откуда цифра 4 и что такое N?
читай апноут:
Для каждого дополнительного бита разрешения требуется увеличение частоты дискретизации в 4 раза.
Alexeyslav писал(а):в реале нам надо ограничиваться каким-то разумным пределом, т.к. у нас нет времени ждать результата.
этот предел не какой-то, а кратен 4^N, где N это количество дополнительных бит разрешения
Добавлено after 2 hours 8 minutes 46 seconds:
вот формула расчета, где n - дополнительные биты
Добавлено after 45 minutes 24 seconds:
можно еще поусреднять с коэффициентом k
Добавлено after 1 hour 48 minutes 44 seconds:
Alexeyslav писал(а):если ограничить задержкой в 1 секунду и 1000выб/сек у нас просто нет шансов на другой размер окна...
а кто это придумал?
и кто мешает сделать сумму из 1000 + 24 семплов,
или накапливать сумму сумм, например, сумма 2^n сумм 2^n семплов = сумма 4^n семплов
не вижу проблемы
Что-то у вас какая-то вольная интерпретация формул. Прям как руководство к действию, тогда как они описывают лишь граничные значения. Эта формула даёт минимальное количество, которое необходимо обеспечить. Больше - лучше.
И потом, вы пытаетесь переносить ограниченность архитектуры на теорию. Не надо так. 1000 семплов или 1024 - это лишь удобство чтобы не заморачиваться с вычислениями на вещественных числах на крайне ограниченном железе. На более продвинутом железе это будет выглядеть нелепо, там где процедура подсчета среднего из 1000 семплов будет занимать по времени меньше чем измерение 2-х семплов, не говоря уже о дополнительных 24.
правильно, для +5 бит "минимальное граничное" - 1024 семпла
и подсчет среднего из 1000 семплов здесь нафиг не нужен.
просто загоняешь в любой сглаживающий алгоритм результаты "минимального граничного":
Добавлено after 42 minutes 8 seconds:
Alexeyslav писал(а):На более продвинутом железе это будет выглядеть нелепо, там где процедура подсчета среднего из 1000 семплов будет занимать по времени меньше чем измерение 2-х семплов, не говоря уже о дополнительных 24.
скорость вычислений здесь до лампочки, все упирается в скорость АЦП
Атмега с успехом работает от 27МГц, а не которые экземпляры и выше,
от 27МГц максимальная скорость АЦП 843кГц, а это 1,18мкс, в stm32f030 максимум 1мкс, внешний АЦП не рассматриваем.
Повышать скорость АЦП можно до определенного момента, дальше смысла нет, лезет большая погрешность.
slav0n писал(а):скорость вычислений здесь до лампочки
логично, а вот количество выборок - да.
К примеру:
на 1024 выборок на 2 канала при скорости АЦП 18мкс требуется 36мс,
на 4096 - 147мс
а на 16384 - уже 0,6 секунды.
Все зависит от того, что хотим получить на выходе.
Вот к примеру:
1 видеоСпойлербез СС, режим АЦП 10 бит, скорость одного преобразования 18 мкс, количество отсчетов 1024
Верхняя строка сумма после сдвига на 5 бит (теперь верно, десять раз проверил), справа результат, слева DAC2 видеоСпойлербез СС, режим АЦП 10 бит, скорость одного преобразования 18 мкс, количество отсчетов 4096
Верхняя строка сумма после сдвига на 6 бит 3 видеоСпойлербез СС, режим АЦП 10 бит, скорость одного преобразования 18 мкс, количество отсчетов 16384
Верхняя строка сумма после сдвига на 7 бит А дальше, мы упираемся в количество отсчетов и скорость АЦП и хороший фильтр, а не какая-то там rc цепь.
slav0n, ты думаешь, что из-за шума оно работает?
TL431 какова ее стабильность? 1%, сколько это в милли вольтах? На чем основан ключевой элемент в TL431? На компараторе?
Вот он, твой шум. На этот 1% прыгает опорное. К сожалению мой осциллограф видит минимум 20 милли вольт, ниже нет.
Dimon456 писал(а):TL431 какова ее стабильность? 1%, сколько это в милли вольтах?
если ты про стабильность опоры, сделанной на TL431, то выше я писал:[uquote="Starichok51",url="/forum/viewtopic.php?p=4077356#p4077356"]для полной проверки подключил вход напряжения к опорному напряжению.
полная сумма стоит мертво, с тремя нулями (1000 выборок), то есть, на опоре нет никакого шума и никакого дрейфа.[/uquote]
а опора у меня сделана на TL431.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
slav0n писал(а):а зачем заморачиваться, ведь это же красиво:
Всё не так, как не старайся.
Входные данные АЦП 12бит, максимум 30вольт, хочу с точностью 1милли вольт.
1 видео, средне из 512 выборок на каждый канал, а их 2
Формула 33000*1/4096=7,3 милли вольтаСпойлерt АЦП 18мкс, общее время 18,5милли секундБерем оверсемплинг:
Считаем 1024*4096=4194304 >> 5 = 131072
Считаем по формуле 33000 * 1 /(4096UL << 5)) = 33000 * 1 / 131072 = 0,25 милли вольта
2 видеоСпойлер1024 выборки, t АЦП 18мкс, общее время 36,8милли секунд
Сдвиг на 5 бит А мне надо 1 милли вольт, 33000 * 1 /(4096UL << 3)) = 33000 * 1 / 32768 = 1,007 милли вольта
3 видеоСпойлер1024 выборки, t АЦП 18мкс, общее время 36,8милли секунд
Сдвиг на 7 бит
Формула 33000 * 1 /(4096UL << 3)) Для сравнения
4 видеоСпойлер4096 выборки, t АЦП 18мкс, общее время 147,5 милли секунд
Сдвиг на 9 бит
Формула 33000 * 1 /(4096UL << 3)) 5 видеоСпойлер16384 выборки, t АЦП 6мкс, общее время 196,6 милли секунд
Сдвиг на 11 бит
Формула 33000 * 1 /(4096UL << 3)) 6 видеоСпойлер32768 выборки, t АЦП 6мкс, общее время 393,2 милли секунд
Сдвиг на 12 бит
Формула (33000 * 1 /(4096UL << 3)))/2 И 7 видео, тест токаСпойлер32768 выборки, t АЦП 6мкс, общее время 393,2 милли секунд
Сдвиг на 12 бит
Формула 33000 * 1 /(4096UL << 3))
Выходное напряжение 4,992Вольта, нагрузочное сопротивление 78,5 Ом
Последний раз редактировалось Dimon456 Сб авг 21, 2021 19:29:30, всего редактировалось 1 раз.
чтобы получить разрешение 1мВ тебе надо +3 бита
т.е 64 семпла, сдвиг на 3 и формула х*33000/32768. ВСЕ.
а дальше умножай-дели фильтруй как хочешь, но учти, что даже на "чистом" АЦП "средне из 512" у тебя дергается на 1 разряд,
а это значит, что сглаживать придется очень и очень