Sundance FC108 User Manual v.1.1

FC108 - Polyphase filterbank v1.1
User manual
The polyphase filterbank algorithm is a very efficient way to implement a uniformly distributed multi-channel filterbank using a Fast Fourier Transform (FFT). This Intellectual Property (IP) core was designed to process data in real time up to rates of 1GSPS in Virtex-4 devices. Sundance’s core is the fastest and the most efficient available in the FPGA world.
Features
This IP core targets the following devices:
¾ Xilinx: Virtex-IITM, Virtex-II ProTM, Spartan-3TM and Virtex-4TM
Number of channels: M=2m with m = 3 to 12 (8 to 4096 channels)
Arithmetic type and data formats :
¾ 16-bit integer fixed point ¾ Any resolution upon request
Configurable on the fly filter taps for each channel
Fully functional VHDL testbench and the related Matlab functions delivered along the
FFT/IFFT core for simulation purposes and specific performance characterization.
Polyphase filterbank product manual
December 2005 www.sundance.com - 1 -
Fast
FC108 - Polyphase filterbank v1.1
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.
nkj
π
1
N
=
=
0
n
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 rth value of X(k) is taken then the calculation is reduced to:
1
N
=
=
0
n
nxnhkX
2
N
)().()(
nxnhkX
e
)().()'(
e
with k = 0, 1, …, N-1
rnkj
π
'2
N
with k’ = 0, 1, …, M-1
Equation 2: Windowed pruned function
This can be rearranged in the following manner:
−=−
101
rmM
∑∑
=
n
++=
mMnxmMnhkX
0
Equation 3: Polyphase filterbank
π
'2
nkj
M
)().()'(
e
with k’ = 0, 1, …, M-1
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.
−=−
101
rmM
+++++=
))().()().(()'(
∑∑
=
0
n
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
mMnxQmMnhQmMnxImMnhIkX
e
nkj
π
'2
M
Polyphase filterbank product manual
December 2005 www.sundance.com - 2 -
Fast
FC108 - Polyphase filterbank v1.1
Figure 1: Polyphase filterbank
Implementation
Prior to performing the Fourier transform, the samples undergo first an M-decimation and are filtered using a complex 8-tap filter with independent real and imaginary paths. The filter coefficients are entirely user defined and can be loaded or updated at anytime before or during processing. The FFT core uses a decomposition of radix-4 and radix-2 butterflies for computing the DFT, ranging from 8 to 4096 points. The FFT length is a user programmable parameter and it can be changed without the need to reconfigure the FPGA.
Polyphase filterbank product manual
December 2005 www.sundance.com - 3 -
Fast
Loading...
+ 7 hidden pages