As the speed of DSP's and
digital hardware keeps increasing, software and digital hardware are replacing
traditional analog hardware, making today's gizmos and gadgets smarter, more
reliable, less expensive, and more power efficient than ever before. As an
embedded systems engineer, you may have found yourself doing more signal
processing than you originally bargained for! This article about complex
notation is a survival guide to some of the most important basics of signal
processing.
Begin reading nearly any
article on signal processing and you will quickly encounter complex notation.
Signals that could be easily represented as sines or cosines become Re(e×j(Δωt-Φ)) and we're often reminded that j is the square root
of -1. It gets worse Ð a simple sinusoid actually contains both positive and
negative frequencies, but frequently "only positive frequencies are used." We
also see modulated signals referred to as "complex envelopes." At
first glance this notation seems like an unnecessary complication rather than
an aid, and has caused many a good engineer to walk away from valuable signal
processing information.
Most signal processing
textbooks provide an excellent review of complex notation, but these
descriptions are sometimes more general and involved than the working engineer
wants. This article presents the basics of complex numbers as used in signal
processing, and will provide you with the tools for using them. Through the
examples used in this article you will gain a clear understanding of AC circuit
analysis using phasors, and also
get introduced to some of the key components of a QPSK receiver.
THE BASICS OF COMPLEX
NUMBERS
Figure 1 shows a complex number.
The "real" part of the number, Re(C), is represented by the horizontal
component and the "imaginary" part of the number, Im(C), is represented by the
vertical component. The complex number appears immediately useful because, like
a sine wave, it has both a magnitude and an angle. If we change the sign of the
imaginary part we obtain the complex conjugate of the number, and we designate the complex conjugate
with the overbar symbol.

Figure 1- Complex number
The complex number can be
represented various ways:
Equation
1
Equation
2

The Euler identity shown below forms the basis of complex notation.
Equation
3
Note that the rectangular
forms of equations 1 and 2 allow convenient addition and subtraction of complex
numbers. The polar form of equation 3 allows convenient multiplication and division.
If Φ is a phase angle which increases linearly with time then the complex
number in Figure
1 rotates in a counter-clockwise circle. Letting the magnitude of the
complex number be unity, equation 2 becomes
Equation
4
and it's evident that the
real part of this expression is a simple cosine wave. Furthermore, equations 1
through 4 can be easily manipulated to yield other useful forms
Equation
5
Equation
6
Equation
7
Equation
8
Several things are readily
apparent from equations 5 through 8. First they are related - equation 7 is the
result of adding equations 5 and 6, and equation 8 is the result of subtracting
equation 6 from equation 5. Equations 5 and 6 can also be viewed as two
counter-rotating vectors in which the complex parts always cancel thereby
accounting for the real result. Equation 6 can be viewed as two
counter-rotating vectors where the real parts cancel. Equations 1 through 8 can
also be used to derive useful identities such as:
Equation
9
Equation
10
But the most significant
observation is that if we wish to take advantage of complex exponentials, we
must either use the abstraction of complex numbers (equations 5 and 6) or the abstraction of negative frequencies (equations 7
and 8).
LINEAR FILTERING AND
PHASORS
The problem of determining
the steady state response of a linear network to a sinusoidal input is an
excellent application of complex notation. However, working the problem once
will show that steady-state analysis can be done virtually by inspection using
the phasor technique. This section
will reinforce what we've covered so far by showing why the phasor technique
works.
Digital and analog filters
can be described by complex frequency domain transfer functions. For example
the lowpass RC filter shown in Figure 2 has the transfer function:
Equation
11
This transfer function can be
evaluated at different frequencies. At DC (w=0) the result is 1
+ j0. At w=1/RC the result is 0.707 - j0.707, at w=´ the result is 0.

Figure 2 - RC filter
A property of this filter is
that its transfer function has conjugate odd symmetry. This means that
Equations 7 and 8 show that the sinusoidal excitation
also has odd symmetry.
We will use the superposition
property of linear networks to determine the output of the filter. Stated
mathematically:
Equation
12
In other words, the output
due to the sum of two input signals is equal to the sum of the outputs due to
the individual inputs. A quick glance at equations 5 through 8 suggests that
this property should come in handy.
The input to the network is
the cosine from equation 7. Using superposition, the output signal is simply
the sum of the outputs due to the two components in equation 7.
Equation
13
Applying the identity in
equation 10 yields:
Equation
14
Then apply the identity from equation
9:
Equation
15
Equation
16
Equation
17
Equation
18
Because of the conjugate
symmetry of both the input signal and the transfer function, the operations in
equations 13 through 18 are identical for any network. As a result, to find the
response of a network due to a sine wave, you simply need to know the magnitude
and phase response of the network at the desired frequency. In circuit analysis
complex numbers are represented using shorthand called phasor notation as shown below.
Equation
19
Setting the angular frequency
to 1/RC, the steady state problem above is solved quickly using phasors as
follows:
Equation
20
Equation
21
NARROWBAND SIGNALS AND
COMPLEX NOTATION
In signal processing we
frequently work with narrowband
signals as shown in Figure
3. A narrowband signal has its energy concentrated around a frequency
usually near the center of the signal's bandwidth called the carrier. Channelized signals can usually be treated as
narrowband signals. Complex notation allows us to focus only on the bandwidth
containing the signal rather than the bandwidth containing both the signal and
the carrier. It also suggests hardware and software structures that aid processing
of lowpass signals.

Figure 3 - Narrowband signal
To illustrate, consider the
signal processing used for QPSK data
transmission shown in Figure
4.

Figure
4 - QPSK transmission system (click to zoom).
QPSK, or Quadrature
Phase Shift Keying
is a data transmission technique where groups of two bits of data are encoded into
one of four phase shifts of a sinusoidal carrier. The phase shift is held for
the symbol time,
and then it is updated based on the next pair of bits in the input bit stream.
Since the symbol rate is usually much lower than the carrier frequency, the
result is a narrowband signal.
It is
natural to use complex notation to represent the two bits comprising each
symbol. The index k is used to indicate that the signal represents a pair of
bits in a serial bit stream. Signals sik and sqk are the
kth in phase and quadrature signal components that take values of ±1, and sk denotes the
complex signal sik + j sqk. The complex baseband signal could
also be represented as ej×fk where fk is 45, 135, 225, or
315 degrees. Mapping these signals on the complex plane results in the constellation shown in Figure 5.

Figure 5 - QPSK constellation
The two multipliers at the
left of Figure
4 up-convert the complex
baseband signal to the carrier frequency. This is shown graphically in Figure 6
where multiplication by ej×w×t shifts the complex baseband spectrum to the right, and
taking the real part adds the negative frequency component.

Figure 6 - Up-converter operations
Equations 22 to 25 describe
the operation of the up-converter. The output is the real modulated signal m(t).
Equation
22
Equation
23
Eq.
24
Equation
25
At the receiver the signal
encounters a bandpass filter used for rejecting out-of-band signals. The
bandpass filter response is not symmetric about the carrier frequency and it
distorts the signal slightly.
The two multipliers and
lowpass filters after the bandpass filter are used to down convert the signal to its lowpass representation. We'll elaborate
on the down converter since it is a commonly encountered signal processing
operation. One way to explain the operation of the down converter is to begin
with the signal as described by equation 25, multiply the sines and cosines and
note that the lowpass filter removes the double frequency terms resulting from
the multiplications. But instead of using sines and cosines, we'll use our
newfound skills with complex notation.
For the top arm we have:
Equation
26
The identities in equations 9
and 10 and the Euler identities allow us to write this as:
Equation
28
Equation
29
Where:

Equation
30
The lowpass filter removes
the double frequency term on the right. Multiplying by 2 yields the final
result:
Equation
31
Similarly the result for the
bottom arm is:
Equation
32
The I and Q branches at the
output of the down-converter are lowpass signals and can be sampled at a much
lower rate than the modulated signal, which reduces both power consumption and
hardware cost. Figure 4 shows the I and Q branches combined into a single heavy
line indicating that the signal is complex. A clear advantage of complex
notation is that the frequency and phase differences between the transmit and
receive oscillators are maintained by equations 31 and 32.
The next step for the QPSK
receiver to recover the transmitted data bits si and sq is
to correct for the frequency offset (Δω) and
phase offset (Δf) between transmitter and receiver. The process of removing these
offsets is called carrier recovery,
and the receiver has the means to detect them and internally generate the
signal e×j(Δωt-Φ) The process of applying the correction is often
referred to as de-rotation because
the frequency offset causes the baseband phasor to rotate at the difference
frequency. However this is simply complex multiplication as shown by equation 33
and implemented in Figure
7. Though the structure appears formidable, it can be done in just a few
lines of DSP code.
Equation
33

Figure 7 - Complex multiplier
The final step f