-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathintro.tex
227 lines (201 loc) · 10.8 KB
/
intro.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
% -*-LaTeX-*-
% The log below is the old log from when RCS was being used in
% conjunction with this.
%
% $Log: intro.tex,v $
% Revision 1.5 2007/11/25 02:46:08 stiber
% Revisions for Winter 2008, including updated roadmap and
% typographical conventions.
%
% Revision 1.4 2007/11/25 01:49:33 stiber
% Additional revisions for stand alone book for Spring 2007.
%
% Revision 1.3 2007/03/04 19:34:08 stiber
% Initial revision for stand-alone textbook.
%
% Revision 1.2 2004/03/29 19:46:22 stiber
% Updated for Spring 2004 and new textbook (DSP First).
%
% Revision 1.1 2004/02/19 00:20:54 stiber
% Initial revision
%
\chapter*{Preface}
\addcontentsline{toc}{chapter}{Preface}
\markboth{PREFACE}{}
As computers have become ubiquitous, they have also become more and
more embedded not only in the devices we own and use but in our
lives. As a result, computers become embedded in the physical world,
with their primary purpose being to detect and analyze happenings in
our world and to produce responses that affect that world. As
computing professionals, we need to understand how computers can
process information from the physical world as \emph{digital signals}:
multimedia (sound, images, video) and other measurements (in medical
instruments, cars, cell phones, eyeglasses, etc). This is why we have
chosen to coin the phrase ``Signal Computing''.
Digital signals place great demands on processing power, network
bandwidth, storage capacity, I/O speed, and software design. As a
result, signal computing is a great laboratory for exercising the full
range of knowledge of computer science.
In this book, you will learn how digital signals are captured,
represented, processed, communicated, and stored in computers. The
specific topics we will cover include: physical properties of the
source information (such as sound or images), devices for information
capture (microphones, cameras), digitization, compression, digital
signal representation (JPEG, MPEG), digital signal processing (DSP),
signal analysis and feature extraction via re-representation as
functions of frequency, and network communication. By the end of this
book, you should understand the problems and solutions facing signal
computing systems development in the areas of data structures and
algorithms, data analytics, feature extraction, information retrieval,
user interfaces, and communications.
While there certainly may be many opportunities for you to work in
signal computing, the value of this study extends far beyond. Studying
signal computing and its underlying mathematics directly exercises key
computer science abilities in areas like abstraction and
algorithmics. You will see that this book interleaves mathematical
topics with applications and algorithms. At each step of the way, we
take a representation of digital signals or operations on them that you
are familiar with, reach a concept in which it is awkward or difficult
to use, and then develop an alternative representation that simplifies
matters. This is exactly what computing professionals do in their
careers --- identify that a problem at hand can be represented by some
abstraction with known properties that can be manipulated by
well-understood algorithms. We hope that the journey you take through
the mathematical abstractions here will not only give you an important
set of tools to use later on, but will also help exercise your
fundamental ability to move from one representation to another.
Beyond your own personal professional capabilities, we hope that this
book will also give you a better understanding of the design process
that electrical engineers go through when they design the details of
signal processing systems, such as filters. Even if you do not go on
to build software components that perform signal processing, there is
a good chance that you will work on large systems that have DSP
components. We believe that it will be invaluable for you to
understand the basics of how such DSP components work and what your
electrical engineering colleagues are working on.
\section*{Objectives}
\addcontentsline{toc}{section}{Objectives}
By the end of this book, you should know:
\begin{itemize}
\item What physical signals are like in the ``real'' world and how
their properties affect how we perceive them.
\item How these signals are \emph{digitized} and the tradeoffs among
sampling speed, levels of quantization, file size, etc.
\item How to perform simple signal filtering to remove noise,
emphasize important features, etc. You should be well-prepared to
work with electrical engineers in the design of more advanced signal
processing systems.
\item How to carry out simple time-series analysis techniques to
analyze frequency and characterize unknown signals.
\item How multimedia file sizes can be reduced by compression, and the
tradeoffs among compression, processing overhead, and media quality.
\end{itemize}
\section*{Prerequisites}
\addcontentsline{toc}{section}{Prerequisites}
This book covers much of the mathematical foundations for
understanding signals and signal processing; however, it is assumed
that you are familiar with topics such as complex numbers,
trigonometry, derivatives, vectors, the basic idea of integrals,
infinite series, and basic physics (mass, acceleration, force,
etc). Figure~\ref{fg:roadmap} shows these prerequisites in the context
of this book's chapters.
\begin{figure}
\vspace{2in}
\centerline{\includegraphics[width=0.9\textwidth]{roadmap}}
\caption[Course conceptual road map]{Course conceptual road
map and background knowledge.\label{fg:roadmap}}
\end{figure}
Figure~\ref{fg:roadmap} also outlines how each chapter's concepts are
used by subsequent ones and what the major themes are. You'll notice
that there's not much in the way of programming indicated. While there
\emph{is} an expectation that you understand the basics of
computational complexity and can understand, appreciate, and analyze
algorithms, this is \emph{not} a programming book. Instead, this is a
book that makes concrete many of the previously abstract mathematical
concepts that you are familiar with. It shows how these concepts
relate to \emph{real} applications that produce tangible changes on
digital signals --- it connects \emph{mathematics} to \emph{bits}.
In the past, this book has been used in a wide range of signal
computing courses, from those that place little emphasis on
programming, to some that required an online, free tool known as Java
Digital Signal Processing (J-DSP), and in others that used C++ or the
Java Media Framework.
So, this book and the concepts within can be learned without any
explicit knowledge of low level programming in languages like C, C++,
or Java. However, we also provide problems for students that have
varying levels of programming expertise (for example, you may have
already taken an algorithms or data structures class). If you have
some programming expertise, we provide problems that use Matlab, and
we include some Matlab code on the textbook website to help get you
started. If you have more experience in programming, we provide
problems asking you to write small programs in your choice of a
``lower level'' language (such as C, C++, or Java).
\section*{About This Book}
\addcontentsline{toc}{section}{About This Book}
This book is divided into nine chapters. Chapters include self-test
questions and review exercises scattered throughout, so we suggest
that you go through all the material sequentially (or, at least, do
the self-test exercises in each section). Answers are provided at the
back of the book. Each chapter concludes with written or programming
assignments and pointers to additional readings.
\index{PDF} If you read the PDF version of this book, you will find
that it is extensively hyper-linked. This includes links from
exercises to their answers, links to resources on the web, and links
from the table of contents, list of figures, index, etc. to their
respective locations.
Rather than distribute this book via a traditional publishing model,
costing you money and likely netting us very little, we have decided
to make this book freely available for both students and
faculty. Moreover, we have opened the source material for re-use,
updating, and expansion via a Creative Commons Attribution-ShareAlike
4.0 International License. This not only benefits you, it also
benefits us by getting our work into more people's hands. You can
find the book's website at
\url{http://faculty.washington.edu/stiber/pubs/Signal-Computing/},
including a pointer to its source material on GitHub. If you find any
errors, make any changes, or find this book useful in your course or
your life, please email us at
\href{mailto:[email protected]}{[email protected]}, or send us a pull request.
\subsection*{Typographical Conventions}
\addcontentsline{toc}{section}{Typographical Conventions}
There are no real ``standards'' for much of the notation that is used
in digital signal processing; depending on which textbook you read,
you will encounter different typographical conventions. In this
textbook, we have chosen the following:
\begin{center}
\begin{tabular}{lp{5in}}
$j$ & $\sqrt{-1}$ \\
$t$ & continuous time; units typically seconds \\
$x(t)$ & a real-valued function of continuous time (physical signal) \\
$f$ & continuous frequency; units cycles/second or Hertz (Hz) \\
$T$ & an interval of time; often $T=1/f$, meaning the period of a
signal \\
$f_0$ & a particular frequency; subscript may vary depending on use \\
$\omega$ & continuous angular frequency; units radians/second \\
$\omega_0$ & a particular angular frequency; subscript may vary
depending on use \\
$\omega'$ & apparent (continuous angular) frequency, as a result of
aliasing \\
$n$ & discrete time or sample number; dimensionless, but you can
think of the units as being ``samples'' \\
$x[n]$ & a function of discrete time; may be real-valued (sampled
signal) or discrete valued (quantized/digital signal) \\
$\hat{f}$ & discrete frequency; units cycles/sample \\
$\hat{f}_0$ & a particular discrete frequency; subscript may vary
depending on use \\
$\hat{\omega}$ & discrete angular frequency; units radians/sample \\
$\hat{\omega}_0$ & a particular discrete angular frequency; subscript may vary
depending on use \\
\end{tabular}
\end{center}
\section*{Further Reading}
\addcontentsline{toc}{section}{Further Reading}
An excellent introduction to digital signal processing that is
targeted at beginning electrical engineering students is \textit{DSP
First: A Multimedia Approach}, by James H McClellan, Ronald
W. Schafer, and Mark A. Yoder (Prentice Hall, 1998). It is important
to note that that book's target is the design of low-level signal
processing components (i.e., filters) and more generally linear,
time-invariant systems, rather than the role such components play in
overall software systems.
% LocalWords: algorithmics