Math and signal processing libraries

M

Thread Starter

Michael Griffin

I am looking for math and signal processing libraries to perform the following:

1) A reasonably good FFT
2) Digital filters
3) Matrix algebra routines
4) Various array math routines

I have been burned in the past by bug ridden binary only libraries for the above from reputable companies, so I would prefer a source code library (in 'C'). The item of most importance would be the FFT.

I have used "google" searches and have mainly turned up high end scientific libraries for supercomputers. My own needs are rather more modest. Any suggestions are appreciated, and any recommendations even more so.

************************
Michael Griffin
London, Ont. Canada
************************
 
G

Greg Goodman

I start my source code searches at Freshmeat.net. (I generally avoid searching at SourceForge; a huge percentage of their projects have no content, and anything they've got that's worthwhile is generally listed at Freshmeat.)

A Freshmeat search for FFT, filtered for stable releases of software written in 'C' turns up http://www.fftw.org/ - a C subroutine library for computing the Discrete Fourier Transform (DFT) in one or more dimensions, of both real and complex data, and of arbitrary input size.

Since that's not a large sample, I'd also check the Open Directory Project:
http://dmoz.org/Science/Math/Software/

There's a lot of stuff there, some of it maybe even useful.

Good hunting,

Greg Goodman
Chiron Consulting
 
C

Curt Wuollet

Have you looked at the Intel Image processing
libraries? Should be optimized FFT and higher
math stuff in there. Another place to look is
the GPL alternative to Matlab, It's name escapes
me at the moment. Maple? And look to the SAL site.
(Scientific Applications on Linux). And FFT stuff
should be available in the OSS media players
available. Most have a Spectrum Analyzer display.
These should be fast and low resource.

Regards

cww
 
M

Michael Griffin

The Scientific Applications on Linux (SAL) looks like pay dirt. There is a lot of stuff there; more than I can go over before sending this reply. I don't think math and signal processing functions should be too operating system dependent, so I can recommend this site to anyone, regardless of OS.

http://sal.kachinatech.com/index.shtml

Curt Wuollet mentioned a "GPL alternative to Matlab", but couldn't recall it's name. I found a reference to it in my search today, and thought it may be of interest to some people (particularly students on a budget) even though it really isn't what I was looking for. I may dig bits of code out of it though if necessary.

"GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language."

Thank you to Mr. Wuollet for both leads.

Another reply to my question referred me to something called "FFTW" for FFTs. I was already aware of this one, and it was the sort of "high end scientific libraries for supercomputers" I was trying to avoid. It sounds as if it would be useful on exceptionally large data sets in special applications, but the optimisation techniques it uses sound like more trouble than they are worth for smaller applications. The name by the way stands for the "Fastest Fourier Transform in the West", and they claim to have the fastest general purpose FFT available.


************************
Michael Griffin
London, Ont. Canada
************************
 
Curt Wuollet:
> Another place to look is the GPL alternative to Matlab, It's name
> escapes me at the moment. Maple?

Octave.

Package: octave2.0
Priority: extra
Section: math
Version: 2.0.16.92-7
Description: The GNU Octave language for numerical computations
Octave is a (mostly Matlab (R) compatible) high-level language, primarily
intended for numerical computations. It provides a convenient command-line
interface for solving linear and nonlinear problems numerically.

Octave uses some of the best and most respected numerical libraries as
balgen, dassl, eisspack, fftpack, lapack, linpack, minpack, odepack,
ranlib, slatec-fn and villad. Octave can be dynamically extended with
user-supplied C++ files.
Task: science

Jiri
--
Jiri Baum <[email protected]> http://www.csse.monash.edu.au/~jirib
MAT LinuxPLC project --- http://mat.sf.net --- Machine Automation Tools
 
C

Curt Wuollet

You're quite welcome Michael, It appears that the research that got me into those areas was the zenith of my career, I'm glad that it was useful to somebody. It appears that I'm doomed to running other people's software and fixing things for a while. Oh the horror!

Regards

cww
 
M

Michael Griffin

Replying again to my own original question, the GSL (GNU Scientific Library) appears to be most of what I was looking for. I found reference to it in several of the web sites which were pointed out to me. Thank you again to all who replied. The following two sites were particularly useful.

<http://www.mathtools.net> http://sal.kachinatech.com/index.shtml

As it turns out, I think I already *had* the GSL library, and just didn't realise what it was.

--

************************
Michael Griffin
London, Ont. Canada
************************
 
Top