Разложение десятичного логарифма

Обсуждаем цифровые устройства...
Bambila
Родился
Сообщения: 10
Зарегистрирован: Чт дек 08, 2011 16:04:53

Разложение десятичного логарифма

Сообщение Bambila »

Дорогие форумчане, подскажите плз как в ассемблере представть уравнение X=lg(U/0.775).есть мнение что его надо выражать в виде арифметических действий(+ - * /). Возможно ли это? заранее спасибо)
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Разложение десятичного логарифма

Сообщение pyzhman »

В ассемблере какого проца?
Docendo discimus
Реклама
Аватара пользователя
Ser60
Друг Кота
Сообщения: 3784
Зарегистрирован: Ср дек 24, 2008 09:58:58

Re: Разложение десятичного логарифма

Сообщение Ser60 »

Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Разложение десятичного логарифма

Сообщение Meteor »

Bambila писал(а):Дорогие форумчане, подскажите плз как в ассемблере представть уравнение X=lg(U/0.775).есть мнение что его надо выражать в виде арифметических действий(+ - * /).
Можно сделать так
lg(U/0.775)=lg(U)-lg(0.775).
Далее lg(0.775) есть константа и ее можно вычислить ДО и оперировать
lg(U) можно законопатить табличным методом и тогда все сведется к поиску по аргументу значения в таблице, и последующее вычитание константы! :idea:
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Разложение десятичного логарифма

Сообщение pyzhman »

Вы так и не сказали ничего о вычислении самого логарифма. Табличный метод ладно, ручками вбили и поехали. ТС походу надо именно считать. Нет, ну может я не прав.
Docendo discimus
Реклама
Bambila
Родился
Сообщения: 10
Зарегистрирован: Чт дек 08, 2011 16:04:53

Re: Разложение десятичного логарифма

Сообщение Bambila »

pyzhman писал(а):В ассемблере какого проца?
ATmega 8
Реклама
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Разложение десятичного логарифма

Сообщение Meteor »

pyzhman писал(а):Вы так и не сказали ничего о вычислении самого логарифма.
Подразумевается что значения lg(U) вычислены (в любом средстве дающим логарифмы) и занесены в таблицу
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Разложение десятичного логарифма

Сообщение pyzhman »

В приложении.
Вложения
temp.rar
(9.71 КБ) 186 скачиваний
Docendo discimus
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6321
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Разложение десятичного логарифма

Сообщение Jack_A »

Bambila писал(а):Дорогие форумчане, подскажите плз как в ассемблере представть уравнение X=lg(U/0.775).есть мнение что его надо выражать в виде арифметических действий(+ - * /). Возможно ли это? заранее спасибо)
Для получения вразумительного ответа следовало бы приоткрыть завесу :

- для зачета ? (95%) Тогда надо разбираться в том, что коллега pyzhman выдал ( тяжелый вздох топикстартера слышен мне и отсюда :) ).

- для работы конкретного устройства ? (5%) Тогда нужно определиться с точностью, диапазоном входных величин, соотношением критичности во времени и допустимому под это дело объему используемой памяти. Тогда и решение конкретизируется.

И место этой теме - в "МК и ПЛИС"

"От сессии до сессии живут студенты весело,
А сессия всего 2 раза в год "
Bambila
Родился
Сообщения: 10
Зарегистрирован: Чт дек 08, 2011 16:04:53

Re: Разложение десятичного логарифма

Сообщение Bambila »

Jack_A писал(а):
Bambila писал(а):Дорогие форумчане, подскажите плз как в ассемблере представть уравнение X=lg(U/0.775).есть мнение что его надо выражать в виде арифметических действий(+ - * /). Возможно ли это? заранее спасибо)
Для получения вразумительного ответа следовало бы приоткрыть завесу :

- для зачета ? (95%) Тогда надо разбираться в том, что коллега pyzhman выдал ( тяжелый вздох топикстартера слышен мне и отсюда :) ).

- для работы конкретного устройства ? (5%) Тогда нужно определиться с точностью, диапазоном входных величин, соотношением критичности во времени и допустимому под это дело объему используемой памяти. Тогда и решение конкретизируется.

И место этой теме - в "МК и ПЛИС"

"От сессии до сессии живут студенты весело,
А сессия всего 2 раза в год "
Всётаки это нужно для конкретного устройства, а именно цифрового шумомера. Пытаюсь сотворить его путём переделывания цифрового вольтметра http://avrlab.com/node/94. данная формула если ферить одному форума является пересчётом вольт в децибелы. вот я и думаю как её загнать в код прошивки...
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Разложение десятичного логарифма

Сообщение pyzhman »

