In the first of an on-going series of DSP design hints and tricks focused on creative techniques that professionals can use to make their digital signal processing algorithms more efficient, Richard Lyons takes on frequency translation without multiplication.
By Richard G. Lyons
Frequency translation is often called for in digital signal processing
algorithms. There are simple schemes for inducing frequency translation
by 1/2 and 1/4 of the signal sequence sample rate. Let's take a look at
these mixing schemes.
Frequency Translation by fs/2
First we'll consider a technique for frequency translating an input
sequence by fs/2 by merely multiplying a sequence by (-1)n =
1,-1,1, -1, ..., etc., where fs
is the signal sample rate in Hz. This process may seem a bit mysterious
at first, but it can be explained in a straightforward way if we review
Figure 13-1(a) below.
There we see that multiplying a time domain signal sequence by the
(-1)n mixing sequence is equivalent to multiplying the signal sequence
by a sampled cosinusoid where the mixing sequence samples are shown as
the dots in Figure 13-1(a) below.
Because the mixing sequence's cosine repeats every two sample
values, its frequency is fs/2. Figure 13 -1(b) and (c) show
the
discrete Fourier transform (DFT) magnitude and phase of a 32-sample (-1)n
sequence. As such, the right half of those figures represents the
negative frequency range.
 |
| Figure
13-1. Mixing sequence comprising (-1)n = 1,-1,1,-1, etc: (a)
time-domain sequence; (b) frequency-domain magnitudes for 32 samples;
(c) frequency-domain phase. |
Let's demonstrate this (-1)n mixing by an example.
Consider a real x(n) signal sequence having 32 samples of the sum of
three sinusoids whose [X(m)] frequency magnitude and Phi (m) phase
spectra are as shown in Figure 13-2(a)
and (b) below.
If we multiply that time signal sequence by ("1)n, the
resulting x1, - 1 (n) time sequence will have the
magnitude and phase spectra are that shown in Figure 13-2(c) and (d).
Multiplying a time signal by our (-1)n, cosine shifts half
its spectral energy up by fs/2 and half its spectral energy
down by - fs/2.
Notice in these non-circular frequency depictions that as we count
up, or down, in frequency we wrap around the end points.
Here's a terrific opportunity for the DSP novice to convolve the (-1)n
spectrum in Figure 13-1 with the X(m) spectrum to obtain the frequency
translated X1,- 1(m) signal spectrum. Please do so; that
exercise will help you comprehend the nature of discrete sequences and
their time and frequency domain relationships by way of the convolution
theorem.
 |
| Figure
13-2 A signal and its frequency translation by fs/2: (a) original
signal magnitude spectrum; (b) original phase; (c) the magnitude
spectrum of the translated signal; (d) translated phase. |
Remember now, we didn't really perform any explicit multiplications
- the whole idea here is to avoid multiplications, we merely changed
the sign of alternating x(n) samples to get x1, -1(n).
One way to look at the X1,"1(m) magnitudes in Figure
13 - 2(c) is to see that multiplication by the (-1)n mixing
sequence flips the positive frequency band of X(m) [X(0) to X(16)]
about the fs/4 Hz
point, and flips the negative frequency band of X(m) [X(17) to X(31)]
about the - fs/4
Hz
sample.
This process can be used to invert the spectra of real signals when
bandpass sampling is used. By the way, in the DSP literature be aware
that some clever authors may represent the ("1)n sequence with its
equivalent expressions of
