Beruflich Dokumente
Kultur Dokumente
=
=
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
k e n x k X
N
n
kn j
N
= =
=
1
) (
~
)] (
~
[ DFS ) (
~
Let
2
N
nk
N
j
N
W n x n x k X
e W
N
=
= =
= =
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 (
( (
=
(
=
(
=
(
=
(
(
=
(
=
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;