Vector Radix FFT Algorithm: A Multidimensional Approach - Prof. Lina Karam, Study notes of Electrical and Electronics Engineering

The vector radix fft algorithm, a multidimensional extension of the 1-d fft. The algorithm uses a divide-and-conquer strategy to solve multidimensional dft problems. The 1-d and 2-d fft, as well as the decimation-in-time algorithm. It also explains the advantages of the vector radix fft over other algorithms, such as the r-c algorithm.

Typology: Study notes

Pre 2010

Uploaded on 09/02/2009

koofers-user-o9i
koofers-user-o9i 🇺🇸

5

(1)

10 documents

1 / 12

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
EEE 507 - Lecture 8
Vector Radix FFT Algorithm
Multidimensional rederivation of the 1-D FFT
Divide-and-conquer algorithm
!Operates as a recursive procedure
!Solves problem by dividing it into smaller problems that are the same
and then combining answers
Examples of divide-and-conquer algorithms
!1-D FFT
!Eklundh’s transposition procedure
!Vector-Radix
Note:
!The R-C algorithm divided the problem into column/row 1-D DFTs and
not into multidimensional DFTs => not into similar problems
=> not divide-and-conquer algorithm
pf3
pf4
pf5
pf8
pf9
pfa

Partial preview of the text

Download Vector Radix FFT Algorithm: A Multidimensional Approach - Prof. Lina Karam and more Study notes Electrical and Electronics Engineering in PDF only on Docsity!

Vector Radix FFT Algorithm• EEE 507 - Lecture 8

Multidimensional rederivation of the 1-D FFT

Divide-and-conquer algorithm

Operates as a recursive procedure

Solves problem by dividing it into smaller problems that are the sameand then combining answers

Examples of divide-and-conquer algorithms

1-D FFT

Eklundh’s transposition procedure

Vector-Radix

Note:

The R-C algorithm divided the problem into column/row 1-D DFTs andnot into multidimensional DFTs => not into similar problems

=> not divide-and-conquer algorithm

Vector Radix FFT Algorithm• EEE 507 - Lecture 8

1-D FFT Assume N is even:where G(K) and H(K) can be calculated by using N/2-point DFTs.

N K W n x K X

N n
nK
N
odd
n
nK
N
even
n
nK
N

W n x W n x K X

K

H

W

K

G

K
N

Vector Radix FFT Algorithm EEE 507 - Lecture 8

2D FFT Decimation-In-Time algorithm

Note:If

even =>

If

odd =>

2

2

1

1

2 1

2

2

1

1

1 2

2

2

1

1

1 2

2

2

1

1

1 2

) , ( ) , (

) , ( ) , ( ) , (

K

n N

K

n N

odd

n

odd

n

K

n N

K

n N

even

n

odd

n

K

n N

K

n N

odd

n

even

n

K

n N

K

n N

even

n

even

n

W W n n x W W n n x

W W n n x W W n n x K K X

=

n

2

m

n

=

1

2

=

m

n

1

n

Vector Radix FFT Algorithm EEE 507 - Lecture 8

2

2

1

1

1

2

2

2

1

1

1

2

2

2

1

1

1

2

2

2

1

1

1

2

) 1 2 , 1 2 (

) 2 , 1 2 ( ) 1 2 , 2 (

) 2 , 2 ( ) , (

K m N K m N N
m
N
m
K m N K m N N
m
N
m
K m N K m N N
m
N
m
K m N K m N N
m
N
m

W

W

m

m

x

W

W

m

m

x

W

W

m

m

x

W W m m x K K X

∑ ∑ ∑ ∑ ∑ ∑

∑ ∑

=

=

=

=

2D FFT Decimation-In-Time algorithm

1 1 1 1 1 1 1 1

2 /

K

m N

K

m

N

j K m N j K m N

W

e

e

W

=

=

=

π

π

Note:

Vector Radix FFT Algorithm EEE 507 - Lecture 8

2D FFT Decimation-In-Time algorithm

where

Note: If

i

=1, multiply

S

ij

by

If

j

=1, multiply

S

ij

by

:N/2-point DFTs

Still need to calculate

for

and

between

N/

and

N

This is simplified by the fact that

is periodic with period

N/2 in

K

and

K

Note:

So, when

N/

is added to a variable (

K

or

K

), reverse the sign of

W

N

having that variable as exponent.

1

2

/

0

1

2

/

0

1 2

N

K

N

K

2

2

1

1

1

2

2 /

2 /

1

2

0

2

1

1

2

0

2

1

K

m N

K

m N

N m

N m

ij

W W j m i m x K K S

∑ ∑

− =

− =

) , ( ) , ( ) , ( ) , ( ) , (

2

2

1

1

2

K K S W K K S W K K S W K K S K K X

K
K
N
K
N
K
N

=

1

K N

W

2

K N

W

)

