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

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

Отправлено -=ВН=- 19 октября 2005 г. 13:50
В ответ на: А что такое блочная ПЗ Вы знаете? отправлено -=ВН=- 18 октября 2005 г. 15:29

Это вот что такое. Есть массив данных, целочисленных.
В этом массиве находится максимальное по модулю число. У этого максимума находится число незначащих знаковых разрядов.
По другому число самых старших, подряд идущих, разрядов числа, сразу после знакового и равных ему.
Ну например у 16-ти разрядных чисел в диапазоне от 0x4000 до 0x7fff число незначащих знаковых разрядов равно 0. У этих чисел один знаковый разряд и он значащий. У чисел в диапазоне 0x2000 - 0x3fff знаковых разрядов 2, следовательно незначащий знаковый разряд один .
Диапазон 0x1000 - 0x1fff даст 2 незначащих знаковых разряда.
И т.д. В DSP подсчет этих разрядов обычно одной командой делается.
После нахождения числа незначащих знаковых разрядов у максимума, весь массив сдвигается влево на это число. Обозначу его B. Т.е. массив сдвигается влево на B разрядов, по другому - умножается на 2^B.
А у B знак меняется на минус. В таком виде, со смененным знаком, это будет показатель всего массива. Обозначу его E. E=-B.
Описанное называется нормировкой массива.
Исходные данные можно получить из сдвинутых сдвигом последних вправо на B, т.е. умножением на 2^E. Здесь аналогия с обычной плав. запятой.
Элементы сдвинутого массива являются, по сути, мантиссами чисел с плавающей запятой, но у всех этих чисел один общий показатель, одна экспонента. Отсюда и название. Блочная ПЗ. Экспонента одна на весь блок, на весь массив.
Операции с такими массивами.
1. Умножение (деление) поэлементное.
Поэлеметно перемножаются (делятся) мантиссы. И это целочисленное перемножение (деление) в чистом виде. Результирующему массиву присваивается показатель, равный сумме (разности) показателей массивов сомножителей. Т.е. по сравнению с чисто целочисленными масиивами дополнительно требуется всего одна операция - суммирование показателей.
2. Сложение-вычитание. Массив с меньшим показателем сдвигается вправо на число разрядов, равное разности показателей, т.е. умножается на 2^(Emax-Emin). Далее сложение целочисленное поэлементное. Т.к. в результате сложения возможны переполнения, то требуется выполнить нормировку результата. Полученный в результате нормировки показатель добавить к максимальному из показателей масиивов слагаемых. Результат - показатель результата.
3. Сумма поэлеметных произведений 2-х массивов. Dot product она зовется у супостатов. Основная операция сверток-корреляций. Сл-но и КИХ фильтраций.
s=sum(a[i]*c[i]). a,c - элементы массивов мантисс A,C.
Сумма опять же в целых числа считается. Т.е. самые обычные MAC. И их число=числу элементов массивов.
Результат, а это число, нужно отнормировать, найденный показатель добавить к сумме показателей исходных массивов. Это будет показатель результата. Т.е. результат - число с плав. запятой.
В приложении к тому, что я писал вчера.
При фильтрации вычисляются несколько (по числу блоков) сумм. s1,s2,...,sn. Окончательный результат=s1+s2+...+sn.
Слагаемые здесь - плавающие числа, только в формате, отличном от IEEE754. Но их немного. Как писал прошлый раз - 5-7. Т.е. затраты на их суммирование небольшие. Окончательный результат переводите опять в фикс. запятую. Т.е. умножаете мантиссу рез-та на 2^Er. Er - показатель результата. Ну и потом до 16-ти разрядов округляете.
Исходная ИХ КИХ фильтра должна иметь 32-х разрядное представление перед разбивкой на блоки и нормировкой, описанной в начале. А вот уже мантиссы отнормированных блоков округляете до 16 разрядов.





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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru