The
sampling rate of a
digital signal can be easily be increased by an
integer multiplesay,
Mby adding
M1 zeros between each
sample, then
lowpass filtering with a digital
cutoff frequency of π/
M and a gain of
M.
Derivation
Let
x(n) be the signal we wish to upsample (
interpolate), and define
y(k) = { x(k/M) , when m/M is an integer
{ 0 otherwise
Evaluating the
ztransform of
y(k),
Y(z) = Σ_{k}y(k)*z^{m}
but y(m) is zero for all noninteger k/I, so
Y(z) = Σ_{k}x(k)*z^{kM}
= X(z^{M})
The DTFT of y is computed by evaluating Y(z) on the unit circle (z = e^{jΩ}). Therefore,
Y(Ω) = X(ΩM).
Let's look at what's going on so far in the frequency domain. Suppose M=3, and X has the spectrum given below with maximum value 1.
X(Ω)

*1*
***  ***
***  ***
***  ***
***  ***
***  ***
+> Ω
π π/2 0 π/2 π
Y(Ω)

* 1 *
* * ** * *
* * *  * * *
* * *  * * *
* * *  * * *
* **  ** *
+> Ω
π π/2 0 π/2 π
Y(
Ω) contains
M spectral images of
X. What we want, however, is just the middle image, the one shown in bold in the figure above. This can clearly be extracted by lowpass filtering
Y to remove frequencies above π/
M, yielding:
Y(Ω)

1
**
*  *
*  *
*  *
*  *
+> Ω
π π/2 0 π/2 π
One step remains: adjusting the
scaling of
y. It is convenient to compare
y(0) to
x(0):
y(0) = ∫_{Ω}Y(Ω) dΩ = (1/M) ∫_{Ω}X(Ω) dΩ = x(0)/M
Thus, to keep y(k) scaled correctly, we must multiply it by M:
Y(Ω)

* M
**
*  *
*  *
*  *
*  *
+> Ω
π π/2 0 π/2 π