Digital Signal Processing. The Scientist and Engineers Guide. Steven W. Smith
.pdf
Chapter 7- Properties of Convolution |
137 |
light, the shift between the transmitted and received pulse is a direct measure of the distance to the object being detected. This is the problem: given a signal of some known shape, what is the best way to determine where (or if) the signal occurs in another signal. Correlation is the answer.
Correlation is a mathematical operation that is very similar to convolution. Just as with convolution, correlation uses two signals to produce a third signal. This third signal is called the cross-correlation of the two input signals. If a signal is correlated with itself, the resulting signal is instead called the autocorrelation. The convolution machine was presented in the last chapter to show how convolution is performed. Figure 7-14 is a similar
FIGURE 7-13
Key elements of a radar system. Like other echo location systems, radar transmits a short pulse of energy that is reflected by objects being examined. This makes the received waveform a shifted version of the transmitted waveform, plus random noise. Detection of a known waveform in a noisy signal is the fundamental problem in echo location. The answer to this problem is correlation.
TRANSMIT RECEIVE
|
200 |
|
|
|
|
|
|
|
|
|
amplitude |
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Transmitted |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-100 |
|
|
|
|
|
|
|
|
|
|
-10 |
0 |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
Sample number (or time)
|
0.2 |
amplitude |
0.1 |
|
|
Received |
0 |
|
-0.1
-10 |
0 |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
Sample number (or time)
138 |
The Scientist and Engineer's Guide to Digital Signal Processing |
illustration of a correlation machine. The received signal, x[n] , and the cross-correlation signal, y[n] , are fixed on the page. The waveform we are looking for, t[n] , commonly called the target signal, is contained within the correlation machine. Each sample in y[n] is calculated by moving the correlation machine left or right until it points to the sample being worked on. Next, the indicated samples from the received signal fall into the correlation machine, and are multiplied by the corresponding points in the target signal. The sum of these products then moves into the proper sample in the crosscorrelation signal.
The amplitude of each sample in the cross-correlation signal is a measure of how much the received signal resembles the target signal, at that location. This means that a peak will occur in the cross-correlation signal for every target signal that is present in the received signal. In other words, the value of the cross-correlation is maximized when the target signal is aligned with the same features in the received signal.
What if the target signal contains samples with a negative value? Nothing changes. Imagine that the correlation machine is positioned such that the target signal is perfectly aligned with the matching waveform in the received signal. As samples from the received signal fall into the correlation machine, they are multiplied by their matching samples in the target signal. Neglecting noise, a positive sample will be multiplied by itself, resulting in a positive number. Likewise, a negative sample will be multiplied by itself, also resulting in a positive number. Even if the target signal is completely negative, the peak in the cross-correlation will still be positive.
If there is noise on the received signal, there will also be noise on the crosscorrelation signal. It is an unavoidable fact that random noise looks a certain amount like any target signal you can choose. The noise on the cross-correlation signal is simply measuring this similarity. Except for this noise, the peak generated in the cross-correlation signal is symmetrical between its left and right. This is true even if the target signal isn't symmetrical. In addition, the width of the peak is twice the width of the target signal. Remember, the cross-correlation is trying to detect the target signal, not recreate it. There is no reason to expect that the peak will even look like the target signal.
Correlation is the optimal technique for detecting a known waveform in random noise. That is, the peak is higher above the noise using correlation than can be produced by any other linear system. (To be perfectly correct, it is only optimal for random white noise). Using correlation to detect a known waveform is frequently called matched filtering. More on this in Chapter 17.
The correlation machine and convolution machine are identical, except for one small difference. As discussed in the last chapter, the signal inside of the convolution machine is flipped left-for-right. This means that samples numbers: 1, 2, 3 þ run from the right to the left. In the correlation machine this flip doesn't take place, and the samples run in the normal direction.
Chapter 7- Properties of Convolution |
139 |
2
1 









































x[n]
0 |
-1
0 |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
Sample number (or time)
2 |
|
|
1 |
|
|
t[n] |
|
|
0 |
|
|
-1 |
|
|
0 |
10 |
20 |
3
2 









































y[n]
1 









































