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

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

Отправлено ВН 26 июня 2003 г. 18:45
В ответ на: Ответ (+). отправлено Sergei_Ilchenko 26 июня 2003 г. 17:19

В общем виде и без округлений-усечений для КИХ-фильтра с 32-х разрядными вх. данными и к-тами (I - вход, O-выход, K - к-ты):
O[l]=SUM(K[j]*I[l-j])=SUM((KH[j]*2^16+KL[j])*(IH[l-j]*2^16+IL[l-j]))=
=2^32*SUM(KH[j]*IH[l-j])+2^16*SUM(KH[j]*IL[l-j])+2^16*SUM(IH[l-j]*KL[j])+SUM(KL[j]*IL[l-j]).
Первая сумма с помощью MAC. Т.е. для фильтров длиной до 128 она вырождается в:
LD #0,A
RPT #N-1
MAC *ARx+,*ARy+,A
Вторая и третья суммы с помощью MACSU.
Для фильтров длиной до 128 каждая сумма:
LD #0,A
RPT #N-1
MACSU *ARx+,*ARy+,A
Хуже с последней суммой.
Там для той же длины (меньше 128) будет что-то такое:
STM #N-1,BRC
LD #0,B
RPTB label:
LD *ARx+,T
MPYU *ARy+,A
label:
ADD A,B
Для фильтров большей длины можно разбивку на 128 точ. блоки применить.
Ну а если данные между 16 и 32 и лежат они в младших разрядах 32-х разр. слова, то наоборот, в вышеприведенных кусках N м.б. больше 128.
Сшивка сумм - копейки при большой длине. Так что потери по сравнению с 16-ти разрядными данными и к-тами - в 6 раз при большой длине.
Кстати о к-тах. Не знаю, что у Вас за фильтр, но частенько огибающая ИХ КИХ фильтра существенно отличается от константы. В этом случае, при большой длине фильтра, часто можно применить блочную ПЗ с 16-ти разрядной мантиссой. Т.е. ИХ фильтра разбить на несколько блоков. Для каждого блока своя экспонента. Для каждого блока, при 32-х разр. входе, получается 16*32 арифметика, т.е. практически ухудшение с 16*16 - в 2 раза.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru