Optimum Signal Processing


Sophocles J. Orfanidis

ECE Department
Rutgers University
94 Brett Road
Piscataway, NJ 08854-8058

Tel: 732-445-5017
e-mail: orfanidi@ece.rutgers.edu


This revised edition, first published in 2007, is an unabridged and corrected republication of the second edition of this book published by McGraw-Hill Publishing Company, New York, NY, in 1988 (ISBN 0-07-047794-9), and also published earlier by Macmillan, Inc., New York, NY, 1988 (ISBN 0-02-389380-X). All copyrights to this work reverted to Sophocles J. Orfanidis in 1996.


Copyright Notices

Copyright © 1996-2007 by Sophocles J. Orfanidis, All Rights Reserved.

This book may be downloaded freely and printed for personal or educational use only, as long as the printed or photocopied pages are not altered in any way from the original PDF file posted on the book's web page.

The book's web page is www.ece.rutgers. edu/~orfanidi/osp2e, and links to this page may be placed on any web site.

No part of this book may be reproduced, altered in any way, or transmitted in any form for commercial, profit, sale, or marketing purposes.

The supplied MATLAB, C, and Fortran programs are for educational use only. They were designed to illustrate various concepts in this book. The author makes no warranties of any kind, expressed or implied, with regard to these programs or their documentation. The author shall not be liable in any event for incidental or consequential damages in connection with, or arising out of, the furnishing performance, or the use of these programs. These programs may be distributed freely, as long as they are not modified in any way.


MATLAB functions

MATLAB™ is a registered trademark of The MathWorks, Inc.

As far as possible, the MATLAB functions use the same input and output variables as the C and Fortran functions.

acext - autocorrelation sequence extension using Levinson recursion
acmat - construct autocorrelation Toeplitz matrix from autocorrelation lags
acsing - sinusoidal representation of singular autocorrelation matrices
aicmdl - dimension of signal subspace from AIC and MDL criteria
argen - generate a zero-mean segment of an AR process
arsp - compute AR spectrum of a prediction-error filter
bkwlev - backward Levinson recursion
burg - Burg's method of linear prediction
corr - sample cross-correlation Rxy of two vectors x and y
dpd - dynamic predictive deconvolution
dwf - sample processing algorithm of direct-form Wiener filter
dwf2 - direct-form Wiener filter using circular delay-line buffer
dwfilt - direct-form Wiener filtering of data
dwfilt2 - circular-buffer direct-form Wiener filtering of data
faest - FAEST algorithm for adaptive Wiener filter
firw - FIR Wiener filter design
flip - flip a column, a row, or both
frwlev - forward Levinson recursion
glwf - gradient lattice Wiener filter
latt - sample processing algorithm of analysis lattice filter
lattfilt - lattice filtering of a data vector
lattsect - sample processing algorithm of a single lattice section
lattsynth - sample processing algorithm of synthesis lattice filter
lev - Levinson-Durbin recursion
lms - LMS algorithm for adaptive Wiener filter
lpf - extract linear prediction filter from matrix L
lpg - extract reflection coefficients from matrix L
lwf - sample processing algorithm of lattice Wiener filter
lwfilt - lattice Wiener filtering of data
mgs - modified Gram-Schmidt adaptive array preprocessor
mgslms - modified Gram-Schmidt using LMS
minorm - minimum-norm noise subspace eigenvector
music - MUSIC spectrum computation
rlev - reverse of Levinson's algorithm
rls - RLS algorithm for adaptive linear combiner
rlsl - double/direct RLS lattice adaptive Wiener filter
rmusic - reduced-music eigenvector method
scatt - direct scattering problem
schur1 - Schur algorithm for linear prediction
schur2 - Schur algorithm for Cholesky factorization
snap - generate snapshot matrix for array problems
spike - least-squares spiking filter design
steering - construct steering matrix of multiple sinusoids/plane-waves
yw - Yule-Walker method of linear prediction