================================ = Matt's Haskell DSP Libraries = ================================ ------------------- -- The Hierarchy -- ------------------- Stat - Statistics functions Poly - Polynmial functions Matrix - Matrix routines DSP - Basic DSP routines DSP.FFT - Fast Fourier Transform library DSP.Signal - Signal generators DSP.FreqEst - Frequency estimation library DSP.FIR - FIR filter library DSP.IIR - IIR filter library DSP.SpecEst - Spectral estimation library DSP.Multirate - Multirate library ----------------- - Documentation - ----------------- Haddock generated documentation can be built from the Makefile and can be found in the doc/ subdirectory. ------------- - Compiling - ------------- A Makefile is included to compile everything. It works with GHC under FreeBSD. If you are on a slow machine and enable optimization and profiling, I suggest going to a movie. :) ---------------- - Applications - ---------------- FFTTest - An application for testing a range of FFT's. Executing 'FFTTest n1 n2' will test all transforms [n1..n2] using Ergun's method. FFTBench - An application for benchmarking the FFT code. Check out the source for details. IIRDemo - Simple demo the generates some IIR filters used in the examples from Oppenheim and Schafer. FreqDemo - Simple demonstration of frequency esimation routines. Article - Simple program demonstrating FIR filter sharpening. This program was used to generate the data for Matt Donadio, "Lost Knowledge Refound: Sharpened FIR Filters," IEEE Signal Processing Magazine, to appear. --------- - Notes - --------- As I write this, I don't remember if the DSP.Multirate library works. The DSP.FFT library works, but is hardly fast. ------------------ - Likely Changes - ------------------ (in no particular order...) Types, types, and more types. The IIR design functions will probably be changed to use pole/zero form rather than polynomials for intermediate results. The Uniform RNG functions will probably be changed to accept a list of randoms instead of generating them directly. The polynomial interpolator interface should be improved More specialization pragmas I may make the windowed FIR routines (Taps,Window) a bit more generic, and work from continuous time formulas and have a function that samples them. Check out the TODO file for more information. ----------- - Testbed - ----------- The code is being developed under FreeBSD-STABLE on an Intel Celeron box. GHC-5.04.3 is the compiler of choice, further work and testing will be done to ensure portability. I think everything works with Hugs, but I could have overlooked something. MT19937.hs doesn't compile with NHC because of an instance problem. -------- - Misc - -------- All questions, comments, bugs reports, flames, and suggestions should be directed to Matt Donadio (m.p.donadio@ieee.org). Send him an email if you find any of this useful, or if you want updates on changes and/or additions.