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

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

Отправлено Димыч 24 сентября 2002 г. 21:59
В ответ на: БИХ фильтр на ADSP218x отправлено Pahmed 24 сентября 2002 г. 17:35

то можно предложить сделать умножение, целого числа на дробное и посмотреть на результат. Естесственно, аккумулятор должен иметь в два раза большую разрядность. Так вот, в старшем разряде аккумулятора, после "удаления" второго знакового бита сдвигом влево(в ADSP - "dis m_mode"), окажется целочисленный результат. Который, впрочем, можно рассматривать и как дробный, если оба числа Вы представляете как дробные. Никаких тонкостей здесь нет - простейшая сдвиговая арифметика.
Смысл такой - умножая таким образом одно число на другое, Вы сначала умножаете первое целочисленно на второе, а потом результат делите на 32768(для 16-битных знаковых чисел).
Для примера - умножение на число 0.2 это то же самое, что умножение на 6553 и последующее деление(сдвигом ;)) на 32768. Запишите число 6553 и переведите его в дробный вид 1.15 - будет как раз 0.2.
Для 1.31 соображения те же.
Таким образом входной отсчет может представляться целочисленно, а результат берите из старшей половины аккумулятора после сдвига влево.

PS извините за сбивчивое описание - что на ум пришло ;)


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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru