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

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

Отправлено -=ВН=- 07 декабря 2005 г. 13:50
В ответ на: ну наконец-то отправлено <font color=gray>val_omsk</font> 07 декабря 2005 г. 13:11

Правила умножения очень просты. Есть один сомножитель в формате m1.n1 (m1 - число разядов под целую часть, n1 - под дробную), есть второй в формате m2.n2. Результат будет в формате (m1+m2).(n1+n2), если используется целочисленный режим умножения. Или (m1+m2-1).(n1+n2+1) Если используется fractional режим умножения, т.е. с доп. сдвигом результата влево на 1. Вот Вам пример. Код 0x4000. Это 0.5 в формате 1.15 и 1.0 в формате 2.14. Или 16384 в формате 16.0 Надо возвести его в квадрат. Умножитель о Ваших хитростях с форматами ничего не знает.
Во всех случаях при целочисленном режиме умножения на выходе умножителя будет код 0x1000 0000. И Вы его интерпретируете в соответствии с выбранным форматом. Т.е. если формат 1.15, то 30 младших разрядов - дробная часть, 2 старших -целая. Целая =0, а дробная (в дв. виде)=010000...0. И получаеттся 0.25. В формате 2.30.
В формате 2.14 младшие 28 разрядов - дробная часть, 4 старших целая.
Видно, что младшие 28=0, старшие 4 =0001. И это 1. В формате 4.28. Аналогично для формата 16.0 Все отводится под целую часть. И она равна 16384^2.
Если, например, в случае с форматом 2.14 Вам не нужно 32-х разрядное
представление результата и к тому же у Вас есть уверенность, что целая часть результата при любом раскладе у Вас будет в диапазоне от -2 до +1, т.е. на нее достаточно 2 разрядов, то Вы можете результат сдвинуть влево на 2 и оставить старишие 16 разрядов. Они, как и вход, будут в формате 2.14.
Аналогично с fractional режимом.


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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

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

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

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


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru