95-1 Under-Graduate Project
Mid-Term Paper Reading
Presentation
Adviser: Prof. An-Yeu Wu
Mentor:詹承洲
第二組
溫仁揚 溫昌懌
1
A New Approach to Pipeline
FFT Processor
Shousheng He & Mats Torkelson
Department of Applied Electronics,
Lund University, S-22100 Lund,
SWEDEN
2
Outline
What is FFT
How to solve FFT by hardware
Approaches to Pipeline FFT
A closer look to Radix- 2 2
Simulation by C language
Future Work
Conclusion
Reference
3
What is FFT
Discrete Fourier Transform is defined as:
with complexity
Fast Fourier Transform (FFT) is an
efficient algorithm which reduced the
complexity into
4
What is FFT(cont’d)
The Cooly-Tukey algorithm
by symmetry,
Hence, we re-express the size N transform into 2 size N/2 transforms
5
How to Solve FFT by
Hardwares
Divide & Conquer
Butterfly
Twiddle Factor
6
W(n) –twiddle factor
Radix-22DIFFFT :
7
Approach to Pipeline FFT
R2MDC
R4MDC
R2SDF
R4SDF
8
Approach to Pipeline FFT(cont’d)
R4SDC
Radix- 2 2
Still many other
approaches, ex:
Radix- 23, Mixed
Radix, Chirp-Z… etc.
We focus on this structure today
9
A Closer Look to Radix- 2
2
x(0)+x(8) [x(0)+x(8)]+[x(4)+(12)]
W(n)
10
A Closer Look to Radix- 2
The size of register is 2
W2(n)=e{-
j*(n15*(k11+2*k12) )}
2
(cont’d)
n
W3(n)= e{-j*4*n3*(k21+2*k22)}
A 256-point model of Radix- 2 2
11
A Closer Look to Radix- 2
2
(cont’d)
From 2 +1 clk to next
2 n 1 clks, push inputs
into register file
n
First 2 n clks, push
inputs into register
file.
Then start to do the
butterfly.
2
n
2
n 1
Then start to do the
butterfly
12
A Closer Look to Radix-22
input
counter
BF2i
Register
BF2ii
Register
W(n)
output
13
Simulation by C language
Main function
int main(void)
{
……//declare variables, assign
for(clk=0;clk<=2*N;clk++)
{
BF2i ( 5,clk>>5 );
REGIST(5);
BF2ii( 4,clk>>5 ,(clk>>4)%2 );
REGIST(4);
Zr[0][4] = W2 * Zr[0][4] ;
}
//end of for
(cont’d)
(A 64 points model)
inputs
//first BF #5
//first regs
//second BF #4
//second regs
//twiddle factor
Do it 3 times with different parameters
//print outputs and make comparison to theoretical value
}
//end of main
14
Simulation by C language
BF2i
void BF2i(char t,bool s)
// 4 inputs which are Xr(n), Xi(n), Xr(n+N/2),
Xi(n+N/2) ,clk signal in the fiqure
{
if (s){
Zr[0][t]= Zr[0][t+1]+regr[t][pow(2,t)-1];
Zi[0][t]= Zi[0][t+1]+regi[t][pow(2,t)-1];
Zr[1][t]= regr[t][pow(2,t)-1]-Zr[0][t+1];
Zi[1][t]= regi[t][pow(2,t)-1]-Zi[0][t+1];
}// the vatue of Zs when s==1
else{
Zr[0][t]=regr[t][pow(2,t)-1];
Zi[0][t]=regi[t][pow(2,t)-1];
Zr[1][t]=Zr[0][t+1];
Zi[1][t]=Zi[0][t+1];
}// the value of Zs when s==0
}// end of BF2i
regr[t][2^t-1]
regi[t][2^t-1]
Zr[0][t+1]
Zi[0][t+1]
(cont’d)
Zr[1][t]
Zi[1][t]
Zr[0][t]
Zi[0][t]
15
Simulation by C language
(cont’d)
S=0 :
S=1 :
16
Simulation by C language
BF2ii
void BF2ii(char t, bool s, bool g)
{
if(g){
if(s){
regr[t][2^t-1]
regi[t][2^t-1]
Zr[0][t]=regr[t][pow(2,t)-1]+Zr[0][t+1];
Zi[0][t]=regi[t][pow(2,t)-1]+Zi[0][t+1];
Zr[1][t]=regr[t][pow(2,t)-1]-Zr[0][t+1];
Zi[1][t]=regi[t][pow(2,t)-1]-Zi[0][t+1];
}
else {
…
}
else{
…
}
}
Zr[0][t+1]
Zi[0][t+1]
(cont’d)
Zr[1][t]
Zi[1][t]
Zr[0][t]
Zi[0][t]
17
Simulation by C language
(cont’d)
g=1, s=0,1:
g=0:
18
Simulation by C language
(cont’d)
Register
void REGIST(char num)
{
for (char l=pow(2,num-1); l>=1;l--)
{
// from MSB to LSB
regr[num][l]=regr[num][l-1];
regi[num][l]=regi[num][l-1];
}
// end of for loop
regr[num][0]=Zr[1][num];
n 1
regi[num][0]=Zi[1][num];
}//end of function
2
Zr[1][num]
Zi[1][num]
2 n -11
…
1
0
19
Simulation by C language
(cont’d)
Simulation results:
16 points completed
64 points with error
20
Future Work
Develop more points
Perform it in HDL language, ex: Verilog
Final Presentation
21
Conclusion
Under how to solve FFT by hardware
Develop W(n) to 64 points
Construct Radix22 ‘s model
C simulation with some faults
22
Reference
Shousheng He & Torkelson, M.,”A new approach to pipeline FFT
processor,” Proceedings of IPPS’96, 15-19 April 1996, pp766-770.
Shousheng He & Torkelson, M.,”Designing Pipeline FFT
Processor for OFDM (de)Modulation,” Signals, Systems, and
Electronics’98 29 Sep-2 Oct 1998,pp 257-262.
施信毓,”95-1 Under-Graduate Project, Final Project: single-path
Delay Feedback FFT”,04 Oct 2006.
http://www.clecom.co.uk/science/autosignal/help/FFT_Algorith
ms.htm
http://en.wikipedia.org/
http://zh.wikipedia.org/
23
© Copyright 2026 Paperzz