Пр о ц е с с о р TMS 3 2 0C4 x
89
Пример умножения комплексных матриц
N
.set
12
; определение размерностей матриц
K
.set
6
;
M
.set
10
;
CMPLX:
LDI
N
∗
K
∗
2, IR1
; установка адресных смещений
LDI
K
∗
2, IR0
;
LDI
M-1, AR4
; определение счетчиков циклов
COLS:
LDI
N-1, AR3
;
ROWS:
LDI
K-1, RC
;
RPTBD
DOT
; внутренний цикл
LDF
0.0, R0
;
LDF
0.0, R2
;
LDF
0.0, R3
;
; комплексное умножение x[i,n] на y[n,j]
MPYF3
∗
AR0++(1),
∗
AR1++(1), R0
; Re(x)
⋅
Re(y)
→
R0
||
SUBF3
R0, R2, R2
; R2 - Im(x)
⋅
Im(y)
→
R2
MPYF3
∗
-AR0(1),
∗
AR1, R0
; Re(x)
⋅
Im(y)
→
R0
||
ADDF3
R0, R2, R2
; R2 + Re(x)
⋅
Re(y)
MPYF3
∗
AR0,
∗
-AR1(1), R0
; Im(x)
⋅
Re(y)
→
R0
||
ADDF3
R0, R3, R3
; R3 + Re(x)
⋅
Im(y)
→
R3
DOT:
MPYF3
∗
AR0++(1),
∗
AR1++(1), R0
; Im(x)
⋅
Im(y)
→
R0
||
ADDF3
R0, R3, R3
; R3 + Im(x)
⋅
Re(y)
→
R3
SUBF3
R0, R2, R2
; R2 - Im(x)
⋅
Im(y)
→
R2
DBUDAR3, ROWS
; цикл по строкам X
STF
R2,
∗
AR2++(1)
; сохранение Re(z)
STF
R3,
∗
AR2++(1)
; сохранение Im(z)
NOP
∗
- - AR1(IR0)
; смещение на начало
; текущего столбца Y
DBUDAR4, COLS
; цикл по столбцам Y
NOP
∗
++ AR1(IR0)
; смещение на
NOP
; следующий столбец Y
NOP
∗
- - AR0(IR1)
; смещение на первый
; элемент X
RETS
; возврат из п/п
.end
2.5. Быстрое преобразование Фурье
Быстрым преобразованием Фурье (БПФ) называется множество алгорит-
мов вычисления дискретного преобразования Фурье (ДПФ). Дискретное преоб-
разование Фурье определяется выражением
( )
( )
X k
x n W
N
nk
n
N
=
=
−
∑
0
1
, где
k
N
=
−
0
1
,
,
K
,
N
j
N
W e
=
−
2
π
.
В общем случае эффективное вычисление БПФ связано с представлением
N
в
виде произведения сомножителей. Для случая, когда
N
является степенью
двойки, существуют высокоэффективные вычислительные алгоритмы, извест-