Sie sind auf Seite 1von 59

Lecture 5

Discrete Fourier Transform Discrete Fourier Transform


(chapter 5)
Remarks
The DTFT provides the frequency-domain (w)
representation for absolutely summable sequences.
The z-transform provides a generalized frequency-
domain (z) representation for arbitrary sequences.
Two features in common: Two features in common:
Defined for infinite-length sequences
Functions of continuous variable (w or z)
From the numerical computation viewpoint, these
two features are troublesome because one has to
evaluate infinite sums at uncountably infinite
frequencies.
Remarks
To use Matlab, we have to truncate sequences and then
evaluate the expression at finitely many points.
The evaluation were obviously approximations to the exact
calculations.
In other words, the DTFT and the z-transform are not
numerically computable transform.
Introduction
Therefore we turn our attention to a numerically computable
transform.
It is obtained by sampling the DTFT transform in the
frequency domain (or the z-transform on the unit circle).
We develop this transform by analyzing periodic
sequences. sequences.
From FT analysis we know that a periodic function can
always be represented by a linear combination of
harmonically related complex exponentials (which is form of
sampling). This give us the Discrete Fourier Series
representation (studied in EE235 & EE341)
We extend the DFS to finite-duration sequences, which
leads to a new transform, called the Discrete Fourier
Transform.
The DFT avoids the two problems mentioned above and
is a numerically computable transform that is suitable for
computer implementation.
The numerical computation of the DFT for long
Introduction
sequences is prohibitively time consuming.
Therefore several algorithms have been developed to
efficiently compute the DFT.
These are collectively called fast Fourier transform (or
FFT) algorithms.
The Discrete Fourier Series
Definition: Periodic sequence
N: the fundamental period of the sequences
From FT analysis we know that the periodic functions can
be synthesized as a linear combination of complex
exponentials whose frequencies are multiples (or
k n kN n x n x , ), (
~
) (
~
+ =
exponentials whose frequencies are multiples (or
harmonics) of the fundamental frequency (2pi/N).
The synthesis equation of the Fourier series is given by
The analysis equation of the Fourier series is given by

=
=
k
t jk
k
e C t x
0
) (


=
0
0
0
0
) (
1
T
t jk
k
dt e t x
T
C

From the frequency-domain periodicity of the DTFT, we
conclude that there are a finite number of harmonics; the
frequencies are {2pi/N*k, k=0,1,,N-1}.
A periodic sequence can be expressed as
L , 1 , 0 , ) (
~ 1
) (
~
1
2
= =

n e k X n x
N
kn j
N

The Discrete Fourier Series


are called the discrete Fourier series
coefficients, which are given by
L , 1 , 0 , ) (
~ 1
) (
~
0
= =

=
n e k X
N
n x
k
kn j
N
} , 1 , 0 ), (
~
{ L = k K X
L , 1 , 0 , ) (
~
) (
~
1
0
2
= =

k e n x k X
N
n
kn j
N

Two equations are known as the analysis & synthesis


discrete Fourier series representation of periodic sequences
X(k) is itself a (complex-valued) periodic sequence with
fundamental period equal to N.

= =
=
1
) (
~
)] (
~
[ DFS ) (
~
Let
2
N
nk
N
j
N
W n x n x k X
e W
N

The Discrete Fourier Series

=
= =
= =
1
0
0
) (
~ 1
)] (
~
[ IDFS ) (
~
) ( )] ( [ DFS ) (
N
k
nk
N
n
N
W k X
N
k X n x
W n x n x k X
Example 5.1
E
x
a
m
p
l
e

5
.
1
Matlab Implementation
Matrix-vector multiplication:
Let x and X denote column vectors corresponding to the
primary periods of sequences x(n) and X(k), respectively.
Then
1
[ ]
(
(
(
(

= =
= =

2
) 1 ( ) 1 (
) 1 ( 1
*
1
1
1 1 1
1 , 0
1
N
N
N
N
N
N N
kn
N N
N N
W W
W W
N n k W W
X W
N
x x W X
L
M O M M
L
L
DFS Matrix
dfs function()
Function [Xk] = dfs (xn, N)
% Xk and xn are column(not row) vectors
if nargin < 2 N = length(xn)
n = 0: N-1; k = 0: N-1;
WN = exp(-j*2*pi/N);
kn = k*n;
WNkn = WN.^kn;
Xk = WNkn * xn
E
x
a
m
p
l
e

5
.
2
L = 5; N = 20;
xn = [ones(1,L), zeros(1,N-L)];
Xk = dfs(xn,N);
magXk = abs([Xk(N/2+1:N) Xk(1:N/2+1)]);
k = [-N/2:N/2];
subplot(2,2,1); stem(k,magXk); axis([-N/2,N/2,-0.5,5.5])
xlabel('k'); ylabel('Xtilde(k)')
title('DFS of SQ. wave: L=5, N=20')

=
=

) / sin(
) / sin(
, 2 , , 0 ,
) (
~
/ ) 1 (
N k
N kL
e
N N k L
k X
N L j

L
Example 5.2: Remarks
Note
1. Envelope like the sinc function;
2. Zeros occur at N/L (reciprocal of duty cycle);
3. Relation of N to density of frequency samples;
Relation to the z-transform


=
1
0
) ( ) (
elsewhere , 0
1 0 , Nonzero
) (
N
n
n
z n x z X
N n
n x
[ ]


1
~
1 0 ), (
~
N
n
N n n x
Let x(n) be a finite-duration sequence of duration N such that
[ ]


=
1
0
2
) ( ) (
~
elsewhere , 0
1 0 ), (
~
) (
N
n
n
k j
N
e n x k X
N n n x
n x

k
N
j
e z
z X k X
2
| ) ( ) (
~
=
=
The DFS X(k) represents N evenly spaced samples of the
z-transform X(z) around the unit circle.
Relation to the DTFT
k w
jw
N
n
jwn
N
n
jwn jw
N
e X k X
e n x e n x e X
2
| ) ( ) (
~
) (
~
) ( ) (
1
0
1
0
=

=
= =

2
,
2
1 1 k
kw k
N
w and
N
w Let = = =

) ( ) ( ) (
,
1
1 1
jkw jw
k
e X e X k X
kw k
N
w and
N
w Let
k
= =
= = =
The DFS is obtained by evenly sampling the DTFT at w
1
intervals.
The interval w
1
is the sampling interval in the frequency
domain. It is called frequency resolution because it tells us
how close are the frequency samples.
Sampling and Construction in Z-domain
Let x(n) be an arbitrary absolutely summable sequence
which may be of infinite-duration sequence. We assume that
the ROC of X(z) includes the unit circle.
The DFS sequence is periodic with period N. When compute
the IDFS of X~(k), the x~(n) is also periodic with period N.

+
=
+
=

=
= =
= =
m
km
N
m
km j
e z
W m x e m x
k z X k X
N
k
N
j
) ( ) (
, 2 , 1 , 0 , | ) ( ) (
~
2
2

L
DFS & z-
transform
the IDFS of X~(k), the x~(n) is also periodic with period N.
Thus, there must be relationship between arbitrary x(n) and
the periodic x~(n).

+
=
+
=

=
= =
= =
m
km
N
m
km j
e z
W m x e m x
k z X k X
N
k
N
j
) ( ) (
, 2 , 1 , 0 , | ) ( ) (
~
2
2

L
DFS & z-
transform
Sampling and Construction in Z-domain
= = m m



+
=
+
=
+
=
+
=
+
=
+
=

+
=

= =
= =
)
`

= =
r m r
m r m
N
k
m n k
N
N
k
kn
N
m
km
N
N
k
kn
N
rN n x rN m n m x
rN m n m x W
N
m x
W W m x
N
W k X
N
n x
) ( ) ( ) (
) ( ) (
1
) (
) (
1
) (
~ 1
) (
~
1
0
) (
1
0
1
0

IDFS
Sampling
property
Interpretation
When we sample X(z) on the unit circle, we obtain a periodic
sequence in the time domain.
This sequence is a linear combination of the original x(n)
and its infinite replicas, each shifted by multiples of N or N.
If x(n)=0 for n<0 and n>=N, then there will be no overlap or
aliasing in the time domain. aliasing in the time domain.
Thus, x(n) can be recovered from x~(n) by


= =
=
else
N n
n x n R n x n x
N n for n x n x
N
0
1 0 1
) (
~
) ( ) (
~
) (
1 0 ) (
~
) (
THEOREM 1: Frequency Sampling: If x(n) is time-limited
(finite duration) to [0,N-1], then N samples of X(z) on the unit
circle determine X(z) for all z.
R
N
(n) is called a rectangular
window of length N.
Review Time Sampling ?
When we sample
This sequence is a linear combination of the original
If , then there will be no overlap or aliasing in the
domain. domain.
Thus, can be recovered from by
THEOREM: Time Sampling: If
Reconstruction Formula
Let x(n) be time-limited to [0,N-1]. Then from Theorem 1 we
should be able to recover the X(z) using its samples X~(k):

= = =
1 1 1 1
) (
~ 1
) (
~
) ( ) (
N
n
N
kn
N
n
N
n
z W k X z n x z n x z X
{ } [ ] ) ( ) (
~
)] ( ) (
~
[ )] ( [ ) ( n R k X IDFS n R n x n x z X
N N
= = =
samples of X(z)
Thus
( )

=

=

)
`

=
)
`

=
)
`

=
)
`

= = =
1
0
1
1
0
1
0
1
1
0
1
0
0 0 0 0
1
1
) (
~ 1
) (
~ 1
) (
~ 1
) (
~ 1
) (
~
) ( ) (
N
k
k
N
N kN
N
N
k
N
n
n
k
N
N
k
N
n
n kn
N
n
n
k
kn
N
n
n
n
n
z W
z W
k X
N
z W k X
N
z W k X
N
z W k X
N
z n x z n x z X
since (W
N
-kN
=1)

=
1
0
1
1
) (
~
1
) (
N
k
k
N
N
z W
k X
N
z
z X
The DTFT Interpolation Formula
( )


=

=
1
0
/ 2
1
0
/ 2
1
1
) (
~
1
) (
~
1
) (
N
k
jw N k j
jwN
N
k
jw N k j
jwN
jw
e e N
e
k X
e e
k X
N
e
e X

( )
( )
sin
wN
By evaluating the reconstruction formula on the unit circle
z=e
jw
, we have:
( )
( )
( )
2
1
2
2
sin
sin
) (

=
N
jw
w
wN
e
N
w
An interpolation polynomial
( )

=
=
1
0
2
) (
~
) (
N
k
N
k
jw
w k X e X

This is the DTFT interpolation
formula to reconstruct X(e
jw
) from
its samples X~(k)
Since , we have that X(e
j2pik/N
)=X~(k), which means
that the interpolation is exact at the sampled points.
1 ) 0 ( =
DTFT vs. Time Domain Interpolation
( )

=
=
1
0
2
) (
~
) (
N
k
N
k
jw
w k X e X

+
=
=
n
s s a
nT t F n x t x )] ( [ sinc ) ( ) (
Recall the time domain interpolation formula for analog signal

=0 k
N
The DTFT formula looks similarly but there are differences:
Time-domain formula reconstructs any arbitrary nonperiodic
analog signals while the DTFT formula leads to a periodic
waveform
The DTFT formula use interpolating function instead
of sinc function. is known as digital sinc function
) (
) (
The Discrete Fourier Transform
The discrete Fourier series provided us a mechanism for
numerically computing the discrete-time Fourier transform.
It also alert a potential problem of aliasing in time domain.
Mathematics dictates that the sampling of the discrete-time
Fourier transform results in a periodic sequences x~(n).
But most of the signals in practice are not periodic. They But most of the signals in practice are not periodic. They
are likely to be of finite duration.
Theoretically, we can take care of this problem by defining
a periodic signal whose primary shape is that of the finite
duration signal, then using the DFS on this periodic signal.
Practically, we define a new transform called the Discrete
Fourier Transform, which is the primary period of the DFS.
This DFT is the ultimate numerically computable Fourier
transform for arbitrary finite duration sequences.
The Discrete Fourier Transform
First we define a finite-duration sequence x(n) that has N
samples over 0<=n<=N as an N-point sequence
N
r
n x N n x n x rN n x n x )) (( ) mod ( ) (
~
) ( ) (
~
+
=
= = =

The modulo-N is valid only if the length of x(n) is N or less. The modulo-N is valid only if the length of x(n) is N or less.
The compact relationships between x(n) and x~(n) are
) ( ) ( ) (
~
) (
) ( )) (( ) (
~
operation Window n R n x n x
extension Periodic n x n x
N
N
=
=
The function rem(n,N) can be used to implement our
modulo-N operation.
The Discrete Fourier Transform
The function rem(n,N) can be used to implement our
modulo-N operation.
function m = mod(n,N)
% Computes m = (n mod N) index
% ----------------------------
% m = mod(n,N)
m = rem(n,N);
m = m+N;
m = rem(m,N);
The Discrete Fourier Transform
N equispaced samples of the DTFT X(e
jw
) of the N-point
sequence x(n) can uniquely reconstruct X(e
jw
). The
Discrete Fourier Transform of an N-point sequence is given
0
) ( ) (
~
1 0 ) (
~
)] ( [ ) (

=
= =
else
k R k X N k k X
n x DFT k X
N
1 0 , ) ( ) (
0
1
0
=

=
N k W n x k X
else
N
n
nk
N
Note that the DFT X(k) is also an N-point sequence, that is,
it is not defined outside of 0<=n<=N-1. DFT X(k) is the
primary interval of X~(k).
1 0 , ) (
1
) ( ) (
~
)] ( [ ) (
1
0
= = =

N n W k X
N
n R n x k X IDFT n x
N
k
kn
N N
Matlab Implementation
X W
N
x
x W X
N
N
*
1
=
=
[ ]
(
(
(
(

= =

2
) 1 ( ) 1 (
) 1 ( 1
1
1
1 1 1
1 , 0
N
N
N
N
N
N N
kn
N N
W W
W W
N n k W W
L
M O M M
L
L
E
x
a
m
p
l
e

5
.
6
Comments
Zero-padding is an operation in which more zeros are
appended to the original sequence. The resulting longer
DFT provides closely spaced samples of the discrete-
times Fourier transform of the original sequence.
The zero-padding gives us a high-density spectrum and
provides a better displayed version for plotting. But it
does not give us a high-resolution spectrum because no
new information is added to the signal; only additional
zeros are added in the data.
To get high-resolution spectrum, one has to obtain more
data from the experiment or observations.
Properties of the DFT
1. Linearity: DFT[ax1(n)+bx2(n)]=aDFT[x1(n)]+bDFT[x2(n)]
N3=max(N1,N2): N3-point DFT
2. Circular folding:

= 0 ) 0 ( k x


=
= =


=
=
1 1 ) (
0 ) 0 (
)) (( ] )) (( [
1 1 ) (
0 ) 0 (
)) ((
N k k N X
k X
k X n x DFT
N k k N x
k x
n x
N N
N
Matlab: x=x(mod(-n,N)+1)
3. Conjugation:
N
k X n x DFT )) (( )] ( [
* *
=
4. Symmetry properties for real sequences:
Let x(n) be a real-valued N-point sequence
Properties of the DFT
Let x(n) be a real-valued N-point sequence
N
k X k X )) (( ) (
*
=
N
N
N
N
k X k X
k X k X
sequence odd circular k N X k X
sequence even circular k X k X
)) (( ) (
| )) (( | | ) ( |
: ] )) (( Im[ )] ( Im[
: ] )) (( Re[ )] ( Re[
=
=
=
=
Comments:
Circular symmetry
Periodic conjugate symmetry
About 50% savings in computation as well as in storage.
X(0) is a real number: the DC frequency X(0) is a real number: the DC frequency
X(N/2)(N is even) is also real-valued: Nyquist component
Circular-even and circular-odd components:
] )) (( ) ( [
2
1
) (
] )) (( ) ( [
2
1
) (
N oc
N ec
n x n x n x
n x n x n x
=
+ =
The real-valued signals
] )) (( Im[ )] ( Im[ )] ( [
] )) (( Re[ )] ( Re[ )] ( [
N oc
N ec
k X k X n x DFT
k X k X n x DFT
= =
= =
Function, p143
5. Circular shift of a sequence
) ( )] ( )) (( [ k X W n R m n x DFT
km
N N N
=
6. Circular shift in the frequency domain
Properties of the DFT
6. Circular shift in the frequency domain
) ( )) (( )] ( [ k R l k X n x W DFT
N N
n l
N
=

7. Circular convolution**
1 0 , )) (( ) ( ) ( ) (
1
0
2 1 2 1
=

=
N n m n x m x n x n x
N
m
N
) ( ) ( )] ( ) ( [
2 1 2 1
k X k X n x n x DFT =
8. Multiplication:
) ( ) (
1
)] ( ) ( [
2 1 2 1
k X k X
N
n x n x DFT =
9. Parsevals relation:
Properties of the DFT


=

=
= =
1
0
2
1
0
2
| ) ( |
1
| ) ( |
N
k
N
n
x
k X
N
n x E
Energy spectrum
Power spectrum
2
2
) (
| ) ( |
N
k X
N
k X
Linear convolution using the DFT
In general, the circular convolution is an aliased version of
the linear convolution.
If we make both x1(n) and x2(n) N=N1+N2-1 point
sequences by padding an appropriate number of zeros, then sequences by padding an appropriate number of zeros, then
the circular convolution is identical to the linear convolution.
) ( ) ( ) ( ) ( ) (
) ( ) ( ) (
) ( )) (( ) ( ) ( ) ( ) (
3
1
0
2 1
1
0
2 1
1
0
2 1 2 1 4
1
n R rN n x n R rN k n x k x
n R rN k n x k x
n R k n x k x n x n x n x
N
r
N
r
N
m
N
N
m r
N
N
m
N
(

=
(

=
(

=
(

= =

+
=
+
=

=
+
=

=
Error Analysis
When N=max(N1,N2) is chosen for circular convolution,
then the first (M-1) samples are in error, where
M=min(N1,N2).
) ( ) ( ) ( ) (
3 3 3 4

(

= =

+
=
n x n R rN n x x x n e
N
r
1 0 ) (
) ( )] ( ) ( [ ) (
) , max( ) ( ) (
3
3 3
2 1
0
3
+ =
+ + =

=
(

=
N n N n x
n R N n x N n x n e
N N N n R rN n x
N
N
r
r
X3(n) is also causal n=0,1,(N1+N2-1)-N
Block Convolution
Segment the infinite-length input sequence into smaller sections
(or blocks), process each section using the DFT, and finally
assemble the output sequence from the outputs of each section.
This procedure is called a block convolution operation.
Let us assume that the sequence x(n) is sectioned into N-point
sequence and that the impulse response of the filter is an M-point sequence and that the impulse response of the filter is an M-point
sequence, where M<N.
We partition x(n) into sections, each overlapping with the
previous one by exactly (M-1) samples, save at last (N-M+1)
output samples, and finally concatenate these outputs into
sequence.
To correct for the first (M-1) samples in the first output block, we
set the first (M-1) samples in the first input blocks to zero.
Matlab Implementation
Function [y]=ovrlpsav(x,h,N)
Lenx = length(x); M=length(h); M1=M-1; L=N-M1;
H = [h zeros(1,N-M)];
X = [zeros(1,M1), x, zeros(1,N-1); X = [zeros(1,M1), x, zeros(1,N-1);
K = floor((Lenx+M1-1)/L);
For k=0:K, xk = x(k*L+1:k*L+N);
Y(k+1,: ) = circonvt(xk,h,N); end
Y=Y(:,M:N);
Y=(Y(:));
The Fast Fourier Transform
Although the DFT is computable transform, the
straightforward implementation is very inefficient,
especially when the sequence length N is large.
In 1965, Cooley and Tukey showed the a procedure to
substantially reduce the amount of computations involved
in the DFT.
This led to the explosion of applications of the DFT.
All these efficient algorithms are collectively known as
fast Fourier transform (FFT) algorithms.
Using the Matrix-vector multiplication to implement DFT:
X=W
N
x (W
N
: N*N, x: 1*N, X: 1*N)
takes NN multiplications and (N-1)N additions of
complex number.
Number of complex mult. C =O(N
2
)
The Fast Fourier Transform
Number of complex mult. C
N
=O(N
2
)
A complex multiplication requires 4 real multiplications
and 2 real additions.
Goal of an Efficient computation
The total number of computations should be linear rather
than quadratic with respect to N.
Most of the computations can be eliminated using the
symmetry and periodicity properties
n N k N n k kn
= =
+ + ) ( ) (
C
N
=Nlog
2
N
If N=2^10, C
N
=will reduce to 1/100 times.
kn
N
N kn
N
n N k
N
N n k
N
kn
N
W W
W W W
=
= =
+
+ +
2 /
) ( ) (
Decimation-in-time: DIT-FFT, decimation-in-frequency: DIF-FFT
4-point DFTFFT example

= = =
3
0
4 / 2
4 4
; 3 0 , ) ( ) (
n
j nk
j e W k W n x k X

j W W W
j W W W W
= = =
= = = =
3
4
6
4
2
4
9
4
1
4
4
4
0
4
; 1
; 1 Efficient
Approach
X=Wx
X(0) = x(0)+x(2) + x(1)+x(3) = g1 + g2
X(1) = x(0)-x(2) j(x(1)-x(3)) = h1 - jh2
X(2) = x(0)+x(2) - x(1)+x(3) = g1 - g2
X(3) = x(0)-x(2) + j(x(1)-x(3)) = h1 + jh2
It requires only 2 complex multiplications.
Signal flowgraph
A 4-point DFTFFT example
W
x x
W
W
h h
g g
j
W
jh h
g g
X X
X X
2
2 1
2 1
2
2 1
2 1
*
) 1 ( ) 0 (
* * .
1 1
* * .
1
1 1
*
) 3 ( ) 2 (
) 1 ( ) 0 (
( (
=
(

=
(

=
(

needed ation multiplic no W A or A W so


W W
W W
W where
W
x x
x x
W
j
2 2
1 * 1
2
0 * 1
2
1 * 0
2
0 * 0
2
2
2 2
* *
1 1
1 1
*
) 3 ( ) 2 (
) 1 ( ) 0 (
* * .
1
1 1
(

=
(
(

=
(

=
Divide-and-combine approach
To reduce the DFT computations quadratic dependence
on N, one must choose a composite number N=LM since
L
2
+M
2
<<N
2
for large N.
Now divide the sequence into M smaller sequences of
length L, take M smaller L-point DFTs, and combine
these into a large DFT using L smaller M-point DFTs.
This is the essence of the divide-and-combine approach.
1 0 , 1 0 ,
1 0 , 1 0 ,
+ =
+ =
M q L p Lq p k
M m L l m Ml n
M
m
Lmq
N
L
l
Mlp
N
mp
N
M
m
L
l
Lq p m Ml
N
W W m l x W
W m l x q p X
1
0
1
0
1
0
1
0
) )( (
) , (
) , ( ) , (

=
+ +

)
`

=
=
Divide-and-combine approach
4 4 4 4 4 3 4 4 4 4 4 2 1
4 4 3 4 4 2 1
DFT po M
M
m
mq
M
DFT po L
L
l
lp
L
mp
N
m l
W W m l x W
int
1
0
int
1
0
0 0
) , (

=
= =

=
)

Three-step procedure: P155
Twiddle factor
The total number of complex multiplications for this
approach can now be given by
C
N
=ML
2
+N+LM
2
<o(N
2
)
This procedure can be further repeat if M or L are
Divide-and-combine approach
This procedure can be further repeat if M or L are
composite numbers.
When N=R
v
, then such algorithms are called radix-R FFT
algorithms.
A 8-point DFTFFT example
1. two 4-point DFT for m=1,2
(
(

(
(

=
= =

) , ( ) , (
2
1
0
3
0
4 8
W m l x W W q p X
mq
m l
pl pm
(
(
(
(

(
(
(
(
(
(

=
(
(

=






=

) 1 , 3 ( ) 0 , 3 (
) 1 , 2 ( ) 0 , 2 (
) 1 , 1 ( ) 0 , 1 (
) 1 , 0 ( ) 0 , 0 (
* ) , (
3 3
4
2 3
4
1 3
4
0 3
4
3 2
4
2 2
4
1 2
4
0 2
4
3 1
4
2 1
4
1 1
4
0 1
4
3 0
4
2 0
4
1 0
4
0 0
4
3
0
x x
x x
x x
x x
W W W W
W W W W
W W W W
W W W W
m p F
l
M
[ ] =

=
2
1
8
8
) , ( ) , (
2 . 3
8 . 2 4
) , ( ) , ( . 2
W m p F W q p
with DFTX nt poi
multns cplx of mult dot matrix a is
m p F W m p G
mq pm
pm
[ ]
(
(

(
(
(
(

=
=


=

1 1
2
0 1
2
1 0
2
0 0
2
2
0
8
*
) 1 , 3 ( ) 0 , 3 (
) 1 , 2 ( ) 0 , 2 (
) 1 , 1 ( ) 0 , 1 (
) 1 , 0 ( ) 0 , 0 (
) , ( ) , (
W W
W W
G G
G G
G G
G G
W m p F W q p
m
Number of multiplications
A 4-point DFT is divided into two 2-point DFTs, with
one intermedium matrix mult.
number of multiplications=
44cplx 2 1+ 1 4 cplx 16 6
A 8-point DFT is divided into two 4-point DFTs, with A 8-point DFT is divided into two 4-point DFTs, with
one intermedium matrix mult.
882 6 + 24 64 20
For 16-point DFT:
16162 20 + 28 256 56
In general the reduction of mult.
If N=M*L
N-pt DFT divided into
M times L-pt DFT +
Intermediate matrix transform + Intermediate matrix transform +
L times M-pt DFT
C
N
=ML
2
+ML+LM
2
=N(M+L)<N
2
Radix-2 FFT Algorithms
Let N=2
v
; then we choose M=2 and L=N/2 and divide x(n)
into two N/2-point sequence.
This procedure can be repeated again and again. At each
stage the sequences are decimated and the smaller
DFTs combined. This decimation ands after v stages
when we have N one-point sequences, which are also
one-point DFTs.
The resulting procedure is called the decimation-in-time
FFT (DIF-FFT) algorithm, for which the total number of
complex multiplications is: C
N
=Nv= N*log
2
N;
using additional symmetries: C
N
=Nv= N/2*log
2
N
Signal flowgraph in Figure 5.19
Decimation-in-frequency FFT
In an alternate approach we choose L=2, M=N/2 and
follow the steps in (5.49).
We can get the decimation-frequency FFT (DIF-FFT)
algorithm.
Its signal flowgraph is a transposed structure of the DIT-
FFT structure.
Its computational complexity is also equal to C
N
=Nv=
N/2*log
2
N
Matlab Implementation
Function: X = fft(x,N)
If length(x)<N, x is padded with zeros.
If the argument N is omitted, N=length(x)
If x is matrix, fft computes the N-point DFT of each
column of x column of x
It is written in machine languag and not use the Matlab
command. Therefore, it executes very fast.
It is written as a mixed-radix algorithm.
N=2
v
; N=prime number, it is reduced to the raw
DFT.
Fast Convolutions
Use the circular convolution to implement the linear
convolution and the FFT to implement the circular
convolution.
The resulting algorithm is called a fast convolution
algorithm.
If we choose N=2
v
and implement the radix-2 FFT, then
the algorithm is called a high-speed convolution.
If x1(n) is N1-point, x2(n) is N2-point, then
Compare the linear convolution and the high-speed
conv.
(
) 1 ( log
2 1 2
2
+
=
N N
N
High-speed Block Convolution
Overlap-and-save method
We can now replace the DFT by the radix-2 FFT
algorithm to obtain a high-speed overlap-and-save
algorithm.
Ex5.21 MATLAB verification of DFT time versus data
length N;
Ex5.22 Convolution-time comparison of using FFT
versus DFT;
Examples
Fast block-convolution using FFT;

Das könnte Ihnen auch gefallen