Before detailing this procedure, let's clarify why so many new
issues arose in trying to develop a frequency-domain
implementation of linear filtering. The frequency-domain relationship between a filter's input and output is
always true:
Yⅇⅈ2πf=Hⅇⅈ2πfXⅇⅈ2πf
Y
2
f
H
2
f
X
2
f
. This Fourier transforms in this result are discrete-time Fourier
transforms; for example,
Xⅇⅈ2πf=∑nxnⅇ-ⅈ2πfn
X
2
f
n
n
x
n
2
f
n
. Unfortunately, using this relationship to perform filtering
is restricted to the situation when we have analytic formulas
for the frequency response and the input signal. The reason why
we had to "invent" the discrete Fourier transform (DFT) has the
same origin: The spectrum resulting from the discrete-time
Fourier transform depends on the continuous
frequency variable ff. That's fine
for analytic calculation, but computationally we would have to
make an uncountably infinite number of computations.
Did you know that two kinds of infinities can be meaningfully
defined? A countably infinite quantity means that
it can be associated with a limiting process associated with
integers. An uncountably infinite quantity cannot
be so associated. The number of rational numbers is countably
infinite (the numerator and denominator correspond to locating
the rational by row and column; the total number so-located can
be counted, voila!); the number of irrational numbers is
uncountably infinite. Guess which is "bigger?"
The DFT computes the Fourier transform at a finite set of
frequencies — samples the true spectrum — which can
lead to aliasing in the time-domain unless we sample
sufficiently fast. The sampling interval here is
1K
1
K
for a length-
KK DFT: faster
sampling to avoid aliasing thus requires a longer transform
calculation. Since the longest signal among the input,
unit-sample response and output is the output, it is that
signal's duration that determines the transform length. We
simply extend the other two signals with zeros (zero-pad) to
compute their DFTs.