If you don't know anything about Haskell, I would suggest checking out www.haskell.org.

Current development snapshot: | haskelldsp-snapshot.tar.gz |

The SourceForge project page is here.

Documentation produced by Haddock can be found here. Source code can be browsed through this interface. The index is here.

rb-j's IIR Cookbook is a literate Haskell file, and is not in the above documentation. Peruse the file to see what is available.

In most cases the code is well documented. References are given and naming conventions have been retained where possible.

Keep in mind that these are works in progress. The interfaces may change at any time.

I have tested these routines, but not extensively. I am working on some example applications.

Algorithms are taken from the following. Check the source for details.

- Cormen, Leiserson, and Rivest,
*Introduction to Algorithms* - Crochiere and Rabiner,
*Multirate Digital Signal Processing* - Golub and van Loan,
*Matrix Computations*, 2nd ed. - Hamming,
*Digital Filters* - Hogenauer, "An Economical Class of Digital Filters for Decimation and Interpolation"
- Kay,
*Modern Spectral Estimation* - Kootsookos, "A Review of the Frequency Estimation and Tracking Problems"
- Lim and Oppenheim, eds.,
*Advanced Topics in Signal Processing* - Lyons,
*Understanding Digital Signal Processing* - Niemitalo, "Polynomial Interpolators for High-Quality Resampling of Oversampled Audio"
- Oppenheim and Schafer,
*Discrete-Time Signal Processing* - Papadimitriou and Steiglitz,
*Combinitorial Optimization: Algorithms and Complexity* - Parks and Burrus,
*Digital Filter Design* - Press, et al.,
*Numerical Recipes in C* - Proakis and Manolakis,
*Digital Signal Processing*, 3rd ed. - Quinn and Hannan,
*The Estimation and Tracking of Frequency* - Rabiner and Gold,
*Theory and Application of Digital Signal Processing* - Soliman and Srinath,
*Continuous and Discrete Signals and Systems*

The code is released under the GNU General Public License. If this is a problem, let me know.

Didn't find what you were looking for? Let me know. I probably have stuff in the pipeline that isn't listed here. Or, if you can give me a reference, I can see what I can do.

All questions, comments, bug reports, flames, and suggestions should be directed to Matt Donadio. Send him an email if you find any of this useful, or if you want updates on changes and/or additions.

FFTW | FFTW is a FFT library with bindings for C, Fortran, and Java. The most interesting thing about it is the actual FFT code is automagically generated by a OCaml program. The code also adapts itself to a particular machine, and computes the FFT recursively through codlets. On top of that, it is pretty much the fastest FFT library out there. |

Mersenne Twist PRNG | The Mersenne Twist is probably the best Pseudo Random Noise Generator available. A PRNG with a period of (at least) 2^19937-1 and a 623-dimensional equidistribution property is pretty amazing. |

PARI-GP | PARI-GP is a software package for computer aided number theory. I used it to verify the results of the polynomial based functions and for other symbolic shenanigans. |

Last modified: Sat May 31 09:58:22 EDT 2003