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

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

Отправлено -=ВН=- 22 апреля 2005 г. 12:15
В ответ на: Умножение отрицательных чисел отправлено qqk 22 апреля 2005 г. 08:49

Правила простые.
Но для начала - у формата q15 15 разрядов отводится на дробную часть, 1 (не 0) на целую. Целая ''совмещена'' со знаком.
16ти разрядные числа с 13-ти разрядной дробной частью имеют 3 разряда в целой части, из которых самый старший ''совмещен'' со знаком.
Умножение.
Форматы сомножителей:
I1.F1, I2.F2
I1,I2 - разрядности целых частей, включая знак. F1,F2 - дробных.
При использование целочисленного умножения (без дополн. сдвига результата влево) разрядность результата:
(I1+I2).(F1+F2). Т.е. в дробной части F1+F2 разряда.
В целой - I1+I2 разряда. Но фактически один разряд здесь лишний, т.к. знак занимает уже не один, а 2 разряда при целочисленном умножении. 2 самых старших разряда.
Режим дробного умножения (когда результат сдвигаентся влево на 1 разряд дополнительно) изменит формат результата. И изменит очень просто - один из 2-х знаковых битов исчезнет. Так что разрядность целой части будет I1+I2-1, из которых знаковым будет уже только один разряд, второй знаковый удалился сдвигом. А к дробной части добавится один разрядик, самый-самый младший, всегда равный нулю. Т.е. разрядность дробной части=F1+F2+1.
Итого.
Разрядность результата при целочисленном умножении=(I1+I2).(F1+F2).
И знак занимает 2 разряда.
Разрядность результат при фракциональном умножении=(I1+I2-1).(F1+F2+1). И знак занимает 1 разряд.
Используется команда знакового умножения в обоих случаях.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru