Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Difference between revisions of "Aufgaben:Exercise 5.5Z: Complexity of the FFT"

From LNTwww
Line 44: Line 44:
 
MM=  { 4 }
 
MM=  { 4 }
  
{How many complex additions/subtractions  (aB)  does a single basic operationn („butterfly”) require?
+
{How many complex additions/subtractions  (aB)  does a single basic operationn  ("butterfly")  require?
 
<br>How many complex multiplications&nbsp; (mB)&nbsp; are required per basic operation?
 
<br>How many complex multiplications&nbsp; (mB)&nbsp; are required per basic operation?
 
|type="{}"}
 
|type="{}"}
Line 54: Line 54:
 
OB =   { 10 }
 
OB =   { 10 }
  
{How many real operations&nbsp; (OFFT)&nbsp; does the entire FFT&ndash;algorithm require? What are the values for&nbsp; N=16&nbsp; und&nbsp; N=1024?
+
{How many real operations&nbsp; (OFFT)&nbsp; does the entire FFT&ndash;algorithm require?&nbsp; What are the values for&nbsp; N=16&nbsp; und&nbsp; N=1024?
 
|type="{}"}
 
|type="{}"}
 
N=16:OFFT =  { 320 3% }
 
N=16:OFFT =  { 320 3% }
 
N=1024:OFFT =  { 51200 3% }
 
N=1024:OFFT =  { 51200 3% }
  
{What is the time gain&nbsp; GFFT=ODFTOFFT&nbsp; für&nbsp; N=16&nbsp; and&nbsp; N=1024?
+
{What is the time gain&nbsp; GFFT=ODFTOFFT&nbsp; for&nbsp; N=16&nbsp; and&nbsp; N=1024?
 
|type="{}"}
 
|type="{}"}
 
N=16:GFFT =  { 6.4 3% }
 
N=16:GFFT =  { 6.4 3% }

Revision as of 11:43, 22 May 2021

Final step of the FFT for N=8

The  FFT  algorithm  ("Fast Fourier Transform")  realises a  "Discrete Fourier Transform"  (DFT)  with the smallest possible computational effort if the parameter  N  is a power of two.  In detail, the following calculation steps are necessary to carry out an FFT:

  • The FFT occurs in  log2 N  stages, whereby the exact same number of arithmetic operations must be carried out in each stage.
  • The diagram shows the third and last stage for the example  N=8.  It can be seen that  N/2  basic operations have to be carried out in this and the other stages.
  • In each basic operation called   butterfly,  two complex outputs are calculated from the two complex input variables  E1  and  E2 :
A1=E1+E2wμ,
A2=E1E2wμ.
  • Here  w=ej2π/N  denotes the complex rotation factor.  For  N=8  the value  w=ejπ/4=cos(45)jsin(45) is obtained.
  • The exponent  μ  for this complex rotation factor can take all integer values between  0  and  N/21.  For  N=8  it is:
w0=1,w1=1/2j1/2,w2=j,w3=1/2j1/2.

The purpose of this task is to determine the number of arithmetic operations  (OFFT)  required for the FFT and compare it with the value  ODFT8N2  that can be specified for the DFT.



Hints:

  • This task belongs to the chapter  Fast Fourier Transform (FFT).
  • It makes sense to calculate the powers of  w  before the actual algorithm and store them in a lookup table.  The operations necessary for this are to be disregarded.
  • The  "bit reversal operation"  – a rearrangement that has to be carried out before the first stage – is also not to be taken into account in this estimation.



Questions

1

How many real additions  (AA)  does a complex addition require?

AA= 

2

How many real additions  (AM)  and multiplications  (MM)  are required for a complex multiplication?

AM= 

MM= 

3

How many complex additions/subtractions  (aB)  does a single basic operationn  ("butterfly")  require?
How many complex multiplications  (mB)  are required per basic operation?

aB= 

mB= 

4

How many arithmetic operations  (additions, subtractions, multiplications alike)  does a basic operation require?

OB = 

5

How many real operations  (OFFT)  does the entire FFT–algorithm require?  What are the values for  N=16  und  N=1024?

N=16:OFFT = 

N=1024:OFFT = 

6

What is the time gain  GFFT=ODFTOFFT  for  N=16  and  N=1024?

N=16:GFFT = 

N=1024:GFFT = 


Solution

(1)  Each complex addition requires two real additions:

(R1+jI1)+(R2+jI2)=(R1+R2)+j(I1+I2)AA=2_.


(2)  Any complex multiplication requires four real multiplications and two real additions:

(R1+jI1)(R2+jI2)=(R1R2I1I2)+j(R1I2+R2I1)AM=2,MM=4_.


(3)  The basic operations with complex inputs  E1E2  and  wμ are:

A1=E1+E2wμ,A2=E1E2wμ.
  • This means one complex multiplication and two complex additions:   aB=2,mB=1_.


(4)  In contrast to the first computers, a multiplication today does not take much more computing time than an addition or subtraction.

  • Using the results of subtasks  (1)(2)  and  (3)  we obtain for the total number of arithmetic operations:
OB=aBAA+aB(AM+MM)=22+16=10_.


(5)  There are  log2 N stages in total, each of which requires  N/2  basic operations to be performed:

OFFT=log2NN2OB=5Nlog2N
OFFT(N=16)=5164=320_,OFFT(N=1024)=5102410=51200_.


(6)  The computational time gain of the FFT over the conventional DFT is given by:

GFFT=ODFTOFFT=8N25Nlog2N=1.6Nlog2N
GFFT(N=16)=1.6164=6.4_,GFFT(N=1024)=1.6102410164_.