,

(

2

1

K

K

X

2

1

K

K

S

ij

,

,

,

S

S

S

S

K

K

) 2 / , 2 / ( ) 2 / , ( ) , 2 / ( ) , (

2 1 2 1 2 1 2 1

N K N K S N K K S K N K S K K S

ij

ij

ij

ij

    • = + = + =

1

=

=

j
N
N

e

W

Vector Radix FFT Algorithm EEE 507 - Lecture 8

2D FFT Decimation-In-Time algorithm

Note:

Procedure:

1. 4 smaller DFTs

need to be calculated

2. By doing three different complex multiplications, we obtain 4 samples of

the DFT, for a given

are calculated by repeating same procedure

) , ( ) , ( ) , ( ) , ( ) , 2 / (

2

1

11

)

(

2

1

10

2

1

01

2

1

00

2

1

2

1

1

2

K K S W K K S W K K S W K K S K N K X

K

K

N

K N

K N

  • − − + = +

2

1

1

2

K K S W K K S W K K S W K K S N K K X

K
K
N
K
N
K
N

2

1

1

2

K K S W K K S W K K S W K K S N K N K X

K
K
N
K
N
K
N

N

K

N

K

) , ( ) , ( ) , ( ) , ( ) , (

2

1

11

)

(

2

1

10

2

1

01

2

1

00

2

1

2

1

1

2

K K S W K K S W K K S W K K S K K X

K

K

N

K N

K N

=

,

,

,

S

S

S

S

),

,

(

2

1

K

K

1

2

/

,

0

2

1

N

K

K

S

S

S

S

Vector Radix FFT Algorithm• EEE 507 - Lecture 8

2D FFT Decimation-In-Time algorithm

Computations

"

#CMULTs=3 / Butterfly

"

#CADDs=12 (=3×4) / Butterfly

since 3 CADDs / DFT sample, and 4 DFT samples/ Butterfly

Note: one can reduce #CADDs to 8 (refer to Problem 2.11 in

Dudgeon & Mersereau)

"

#stages required for 2-D N×N-point FFT

, for

"

#Butterfly per stage=Why? we have N×N initial points;I= # of inputs per stage =

; each Butterfly takes care of 4 inputs

O= # of outputs per stage =

Summary:

# CMULTS= (3 CMULTs/Butt) (

Butt/stage) (

stages)

#CADDs= (8 CADDs/Butt) (

Butt/stage) (

stages)

υ

=

=

N

2

log

V

N

2 = 4 / 2 N

2

N

2

N

N

log

4 / 2 N N N

2

2

log

4

3

N

N

2

2

log

2

2

N

N

2

log

M-Dimensional Vector-Radix FFT EEE 507 - Lecture 8

Array of size

Same basic Butterfly but different # of input/output points

Complexity:

. # inputs/outputs per stage=. # inputs per Butterfly=. # Butterflies per stage=. # stages =

, for

. # CMULTs/Butt=(# inputs/Butt-1)=Total # CMULTs =

4

4

3

4

4

2

1

M

N

N

N

N

×

×

×

...

M

N

M

2

M

M

M

N

N

)

2

(

2

=

ν

=

N

log

V

N

1

2

M

N

N

N

N

M

M

M

M

M

2

2

log

.

2

1

2

)

.(log

)

2

).(

1

2

(

=