Algorithm – Sundance FC108 v.1.1 User Manual
Page 2

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