The thoughtful reader may have looked at the Section 13.27 FIR filter impulse response interpolation scheme, and wondered, "If we can interpolate timedomain impulse responses, we should be able to interpolate timedomain signals using the same frequencydomain zero stuffing method". This is true, and the above interpolationbyM process applied to time signals is sometimes called exact interpolation—because its performance is equivalent to using an ideal, infinitestopband attenuation, timedomain interpolation filter—and has made its way into DSP textbooks, journal articles, and classroom notes of famous DSP professors.
To establish our notation, lets say we compute the FFT of an Npoint x(n) time sequence to produce its X(m) frequencydomain samples. Next, we stuff (M–1)N zeros in the middle of X(m) to yield the MNlength Xint(m) frequency samples, where MN is an integer power of two. Then we perform an MNpoint inverse FFT on Xint(m) to obtain the interpolatedbyM xint(n) times samples. Using this frequencydomain zero stuffing to implement timedomain signal interpolation involves two important issues upon which we now focus.
13.28.1 Computing Interpolated Real Signals
The first issue: to ensure the interpolated xint(n) time sequence is real only, conjugate symmetry must be maintained in the zerostuffed Xint(m) frequency samples. If the X(m) sequence has a nonzero sample at Xint(N/2), the fs/2 frequency component, we must use the following steps in computing Xint(m) to guarantee conjugate symmetry:
Whew! Our mathematical notation makes this signal interpolation scheme look complicated, but it's really not so bad. Table 138 shows the frequencydomain Xint(m) sample assignments, where 0 m 15, to interpolate an N = 8point x(n) sequence by a factor of M = 2.
One of the nice properties of the above algorithm is that every Mth xint(n) sample coincides with the original x(n) samples. In practice, due to our finiteprecision computing, the imaginary parts of our final xint(n) may have small nonzero values. As such, we take xint(n) to the be real part of the inverse FFT of Xint(m).
Here's the second issue regarding timedomain real signal interpolation, and it's a big deal indeed. This exact interpolation algorithm provides correct results only if the original x(n) sequence is periodic within its full time interval. If X(m) exhibits any spectral leakage, like the signals with which we usually work, the interpolated xint(n) sequence can contain noticeable amplitude errors in its beginning and ending samples, as shown in Figure 1374(a) where an N = 24 sample x(n) sequence is interpolated by M = 2. In that figure, squares (both white and black) represent the 48point interpolated xint(n) sequence, white squares are the original x(n) samples, and circles represent the exactly correct interpolated sample values. (In the center portion of the figure, the circles are difficult to see because they're hidden behind the squares.) The interpolation error, the difference between the correct samples and xint(n), is given in Figure 1374(b).
Figure 1374. Interpolation results, N = 24, M = 2: (a) interpolated xint(n), original x(n), and correct interpolation; (b) interpolation error.
Table 138. XINT(m) Assignments for Interpolation by Two
m 
Xint(m) 
m 
Xint(m) 

0 
X(0) 
8 
0 
1 
X(1) 
9 
_ 
2 
X(2) 
10 
0 
3 
X(3) 
11 
0 
4 
X(4)/2 
12 
X(4)/2 
5 
0 
13 
X(5) 
6 
0 
14 
X(6) 
7 
0 
15 
X(7) 
These interpolation errors exist because Xint(m) is not identical to the spectrum obtained had we sampled x(n) at a rate of Mfs and performed an MNpoint forward FFT. There's no closedform mathematical expression enabling us to predict these errors. The error depends on the spectral component magnitudes and phases within x(n), as well as N and M. Reference [72] reports a reduction in interpolation errors for twodimensional image interpolation when, in an effort to reduce spectral leakage in X(m), simple windowing is applied to the first few and last few samples of x(n).
With the advent of fast hardware DSP chips and pipelined FFT techniques, the above timedomain interpolation algorithm may be viable for a number of applications, such as computing selectable sample rate time sequences of a test signal that has a fixed spectral envelope shape; providing interpolation, by selectable factors, of signals that were filtered in the frequency domain using the fast convolution method (Section 13.10); or digital image resampling. One scenario to consider is using the efficient 2NPoint Real FFT technique, described in Section 13.5.2, to compute the forward FFT of the realvalued x(n). Of course, the prudent engineer would conduct a literature search to see what algorithms are available for efficiently performing inverse FFTs when many of the frequencydomain samples are zeros.
13.28.2 Computing Interpolated Analytic Signals
We can use the frequencydomain zero stuffing scheme to generate an interpolatedbyM analytic time signal based upon the real Npoint time sequence x(n), if N is even[73]. The process is as follows:
The complex xc,int(n) sequence will also exhibit amplitude errors in its beginning and ending samples.
Amazon  


