The Foundations of Digital Signal Processing: Theory, Algorithms and Hardware Design

This is not a book about computer programming; dozens of excellent texts on this subject adorn the computing sections of most bookshops, so it is clear that for a complete story, many more pages are required than we can afford here. However, without some discussion of the matter, the whole subject of DSP becomes rather academic after all, DSP is only of real and practical value once the algorithms have been encoded in computer language form. In keeping with what was stated in the Preface, this book represents a single package solution, so here we are going to explore enough about high-level computer programming to enable us to perform even the most complex of DSP operations. What is a high-level computer language? The simple answer is that it is any language whose source code (what the programmer writes) needs to be compiled into binary form the object code before it can be executed by the processor. Thus, the source code is often represented as a series of quasi-English expressions that are relatively straightforward to understand from a human perspective. Such languages include BASIC, C, C++, FORTRAN, Pascal and Java, to name but a few. On a slightly more technical level, with high-level languages, a single instruction in the source code invariably corresponds to several or many instructions in the binary code. (In contrast, with low-level languages, there is a one-to-one correspondence between instructions in the source and object code. These languages...