Sampling Theory 101

Download as pdf or txt
Download as pdf or txt
You are on page 1of 60

Sampling Theory 101

Oliver Kreylos
[email protected]

Center for Image Processing and Integrated Computing (CIPIC)


Department of Computer Science
University of California, Davis

CIPIC Seminar 11/06/02 – p.1


Outline
• Things that typically go wrong
• Mathematical model of sampling
• How to do things better

CIPIC Seminar 11/06/02 – p.2


Things That Typically Go Wrong

CIPIC Seminar 11/06/02 – p.3


Where Does Sampling Occur?

Almost all data we are dealing with is discrete


• Evaluation of sampled functions at arbitrary
sites
• Volume rendering
• Isosurface extraction
• Ray tracing
• ...

CIPIC Seminar 11/06/02 – p.4


What Went Wrong Here?

Typical ray tracing example:

CIPIC Seminar 11/06/02 – p.5


Sampling and Reconstruction

CIPIC Seminar 11/06/02 – p.6


Sampling and Reconstruction

CIPIC Seminar 11/06/02 – p.6


Sampling and Reconstruction

CIPIC Seminar 11/06/02 – p.6


Sampling and Reconstruction
• Undersampling?
• Sampling “below Nyquist rate”?
• Quick solution: Double sampling rate

CIPIC Seminar 11/06/02 – p.6


Sampling and Reconstruction

CIPIC Seminar 11/06/02 – p.6


Sampling and Reconstruction
• Things get better, but are still bad
• Isn’t sampling above the Nyquist rate
supposed to solve all problems?

CIPIC Seminar 11/06/02 – p.6


Sampling Theory

To understand what went wrong on the last slide,


we need a mathematical model of sampling.

CIPIC Seminar 11/06/02 – p.7


Mathematical Model of Sampling

CIPIC Seminar 11/06/02 – p.8


Choice of Domain
• Process of sampling and reconstruction is
best understood in frequency domain
• Use Fourier transform to switch between time
and frequency domains
• Function in time domain: signal
• Function in frequency domain: spectrum

CIPIC Seminar 11/06/02 – p.9


Fourier Transform I
• Many functions f : R → R can be written as
sums of sine waves
X
f (x) = aω sin(ωx + θω )
ω

• ω = 2π · frequency is angular velocity,


• aω is amplitude, and
• θω is phase shift

CIPIC Seminar 11/06/02 – p.10


Fourier Transform II
• Moving to complex numbers simplifies
notation:
cos(ωx) + i sin(ωx) = eiωx
(Euler identity )
• One complex coefficient cω eiωx encodes both
amplitude and phase shift
• Moving to integral enlarges class of
representable functions

CIPIC Seminar 11/06/02 – p.11


Fourier Transform III
• Now, for almost all f :
Z
f (x) = F (ω)eiωx dω

• F (ω) is the spectrum of f (x), and the above


operator is the inverse Fourier transform
• Its inverse, the Fourier transform, is
Z
F (ω) = f (x)e−iωx dx

CIPIC Seminar 11/06/02 – p.12


Some Signals and Their Spectra

Single sine wave f (x) = sin(ωx):

CIPIC Seminar 11/06/02 – p.13


Some Signals and Their Spectra

Sum of two sine waves


f (x) = sin(ωx) + 0.5 sin(2ωx):

CIPIC Seminar 11/06/02 – p.13


Some Signals and Their Spectra

Box function:

CIPIC Seminar 11/06/02 – p.13


Some Signals and Their Spectra

Wider box function:

CIPIC Seminar 11/06/02 – p.13


Some Signals and Their Spectra

Triangle function:

CIPIC Seminar 11/06/02 – p.13


Some Signals and Their Spectra

Comb function:

CIPIC Seminar 11/06/02 – p.13


Some Signals and Their Spectra

Wider comb function:

CIPIC Seminar 11/06/02 – p.13


Convolution I
• The convolution operator is a generalized
formula to express weighted averaging of an
input signal f and a weight function or filter
kernel g:
Z
(f ∗ g)(x) = f (t) · g(x − t) dt

• One important application of convolution is


reconstructing sampled signals

CIPIC Seminar 11/06/02 – p.14


Convolution II
Z
(f ∗ g)(x0 ) = f (t) · g(x0 − t) dt

f f f

x0 x x0 x x0 x

g f f*g

x x0 x x0 x

CIPIC Seminar 11/06/02 – p.15


Convolution III

Linear interpolation can be interpreted as


convolution:
f f

x x

g f

x x

CIPIC Seminar 11/06/02 – p.16


Function Reconstruction

Constant interpolation:

CIPIC Seminar 11/06/02 – p.17


Function Reconstruction

Linear interpolation:

CIPIC Seminar 11/06/02 – p.17


Function Reconstruction

Catmull-Rom interpolation:

CIPIC Seminar 11/06/02 – p.17


Function Reconstruction

Cubic B-spline approximation:

CIPIC Seminar 11/06/02 – p.17


