Next: evalpoly() Up: Time Series Macros Help Previous: detrend()   Contents

# dpss()

Usage:
 ```dpss(N, W, K [,First]), N >= 1, 1 <= K <= N, 1 <= First <= N - K + 1 integers, 0 < W < .5 ```

Keywords: spectrum analysis, frequency domain
```dpss(N, W, K) computes Discrete Prolate Spheroidal Sequences (DPSS) with
half bandwidth W for orders 0, 1, ..., K-1.  The order L DPSS is the
L+1-th orthonormal eigenvector of a certain tridiagonal symmetric matrix
of order N (see below).  The value returned is N by K REAL matrix, with
the first K eigenvectors in columns 1, 2, ... K in order of decreasing
eigenvalue.

dpss(N, W, K, J) does the same, except the DPSS have orders J-1, J, ...,
J+K-2, that is they are eigenvectors J, J+1, ..., J+K-1 of the
tridiagonal matrix.  It returns a N by K REAL matrix, with eigenvectors
J, J+1,..., J+K-1 in columns 1, 2, ... K.

N, K and J must be integers satisfying N >= 1, 1 <= K <= N, 1 <= J <= N
- K + 1.

W must be a REAL scalar, 0 < W < 0.5.

Discrete Prolate Spheroidal Sequences (DPSS) are used as tapers (data
windows) in multi-taper spectrum estamation.  Their continuous Fourier
transforms are very highly concentrated in low frequencies with a very
sharp cutoff near frequencies W and -W cycles.  Because they are
eigenvectors of a symmetric matrix, they are orthogonal.

The diagonal and subdiagonal of the tridiagonal matrix are
d = cos(2*PI*W)*(.5*run(-N+1,N-1,2))^2
and
e = (run(N-1)*run(N-1,1))/2

The DPSS are computed by trideigen(d,e,J,J+K-1,values:F), followed by
certain sign changes.  See regular topic trideigen().
```

Gary Oehlert 2003-01-15