## Fine Print

A band-limited signal *x(t)* that contains no frequencies
above *w*_{m} can in
theory be perfectly reconstructed from a sampled signal
*x*_{s}(t) that is sampled at a frequency
*w*_{s
} > 2*w*_{m}.
However, the sampling and reconstruction process is
complicated, and there are difficulties inherent in the representation
and display of continuous-time signals on a computer.

### Pixels Aren't Points

To allow the user to modify signal values with the mouse,
SampleMania represents continuous-time signals
internally as discrete-time signals with one sample per pixel.
Consequently, a smooth continuous-time signal such as a sinusoid behaves,
at very fine granularities, like a digital signal with very small
jumps, as shown below.

The result of this approximation is additional high-frequency signal
content that would not be present in the real continuous-time signal, as illustrated
by the magnitude spectra below. The spectrum on the left represents the
pure sinusoid; the spectrum on the right
represents the quantized version.

### SampleMania Signals Are Finite in Extent

Another approximation is that the
"Sinc" and "Sine" buttons generate only windowed
versions of the sinc and
sine signals. That is, even though the sine and sinc functions are infinite
in extent, their representations in SampleMania are zero outside
the display area. A property of the Fourier transform is that
finite-extent signals have infinite-extent transforms.
Similarly, because of duality, signals
with finite-extent transforms must be infinite in extent.
Consider the case of a rectangular
pulse signal
and its transform, the sinc: as the pulse becomes taller and narrower, the
sinc grows wider, until the limiting case where the pulse becomes an
infinite-height impulse
and the
sinc becomes an infinite-extent constant signal.
Conversely, as the pulse becomes wider
and approaches a constant signal, the sinc grows taller and narrower,
tending toward an impulse. The illustration below shows two rectangular pulse
signals (at left) and their corresponding magnitude spectra (at right).

As a result, the "sinc" signal displayed by
SampleMania is actually a sinc that has
been multiplied by a rectangular window in the time domain, zeroing out the small
ripples that extend to infinity in the original signal.
Because of the modulation property,
this multiplication in time is equivalent to convolution with another sinc function in
the frequency domain. This tends to distort and "smear" the magnitude
spectrum. Because the sinc function never drops off to zero, the magnitude spectrum
of our windowed function is never identically zero, resulting in non-zero
"ripples" of distortion that extend to infinity.
(Note that if the width of our rectangular window
approaches infinity, the sinc with which the desired magnitude spectrum is convolved
approaches an impulse, and the amount of distortion decreases.) Although the effect of
these ripples is small, when the signal is sampled they are enhanced via aliasing,
resulting in a significant non-zero offset in the magnitude spectrum of the
sampled sinc function.
The plots below illustrate the effect of windowing on the magnitude spectrum (in green) of
the sinc function. The first sinc signal extends to t = +/- 1000; the second sinc
extends only to +/- 300. Note the additional high-frequency ripples and
poorer approximation of a rectangular pulse in the spectrum of the second
signal.

### All Magnitude Spectra Are Not Created Equal

It is sometimes noticeable that the "windowed"
region of the magnitude spectrum of the
sampled signal (impulse train) and the spectrum of the reconstructed signal
don't quite match.
There are several reasons for this. First, the reconstruction in SampleMania is
computed not in the frequency domain with a low-pass filter, but in the time domain
via convolution with a sinc (this is done in order to avoid the additional time that
would be required to compute an inverse Fourier transform). Although these operations
are equivalent in theory, imprecision in the computation of the sinc, as well as the fact
that the "sinc" signal used is actually zero outside of
the display window, can result in
an imperfect reconstruction.
More significantly, the magnitude spectrum of the sampled signal is
computed using a slightly different algorithm than the spectra of the
signals *x(t)* and *x*_{r}(t). The
reason is that the sampling frequency can optionally be specified as
an integer number of radians per second,
meaning that the number of screen pixels in each sampling period is irrational.
As a result, if a standard display procedure were used, for the periodic
magnitude spectrum of the impulse train, the spectrum values used to
compute corresponding pixel positions in successive periods of the signal
would be slightly different. The result would be a graph
that doesn't look periodic. In the example below, a sine function with
period *2p* is shown. Superimposed on the graph of the function
are "pixels"
spaced every unit along the *x*-axis. When the graph of the continuous
function is removed, the resulting pixels do not appear to represent
a periodic signal.

To compensate for
this and emphasize the basic concepts that SampleMania is trying to convey, a particular
method is used for rounding to integer pixel positions when displaying the
magnitude spectrum of the sampled signal. This algorithm can result in small
discrepancies between the spectra of the sampled and reconstructed signals.
return to SampleMania page