0% found this document useful (0 votes)
46 views

Course 07 - DFT (Contd), FFT

1. The document reviews the relationship between the discrete-time Fourier transform (DTFT) and the discrete Fourier transform (DFT). The DTFT of a finite-length sequence is periodic, and the DFT samples the DTFT at discrete frequency points. 2. It describes the decimation-in-time fast Fourier transform (FFT) algorithm. For an N-point DFT, the FFT decomposes it into multiple smaller DFTs by separating the input sequence into even and odd numbered points. This decomposition can be repeated recursively until single point DFTs are reached. 3. The core computation in FFT is called the butterfly operation, which combines two input sequences by multiplication and addition.

Uploaded by

Moditha Lakshan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views

Course 07 - DFT (Contd), FFT

1. The document reviews the relationship between the discrete-time Fourier transform (DTFT) and the discrete Fourier transform (DFT). The DTFT of a finite-length sequence is periodic, and the DFT samples the DTFT at discrete frequency points. 2. It describes the decimation-in-time fast Fourier transform (FFT) algorithm. For an N-point DFT, the FFT decomposes it into multiple smaller DFTs by separating the input sequence into even and odd numbered points. This decomposition can be repeated recursively until single point DFTs are reached. 3. The core computation in FFT is called the butterfly operation, which combines two input sequences by multiplication and addition.

Uploaded by

Moditha Lakshan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 48

Review & summary of the relation between DFT and DTFT

If x[n] is a finite-length sequence (n0 only when |n|<N) ,


its DTFT X(e
jw
) is still a periodic continuous function with
period 2.

The DFT of x[n], denoted by X(k) is as follows:







where , and W
n
are the roots of W
N
= 1.
Relationship: X(k) is the uniform samples of X(e
jw
) at the
discrete frequency w
k
= (2/N)k, when the frequency range
[0, 2] is divided into N equally spaced points.
( ) N j
e W
/ 2
=
A discrete-time
signal of length 10
or
A period signal with
period 10
Its magnitude
spectrum (10
samples in a period)
or
Its discrete-time
spectrum
Its phase
spectrum
Two view points: finite-length (duration) signal or periodical signal
Reconstruction of the continuous period spectrum from the
frequency samples
The reconstruction formula
(which is called Dirichlet kernel)
Complementary:
Practical Issue of D/A Converter
(cf. Boaz Porat 1997)

We already know that
In frequency domain, this is equivalent to performing an (analog) ideal low
pass filter (with cut-off frequency (/T) for the impulse trains
corresponding to x(nT).
What could be used in a practical system?
An analog filters frequency response
Characteristics
Ideal reconstruction filter for zero-order-hold D/A converter
Inverse of the zero-order
holds frequency
response
Ideal low-passs
frequency response

More about DFT (cf. Boaz Porat 1997)

even N odd N

Fast Fourier Transform (FFT)

DFT pairs:





W
N
= e
j2/N
is a root of the equation W
N
=1.
It requires N
2
complex multiplications and (N1)N complex
additions for computation.
Each complex multiplication needs four real multiplications and
two real additions, and each complex addition requires two real
additions. It requires 4N
2
real multiplications and N(4N2) real
additions.

=
= =
1
0
1 ..., 1 , 0 , ] [ ] [
N
n
kn
N
N k W n x k X

= =
1
0
1 ..., 1 , 0 , ] [
1
] [
N
k
kn
N
N n W k X
N
n x
Since




Define

The above equation can be interpreted as a discrete convolution
of the finite-duration sequence x[n], 0 n N1, with the
sequence , which is the impulse response of the LTI
system.
Note that x[r] is nonzero only when 0 r <N. We can easily
verify that
1 =
kN
N
W

=
=
1
0
) (
1
0
] [
] [ ] [
N
r
r N k
N
N
r
kr
N
kN
N
W r x
W r x W k X
] [ ] [ ] [
) (
r n u W r x n y
r
r n k
N k
=

=

N n k
n y k X
=
= ] [ ] [
] [n u W
kn
N

Goertzel algorithm (for a single frequency component)


The Goertzel algorithm computes DFT by implementing the above
LTI system. The system function is the z transform of



The signal-flow graph of the LTI system for obtaining y
k
[n] is





1
1
1
) (

=
z W
z H
k
N
k
] [n u W
kn
N

Flow graph of second-order computation of X[k] (Goertzel algorithm)


The implementation can be further simplified as





2 1
1
1 1
1
1
) / 2 cos( 2 1
1
) 1 )( 1 (
1
1
1
) (


+

=


=

=
z z N k
z W
z W z W
z W
z W
z H
k
N
k
N
k
N
k
N
k
N
k

v
k
[n]
Since we only need to bring the system to a state from which
y
k
[n] can be computed, the complex multiplication by W
n
k

required to implement the zero of the system need not be
performed at every iteration, but only after the N-th iteration,
by the following difference equation:



It requires 2 real multiplications and 4 real additions to
compute v
k
[n] (that may be a complex sequence). The
multiplication by W
n
k
is performed only when n=N, which
requires 4 real multiplications and 4 real additions. Finally, a
total of 2N+4 real multiplications and 4N+4 real additions are
required.
. 0 ], 2 [ ] 1 [ ) / 2 cos( 2 ] [ ] [ N k n v n v N k n x n v
k k k
+ =
] 1 [ ] [ ] [ ] [ = = N v W N v N y k X
k
k
N k k
To compute all the X[k], k=0, , N1, we need 2N(N+2) real
multiplications and 4N(N+1) real additions, where the
number of multiplications are reduced by almost a half.
The Goertzel algorithm is usually used to compute X[k] for
which only a single k or a small number of k values are
needed.
Decimation-in-time FFT algorithm
Most conveniently illustrated by considering the special case of N
an integer power of 2, i.e, N=2
v
.
Since N is an even integer, we can consider computing X[k] by
separating x[n] into two (N/2)-point sequence consisting of the
even numbered point in x[n] and the odd-numbered points in x[n].




or, with the substitution of variable n=2r for n even and n=2r+1
for n odd

+ =
dd
] [ ] [ ] [
o n
nk
N
even n
nk
N
W n x W n x k X


=
+

=
+ + =
1 ) 2 / (
0
) 1 2 (
1 ) 2 / (
0
2
] 1 2 [ ] 2 [ ] [
N
r
k r
N
N
r
rk
N
W r x W r x k X


=

=
+ + =
1 ) 2 / (
0
2
1 ) 2 / (
0
2
) ]( 1 2 [ ) ]( 2 [
N
r
rk
N
k
N
N
r
rk
N
W r x W W r x
Since

That is, W
N
2
is the root of the equation W
N/2
=1
Consequently,






Both G[k] and H[k] can be computed by (N/2)-point DFT, where
G[k] is the (N/2)-point DFT of the even numbered points of the
original sequence and the second being the (N/2)-point DFT of
the odd-numbered point of the original sequence.
Although the index ranges over N values, k = 0, 1, , N-1, each
of the sums must be computed only for k between 0 and (N/2)-1,
since G[k] and H[k] are each periodic in k with period N/2.
2 /
) 2 / /( 2 ) / 2 ( 2 2
N
N j N j
N
W e e W = = =

1 ,..., 1 , 0 ], [ ] [ = + = N k k H W k G
k
N


=

=
+ + =
1 ) 2 / (
0
2 /
1 ) 2 / (
0
2 /
) ]( 1 2 [ ) ]( 2 [ ] [
N
r
rk
N
k
N
N
r
rk
N
W r x W W r x k X
Decomposing N-point DFT into two (N/2)-point DFT for the
case of N=8
We can further decompose the (N/2)-point DFT into two
(N/4)-point DFTs. For example, the upper half of the previous
diagram can be decomposed as
Hence, the 8-point DFT can be obtained by the following
diagram with four 2-point DFTs.
Flow graph of a 2-point DFT
Finally, each 2-point DFT can be implemented by the following
signal-flow graph, where no multiplications are needed.
Flow graph of complete decimation-in-time decomposition of an 8-point DFT.
In each stage of the decimation-in-time FFT algorithm, there
are a basic structure called the butterfly computation:










The butterfly computation can be simplified as follows:
Flow graph of a basic butterfly
computation in FFT.
Simplified butterfly computation.
] [ ] [ ] [
] [ ] [ ] [
1 1
1 1
q X W p X q X
q X W p X p X
m
r
N m m
m
r
N m m


=
+ =
Flow graph of 8-point FFT using the simplified butterfly computation
In the above, we have introduced the decimation-in-time
algorithm of FFT.
Here, we assume that N is the power of 2. For N=2
v
, it requires
v=log
2
N stages of computation.
The number of complex multiplications and additions required
was N+N+N = Nv = N log
2
N.
When N is not the power of 2, we can apply the same principle
that were applied in the power-of-2 case when N is a composite
integer. For example, if N=RQ, it is possible to express an N-
point DFT as either the sum of R Q-point DFTs or as the sum
of Q R-point DFTs.
In practice, by zero-padding a sequence into an N-point
sequence with N=2
v
, we can choose the nearest power-of-two
FFT algorithm for implementing a DFT.
The FFT algorithm of power-of-two is also called the Cooley-
Tukey algorithm since it was first proposed by them.
For short-length sequence, Goertzel algorithm might be more
efficient.

You might also like