Пр о ц е с с о р TMS 3 2 0C4 x
78
задержки
d
[
n
-1], а в элемент
d
[
n
-2] заносится новое вычисленное значение
d
[
n
].
К следующему вызову подпрограммы линия задержки будет иметь состояние,
показанное на рис.2.9, т.е. будет осуществлен сдвиг на один такт.
Подпрограмма БИХ-фильтра второго порядка
; Вызов подпрограммы
;
LAJU IIR1
; Регистры на входе:
;
R2
- входной отсчет x[n]
;
AR0 - адрес коэффициентов фильтра b[2]
;
AR1 - адрес линии задержки d[n-2]
;
BK
= 3
; Используемые регистры:
R0, R1, R2, AR0, AR1
; Регистры на выходе:
R0 - результат
; Характеристики:
время выполнения в циклах - 8
;
память - 8 слов
.global
IIR1
IIR1 MPYF3
∗
AR0,
∗
AR1, R0
; b2d[n-2]
→
R0
MPYF3
∗
++AR0(1),
∗
AR1- -(1)%, R1
; a2d[n-2]
→
R1
MPYF3
∗
++AR0(1),
∗
AR1,R0
; b1d[n-1]
→
R0
||
ADDF3
R0, R2, R2
; b2d[n-2]+x[n]
→
R2
MPYF3
∗
++AR0(1),
∗
AR1- -(1)%, R0
; a1d[n-1]
→
R0
||
ADDF3
R0, R2, R2
; b1d[n-1]+b2d[n-2]+x[n]
→
R2
BUD
R11
; задержанный возврат из п/п
; запись R2 в память и перемещение указателя на d[n-1]
MPYF3
∗
++AR0(1), R2, R2
; a0d[n]
→
R2
||
STF
R2,
∗
AR1++(1)%
ADDF
R0, R2
; a1d[n-1]+a0d[n]
→
R2
ADDF
R1, R2, R0
; a2d[n-2]+a1d[n-1]+a0d[n]
→
R0
.end
Состояние линии
задержки перед
вызовом
подпрограммы
b
2
a
2
a
0
Младшие
адреса
Старшие
адреса
d
[
n
]
d
[
n
-1]
d
[
n
-2]
Последний
отсчет
Первый
отсчет
d
[
n
-1]
d
[
n
-2]
d
[
n
]
Коэффициенты
фильтра
Состояние линии
задержки после вызова
подпрограммы
AR1
В эту ячейку
записывается
новый отсчет
b
1
a
1
Рис.2.9. Организация данных БИХ-фильтра (одна секция)