1 Discrete-Time Fourier Transform (DTFT) : Indian Institute of Technology Bombay
1 Discrete-Time Fourier Transform (DTFT) : Indian Institute of Technology Bombay
2. Given the samples x[n], n ∈ Z , first reconstruct the signal x(t), and then do
analog processing to generate y(t).
An important question is whether both the approaches give the same y(t) from a given set
of samples. If the answer is affirmative, the first method will be a clear winner in terms
of feasibility and convenience, since we have the freedom of using devices like computer,
Digital Signal Processors (DSPs). The primary data processing application we have in mind
is filtering, which is nothing but frequency shaping of the input signals. Linear filtering
involves convolution by the impulse response of the filter. Equivalently we have to multiply
the responses in the frequency domain. What is the frequency domain representation of a
sampled signal.
x[n] = x(nT )
where x[n], n ∈ Z are the samples and x(t) the corresponding parent waveform, which has
a continuous-valued index. Suppose we know a signal x(t) whose samples are the given
points x[n], n ∈ Z. There is an intimate relationship between the Fourier Transform X(f )
of x(t) and the frequency contents of x[n]. In fact our generalized Fourier Transform allows
us to view both the continuous and discrete signal as part of the same tapestry. Here is
how it is done, illustrated by an example.
Consider the following signal which is a segment from the output of a microphone.
s(t)
Many a times we cannot afford the luxury of waiting till the end of the signal and
then computing the FT. So we wait for a reasonable delay, crop the signal (multiply by
a window) and take its Fourier Transform. The dashed lines shows the points where the
signal is windowed (segmented). Consider the first segment, call it x(t).
s(t)rectτ (t)
The FT X(f ) of x(t) is not bounded in time (why?). Assume that X(f ) is given by
the following figure (This is not an exact computation, only a visual aid for pedagogical
purposes). One more comment is in order here. In most plots of the FT, we will simply
show the magnitude alone. The reader is expected to imagine some phase component
exp(jφ(f )), where φ(f ) is an odd function if the signal x(t) is real, i.e. φ(f ) = −φ(−f ).
We will deal with the phase component in a more precise manner later, when we design
practical filters.
X(f )
f
−3 −2 −1 1 2 3
It is very difficult to keep track of all the frequencies in [0, ∞]. A practical approach is to
limit the components to the significant values. For example, we consider the values outside
[−fm , fm ] to be insignificant for all computational purposes. This is not only reasonable,
but also of great help in analytical considerations.
x(t) X(f )
FT
Ð⇀
↽Ð
t f
Once the frequency components are limited, we know that the signal can be loss-less-
ly stored by 2fm samples per second, where fm is the highest frequency content present.
This is illustrated in the following figure, where sampling and the corresponding Fourier
Transform are shown 1 , where T = 2f1m .
xs (nT )
X̃(f )
We have already introduced the notation that x(nT ) = x[n]. Using this
X̃(f ) = ∑ x[n] exp(−j2πf nT ) (3)
n
1
In the figures, we will use the symbol to denote that there is a repetition of the pattern in the
direction of the symbol, see for example Figure 1.
Notice that the RHS of (3) is 2fm -periodic in f . This also tells that the samples of x(t)
are taken at integer multiples of T = 2f1m . However, once the samples are taken, they are
dead values, in the sense that they can be written on a piece of paper, or stored in memory
arrays in diverse fashion. It thus makes sense to define a Fourier transform for our samples
which is somewhat independent of the sampling interval, but only depends on the sequence
of sample-values. This can be achieved by a suitable scaling. In particular,
f
X̂(f ) ∶= X̃( ) = ∑ x[n] exp(−j2πf n). (4)
T n
Note that X̂(f ) has unit period, we call this the DTFT of x[n]. From our generalized
Fourier Theory, the inverse of DTFT should correspond to the input samples, which are
spaced at unit intervals. However, we have learned that for a periodic waveform, the
generalized Fourier representation is obtained by computing the Fourier Series coefficients.
Thus,
1
2
x[n] = ∫ X̃(f )e+j2πf n df. (5)
− 12
Notice the slight difference from the original FS formula. Here we use e+j2πf t , to be con-
sistent with the formula for DTFT in (4).
For illustration, we will consider a x(t) waveform with Fourier Transform X(f ) as depicted
below.
X(f )
FT
x(t) Ð⇀
↽Ð f
− β2 + β2
We will repeatedly use the above pictorial representation. We should keep couple of things
in mind while using these pictures. First, the inverse Fourier transform (IFT) of such
an X(f ) may correspond to a non-causal signal. Thus our descriptions are not for the
absolute time, and we do not really worry about causality. Secondly, we do not emphasize
the phase information in these pictures. This is partly due to the fact that we expect the
phase response to be linear in the frequencies of interest, this will be covered later.
H(f )
FT
h(t) Ð⇀
↽Ð
− β2 0 + β2
Y (f ) = X(f )H(f ).
Exercise 1. Argue that y(t) may correspond to a complex waveform even when the input
is real.
Take h(t) to be a time continuous impulse response function. This will imply that the
system possibly superposes a continuum of delayed replicas of the transmitted signal, also
known as echoes (try visualizing this). It turns out that a much more simpler visualization
is possible. Notice that
where h̃(t) is the IFT of Hc (f ). Let us now choose a Hc (f ) which satisfies (8), but has a
convenient inverse. In particular, we will periodically repeat H(f ) over the entire frequency
axis, i.e.
Hc (f ) = ∑ H(f − kβ).
k∈Z
H̃(f )
− β2 0 + β2
The periodic nature of H̃(f ) implies that h̃(t) is of discrete in nature. Furthermore, since
H̃(f ) is the periodic repetition of H(f ) in frequency, the time domain response h̃(t) is
nothing but a time-sampled version of h(t). In other words,
1 k k
h̃(t) = ∑ hB ( )δ(t − ). (9)
k β β β
The scaling β1 is due to the fact that a periodic impulse train in time will have a Fourier
Transform of a scaled impulse train, with their periods in inverse relationship. Equation
(9) assures that the effective channel can be visualized as a tapped delay line between the
input and the output of the system. We will also call the value of the taps as the system
impulse response and denote them by hk , k ∈ Z, clearly hk = β1 h( βk ). With this,
k
y(t) = ∑ hk x(t − ). (10)
k∈Z β
While this model is remarkably simple, we did not loose any generality in obtaining
this. This simplicity should be compared with the physical reality where a continuum of
delayed inputs are are superposed in an actual LTI system.
Exercise 2. What is the Nyquist sampling rate to preserve all the information of y(t) in
(10)?
m m k
yB ( ) = ∑ hk xB ( − ).
β k β β
ym = ∑ hk xm−k ,
k
X̂(f )
− 21 + 12 f
Multiplying X̂(f ) by an impulse train is shown in the figure above. The resulting samples
in the frequency domain are shown below.
X̂( Nk )
0
Since there are N samples in the interval [− 12 , 12 ], the spacing of the impulses in frequency
is taken to be N1 . This corresponds to convolution with a time domain impulse train, where
the impulses are apart by a distance of N . See the figure below for the time domain signal.
Notice that our original x[n] is present in each period.
The sampled version of the DTFT is known as Discrete Fourier Transform or DFT.
Here the frequency is discrete or sampled as opposed to the DTFT, which is discrete in
time and continuous in frequency. The power of DFT lies in the availability of an effective
way of computing it, known as the Fast Fourier Transform (FFT). FFT is an algorithm (or
a collection of algorithms) which evaluates the DFT in a quick manner.
X̄ = Ax̄, (13)
where x̄ is column vector containing the signal samples and the the element at (m, n) of
the matrix A is
π
Am,n = exp(−j2 mn) , 0 ≤ m, n, ≤ N − 1. (14)
N
Exercise 3. Show that the above matrix representation is equivalent to the expression (12).
Since A† A = N IN , where IN is the N × N identity matrix, we can easily invert (13). All
we have to do is to multiply the expression by N1 A† . Thus,
1 † 1
A X̄ = A† Ax = x. (15)
N N
This is known as the Inverse Discrete Fourier Transform or the IDFT. Expanding the
matrix elements,
1 π
x[n] = ∑ X[k] exp(+j2 nk). (16)
N k N
Note the striking similarity between the forward the inverse DFTs. Their difference is
mostly in our perception of time and frequency, in fact we can interchange the concepts and
operations in these two domains. Essentially, the sampled waveforms and their respective
DFT representations are as such devoid of any bindings to measurable quantities like time
and frequency. They are merely numbers (in C), to be stored and played at our convenience,
but to be handled with due respect. Let us collect the definitions of DFT and IDFT here
for future use,
N −1
π
X[k] = ∑ x[n] exp(−j2 kn) , 0 ≤ k ≤ N − 1 (17)
n=0 N
N −1
1 π
x[n] = ∑ X[k] exp(+j2 nk) , 0 ≤ n ≤ N − 1. (18)
N k=0 N
a a+b
1 1 a
[ ][ ] ⇔
1 −1 b
b a−b
−1
butterfly structure, each incoming node simply adds all the values coming in. The label on
3
O(N ) as in Knuth’s notation.
the branch represents the multiplicative factor that we need to apply on the value which is
being passed through that link. If there is no label, the multiplicative factor is unity. From
(22) , apart from the multiplication by a diagonal matrix, only two operations are required,
each operation comprising of an addition and a subtraction. A schematic representation
of this will enable generalizing our 4-pt DFT to N-pt DFTs, where N is a power of 2. To
this end, notice that the essential building block is the butterfly shown in Figure 3. The
butterfly needs to be applied to both (x0 , x2 ) and (x1 , x3 ) separately. Now we have to scale
x0 x0 + x 2
x2 x0 − x 2
−1
x1 x1 + x 3
x3 x1 − x 3
−1
the outputs of the butterfly networks as per (22) and combine them. This task can be
made simple by observing that,
X 1 1 x0 1 0 1 1 x1
[ 0] = [ ][ ] + [ ][ ][ ]
X1 1 −1 x2 0 −j 1 −1 x3
X 1 1 x0 1 0 1 1 x1
[ 2] = [ ][ ] − [ ][ ][ ] (23)
X3 1 −1 x2 0 −j 1 −1 x3
Notice that the new structure is nothing but another butterfly overlayed on top of the
original. Before the second butterfly stage, we multiply the bottom-most path by α, which
x0 X[0]
x2 X[1]
−1
x1 X[2]
−1
x3 X[3]
−1 α −1
evaluates to −j for a 4−point DFT. This is to generate the output −j(x1 − x3 ), which is
needed in (23). Notice that the multiplication by diagonal matrix in (23) is nothing but
generating x1 + x3 and −j(x1 − x3 ).
Let us now extend our FFT to compute 8−point DFT. A brute-force development is
presented, which clearly shows the underlying structure. Let us denote
2π
α = exp(−j )
8
a a
1 0 a
[ ][ ] ⇔
0 −j b
b −jb
−j
1 1 1 1 1 1 1 1
1 α1 α2 α3 α4 α5 α6 α7
1 α2 α4 α6 α0 α2 α4 α6
1 α3 α6 α1 α4 α7 α2 α5
A= 1 α4 α0 α4 α0 α4 α0 α4
1 α5 α2 α7 α4 α1 α6 α3
1 α6 α4 α2 α0 α6 α4 α2
1 α7 α6 α5 α4 α3 α2 α1
Notice that we used the modulo arithmetic rule that αN = 1. Rearranging the input
vector, Ax takes the form shown in Figure 6. The structure of the matrix product becomes
1 1 1 1 x0 1 1 1 1 x1
1 α4 α2 α6 x4 α1 α5 α3 α7 x5
+
1 α0 α4 α4 x2 α2 α2 α6 α6 x3
1 α4 α6 α2 x6 α3 α7 α1 α5 x7
Ax = 1 α0 α0 α0 α4 α4 α4 α4
1 α4 α2 α6 α5 α1 α7 α3
1 α0 α4 α4 α6 α6 α2 α2
1 α4 α6 α2 α7 α3 α5 α1
B B2 u
Ax = [ 1 ][ ], (24)
B1 −B2 v
x0 X0
x2 4−point X1
x4 Adder
DFT X2
x6 X3
x1 −1 X4
α0
x3 4−point −1 X5
α1 Adder
x5 DFT −1 X6
α2
x7 X7
α3 −1
In retrospect, we could have depicted the 8−F F T structure directly from our discussion
on 4−point FFT. However, we took the longer route so that all the aspects of generalizing
the FFT become transparent. Thus, with α = exp(−j 2π N ), a N-FFT can be pictorially
represented as a bifurcating recursion as shown in Figure 8
6 Circular Convolution
Let
DF T
x[n] ÐÐ⇀
↽ÐÐ X[k]
DF T
h[n] ÐÐ⇀
↽ÐÐ H[k].
What will be the inverse DFT of X[k]H[k]. Can we write it as a convolution between x[n]
and h[n]. The answer is close to affirmative, ‘close’ because due care is needed. In particular
X[k] is a sampled version of the DTFT X̃(f ), which implies that the discrete time signal
is periodically repeated in time. If N samples of the DTFT are taken in frequency, in the
even ⎧ ⎪ x0 X0
⎪
⎪
⎪ x2 N
indices, ⎨ 2 point
X1
⎪ Adder
x2i ⎪ ⎪
⎪
DFT
⎩ xN −2 XN
2
⎧ x1 X N +1
odd ⎪ ⎪
⎪ α0 −1 2
⎪ x3 N
indices, ⎨ 2 point α1 −1 Adder
⎪
x2i+1 ⎪⎪ DFT −1 XN −2
⎪
⎩ xN −1 XN −1
N −1
α 2 −1
time domain we will get non-overlapping periodic replicas of x[n] as the samples. By our
formal rules of Dirac manipulation, X[k]H[k] is same as H̃(f = k 2fNm )X[k], which in time
domain will imply that a periodic repetition of x[n] is convolved with h[n]. This is known
as circular convolution. Notice that the output that we obtain is periodic, and hence we
need to take only one such interval into consideration.