beautypg.com

Algorithm – Sundance FC108 v.1.1 User Manual

Page 2

background image

FC108 - Polyphase filterbank

v1.1

Fast

Polyphase filterbank product manual

December 2005

www.sundance.com

- 2 -

Algorithm


The Fast Fourier Transform (FFT) is an efficient algorithm for computing the Discrete Fourier
Transform (DFT), that is transform data between the time and frequency domains. Consider the
DFT X(k) of a data set consisting of a sequence x(n) multiplied by a window function h(n)
implemented in the form of a Finite Impulse Response (FIR) filter.

=

=

1

0

2

)

(

).

(

)

(

N

n

N

nk

j

e

n

x

n

h

k

X

π

with k = 0, 1, …, N-1

Equation 1: Windowed original function


The Fourier transform computing effort required by the implementation described in Equation
1 is very large. However, it is possible to apply some mathematical tricks to reduce it and make
the algorithm implementation fit more easily in FPGA devices. For an FFT implementation, k
takes the values 0 to N-1. To prune the output data only a subset of the X(k) values need to be
calculated. If N can be factored as rM and only every r

th

value of X(k) is taken then the

calculation is reduced to:

=

=

1

0

'

2

)

(

).

(

)

'

(

N

n

N

rnk

j

e

n

x

n

h

k

X

π

with k’ = 0, 1, …, M-1

Equation 2: Windowed pruned function

This can be rearranged in the following manner:

∑ ∑

=

=

+

+

=

1

0

1

0

'

2

)

(

).

(

)

'

(

r

m

M

n

M

nk

j

e

mM

n

x

mM

n

h

k

X

π

with k’ = 0, 1, …, M-1

Equation 3: Polyphase filterbank

The total workload needed to implement the windowing is unchanged but the FFT is reduced
to a single M-point transform. This can be implemented by a structure as the one shown in
Figure 1. The data filtering in the polyphase filterbank is performed using two independent
filter paths for the In and Quadrature phase samples. This further reduces the computational
load by halving the number of multiplications required. The Polyphase filterbank core is
therefore implemented as per Equation 4.

∑ ∑

=

=

+

+

+

+

+

=

1

0

1

0

'

2

))

(

).

(

)

(

).

(

(

)

'

(

r

m

M

n

M

nk

j

e

mM

n

xQ

mM

n

hQ

mM

n

xI

mM

n

hI

k

X

π

with k’ = 0, 1, …, M-1. With xI = I_in and xQ=Q_in. With hI= I_filter_taps and hQ= Q_filter_taps

Equation 4: Polyphase filterbank implementation