0 |
-1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
|||
|
|
|
Sample number (or time) |
|
|
|
|||||
FIGURE 7-14
The correlation machine. This is a flowchart showing how the cross-correlation of two signals is calculated. In this example, y [n] is the cross-correlation of x [n] and t [n]. The dashed box is moved left or right so that its output points at the sample being calculated in y [n]. The indicated samples from x [n] are multiplied by the corresponding samples in t [n], and the products added. The correlation machine is identical to the convolution machine (Figs. 6-8 and 6-9), except that the signal inside of the dashed box is not reversed. In this illustration, the only samples calculated in y [n] are where t [n] is fully immersed in x [n].
Since this signal reversal is the only difference between the two operations, it is possible to represent correlation using the same mathematics as convolution. This requires preflipping one of the two signals being correlated, so that the left-for-right flip inherent in convolution is canceled. For instance, when a[n]
a n d b[n] , are convolved to produce c[n] , the equation |
is written: |
a [n ]( b [n ] ' c [n ] . In comparison, the cross-correlation of a[n] |
and b[n] can |
140 The Scientist and Engineer's Guide to Digital Signal Processing
be written: a [n ]( b [& n ] ' c [n ] . That is, flipping b [n] left-for-right is accomplished by reversing the sign of the index, i.e., b [& n].
Don't let the mathematical similarity between convolution and correlation fool you; they represent very different DSP procedures. Convolution is the relationship between a system's input signal, output signal, and impulse response. Correlation is a way to detect a known waveform in a noisy background. The similar mathematics is only a convenient coincidence.
Speed
Writing a program to convolve one signal by another is a simple task, only requiring a few lines of code. Executing the program may be more painful. The problem is the large number of additions and multiplications required by the algorithm, resulting in long execution times. As shown by the programs in the last chapter, the time-consuming operation is composed of multiplying two numbers and adding the result to an accumulator. Other parts of the algorithm, such as indexing the arrays, are very quick. The multiply-accumulate is a basic building block in DSP, and we will see it repeated in several other important algorithms. In fact, the speed of DSP computers is often specified by how long it takes to preform a multiply-accumulate operation.
If a signal composed of N samples is convolved with a signal composed of M samples, N × M multiply-accumulations must be preformed. This can be seen from the programs of the last chapter. Personal computers of the mid 1990's requires about one microsecond per multiply-accumulation (100 MHz Pentium using single precision floating point, see Table 4-6). Therefore, convolving a 10,000 sample signal with a 100 sample signal requires about one second. To process a one million point signal with a 3000 point impulse response requires nearly an hour. A decade earlier (80286 at 12 MHz), this calculation would have required three days!
The problem of excessive execution time is commonly handled in one of three ways. First, simply keep the signals as short as possible and use integers instead of floating point. If you only need to run the convolution a few times, this will probably be the best trade-off between execution time and programming effort. Second, use a computer designed for DSP. DSP microprocessors are available with multiply-accumulate times of only a few tens of nanoseconds. This is the route to go if you plan to perform the convolution many times, such as in the design of commercial products.
The third solution is to use a better algorithm for implementing the convolution. Chapter 17 describes a very sophisticated algorithm called FFT convolution. FFT convolution produces exactly the same result as the convolution algorithms presented in the last chapter; however, the execution time is dramatically reduced. For signals with thousands of samples, FFT convolution can be hundreds of times faster. The disadvantage is program complexity. Even if you are familiar with the technique, expect to spend several hours getting the program to run.
CHAPTER
The Discrete Fourier Transform
8
Fourier analysis is a family of mathematical techniques, all based on decomposing signals into sinusoids. The discrete Fourier transform (DFT) is the family member used with digitized signals. This is the first of four chapters on the real DFT, a version of the discrete Fourier transform that uses real numbers to represent the input and output signals. The complex DFT, a more advanced technique that uses complex numbers, will be discussed in Chapter 31. In this chapter we look at the mathematics and algorithms of the Fourier decomposition, the heart of the DFT.
The Family of Fourier Transform
Fourier analysis is named after Jean Baptiste Joseph Fourier (1768-1830), a French mathematician and physicist. (Fourier is pronounced: for@¯e@¯a , and is always capitalized). While many contributed to the field, Fourier is honored for his mathematical discoveries and insight into the practical usefulness of the techniques. Fourier was interested in heat propagation, and presented a paper in 1807 to the Institut de France on the use of sinusoids to represent temperature distributions. The paper contained the controversial claim that any continuous periodic signal could be represented as the sum of properly chosen sinusoidal waves. Among the reviewers were two of history's most famous mathematicians, Joseph Louis Lagrange (1736-1813), and Pierre Simon de Laplace (1749-1827).
While Laplace and the other reviewers voted to publish the paper, Lagrange adamantly protested. For nearly 50 years, Lagrange had insisted that such an approach could not be used to represent signals with corners, i.e., discontinuous slopes, such as in square waves. The Institut de France bowed to the prestige of Lagrange, and rejected Fourier's work. It was only after Lagrange died that the paper was finally published, some 15 years later. Luckily, Fourier had other things to keep him busy, political activities, expeditions to Egypt with Napoleon, and trying to avoid the guillotine after the French Revolution (literally!).
141
142 |
The Scientist and Engineer's Guide to Digital Signal Processing |
Who was right? It's a split decision. Lagrange was correct in his assertion that a summation of sinusoids cannot form a signal with a corner. However, you can get very close. So close that the difference between the two has zero energy. In this sense, Fourier was right, although 18th century science knew little about the concept of energy. This phenomenon now goes by the name: Gibbs Effect, and will be discussed in Chapter 11.
Figure 8-1 illustrates how a signal can be decomposed into sine and cosine waves. Figure (a) shows an example signal, 16 points long, running from sample number 0 to 15. Figure (b) shows the Fourier decomposition of this signal, nine cosine waves and nine sine waves, each with a different frequency and amplitude. Although far from obvious, these 18 sinusoids
FIGURE 8-1a (see facing page)
Amplitude
80 |
|
|
|
|
60 |
|
|
|
|
40 |
|
|
|
|
20 |
|
|
|
|
0 |
|
|
|
|
-20 |
|
|
|
|
-40 |
|
|
|
|
0 |
4 |
8 |
12 |
16 |
Sample number
DECOMPOSE
SYNTHESIZE
add to produce the waveform in (a). It should be noted that the objection made by Lagrange only applies to continuous signals. For discrete signals, this decomposition is mathematically exact. There is no difference between the signal in (a) and the sum of the signals in (b), just as there is no difference between 7 and 3+4.
Why are sinusoids used instead of, for instance, square or triangular waves? Remember, there are an infinite number of ways that a signal can be decomposed. The goal of decomposition is to end up with something easier to deal with than the original signal. For example, impulse decomposition allows signals to be examined one point at a time, leading to the powerful technique of convolution. The component sine and cosine waves are simpler than the original signal because they have a property that the original signal does not have: sinusoidal fidelity. As discussed in Chapter 5, a sinusoidal input to a system is guaranteed to produce a sinusoidal output. Only the amplitude and phase of the signal can change; the frequency and wave shape must remain the same. Sinusoids are the only waveform that have this useful property. While square and triangular decompositions are possible, there is no general reason for them to be useful.
The general term: Fourier transform, can be broken into four categories, resulting from the four basic types of signals that can be encountered.
Chapter 8- The Discrete Fourier Transform |
143 |
Cosine Waves
8 4 




























0 



























-4 



























-8 







0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 4 




























0 



























-4 



























-8 







0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 4 



























0 


























-4 


























-8 







0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
Sine Waves
8 4 




























0 

























-4 




























-8 






0 2 4 6 8 10 12 14 16
8 4 




























0 


























-4 



























-8 







0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-4 |
|
|
|
|
|
|
|
|
-8 |
|
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
8 4 



























0 

























-4 



























-8 






0 2 4 6 8 10 12 14 16
FIGURE 8-1b
Example of Fourier decomposition. A 16 point signal (opposite page) is decomposed into 9 cosine waves and 9 sine waves. The frequency of each sinusoid is fixed; only the amplitude is changed depending on the shape of the waveform being decomposed.
144 |
The Scientist and Engineer's Guide to Digital Signal Processing |
A signal can be either continuous or discrete, and it can be either periodic or aperiodic. The combination of these two features generates the four categories, described below and illustrated in Fig. 8-2.
Aperiodic-Continuous
This includes, for example, decaying exponentials and the Gaussian curve. These signals extend to both positive and negative infinity without repeating in a periodic pattern. The Fourier Transform for this type of signal is simply called the Fourier Transform.
Periodic-Continuous
Here the examples include: sine waves, square waves, and any waveform that repeats itself in a regular pattern from negative to positive infinity. This version of the Fourier transform is called the Fourier Series.
Aperiodic-Discrete
These signals are only defined at discrete points between positive and negative infinity, and do not repeat themselves in a periodic fashion. This type of Fourier transform is called the Discrete Time Fourier Transform.
Periodic-Discrete
These are discrete signals that repeat themselves in a periodic fashion from negative to positive infinity. This class of Fourier Transform is sometimes called the Discrete Fourier Series, but is most often called the Discrete
Fourier Transform.
You might be thinking that the names given to these four types of Fourier transforms are confusing and poorly organized. You're right; the names have evolved rather haphazardly over 200 years. There is nothing you can do but memorize them and move on.
These four classes of signals all extend to positive and negative infinity. Hold on, you say! What if you only have a finite number of samples stored in your computer, say a signal formed from 1024 points. Isn't there a version of the Fourier Transform that uses finite length signals? No, there isn't. Sine and cosine waves are defined as extending from negative infinity to positive infinity. You cannot use a group of infinitely long signals to synthesize something finite in length. The way around this dilemma is to make the finite data look like an infinite length signal. This is done by imagining that the signal has an infinite number of samples on the left and right of the actual points. If all these “imagined” samples have a value of zero, the signal looks discrete and aperiodic, and the Discrete Time Fourier Transform applies. As an alternative, the imagined samples can be a duplication of the actual 1024 points. In this case, the signal looks discrete and periodic, with a period of 1024 samples. This calls for the Discrete Fourier Transform to be used.
As it turns out, an infinite number of sinusoids are required to synthesize a signal that is aperiodic. This makes it impossible to calculate the Discrete Time Fourier Transform in a computer algorithm. By elimination, the only
Chapter 8- The Discrete Fourier Transform |
145 |
|
Type of Transform |
Example Signal |
|
Fourier Transform
signals that are continious and aperiodic
Fourier Series
signals that are continious and periodic
Discrete Time Fourier Transform signals that are discrete and aperiodic
Discrete Fourier Transform signals that are discrete and periodic
FIGURE 8-2
Illustration of the four Fourier transforms. A signal may be continuous or discrete, and it may be periodic or aperiodic. Together these define four possible combinations, each having its own version of the Fourier transform. The names are not well organized; simply memorize them.
type of Fourier transform that can be used in DSP is the DFT. In other words, digital computers can only work with information that is discrete and finite in length. When you struggle with theoretical issues, grapple with homework problems, and ponder mathematical mysteries, you may find yourself using the first three members of the Fourier transform family. When you sit down to your computer, you will only use the DFT. We will briefly look at these other Fourier transforms in future chapters. For now, concentrate on understanding the Discrete Fourier Transform.
Look back at the example DFT decomposition in Fig. 8-1. On the face of it, it appears to be a 16 point signal being decomposed into 18 sinusoids, each consisting of 16 points. In more formal terms, the 16 point signal, shown in (a), must be viewed as a single period of an infinitely long periodic signal. Likewise, each of the 18 sinusoids, shown in (b), represents a 16 point segment from an infinitely long sinusoid. Does it really matter if we view this as a 16 point signal being synthesized from 16 point sinusoids, or as an infinitely long periodic signal being synthesized from infinitely long sinusoids? The answer is: usually no, but sometimes, yes. In upcoming chapters we will encounter properties of the DFT that seem baffling if the signals are viewed as finite, but become obvious when the periodic nature is considered. The key point to understand is that this periodicity is invoked in order to use a mathematical tool, i.e., the DFT. It is usually meaningless in terms of where the signal originated or how it was acquired.
146 |
The Scientist and Engineer's Guide to Digital Signal Processing |
Each of the four Fourier Transforms can be subdivided into real and complex versions. The real version is the simplest, using ordinary numbers and algebra for the synthesis and decomposition. For instance, Fig. 8-1 is an example of the real DFT. The complex versions of the four Fourier transforms are immensely more complicated, requiring the use of complex numbers. These are numbers such as: 3 %4 j , where j is equal to
&1 (electrical engineers use the variable j, while mathematicians use the variable, i). Complex mathematics can quickly become overwhelming, even to those that specialize in DSP. In fact, a primary goal of this book is to present the fundamentals of DSP without the use of complex math, allowing the material to be understood by a wider range of scientists and engineers. The complex Fourier transforms are the realm of those that specialize in DSP, and are willing to sink to their necks in the swamp of mathematics. If you are so inclined, Chapters 30-33 will take you there.
The mathematical term: transform, is extensively used in Digital Signal Processing, such as: Fourier transform, Laplace transform, Z transform, Hilbert transform, Discrete Cosine transform, etc. Just what is a transform? To answer this question, remember what a function is. A function is an algorithm or procedure that changes one value into another value. For example, y ' 2 x %1 is a function. You pick some value for x, plug it into the equation, and out pops a value for y. Functions can also change several values into a single value, such as: y ' 2 a % 3 b % 4 c , where a, b, and c are changed into y.
Transforms are a direct extension of this, allowing both the input and output to have multiple values. Suppose you have a signal composed of 100 samples. If you devise some equation, algorithm, or procedure for changing these 100 samples into another 100 samples, you have yourself a transform. If you think it is useful enough, you have the perfect right to attach your last name to it and expound its merits to your colleagues. (This works best if you are an eminent 18th century French mathematician). Transforms are not limited to any specific type or number of data. For example, you might have 100 samples of discrete data for the input and 200 samples of discrete data for the output. Likewise, you might have a continuous signal for the input and a continuous signal for the output. Mixed signals are also allowed, discrete in and continuous out, and vice versa. In short, a transform is any fixed procedure that changes one chunk of data into another chunk of data. Let's see how this applies to the topic at hand: the Discrete Fourier transform.
Notation and Format of the Real DFT
As shown in Fig. 8-3, the discrete Fourier transform changes an N point input signal into two N/2 %1 point output signals. The input signal contains the signal being decomposed, while the two output signals contain the amplitudes of the component sine and cosine waves (scaled in a way we will discuss shortly). The input signal is said to be in the time domain. This is because the most common type of signal entering the DFT is composed of
