- 1 Chaos and fractal contributions and toolboxes
- 2 Econometrics
- 3 Communications Toolbox
- 4 Digital communications in medicine (DICOM)
- 5 Adding a quadl like integrator to octave
- 6 Model transformation tools
- 7 Optimization
- 8 Parallelism
- 9 Statistics
- 10 Symbolic
Chaos and fractal contributions and toolboxes
- Francesco Potortì's fractal programs (Octave, GPL): http://fly.cnuce.cnr.it/software/#fractals
- Michael Creel's Econometrics notes and octave files: http://pareto.uab.es/mcreel/Econometrics/ (try the Econometrics/MyOctaveFiles directory too)
- Ludwig Kanzler's Econometric software (much of it adapted to Octave):
- Licence: "All rights reserved", Unfree for distributing modified versions
- Dynare is a software platform for handling a wide class of economic models, in particular dynamic stochastic general equilibrium (DSGE) and overlapping generations (OLG) models. Licensed under GNU GPL (v3 or later). Consists of a pre-processor (in C++) and of a collection of Octave/Matlab routines.
OctaveForge now contains a fairly complete implementation of a Matlab R13 compatible communications toolbox http://octave.sourceforge.net/communications/index.html. This includes
- Random signal creation/analysis
- Source coding (Quantization, Compand)
- Block coding (BCH, Reed-Solomon)
- Modulations (QASK, PSK, etc)
- Galois fields of even order [i.e. GF(2^m) ]
With a recent version of the OctaveForge installed (version 20030602 or later), online help is available with the command
octave:1> comms info
There are still functions missing or with limitations, and the documentation is not complete. You are therefore welcome to send patches.
Various Communications-Related Octave Code
- Simulate multipath fading channels: http://zeidler.ucsd.edu/~sct/code/20060112_multipath/
- Signal processing package in OctaveForge
- Wavelets: LTFAT package in OctaveForge, see additional documentation in the LTFAT web page. Try also Wavelab developed by David Donoho et al. at http://www-stat.stanford.edu/~wavelab/. For more information, see Wavelab on Octave.
- Peter Kovesi's functions for computer vision and image processing: http://www.csse.uwa.edu.au/~pk/Research/MatlabFns/
Speech and Signal Processing Links
The following packages contain routines that can be made to work with Octave. Sometimes a little effort is required.
- OctaveForge contains a sizable collection of signal and image processing routines
- Alois Schloegl's Time series analysis toolbox is also available at OctaveForge
- Mike Brookes' Voice Box (http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html)
- University of Sheffield's Matlab Auditory and Speech Demos (http://www.dcs.shef.ac.uk/~martin/MAD/docs/mad.htm)
- Malcolm Slaney's Auditory Toolbox (http://rvl4.ecn.purdue.edu/~malcolm/interval/1998-010/)
- Philip Loizou's COLEA speech analysis toolbox (http://www.utdallas.edu/~loizou/speech/colea.htm)
- Levant Arslans's Speech Processing Toolbox (http://cslr.colorado.edu/software/rspl.html)
- John Hansen's Additive noise sources (http://cslr.colorado.edu/software/rspl.html)
- Dennis Brown's SPCtools (ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/tools/spctools) has code for AR and ARMA modelling, particularly in the spcline subdirectory (Note that the version at mathworks is slightly older).
- Steve Niu's AUDI (ftp://ftp.mathworks.com/pub/contrib/v4/systemid/audidemo.tar) and Arthur Jutan's recursivels (ftp://ftp.mathworks.com/pub/contrib/v4/control/recursivels.tar) for ARMA modelling. AUDI worked well enough for me with a bit of fiddling. Haven't tried recursivels.
- Peter Assmann's Track Draw (http://www.utdallas.edu/~assmann/TRACKDRAW/trackdraw.html) has code for a klatt synthesizer
- Time-Frequency Tool box (http://www-isis.enst.fr/Applications/tftb/iutsn.univ-nantes.fr/auger/tftb.html) from CNRS & Rice has code for AM/FM modulation amongst other cool stuff
- Christophe Couvreur's octave (ftp://ftp.mathworks.com/pub/contrib/v5/signal/octave.tar) has filterbank stuff. Of course the plotting doesn't work, but with a bit of fiddling, you can get, 1/3 octave and 1 octave filter banks to work.
- Mathworks signal processing contributions directories for Matlab 4 (http://www.mathworks.com/support/ftp/signalssv4.shtml) and Matlab 5 (http://www.mathworks.com/support/ftp/signalssv5.shtml)
- University of Vienna's Linear Time-Frequency Toolbox (http://www.univie.ac.at/nuhag-php/ltfat)
The following used to be available:
- Kuo, et. al.'s Speech Signal Processing and Recognition tools (SSPR). A number of the other tools are archived at the same site (http://www.eeng.dcu.ie/~speech5/matspeech.html).
- ESPS has been open sourced (BSD license) and is available at http://www.speech.kth.se/software/. Finally we will have a decent pitch tracker!
Digital communications in medicine (DICOM)
There is a DICOM package hosted on sourceforge: more information.
Adding a quadl like integrator to octave
quadl is an adaptive quadrature function available in MATLAB (from version 6 I think). It is very fast and accurate and surprisingly it's a small m-file. The algorithm is based on works by Prof. Walter Gander.
Prof. Gander has two m files in his web page http://www.inf.ethz.ch/personal/gander/ which implement his algorithm along with a paper describing the algorithm.
I have not delved deeply into the subject, but the adaptlobe.m function looks equivalent to quadl. Compatibility with MATLAB could be achieved by writing a small quadl wrapper function which simply calles adaptlobe, or by changing adabtlobe's name to quadl.
I have contacted Prof. Gander to allow for distribution of his m-files in octave-forge.
quadl, from the above source is now incorporated into octave-forge-2004-02-12.
Model transformation tools
A set of tools for modelling dynamic physical systems using the bond-graph methodology and transforming these models into representations suitable for analysis, control and simulation. These tools use, and generate m files for, GNU Octave.
There is a variety of code in the octave-forge optimization package http://octave.sourceforge.net/optim/index.html
Operating Octave remotely and in parallel
- distributed linear algebra from octave command line via GridSolve
- OctaveForge has a parallel octave, allowing remote commands and data transfer
- OctaveServer allows net connections to Octave
- MPI toolbox for Octave http://atc.ugr.es/javier-bin/mpitb (This is included in a live CD ParallelKnoppix http://pareto.uab.es/mcreel/ParallelKnoppix/ which you can use without installation or configuration)
- [ http://www.maths.lth.se/matstat/stixbox/ Stixbox] supports Octave. It has a variety of functions not available in octave/octave-forge such as bootstrap and jackknife estimators and a variety of qq plots. GPL.
- Statbox has some regression functions which are not in Octave. Don't know license or Octave compatibility.
- NaN-toolbox A statistic-toolbox for Octave and Matlab®. It handles data with and without MISSING VALUES. More background information is provided in README
Multivariate kernel density estimation
- wafo/kdetools GPL
- A google search for epanechnikov at the r-project.org site returns several R packages on this subject. They all should be GPL compatible. 
- Weka is written in Java, again, don't know how difficult... look for a file called LWL.java
- LTI-Lib is an object oriented library with algorithms and data structures frequently used in image processing and computer vision. LGPL
Octave is a matrix algebra tool, not a symbolic algebra tool, so it cannot perform symbolic operations, such as finding the derivative of sine(x) with respect to x
y = derivative('sin(x)','x'); # Not available in Octave
The below mentioned GiNaC will add symbolic functionality to octave.
Octave interfaces to GiNaC
There are two Octave interfaces to GiNaC available
- gino -- http://www.sourceforge.net/projects/mtt (download) provides an Octave interface to GiNaC via ginsh
octave:1> df = g_diff ( "sin(x)" , "x" ) df = cos(x) octave:2> x = pi; eval ( df ); ans = -1
- OctaveForge provides direct access to GiNaC in the symbolic package. Here is a http://wiki.octave.org/wiki.pl?OctaveForgeGNCIntro short tutorial] to get you started.
In some instances, Octave can give reasonable results using numerical methods
- Octave supports numerical derivatives:
t = linspace(0,6,100); y = sin(t); dydt = diff(y) ./ diff(t)
- OctaveForge has other numerical derivative functions.
Symbolic algebra systems
Software other than Octave may be more useful for work involving symbolic manipulations
- Axiom: http://www.nongnu.org/axiom/
- GiNaC/ginsh: http://www.ginac.de
- Maxima: http://maxima.sourceforge.net
- Yacas: http://yacas.sourceforge.net
- Maple: http://www.maplesoft.com
- Reduce: http://www.uni-koeln.de/REDUCE
Note that most of these systems (and Octave!) may be used from within TeXmacs http://www.texmacs.org
A list of some other scientific software is available at http://sal.kachinatech.com/