Sampling and
Interpolation
Yao Wang
Polytechnic University, Brooklyn, NY11201
http://eeweb.poly.edu/~yao
Outline
• Basics of sampling and quantization
– A/D and D/A converters
• Sampling
– Nyquist sampling theorem
– Aliasing due to undersampling:
• temporal and frequency domain interpretation
• Sampling sinusoid signals
• Reconstruction from samples
– Reconstruction using sample-and-hold and linear interpolation
– Frequency domain interpretation (sinc pulse as interpolation kernel)
• Sampling rate conversion
– Down sampling
– Up sampling
– Demonstration
©Yao Wang, 2006 EE3414: Sampling 2
Analog to Digital Conversion
1
T=0.1
Q=0.25
0.5
-0.5
-1
0 0.2 0.4 0.6 0.8 1
A2D_plot.m
©Yao Wang, 2006 EE3414: Sampling 3
Two Processes in A/D Conversion
Sampling Quanti-
zation
xc(t) x[n] = xc(nT) x[ n]
Sampling Quantization
Period Interval
T Q
• Sampling: take samples at time nT
– T: sampling period;
x[ n] = x( nT ),−∞ < n < ∞
– fs = 1/T: sampling frequency
• Quantization: map amplitude values into a set of discrete values ± pQ
– Q: quantization interval or stepsize
xˆ[ n] = Q[ x(nT )]
©Yao Wang, 2006 EE3414: Sampling 4
How to determine T and Q?
• T (or fs) depends on the signal frequency range
– A fast varying signal should be sampled more frequently!
– Theoretically governed by the Nyquist sampling theorem
• fs > 2 fm (fm is the maximum signal frequency)
• For speech: fs >= 8 KHz; For music: fs >= 44 KHz;
• Q depends on the dynamic range of the signal amplitude and
perceptual sensitivity
– Q and the signal range D determine bits/sample R
• 2R=D/Q
• For speech: R = 8 bits; For music: R =16 bits;
• One can trade off T (or fs) and Q (or R)
– lower R -> higher fs; higher R -> lower fs
• We consider sampling in this lecture, quantization in the next
lecture
©Yao Wang, 2006 EE3414: Sampling 5
Nyquist Sampling Theorem
• Theorem:
– If xc(t) is bandlimited, with maximum frequency fm (or ωm =2π fm )
– and if fs =1/T > 2 fm or ωs =2π /T >2 ωm
– Then xc(t) can be reconstructed perfectly from x[n]= xc(nT) by
using an ideal low-pass filter, with cut-off frequency at fs/2
– fs0 = 2 fm is called the Nyquist Sampling Rate
• Physical interpretation:
– Must have at least two samples within each cycle!
©Yao Wang, 2006 EE3414: Sampling 6
Temporal Domain Interpretation:
Sampling of Sinusoid Signals
Sampling above
Nyquist rate
ωs=3ωm>ωs0
Reconstructed
=original
Sampling under
Nyquist rate
ωs=1.5ωm<ωs0
Reconstructed
\= original
Aliasing: The reconstructed sinusoid has a lower frequency than the original!
©Yao Wang, 2006 EE3414: Sampling 7
Frequency Domain
Interpretation of Sampling
Original signal
Sampling
impulse train The spectrum of the
sampled signal includes
the original spectrum and
its aliases (copies) shifted
Sampled signal to k fs , k=+/- 1,2,3,…
ωs>2 ωm The reconstructed signal
from samples has the
frequency components
upto fs /2.
Sampled signal
ωs<2 ωm When fs< 2fm , aliasing
(Aliasing effect) occur.
©Yao Wang, 2006 EE3414: Sampling 8
Sampling of Sinusoid in Frequency
Domain
Spectrum of
cos(2πf0t)
-f0 0 f0
No aliasing
fs >2f0
fs -f0 >f0
Reconstructed
-fs -f0 -fs -fs+f0 -f0 0 f0 fs-f0 fs fs+f0
signal: f0
-fs/2 fs/2
With aliasing
f0<fs <2f0 (folding) 0
fs -f0 <f0
Reconstructed signal: fs -f0 -fs -f0 -fs -f0 -fs+f0 fs-f0 f0 fs fs+f0
With aliasing
fs <f0 (aliasing) -fs
0 fs
f0-fs <f0
Reconstructed signal: fs -f0 -fs -f0 -f0 -f0+fs f0-fs f0 fs+f0
©Yao Wang, 2006 EE3414: Sampling 9
More examples with Sinusoids
• Demo from DSP First, Chapter 4, aliasing and folding
demo
– Aliasing: fs < fm (perceived frequency: fm -fs )
– Folding: fm < fs < 2fm (perceived frequency: fs -fm )
– No need to distinguish these two phenomena. Both lead to a
false frequency lower than the original frequency
©Yao Wang, 2006 EE3414: Sampling 10
Strobe Movie
• From DSP First, Chapter 4, Demo on “Strobe Movie”
©Yao Wang, 2006 EE3414: Sampling 11
How to determine the necessary sampling
frequency from a signal waveform?
• Given the waveform, find the shortest ripple, there
should be at least two samples in the shortest ripple
• The inverse of its length is approximately the highest
frequency of the signal
Fmax=1/Tmin
Tmin
Need at least two
samples in this
interval, in order not
to miss the rise and
fall pattern.
©Yao Wang, 2006 EE3414: Sampling 12
Sampling with Pre-Filtering
Pre-Filter Periodic
H (f) Sampling
x(t) x’(t) xd(n)
Sampling
period T
• If fs < 2fm, aliasing will occur in sampled signal
• To prevent aliasing, pre-filter the continuous signal so that fm<fs/2
• Ideal filter is a low-pass filter with cutoff frequency at fs/2
(corresponding to sync functions in time)
•Common practical pre-filter: averaging within one sampling interval
©Yao Wang, 2006 EE3414: Sampling 13
How to Recover Continuous Signals
from Samples?
• Connecting samples using interpolation kernels
– Sampling and hold (rectangular kernels)
– Linear interpolation (triangular kernels)
– High order kernels
– Ideal kernel: sinc function
©Yao Wang, 2006 EE3414: Sampling 14
Sample-and-Hold vs. Linear
Interpolation
1.2
0.8 Reconstructed signal by sample and hold
0.6
Reconstructed signal by linear interpolation
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
©Yao Wang, 2006 EE3414: Sampling 15
Reconstruction Using Different
Kernels
• Demo from DSP First, Chapter 4, demo on
“reconstruction”
©Yao Wang, 2006 EE3414: Sampling 16
Frequency domain interpretation
Original signal
Sampled signal
ωs>2 ωm
Ideal
reconstruction filter
(low-pass)
Reconstructed signal
(=Original signal)
©Yao Wang, 2006 EE3414: Sampling 17
Ideal Interpolation Filter
Hr(f)
T
f
- fs/2 fs/2
T | f |< f s / 2 sin π t / T
H r ( f )= hr (t ) =
0 otherwise π t /T
∞ ∞
sin[ π (t − nT ) / T ]
xr (t ) = xs (t ) ∗ hr (t ) = ∑ x[n] hr (t − nT ) = ∑ x[n]
π (t − nT ) / T
n =−∞ n =−∞
©Yao Wang, 2006 EE3414: Sampling 18
Sampling Rate Conversion
• Given a digital signal, we may want to change its
sampling rate
– Necessary for image display when original image size differs
from the display size
– Necessary for converting speech/audio/image/video from
one format to another
– Sometimes we reduce sample rate to reduce the data rate
• Down-sampling: reduce the sampling rate
• Up-Sampling: increase the sampling rate
©Yao Wang, 2006 EE3414: Sampling 19
Down-Sampling Illustration
1.2
0.8
Down-sampling by a
0.6
factor of 2 = take
0.4
every other sample
0.2
0 To avoid aliasing of
0 1 2 3 4 5 6 7 8 9 10
any high frequency
content in the
original signal,
1.2
should smooth the
1
original signal before
0.8 down-sampling --
0.6 Prefiltering
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
©Yao Wang, 2006 EE3414: Sampling 20
Down Sampling by a Factor of M
• Take every M-th sample from existing samples
– T’=MT, fs’=fs/M
• Should apply a prefilter to limit the bandwidth of the original signal to
1/M-th of the original
• Without prefiltering, aliasing occur in the down-sampled signal.
• Ideal prefilter: low pass filter with cut-off frequency at 1/M (maximum
digital frequency=1, corresponding to fs/2)
• Practical filter: averaging or weighted average over a neighborhood
Low-pass filter
Gain: M M
Cut-off: 1/M
x [n] x’[n] xd [n] = x [nM]
©Yao Wang, 2006 EE3414: Sampling 21
Down-Sampling Example
• Given a sequence of numbers, down-sample by a factor of 2,
– Original sequence: 1,3,4,7,8,9,13,15…
– Without prefiltering, take every other sample:
• 1,4,8,13,…
– With 2-sample averaging filter
• Filtered value=0.5*self+0. 5*right, filter h[n]=[0.5,0.5]
• Resulting sequence:
– 2, 5.5,8.5,14,…
– With 3-sample weighted averaging filter
• Filtered value=0.5*self+0.25*left+0.25*right, filter h[n]=[0.25,0.5,0.25]
• Resulting sequence (assuming zeros for samples left of first):
– 1.25, 4.5,8,12.5,…
©Yao Wang, 2006 EE3414: Sampling 22
Upsampling by linear interpolation
1.2
0.8
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
1.2
0.8
0.6
0.4
0.2
0
0 1 2 3 4 5 6 7 8 9 10
Missing samples need to be filled from neighboring available samples using interpolation filter
©Yao Wang, 2006 EE3414: Sampling 23
Up Sampling by a Factor of L
• Insert L-1 samples between every two existing samples
• T’=T/L, fs’=fs*L
– The estimation of the missing samples from original samples is
known as interpolation
• Interpolation can be decomposed into two steps
– Zero-padding: insert L-1 zeros in between every two samples
– Low-pass filtering: to estimate missing samples from neighbors
– Simplest interpolation filter: linear interpolation
Lowpass Filter
L Gain = L
Cutoff = 1 / L
x[n] xe [n] xi [n]
Sampling zero- Sampling Sampling
period T padding period T’ = T/L period T’ = T/L
©Yao Wang, 2006 EE3414: Sampling 24
Up-Sample Example
• Given a sequence of numbers, up-sample by a factor
of 2
– Original sequence: 1,3,4,7,8,9,13,15…
– Zero-padding:
• 1,0,3,0,4,0,7,0,…
– Sample and hold
• Repeat the left neighbor, filter h[n]=[1,1]
• 1,1,3,3,4,4,7,7,…
– With linear interpolation
• New sample=0.5*left+0. 5*right, filter h[n]=[0.5,1,0.5]
• Resulting sequence:
– 1,2,3,3.5,4,5.5,7,8,…,…
©Yao Wang, 2006 EE3414: Sampling 25
Demonstration
• Demonstrate the effect of down-sampling with
different pre-filters, and up-sampling with different
interpolation filters
• Compare both sound quality and frequency spectrum
• Matlab code (sampling_demo.m)
©Yao Wang, 2006 EE3414: Sampling 26
Down-2 followed by up-2, both using good filters
y psd-y
0.4 0
0.2
-20
0
-0.2 -40
-0.4
-60
5000 10000 15000 0 5000 10000
x21 psd-x21 h21 freq-h21
0.4 0 0
0.2 -20
-20 0.4
-40
0
0.2
-40 -60
-0.2
0 -80
-0.4
-60
2000 4000 6000 0 5000 10000 -10 0 10 0 0.2 0.4 0.6 0.8
z21 psd-z21 b21 freq-b21
0.4 0
0
1
0.2
-20
0 0.5 -50
-0.2 -40
0
-0.4 -100
-60
5000 10000 15000 0 5000 10000 -5 0 5 0 0.2 0.4 0.6 0.8
©Yao Wang, 2006 EE3414: Sampling 27
Down-2 followed by up-2, both using bad filters
y psd-y
0.4 0
0.2
-20
0
-0.2 -40
-0.4
-60
5000 10000 15000 0 5000 10000
x22 psd-x22 h22 freq-h22
0 0
0.2 -10
-20 0.4
-20
0
0.2 -30
-40
-0.2
-40
0
-0.4 -60 -50
2000 4000 6000 0 5000 10000 0 0.2 0.4 0.6 0.8
z22 psd-z22 b22 freq-b22
0
0
1
0.2
-20 -20
0 0.5
-40
-40
-0.2
0 -60
-0.4 -60
5000 10000 15000 0 5000 10000 -2-1 0 1 2 0 0.2 0.4 0.6 0.8
©Yao Wang, 2006 EE3414: Sampling 28
Down-4 followed by up-4, both using good filters
y psd-y
0.4 0
0.2
-20
0
-0.2 -40
-0.4
-60
5000 10000 15000 0 5000 10000
x41 psd-x41 h41 freq-h41
0 0
0.2
-20 0.4
0 -50
0.2
-40
-0.2
0
-60 -100
1000 2000 3000 0 5000 10000 -10 0 10 0 0.2 0.4 0.6 0.8
z41 psd-z41 b41 freq-b41
0
0
1
0.2
-20
-50
0 0.5
-40 -100
-0.2
0
-60 -150
5000 10000 15000 0 5000 10000 -10 0 10 0 0.2 0.4 0.6 0.8
©Yao Wang, 2006 EE3414: Sampling 29
Down-4 followed by up-4, both using bad filters
y psd-y
0.4 0
0.2
-20
0
-0.2 -40
-0.4
-60
5000 10000 15000 0 5000 10000
x42 psd-x41 h42 freq-h42
0 0
-10
0.2 0.4
-20 -20
0 -30
0.2
-40
-0.2 -40
0
-50
-60
1000 2000 3000 0 5000 10000 -1012 0 0.2 0.4 0.6 0.8
z42 psd-z42 b42 freq-b42
0
1 0
0.2
-20
-20
0 0.5
-40 -40
-0.2
0 -60
-60
5000 10000 15000 0 5000 10000 -4-3-2-101234 0 0.2 0.4 0.6 0.8
©Yao Wang, 2006 EE3414: Sampling 30
MATLAB Code
• Go through the code
©Yao Wang, 2006 EE3414: Sampling 31
What Should You Know (I)
• Sampling:
– Know the minimally required sampling rate:
• fs > 2 fmax , Ts < T0,min /2
• Can estimate T0,min from signal waveform
– Can illustrate samples on a waveform and observe whether the
signal is under-sampled.
– Can plot the spectrum of a sampled signal
• The sampled signal spectrum contains the original spectrum and its
replicas (aliases) at kfs, k=+/- 1,2,….
• Can determine whether the sampled signal suffers from aliasing
– Understand why do we need a prefilter when sampling a signal
• To avoid alising
• Ideally, the filter should be a lowpass filter with cutoff frequency at fs /2.
– Can show the aliasing phenomenon when sampling a sinusoid
signal using both temporal and frequency domain interpretation
©Yao Wang, 2006 EE3414: Sampling 32
What Should You Know (II)
• Interpolation:
– Can illustrate sample-and-hold and linear interpolation from
samples.
– Understand why the ideal interpolation filter is a lowpass filter with
cutoff frequency at fs /2.
– Know the ideal interpolation kernel is the sinc function.
– Interpolation using the sinc kernel is NOT required
• Sampling Rate Conversion:
– Know the meaning of down-sampling and upsampling
– Understand the need for prefiltering before down-sampling
• To avoid aliasing
• Know how to apply simple averaging filter for downsampling
– Can illustrate up-sampling by sample-and-hold and linear
interpolation
©Yao Wang, 2006 EE3414: Sampling 33
References
• McClellan, Schafer and Yoder, DSP First, Chap. 4
– Has good conceptual / graphical interpretation
(copies provided, Sec. 4.3,4.5 not required)
• Y. Wang, EL514 Lab Manual, Exp2: Voice and audio digitization
and sampling rate conversion. Sec. 1,2. (copy provided)
• Oppenheim and Willsky, Signals and Systems, Chap. 7.
– Optional reading (More depth in frequency domain interpretation)
©Yao Wang, 2006 EE3414: Sampling 34