311
CHAPTER
18
FFT Convolution
This chapter presents two important DSP techniques, the
overlapadd method
, and
FFT
convolution
.
The overlapadd method is used to break long signals into smaller segments for
easier processing.
FFT convolution uses the overlapadd method together with the Fast Fourier
Transform, allowing signals to be convolved by multiplying their frequency spectra.
For filter
kernels longer than about 64 points, FFT convolution is faster than standard convolution, while
producing exactly the same result.
The OverlapAdd Method
There are many DSP applications where a long signal must be filtered in
segments
.
For instance, high fidelity digital
audio
requires a data rate of
about 5 Mbytes/min, while digital
video
requires about 500 Mbytes/min.
With
data rates this high, it is common for computers to have insufficient memory to
simultaneously hold the entire signal to be processed.
There are also systems
that process segmentbysegment because they operate in
real time
.
For
example, telephone signals cannot be delayed by more than a few hundred
milliseconds, limiting the amount of data that are available for processing at
any one instant.
In still other applications, the
processing
may require that the
signal be segmented.
An example is FFT convolution, the main topic of this
chapter.
The overlapadd method is based on the fundamental technique in DSP: (1)
decompose the signal into simple components, (2) process each of the
components in some useful way, and (3) recombine the processed components
into the final signal.
Figure 181 shows an example of how this is done for
the overlapadd method.
Figure (a) is the signal to be filtered, while (b) shows
the filter kernel to be used, a windowedsinc lowpass filter.
Jumping to the
bottom of the figure, (i) shows the filtered signal, a smoothed version of (a).
The key to this method is how the
lengths
of these signals are affected by the
convolution.
When an
N
sample signal is convolved with an
M
sample
This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThe Scientist and Engineer's Guide to Digital Signal Processing
312
filter kernel, the output signal is
samples long.
For instance, the input
N
%
M
&
1
signal, (a), is 300 samples (running from 0 to 299), the filter kernel, (b), is 101
samples (running from 0 to 100), and the output signal, (i), is 400 samples
(running from 0 to 399).
In other words, when an
N
sample signal is filtered, it will be
expanded
by
points
to the right
.
(This is assuming that the filter kernel runs from
M
&
1
index 0 to
M
.
If negative indexes are used in the filter kernel, the expansion
will also be to the
left
).
In (a), zeros have been added to the signal between
sample 300 and 399 to illustrate where this expansion will occur.
Don't be
confused by the small values at the ends of the output signal, (i).
This is
simply a result of the windowedsinc filter kernel having small values near its
ends.
All 400 samples in (i) are nonzero,
even though some of them are too
small to be seen in the graph.
This is the end of the preview.
Sign up
to
access the rest of the document.
 Summer '09
 Digital Signal Processing, filter kernel

Click to edit the document details