Digital signal processing is often implemented using specialised microprocessors such as the
DSP56000, the TMS320, or the SHARC. These often process data using fixedpoint arithmetic,
although some versions are available which use floating point arithmetic and are more powerful. For
faster applications FPGAs might be used. Beginning in 2007, multicore implementations of DSPs
have started to emerge from companies including Freescale and Stream Processors, Inc. For faster
applications with vast usage, ASICs might be designed specifically. For slow applications, a
traditional slower processor such as a microcontroller may be adequate.
The Digital Signal Processor (DSP) measures or filter continuous analog signals in realtime. Analog
signals are sampled and converted to digital form by an analogtodigital converter (ADC),
manipulated digitally, and then converted again to analog form with a digitaltoanalog (DAC).
Signal sampling
A digital signal is often a numerical representation of a continuous signal. This discrete
representation of a continuous signal will generally introduce some error in to the data. The
accuracy of the representation is mostly dependent on two things; sampling frequency and the
number of bits used for the representation. The continuous signal is usually sampled at regular
intervals and the value of the continuous signal in that interval is represented by a discrete value.
The
sampling frequency or sampling rate is then the rate at which new samples are taken from the
continuous signal. The number of bits used for one value of the discrete signal tells us how
accurately the signal magnitude is represented. Similarly, the sampling frequency controls the
temporal or spatial accuracy of the discrete signal.
Sampling is usually carried out in two stages, discretization and quantization. In the discretization
stage, the space of signals is partitioned into equivalence classes and quantization is carried out
by
replacing the signal with representative signal of the corresponding equivalence class. In the
quantization stage the representative signal values are approximated by values from a finite set.
There are many kinds of signal processors, each one of them being better suited for a specific task.
And not all DSPs provide the same speed. Generally, DSPs are dedicated RISC processors,
however DSP functionality can also be realized using Field Programmable Gate Array (FPGA)
chips.
DSPs use algorithms to process signals in one of the following domains: time domain, frequency
domain (onedimensional signals), spatial domain (multidimensional signals), autocorrelation domain,
and wavelet domains. Which domain to chose depends on the essential characteristic of the signal.
A sequence of samples from a measuring device produces a time or spatial domain representation,
whereas a discrete Fourier transform produces the frequency domain information, that is the
frequency spectrum. Autocorrelation is defined as the crosscorrelation of the signal with itself over
varying intervals of time or space.
Time Domain vs Frequency Domain
A time domain graph shows how a signal changes over time, whereas a frequency domain graph
shows how much of the signal lies within each given frequency band over a range of frequencies.
The time  amplitude axes on which the signalis shown define the time plane. Time domain signals
are measured with an oscilloscope and frequency domain signals are measured with a spectrometer.
The basic idea of signal processing is that a complex, timedomain waveform like this —
— can be fully and completely recreated using a frequencydomain representation like this:
If a frequency domain axis is added to the time domain axis, then the signal would be as illustrated
below.
Over 80% of all DSP applications require some form of frequency domain processing and there are
many techniques for performing this kind of operation.
Spatial Domain vs Frequency Domain
Audio signals are dealt with in the frequency domain, while image signals are handled in the spatial
domain.
An image also can be thought of as a collection of spatial signals. From signal processing, we know
that any signal can be reduced, or decomposed, into a series of simple sinusoidal components, each
of which has a frequency, amplitude, and phase. As such, it is possible to change, or transform, an
image from the spatial domain into the frequency domain. In the frequency domain image
information is represented as signals having various amplitute, frequency and phase characteristics.
Some frequencybased operations, such as highpass,
lowpass, and bandpass filtering, can be performed easily on a frequency domain image, while the
equivalent operation in the spatial domain involves cumbersome and timeconsuming convolutions.
In addition, the accuracy of frequency oriented operations are often higher than if they were
performed in the spatial domain.
As an example, consider the use of frequency domain processing for filtering. In the first image
shown below, there is a distinct repetitive diagonal noise pattern that runs primarily from the upper
right to lower left. In addition, there is a more subtle pattern running from the upper left to lower
right. The FFT of this image is shown next. This is a typical example of an image's power spectra.
The four bright, offaxis spots represent the unwanted noise. (Remember, each frequency has an
identical but negative component.)
At this point, the power of filtering in the frequency domain becomes apparent. The noise can be
eliminated by simply removing the unwanted frequency components from the power spectra. The
next image shows the necessary modification that eliminates the noise. Now all that is needed is to
perform the inverse FFT, returning the image to the spatial domain. The last image in this set shows
the result. As can be seen, nearly all of the noise is gone. This same procedure can be invoked to
perform highpass filtering (eliminating the low frequencies clustered near the center of the power
spectra) or lowpass filtering (eliminating all but the central low frequencies). It might seem to be
a
lot of trouble to perform frequency operations that could be performed in the spatial domain with
convolution, but operating in the frequency domain affords more control and may be required for
certain applications.
Time and spatial domains filtering
The most common processing approach in the time or spatial domain is enhancement of the input
signal through a method called filtering. Filtering generally consists of some transformation of a
number of surrounding samples around the current sample of the input or output signal.
Properties such as the following characterize filters:
  
A "linear" filter consists of a linear transformation of input samples; other filters
are "nonlinear." Linear filters satisfy the superposition condition, i.e. if an input signal
is a weighted
linear combination of different input signals,
the output will be an equally weighted linear combination of the corresponding individual
output signals.
   
A "causal" transformation uses only previous samples of the input or output signals;
transformations that also use future input samples are "non causal." Adding a delay will
transform many noncausal filters into causal filters.
   
A "timeinvariant" filter has constant properties over time; other filters such as
adaptive
filters change in time.
   
"Finite impulse response" (FIR) filters use only the input signal; socalled "infinite
impulse
response" filters use both the input signal and previous samples of the output signal.

Most filters can be described by their Transfer functions.
