
98
Fundamentals of the PM DFT Algorithms
SFG for the vector length of two. It consists of unfilled circles indicating
nodes,
and arrows indicating the signal flow path. Each node, except at the
beginning, represents an add-subtract operation. The nodes at the begin-
ning of a SFG just receive the input vector values. In Figs. 5.1(a) and (b),
the input vectors are placed close to the input nodes. The arrows terminat-
ing at an upper node originate from the nodes whose first element of their
vectors contributes to form the elements of the vector at the upper node
by add-subtract operation. The lower node receives the second elements
of its source vectors and the elements of the vector at a lower node are
also formed by add-subtract operation. At both type of nodes, the result
of the add operation forms the first element and the result of the subtract
operation forms the second element of the vector. Each data value along
an arrow is multiplied by a twiddle factor, W^, where N is the data length.
The exponent of the twiddle factor, s, is indicated close to the arrowhead.
No value or a zero near an arrowhead indicates that the value of the twiddle
factor is unity. Operations other than add-subtract and multiplication, and
any other objects will be indicated by special symbols.
The output vectors and the equations relating them to the input vectors
are shown at the output nodes in Fig. 5.1(a). Figure 5.1(b) shows the
operation of Eq. (5.1) for a specific example. Before we proceed to generalize
the DFT definition for any vector length, we try to answer the question
why do we usually use complex signals in DFT algorithms although we are
almost always interested in real signals.
Why do we use a complex signal
A complex signal is an ordered pair of real signals. For most part, we
are interested in processing real signals. But there is nothing wrong in
processing two real signals at a time if that procedure is advantageous. The
DFT of two real signals is combined in the DFT of a complex signal. The
individual DFTs can be split. If a signal is complex, its DFT is complex
whereas if it is real, its DFT is mostly complex. By keeping the input
and output values of the same (complex) type, we get algorithms that are
very regular and simpler. So much is the difference in the regularity and
simplicity, that although it may look odd, it is assumed that, in designing
DFT algorithms, the signal is complex as though the complex signal is
naturally occurring, but not the real signal. We can compute the DFT
with both the input and output quantities real. However, the algorithm