The Convolution Theorem
• The Convolution Theorem relates convolution
and Fourier transform:
(f ∗ g) ↔ F · G
• Convolutions can be computed by going
through the frequency domain:
(f ∗ g) = IFT(FT(f ) · FT(g))

CIPIC Seminar 11/06/02 – p.18


Sampling in Time Domain
• Sampling a function f means multiplying it
with a comb function c with tap distance d (or
sample frequency ω = 2π/d):
s=f ·c
• Reconstructing a sampled function means
convolving it with a suitable filter kernel
f0 = s ∗ k
• What happens to the function’s spectrum in
the process?
CIPIC Seminar 11/06/02 – p.19
Sampling in Frequency Domain
• The spectrum of s is the convolution of F
and C, the spectra of f and c
• C is a comb function with tap distance 2π/d
• S consists of shifted copies of F , each 2π/d
apart

CIPIC Seminar 11/06/02 – p.20


Sampling Process - Time Domain

CIPIC Seminar 11/06/02 – p.21


Sampling Process - Frequency Domain

CIPIC Seminar 11/06/02 – p.22


Sampling in Frequency Domain
• If the sampling frequency is ω, the replicated
copies of f ’s spectrum are ω apart
• If the highest-frequency component in f is ωf ,
f ’s spectrum covers the interval [−ωf , ωf ]
• If ωf ≥ ω/2, then the replicated spectra
overlap!
• This means, information is lost

CIPIC Seminar 11/06/02 – p.23


The Sampling Theorem
• “If f is a frequency-limited function with
maximum frequency ωf , then f must be
sampled with a sampling frequency larger
than 2ωf in order to be able to exactly
reconstruct f from its samples.”
• This theorem is sometimes called Shannon’s
Theorem
• 2ωf is sometimes called Nyquist rate

CIPIC Seminar 11/06/02 – p.24


Reconstruction
• The only difference between F and S is that S
is made of shifted copies of F
• If those extra, higher-frequency, spectra could
be removed from S, f would “magically”
reappear
• Reconstructing f means low-pass-filtering s!

CIPIC Seminar 11/06/02 – p.25


Reconstruction Process - Frequency Dom

CIPIC Seminar 11/06/02 – p.26


Reconstruction Process - Time Domain

CIPIC Seminar 11/06/02 – p.27


Reconstruction Problem
• Practical problem: The optimal reconstruction
filter, the sinc function, has infinite support
• Evaluating it in the time domain involves
computing a weighted average of infinitely
many samples
• Practical reconstruction filters must have finite
support
• But: A perfect low-pass filter with finite
support does not exist!

CIPIC Seminar 11/06/02 – p.28


The Quest For Better Filters

CIPIC Seminar 11/06/02 – p.29


Commonly Used Filters

Constant filter:

CIPIC Seminar 11/06/02 – p.30


Commonly Used Filters

Linear filter:

CIPIC Seminar 11/06/02 – p.30


Commonly Used Filters

Catmull-Rom filter:

CIPIC Seminar 11/06/02 – p.30


Commonly Used Filters

B-Spline filter:

CIPIC Seminar 11/06/02 – p.30


Sampling Theory Filters

Truncated sinc filter:

CIPIC Seminar 11/06/02 – p.31


Sampling Theory Filters

Lanczos filter:

CIPIC Seminar 11/06/02 – p.31


Sampling Theory Filters

Full sinc filter:

CIPIC Seminar 11/06/02 – p.31


Sampling Theory Applications

CIPIC Seminar 11/06/02 – p.32


Function Reconstruction
• Sampling theory filters (Lanczos etc.) can be
used to reconstruct n-dimensional functions
sampled on regular grids
• Oversampling improves reconstruction quality
with “bad” filters, but at a high cost

CIPIC Seminar 11/06/02 – p.33


Function Resampling
• When resampling a sampled function to a
different grid (shifted and/or scaled), it is
important to use a good reconstruction filter
• When downsampling a function, it is
important to use a good low-pass filter to cut
off frequencies above half the new sampling
frequency

CIPIC Seminar 11/06/02 – p.34


Volume Rendering
• Basic question: How many samples to take
per cell?

CIPIC Seminar 11/06/02 – p.35


Volume Rendering
• Basic question: How many samples to take
per cell?

• Sampling theory says “1,” but integration


along ray might demand more

CIPIC Seminar 11/06/02 – p.35


Ray Tracing
• In ray tracing, the function to be sampled is
typically not frequency-limited
• Practical solution: Shoot multiple rays per
pixel (oversampling) and sample down to
image resolution
• Using a good low-pass filter is important

CIPIC Seminar 11/06/02 – p.36


Ray Tracing

CIPIC Seminar 11/06/02 – p.36


Conclusions

CIPIC Seminar 11/06/02 – p.37


Conclusions
• Knowing the mathematical background of
sampling and reconstruction helps to
understand common problems and devise
solutions
• Ad-hoc solutions usually do not work well
• This stuff should be taught in class!

CIPIC Seminar 11/06/02 – p.38


The End

CIPIC Seminar 11/06/02 – p.39

You might also like