Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Вольты в дециБеллы


Автор: Dmitron 19.4.2005, 14:34
smile
В 16-битный контроллер встроено 12 битное АЦП, необходимо перевести полученное с АЦП значение в дБ по формуле: x=10*log(отсчётыАЦП*100/4095), либо x=10*log(отсчётыАЦП*100/4095).
Рассчёты необходимо производить наиболее быстро в реальном времени. Может какой ряд есть, чтобы в ln или lg переводить? Контроллер работает на С (язык "ЭС").

Автор: podval 19.4.2005, 16:43
Тема перемещена из раздела "Алгоритмы".


Автор: PILOT 19.4.2005, 18:30
2 podval: Embedded C, сокращенно EC (эс).

2 Dmitron: а кто мешает воспользоваться стандартной библиотечной функцией LOG?

СУВ.

Автор: Dmitron 20.4.2005, 15:54
надо бы побыстрее. диапазон всего то 12 бит.

Автор: maxim1000 20.4.2005, 17:58
можно посчитать количество разрядов числа
получится целая часть логарифма по основанию 2
это будет ОЧЕНЬ быстро
...
только неточно smile
зато после этого можно пробовать уточнять с помощью какой-нибудь аппроксимации...

Автор: Dmitron 3.5.2005, 11:16
Всё намного проще smile . Можно переводить в целочисленной арифметике не теряя данных.

Автор: PILOT 3.5.2005, 22:41
Кстати, Dmitron прав, нужно лишь задаться необходимым по точности кол-вом байтов (char, int, long ...) и в принципе получается довольно точно и быстро.

СУВ.

Автор: DRUID_3 19.6.2005, 21:13
Ну есть ваще-то Чапаевский метод определения динамического диапазона АЦП от количества бит (не путать реальный ДД ограниченный как правило интермодуляцией). Формула такова


6*N+1.76 dB=DR

не поверите - исправно фурычит ! Моего скудного матиматического дара никак не хватит обьяснить Вам почему.... smile

Автор: DRUID_3 19.6.2005, 21:16
... нда, где N битность АЦП.

Поможет это Вам ?

Автор: Crait 20.6.2005, 21:03
Построй таблицу, если памяти хватает.
12 разрядов - 4096 ячеек.

Автор: Dmitron 24.6.2005, 18:14
Спасибо за внимание к теме.
Весь перевод у меня производится с помощью операций сдвига, сложения и таблицы из 32 значений.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)