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.
Organization of a simple computer
Generic computer hardware organization.
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
b -ary positional
representation system uses the position of digits ranging from0 to
b -1 to denote a number.
The quantity
b is known as the
base of the number system.
Mathematically, positional systems represent the positiveinteger
n as
∀dk,dk∈{{0,…,b-1}}.n=∑k=0∞dkbk
and we succinctly express
n in
base-
b as
nb=dN()dN−1()…d0() .
The number 25 in base 10 equals
2101+5100 ,
so that the
digits representing this number are
d0()=5 ,
d1=2 , and all other
dk equal zero. This same number in
binary (base 2) equals 11001(
124+123+022+021+120 )and 19 in hexadecimal (base 16). Fractions between zero and
one are represented the same way.
[Math Processing Error]∞-1dkbk
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.