Explains how digital systems such as the computer represent numbers. Covers the basics of boolean algebra and binary math.
Computer architecture
To understand digital signal processing systems, we must
understand a little about how computers compute. The moderndefinition of a
computer is an electronic
device that performs calculations on data, presenting theresults to humans or other computers in a variety of
(hopefully useful) ways.
The generic computer contains
input devices (keyboard, mouse, A/D (analog-to-digital) converter,
etc.), a
computational unit , and output
devices (monitors, printers, D/A converters). Thecomputational unit is the computer's heart, and usually
consists of a
central processing unit (CPU), a
memory , and an input/output
(I/O) interface. What I/O devices might be present on a givencomputer vary greatly.
A simple computer operates fundamentally in
discrete time. Computers are
clocked devices, in which
computational steps occur periodically according to ticksof a clock. This description belies clock speed: When you
say "I have a 1 GHz computer," you mean that your computertakes 1 nanosecond to perform each step. That is
incredibly fast! A "step" does not, unfortunately,necessarily mean a computation like an addition; computers
break such computations down into several stages, whichmeans that the clock speed need not express the
computational speed. Computational speed is expressed inunits of millions of instructions/second (Mips). Your 1
GHz computer (clock speed) may have a computational speedof 200 Mips.
Computers perform integer (discrete-valued)
computations. Computer calculations can be
numeric (obeying the laws of arithmetic), logical (obeyingthe laws of an algebra), or symbolic (obeying any law you
like).
An example of a symbolic
computation is sorting a list of names. Each computer instruction that performs an elementary
numeric calculation --- an addition, a multiplication, or adivision --- does so only for integers. The sum or product
of two integers is also an integer, but the quotient oftwo integers is likely to not be an integer. How does a
computer deal with numbers that have digits to the rightof the decimal point? This problem is addressed by using
the so-called
floating-point representation of real numbers. At its heart, however,
this representation relies on integer-valued computations.
Representing numbers
Focusing on numbers, all numbers can represented by the
positional notation system .
Alternative number representation systems
exist. For example, we could use stick figure counting orRoman numerals. These were useful in ancient times, but very
limiting when it comes to arithmetic calculations: ever triedto divide two Roman numerals? The
-ary positional
representation system uses the position of digits ranging from0 to
-1 to denote a number.
The quantity
is known as the
base of the number system.
Mathematically, positional systems represent the positiveinteger
as
and we succinctly express
in
base-
as
.
The number 25 in base 10 equals
,
so that the
digits representing this number are
,
, and all other
equal zero. This same number in
binary (base 2) equals 11001(
)and 19 in hexadecimal (base 16). Fractions between zero and
one are represented the same way.
All numbers can be represented by their
sign, integer and fractional parts.
Complex numbers can be thought of as two
real numbers that obey special rules to manipulate them.