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

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

Отправлено fontp 23 февраля 2005 г. 21:15
В ответ на: Спасибо, действительно таблица решает многие проблемы. Хотя для 16-битного аргумента потребуется много памяти - 32KW, как быть? отправлено GM 23 февраля 2005 г. 17:30

обычно он есть функция двух переменных x и y

для целочисленного варианта алгоритм такой

1. загоняем в область монотонности 0-pi/4 (y<=x)
x и y положительные

2. имеем таблицу тангенсов L(i)= tg(i*pi/4*N)
N размер таблицы
гоним бинарный поиск пока
L(i)*y больше х меньше L(i+1)*y

3. восстанавливаем угол по коду i
fi = pi*(i+0.5)/4*N

за 6 сравнений (маки + логика бинарного поиска) на таблице N=2**6=64 имеем точность 0.3 градуса, плюс начальные сравнения чтобы загнать в область монотонности.
Никакго деления, никаких нелинейностей.
если приделать ещё и линейную интерполяцию (затраты удвоятся) точность будет предельная на 16-разрядной сетке

очевидно так можно посчитать любую монотонную функцию
f(x/y)

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru