|
Модераторы: PILOT, ManiaK, Mazzi |
|
Dmitron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 19.4.2005 Репутация: 1 Всего: 1 |
В 16-битный контроллер встроено 12 битное АЦП, необходимо перевести полученное с АЦП значение в дБ по формуле: x=10*log(отсчётыАЦП*100/4095), либо x=10*log(отсчётыАЦП*100/4095). Рассчёты необходимо производить наиболее быстро в реальном времени. Может какой ряд есть, чтобы в ln или lg переводить? Контроллер работает на С (язык "ЭС"). |
|||
|
||||
podval |
|
|||
Где я? Кто я? Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: нет Всего: 62 |
Тема перемещена из раздела "Алгоритмы".
|
|||
|
||||
PILOT |
|
|||
производство Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
2 podval: Embedded C, сокращенно EC (эс).
2 Dmitron: а кто мешает воспользоваться стандартной библиотечной функцией LOG? СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
Dmitron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 19.4.2005 Репутация: 1 Всего: 1 |
надо бы побыстрее. диапазон всего то 12 бит.
|
|||
|
||||
maxim1000 |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 1 Всего: 110 |
можно посчитать количество разрядов числа
получится целая часть логарифма по основанию 2 это будет ОЧЕНЬ быстро ... только неточно зато после этого можно пробовать уточнять с помощью какой-нибудь аппроксимации... -------------------- qqq |
|||
|
||||
Dmitron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 19.4.2005 Репутация: 1 Всего: 1 |
Всё намного проще . Можно переводить в целочисленной арифметике не теряя данных.
|
|||
|
||||
PILOT |
|
|||
производство Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Кстати, Dmitron прав, нужно лишь задаться необходимым по точности кол-вом байтов (char, int, long ...) и в принципе получается довольно точно и быстро.
СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
DRUID_3 |
|
|||
Unregistered |
Ну есть ваще-то Чапаевский метод определения динамического диапазона АЦП от количества бит (не путать реальный ДД ограниченный как правило интермодуляцией). Формула такова
6*N+1.76 dB=DR не поверите - исправно фурычит ! Моего скудного матиматического дара никак не хватит обьяснить Вам почему.... |
|||
|
||||
DRUID_3 |
|
|||
Unregistered |
... нда, где N битность АЦП.
Поможет это Вам ? |
|||
|
||||
Crait |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 244 Регистрация: 20.2.2003 Репутация: нет Всего: 1 |
Построй таблицу, если памяти хватает.
12 разрядов - 4096 ячеек. |
|||
|
||||
Dmitron |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 19.4.2005 Репутация: 1 Всего: 1 |
Спасибо за внимание к теме.
Весь перевод у меня производится с помощью операций сдвига, сложения и таблицы из 32 значений. |
|||
|
||||
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |