REVIEW - Numerical Methods for DSP Systems in C


Numerical Methods for DSP Systems in C


Don Morgan




Wiley (1997)




Francis Glassborow


April 1998



There is an awful lot of maths and not a lot of code. As I am far from being an expert on Digital Signal Processing I am going to skip that aspect of the book by issuing an invitation to any reader who specialises in that area to review this book from that viewpoint (just volunteer and I will send you the review copy unless someone else has beaten you to it.)

The choice of C (supported by some assembler level programming) seems reasonable to me, after all C was designed as a systems language. So let me examine some of the author's code. On page 59 I find the following (after some pre-processor directives and the definition of A as a 32 by 32

array of

void main() {  but 	int i, j; 	static n=4; 	double a[11][21]; 	void ge(); 		{ 			for(j=0; j<2*n; j++) { 				for (i=0; iI will stop there because I think this is enough to scare any self  respecting programmer.

Ignore the return type of main() as the code calls exit() to terminate. But what is the purpose of that

. Surely the writer does not intend to call
recursively? No he does not. I think that
because I think he wants to produce a manifest constant.

Next, why the dimensions of

? I think, after careful study, that his intention is to ignore the zeroeth column and row and have an array with a two to one ratio between rows and columns. But what else is significant? That is why a 10 by 20 array? And so the questions mount. The code is completely incomprehensible. I know what every line does but have absolutely no idea as to how they are related.

Then we have that archaic declaration of a function inside the body of

. A complete waste because its first use later in the code will do just as well. A prototype out front (and a meaningful name) would be much more use.

How about that nested block on the next line? What does the writer think it does? Of course it actually does nothing.

I hope the author's knowledge of DSPs and numerical methods is of a higher standard because the book does not pass muster on the coding side.

Book cover image courtesy of Open Library.