1. Robert Massaioli
  2. dsp

Overview

HTTPS SSH
================================
= 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.