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

Отправлено Al 24 марта 2002 г. 08:50

В примерах для ADSP-21xx приведён следующий пример расчёта КИХ фильтра с 32-х разрядными коэффициентами и отсчётами:
.MODULE dfir_sub;
{
Double-Precision Transversal Filter Subroutine

Calling Parameters
I0 --> Oldest input data value in delay line
L0 = 2 * Filter length (N)
I4 --> 2nd location (LSW of 1st value)
of filter coefficient table
L4 = 2 * Filter length (N)
M0,M4 = 1
M1,M5 = 2
M2,M6 = 3
AX0 = Filter length - 2 (N-2)
CNTR = Filter length - 2 (N-2)

Return Values
MR1,MR0 = sum of products
(conditionally saturated to 32 bits)
I0 --> Oldest input data value in delay line
I4 --> 2nd location (LSW of 1st value)
of filter coefficient table

Altered Registers
MX0,MY0,MR

Computation Time
3 * (N - 2) + 16 + 9

All coefficients and data values are assumed to be in 1.15 format.
}

.ENTRY dfir;

dfir: MR=0, MX0=DM(I0,M1), MY0=PM(I4,M5);
DO hlloop UNTIL CE;
hlloop: MR=MR+MX0*MY0(SU), MX0=DM(I0,M1), MY0=PM(I4,M5);
MR=MR+MX0*MY0(SU), MX0=DM(I0,M2), MY0=PM(I4,M4);
MR=MR+MX0*MY0(SU), MX0=DM(I0,M1), MY0=PM(I4,M5);
CNTR=AX0;
DO lhloop UNTIL CE;
lhloop: MR=MR+MX0*MY0(US), MX0=DM(I0,M1), MY0=PM(I4,M5);
MR=MR+MX0*MY0(US), MX0=DM(I0,M0), MY0=PM(I4,M5);
MR=MR+MX0*MY0(US), MX0=DM(I0,M1), MY0=PM(I4,M5);
MR0=MR1; {downshift 16 places}
MR1=MR2;
CNTR=AX0;
DO hhloop UNTIL CE;
hhloop: MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M5);
MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M6);
MR=MR+MX0*MY0(SS);
IF MV SAT MR;
RTS;
.ENDMOD;

Вопрос: Почему отсутствует цикл:
DO llloop UNTIL CE;
llloop: MR=MR+MX0*MY0(UU), MX0=DM(I0,Mx), MY0=PM(I4,Mx);
т.е. перемножение с накоплением младших слов 32-х разрядных множителей.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru