[an error occurred while processing this directive]
|
вот блин
вот так в общем имеем 16 битный dsp - 55 от техаса пусть
имеем вот
Xr=is^(4/3)*2^pow
-88.5 <= pow <= 11.5, 0 <= is < 8207
знак оставим в покое. Надо считать - через таблицу - ни ни жалко места до боли
1. ну в прочем через таблицу так
таблица на 8207 входов в которой все is в степени 4/3
в формате Q15 - нормализованная мантисса - и рядом степень 2 в которую эту мантиссу
подвинуть что бы получить число равное is^(4/3)
берем из нее is^(4/3) и двигаем куда надо как скажет 2^(pow+степень двойки из таблицы)
- последняя фишка типа складывать экспоненты отдельно - типа помогает битов сохранить поболее
кто то говорит что |Xr|<1
и is и pow подбирают так что бы это было так - но кроме голословных утверждений ничего не слышал - но думаю можно поверить.
минус: -8206 слов памяти - жалко! непозволительно жалко!
2. Ну оставим таблицу - ну ее
есть способ считать через логарифм и экспоненту вот его на суд и выдаю - описан он как то не полно - поэтому я его распишу как понял и спрошу так аль нет.
берем логарифмь!
Xr=e^Y=e^ln[is^(4/3)*2^pow]
ну вот
Y=4/3*ln(is)+pow*ln(2)
далее
is=C(1-x)=2^N(1-x)
отсюда
Y=4/3[N*ln(2)+ln(1-x)] + pow*ln(2)
ln(1-x) при -1<=x<1 считается через тейлора в Q15 стало быть
ну вот теперь повернем как нам над то
Y=4/3*ln(1-x) + [4/3*N + pow]ln(2)
ну а дальше
на это дело натравливаем экспоненту,
посчитав на досуге сажем F=4/3*ln(1-x)
Xr=e^F * 2^(4/3*N + pow)
вот так
e^F - опять таки тейлором по нему проедемся.
Советы? Что скажете?
почему спрашиваю - потому что есть spra619.pdf - там не так! там вообще
в одном месте непонятность - но у когож спроить то :)).
E-mail: info@telesys.ru