Только табличный метод. Ручками считаем и зашиваем.
Docendo discimus
Bambila
Родился
Сообщения: 10
Зарегистрирован: Чт дек 08, 2011 16:04:53

Re: Разложение десятичного логарифма

Сообщение Bambila »

спасибо большое за информацию! поледний вопрос: где можно почитать про то как реализовать полученную таблицу в ассемблере?
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Разложение десятичного логарифма

Сообщение Meteor »

Уже вам задали вопрос о точности.
От нее много зависит. Ну положим так, желаем отразить весь диапазон логарифмов в одном байте
Так же будем считать что значения положительные.
Тогда можно пойти такой интертрепацией интерпретацией
10000000 = 0.5
01000000 = 0.25 и тд
Тогда будет от 0 до почти 1. и максимум соответствует lg(10)=1
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6321
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Разложение десятичного логарифма

Сообщение Jack_A »

Bambila писал(а):спасибо большое за информацию! поледний вопрос: где можно почитать про то как реализовать полученную таблицу в ассемблере?
Прежде чем хвататься за ассемблер, следует определиться опять же : в каком формате поступают данные ( двоичные, дв.-десятичные, плавающие ), в каком получать результат для вывода ( отсюда просматривается двоично-десятичный ). Прорисовать это для себя в табличке на бумаге. Когда будет ясность, то с ассемблером проблем не будет : директивами
.db ( .dw ) записать в таблицу вычисленные значения. Причем можно таблицу иметь как прямую ( Вольты -> дБ ), так и обратнную. Для обратной нужное значение дБ, соответствующее заданным Вольтам, можно найти, к примеру, методом половинного деления. Например :
10.0 дБ >= 0, 345B
10.1 дб >= 0, 413В
....... и т.д.

Перебором значений Вольт находим ближайшее значение в дБ. Быстро и безо всякой арифметики.
Намеряли, допуститм, 0,371В = имеем 10.0 дБ


Вычисление по "прямым" таблицам не намного сложнее. Находим ближайшие значения, между которыми находится аргумент.
Пусть А1 Вольт = Q1 дБ, А2 Вольт = Q2 дБ
Намерили X Вольт ( A2 >= X >= A1 )
Простейшей интерполяцией имеем

y(X) = Q1 + (X-A1) / (A2-A1) *(Q2-Q1)

Б`ольшая точность потребует б`ольшей степени полинома.
Но опять же - арифметика будет int или float ? Хотя если на Си, то об этом пусть компилятор думает.
eufs
Опытный кот
Сообщения: 772
Зарегистрирован: Вс апр 10, 2011 02:24:06
Откуда: г.Северодонецк

Re: Разложение десятичного логарифма

Сообщение eufs »

Можно рекомендовать на входе АЦП логарифмирующий усилитель. И диапазон измерений шире и нет заморочек с программой. Если для практического применения, я бы так делал.
C0FFEE=‭12648430‬
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Разложение десятичного логарифма

Сообщение Meteor »

Самодельный логарифмический усилитель (ОУ и диодом) лучше не применять - он "почти" производит логарифмирование по основанию e. Почти - из-за разброса характеристик диода.
ТС требуется логарифмирование по основанию 10.
В принципе, пересчет дело нехитрое. Но лучше не надо
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6321
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Разложение десятичного логарифма

Сообщение Jack_A »

Meteor писал(а):Самодельный логарифмический усилитель (ОУ и диодом) лучше не применять - он "почти" производит логарифмирование по основанию e. Почти - из-за разброса характеристик диода.
+1 Если требуется серьезная точность, то такими простыми средствами ее не достигнуть. Большой диапазон по любому не перекрыть без переключения поддиапазонов. А пересчет в дБ - вещь, как мы выяснили выше несложная .
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Разложение десятичного логарифма

Сообщение Meteor »

Под пересчетом имел ввиду переход логарифмирования по основанию е, к основанию 10
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6321
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Разложение десятичного логарифма

Сообщение Jack_A »

Meteor писал(а):Под пересчетом имел ввиду переход логарифмирования по основанию е, к основанию 10
Не похоже - там умножается или делится на 2.3, а входная величина по любому U. Табличному методу это пофиг, какое основание логарифма - забил массив констант и ОК.
А ТС молчит, как партизан, осмысливает.
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Разложение десятичного логарифма

Сообщение pyzhman »

Поискал, погуглил. Пришел к выводу, что задача курсовой работы. Но! Зацепило. Табличное вычисление да, быстро. Но не встретил именно алгоритма вычисления. Посмотрел ряд Тэйлора - надо брать производные, да и то, в узком интервале. Короче, непонятка.
Docendo discimus
Ответить

Вернуться в «Цифровая техника»