Code: Difference between revisions
(Update description of dynare) |
|||
(11 intermediate revisions by 8 users not shown) | |||
Line 2: | Line 2: | ||
*Francesco Potortì's fractal programs (Octave, GPL): http://fly.cnuce.cnr.it/software/#fractals | *Francesco Potortì's fractal programs (Octave, GPL): http://fly.cnuce.cnr.it/software/#fractals | ||
== | ==Econometrics== | ||
*Michael Creel's Econometrics notes and octave files: http://pareto.uab.es/mcreel/Econometrics/ (try the Econometrics/MyOctaveFiles directory too) | *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): | * Ludwig Kanzler's Econometric software (much of it adapted to Octave): | ||
**http://www2.gol.com/users/kanzler/index.htm#L.%20Kanzler:%20Software | **http://www2.gol.com/users/kanzler/index.htm#L.%20Kanzler:%20Software | ||
**Licence: "All rights reserved", Unfree for distributing modified versions | **Licence: "All rights reserved", Unfree for distributing modified versions | ||
*[http://www.dynare.org 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. | |||
==Communications Toolbox== | ==Communications Toolbox== | ||
Line 24: | Line 25: | ||
*Simulate multipath fading channels: http://zeidler.ucsd.edu/~sct/code/20060112_multipath/ | *Simulate multipath fading channels: http://zeidler.ucsd.edu/~sct/code/20060112_multipath/ | ||
*Signal processing package in [http://octave.sourceforge.net/signal/index.html OctaveForge] | *Signal processing package in [http://octave.sourceforge.net/signal/index.html OctaveForge] | ||
*Wavelets: | *Wavelets: LTFAT package in [http://octave.sourceforge.net/ltfat/ OctaveForge], see additional documentation in the [http://ltfat.sourceforge.net/doc/wavelets/index.php 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/ | * Peter Kovesi's functions for computer vision and image processing: http://www.csse.uwa.edu.au/~pk/Research/MatlabFns/ | ||
===Data Formats=== | ===Data Formats=== | ||
A collection of various signal data formats can be found [http://www.dpmi.tu-graz.ac.at/~schloegl/matlab/eeg/ here]. Many formats are supported by the [http://biosig.sf.net/ BIOSIG]-toolbox for Octave and Matlab. | A collection of various signal data formats can be found [http://www.dpmi.tu-graz.ac.at/~schloegl/matlab/eeg/ here]. Many formats are supported by the [http://biosig.sf.net/ BIOSIG]-toolbox for Octave and Matlab. | ||
===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). | |||
Other Software: | |||
*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)== | ==Digital communications in medicine (DICOM)== | ||
There is a DICOM package hosted on sourceforge: [[dicom | 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== | |||
http://mtt.sourceforge.net | |||
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. | |||
==Optimization== | |||
There is a variety of code in the octave-forge optimization package http://octave.sourceforge.net/optim/index.html | |||
==Parallelism == | |||
Operating Octave remotely and in parallel | |||
*distributed linear algebra from octave command line via [http://icl.cs.utk.edu/netsolve/index.html 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) | |||
=== | ==Statistics == | ||
===Statistics Functions=== | |||
*[ 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. | |||
* | *[http://www.statsci.org/matlab/statbox.html Statbox] has some regression functions which are not in Octave. Don't know license or Octave compatibility. | ||
*[http://pub.ist.ac.at/~schloegl/matlab/NaN/ NaN-toolbox] A statistic-toolbox for Octave and Matlab®. It handles data with and without MISSING VALUES. More background information is provided in [http://pub.ist.ac.at/~schloegl/matlab/NaN/README.TXT README] | |||
===Multivariate kernel density estimation=== | |||
*[http://www.ics.uci.edu/~ihler/code/kde.shtml Kernel Density Estimation Toolbox] LGPL | |||
*[http://www.maths.lth.se/matstat/wafo/documentation/wafodoc/wafo/kdetools/index.html 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. [http://www.google.com/search?hl=en&lr=&q=Epanechnikov+site%3Ar-project.org&btnG=Search] | |||
*[http://astrostatistics.psu.edu/statcodes/sc_density.html sc_density] | |||
*[http://www.cs.waikato.ac.nz/~ml/weka/ Weka] is written in Java, again, don't know how difficult... look for a file called LWL.java | |||
*[http://ltilib.sourceforge.net/doc/homepage/index.shtml LTI-Lib] is an object oriented library with algorithms and data structures frequently used in image processing and computer vision. LGPL | |||
==Symbolic== | |||
===Symbolic Manipulation=== | |||
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[1] 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 [http://octave.sourceforge.net/index/navsymbolic.html symbolic package]. Here is a http://wiki.octave.org/wiki.pl?OctaveForgeGNCIntro short tutorial] to get you started. | ||
===Numerical methods=== | |||
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 | |||
Free software | |||
*Axiom: http://www.nongnu.org/axiom/ | |||
*GiNaC/ginsh: http://www.ginac.de | |||
*Maxima: http://maxima.sourceforge.net | |||
*Yacas: http://yacas.sourceforge.net | |||
Non-free software | |||
http:// | *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/ | |||
Latest revision as of 21:30, 13 February 2018
Chaos and fractal contributions and toolboxes[edit]
- Francesco Potortì's fractal programs (Octave, GPL): http://fly.cnuce.cnr.it/software/#fractals
Econometrics[edit]
- 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):
- http://www2.gol.com/users/kanzler/index.htm#L.%20Kanzler:%20Software
- 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.
Communications Toolbox[edit]
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[edit]
- 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/
Data Formats[edit]
A collection of various signal data formats can be found here. Many formats are supported by the BIOSIG-toolbox for Octave and Matlab.
Speech and Signal Processing Links[edit]
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).
Other Software:
- 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)[edit]
There is a DICOM package hosted on sourceforge: more information.
Adding a quadl like integrator to octave[edit]
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[edit]
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.
Optimization[edit]
There is a variety of code in the octave-forge optimization package http://octave.sourceforge.net/optim/index.html
Parallelism[edit]
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)
Statistics[edit]
Statistics Functions[edit]
- [ 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[edit]
- 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. [1]
- 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
Symbolic[edit]
Symbolic Manipulation[edit]
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[edit]
There are two Octave interfaces to GiNaC[1] 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.
Numerical methods[edit]
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[edit]
Software other than Octave may be more useful for work involving symbolic manipulations
Free software
- Axiom: http://www.nongnu.org/axiom/
- GiNaC/ginsh: http://www.ginac.de
- Maxima: http://maxima.sourceforge.net
- Yacas: http://yacas.sourceforge.net
Non-free software
- 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/