[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ВН 20 октября 2003 г. 15:31
В ответ на: Подскажите про вычисления ... отправлено раздосадованный 20 октября 2003 г. 13:19

А через float все подсчитать время не позволяет?
Несколько советов, может пригодятся.
Для корня кубич. можно Ньютона-Рафсона использовать.
Или аппроксимировать его.
Например так:
X^(1/3)=A0+A1*X+A2*X^2+A3*X^3+A4*X^4+A5*X^5
X от 0.5 до 1.
A0=0.3772277832.
A1=1.3201141357.
A2=-1.4621887207.
A3=1.2516479492.
A4=-0.6168060303.
A5=0.1300048828.
A0-A5 лучше в формате 1.16. Ошибка полмладших разряда при 16-ти разрядном рез-те.
Для остальных X умножением на корень кубич. из соответств. степени двойки. Которые, корни из степеней, можно через табличку. Небольшую.
По возведению в степень. Правда целочисленную. Но к ней можно привести. К ней и корню. Делается аналогично умножению в столбик. С заменой сложения на умножение, а сдвига влево на возведение в квадрат.
По логарифму - с год назад в микроконтроллерах, кажется, кому-то рассказывал. Правда не помню про какой логарифм, натуральный или десятичный, но невелика разница. И еще по возведению в степень, на этот раз про e^. С разложением в ряд Тейлора. Иногда применяется сл. прием: e^x=(e^(x/2))/(e^(-x/2)). С отдельным разложением числителя и знаменателя. Этот прием, кстати, используется при выводе формулы билинейного Z-преобразования. С числителем и знаменателем можно еще раз (и не раз) такую операцию провернуть.


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru