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

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

Отправлено kirgizz 17 января 2005 г. 16:11

Необходимо произвести modulo adressing. Как шаг используется одно floating-число (5,6). Поэтому использовать напрямую hardware ring buffer не получается.
Необходимо произвести разделение и оставить 2 составные в 2x R-регистрах, например: 5,6= 5(->R0) + 0,6(->R1).

K 5,6 прибавляется шаг (5,6+5,6=11,2) и производится software modulo addressing (11->3, при длине буффера равна 8). Новый floating-индекс (3,2) сохраняется в памяти. Для пояснения добавлю, что ета операция используется в вычислении sin[n+x](аппроксимацией). Шаг 5.6 служит как множитель частоты delta: sin'(f')=sin(delta*f).

Раньше я работал с Motorola DSP56k (fixed point) там это делалось проще (на мой взгляд) из-за особенностей структуры памяти.

Какие операторы/алогоритмы лучше использовать? Как у AD-начинающего у меня нет пока конкретного плана как это эффективно реализовать (процедура используется в ISR,в assembler'e).

буду рад услышать/увидеть ваши советы :-)


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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru