ЭУМК по дисциплине "Программирование проблемно-ориентированных вычислительных средств реального времени" › Теория › Тема 4. Программирование алгоритмов БПФ с прореживанием по времени

# Электронный учебно-методический
комплекс по дисциплине
"Программирование проблемно-ориентированных вычислительных средств реального времени"

для специальности

1-40 02 02 «Электронные вычислительные средства»

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах

4.2. Алгоритм БПФ с прореживанием по времени и прямым порядком входных данных
4.2.1. Изменение индексов и поворачивающих множителей

Ниже приведены граф-схема (рис. 4.3) и таблица индексов (табл. 4.2) 8 точечного БПФ с прореживанием по времени и прямым порядком входных данных.

###

### Рисунок 4.3 – Граф-схема БПФ с прореживанием по времени
и прямым порядком входных данных

Таблица 4.2 - Изменение индексов для БПФ с прореживанием по времени и прямым порядком входных данных

№ п/п | N2 | IE | J | I | I + N2 | K | Цикл | Переход
1 | 4 | 2 | 0 | 0 | 4 | 0 | 1 |
2 |  |  |  | 1 | 5 |  | 1
3 |  |  |  | 2 | 6 |  | 1
4 |  |  |  | 3 | 7 |  | 1 | 3
5 | 2 |  | 0 | 0 | 2 | 0 | 1
6 |  |  |  | 1 | 3 |  | 1 | 2
7 |  |  | 4 | 4 | 6 | 2 | 1
8 |  |  |  | 5 | 7 |  | 1 | 3
9 | 1 |  | 0 | 0 | 1 | 0 | 2
10 |  |  | 2 | 2 | 3 | 2 | 2 |
11 |  |  | 4 | 4 | 5 | 1 | 2
12 |  |  | 6 | 6 | 7 | 3 | 2

4.2.2. Схема алгоритма БПФ

Ниже приведена обобщенная схема алгоритма БПФ с прореживанием по времени и прямым порядком входных данных (рис. 4.4).

###

### Рисунок 4.4 – Схема алгоритма БПФ с прореживанием по времени
и прямым порядком входных данных

4.2.3. Программная реализация алгоритма БПФ

Ниже приведен пример подпрограммы для реализации алгоритма БПФ с прореживанием по времени и прямым порядком входных данных.

    * DIT FFT Programm for TMS320C5402 DSP Starter Kit
    * direct -> reverce addres     26/10/04 19:20:00
    	.data
    HOLDN   .word    64h
    QUARTN  .word    65h
    N1      .word    66h
    N2      .word    67h
    J       .word    68h
    IADDR   .word    69h
    SINTBL  .word    6Ah
    SIN     .word    6Bh
    COS     .word    6Ch
    I       .word    6Dh
    IE      .word    6Eh
    INV     .word    6Fh
    	.text
    FFT	stl	a, INV		; признак БПФ(=0) или ОБПФ (=1)
    	ld	#N, a
    	stl	a, HOLDN		; N
    	stl	a, -2, QUARTN	; N/4
    	stl	a, -2, IE		; IE=N/4 !!!
    	stl	a, N2			; N2=N !!!
    	st	#XFFT, IADDR
    	stm	#M, AR1		; число итераций - 1
    IELOOP	ld	#0, a
    	stl	a, J			; J=0
    	st	#sint, SINTBL	; K=0
    	ld	N2, a
    	stl	a, N1			; N1=2N2
    	stl	a, -1, N2		; N2=N2/2
    JLOOP	ld	J, 1, a
    	stl	a, I			; I=J (2J)
    	mvdm	N2, AR2
    	nop				;PPC1 ar2
    	mar	*AR2-			; AR2=N2-1
    	ld	SINTBL, a
    	reada	SIN
    	add	QUARTN, a
    	reada	COS			; W(K)
    	ld	INV, a
    	bcd	ILOOP, aeq
    	ld	SIN, b		;1w
    	neg	b			;1w
    	stl	b, SIN		; для ОБПФ -sin
    ILOOP	mvdm	I, AR0
    	mvdm	IADDR, AR3
    	nop				;PPC1 ar3
    	mar	*AR3+0		; (I)
    	mvdm	N1, AR0		; N2 (N1=2N2)
    	nop				;PPC1 ar0
    	mar	*AR3+0		; (I+N2)
    *=========================================*
    *	ld	*AR3+, T		; T = QR		*
    *	"бабочка"						*
    *  	sth	A, *AR3		; = 1/2 QR		*
    *=========================================*
    	addm	#1, I			; I=I+1
    	banz	ILOOP, *AR2-	; (I-J) < N2
    	mvdm	IE, AR0
    	mvdm	SINTBL, AR3
    	nop				;PPC1 ar3
    	mar	*AR3+0B		; K=br(K+IE)
    	mvmd	AR3, SINTBL
    	ld	J, a
    	add	N2, 1, a		; J=J+2N2
    	stl	a, J
    	sub	HOLDN, a
    	bc	JLOOP, alt		; J < N
    	banz	IELOOP, *AR1-	; N2=>1
    DRC2	stm	#N-1, AR1
    	mvdm	IADDR, AR2
    	nop				;PPC 1 AR2
    	mvmm	AR2, AR3
    LOOPD	mvmm	AR3, AR0
    	cmpr	LT, AR2
    	bcd	NODRC, NTC
    	mvdm	HOLDN, AR0		;2w
    	dld	*AR2, a
    	dld	*AR3, b
    	dst	a, *AR3
    	dst	b, *AR2
    NODRC	mar	*AR2+
    	mar	*AR2+
    	mar	*AR3+0B
    	banz	LOOPD, *AR1-
    	stm	#N-1, BRC
    	mvdm	IADDR, AR2
    	rptbd	LOOPM-1
    	ld	#1, b			;1w Max
    	nop				;1w
    	squr	*AR2+, a
    	squra	*AR2+, a
    	max	b
    LOOPM
    	exp	b
    	retd
    	ldm	T, b			;1w
    	nop				;1w

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах
© БГУИР , 2012