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

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

Отправлено SM 24 июня 2004 г. 23:03
В ответ на: Ответ: отправлено Vitaly 24 июня 2004 г. 21:24

Для случая Q.15 все правильно. А в ассемблере есть одна команда, реальзующая ACC1=ACC2+(*ptr1++)*(*ptr2++). Называется MAC xmem,ymem,src,dst. Есть еще более полезная команда - MACD smem,pmad,src. Вторая кроме умножения с накоплением выполняет еще и сдвиг содержимого линии задержки с входным сигналом. Также есть команда-префикс RPT, позволяющая повторить следующую команду N раз. Итого весь Ваш фильтр выйдет в две команды - RPT и MACD. Ну плюс какие-то подготовительные операции. Далее. Если ИХ фильтра имеет четную симметрию, то возможно использование команд RPT FIRS. Эта команда (FIRS) умножает сумму двух операндов на коэффициент и производит накопление. Итого четно-симметричный фильтр требует в два раза меньше тактов процессора, чем длина ИХ. При условии, разумеется, использования циркулярной адресации в линии задержки, чтобы не требовался ее сдвиг.

Осторожно! Импульсная характеристика может и не уложиться в Q.15 - тогда понадобится использовать для нее другой формат (например Q.14, Q.13), и соответственно скорректировать сдвиг выходного результата.

Кстати С должен уметь использовать команды умножения с накоплением. Но использовать FIRS ума ему вряд-ли хватит.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru