Latest revision |
Your text |
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== | | ==Ecnometrics== |
| *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 22: |
Line 21: |
| There are still functions missing or with limitations, and the documentation is not complete. You are therefore welcome to send patches. | | 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===
| | ==Various Communications-Related Octave Code== |
| *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]
| |
| *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/
| |
| | |
| ===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.
| |
| | |
| ===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]].
| | At an early development stage. [http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/extra/dicom/ octave-forge svn] |
| | | *Maintainer: Andy Buckle [http://sourceforge.net/sendmessage.php?touser=1760416contact] |
| ==Adding a quadl like integrator to octave==
| | *Currently worked on by: Kris Thielemans |
| | |
| 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
| | ===Supporting library=== |
| | [http://sourceforge.net/apps/mediawiki/gdcm/index.php?title=Main_Page GCDM]. I think the libraries must be built. Getting source with subversion. |
|
| |
|
| octave:1> df = g_diff ( "sin(x)" , "x" ) | | svn co https://gdcm.svn.sourceforge.net/svnroot/gdcm/branches/gdcm-2-0 |
| 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.
| | cmake and g++ are required. create a gdcmbin directory parallel to the gdcm-2-0 directory. Change to gdcmbin and then run cmake (Linux/cygwin). |
|
| |
|
| ===Numerical methods=== | | > mkdir gdcmbin |
| In some instances, Octave can give reasonable results using numerical methods
| | > ls |
| | gdcmbin gdcm-2-0 |
| | > cd gdcmbin |
| | > cmake -DGDCM_BUILD_SHARED_LIBS=ON ../gdcm-2-0/ |
|
| |
|
| *Octave supports numerical derivatives:
| | This creates a Makefile in your gdcmbin directory. You can easily edit cmake options with "make edit_cache", for example to build applications like gdcmdump. "make help" is also very useful. |
|
| |
|
| t = linspace(0,6,100); | | make install |
| y = sin(t);
| |
| dydt = diff(y) ./ diff(t)
| |
| *OctaveForge has other numerical derivative functions.
| |
|
| |
|
| ===Symbolic algebra systems===
| | On my system, I also had to add this to my ~/.bashrc. |
| Software other than Octave may be more useful for work involving symbolic manipulations
| |
|
| |
|
| Free software
| | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib |
| *Axiom: http://www.nongnu.org/axiom/
| |
|
| |
|
| *GiNaC/ginsh: http://www.ginac.de
| | Mingw32 is similar. Get openSSL: [http://www.slproweb.com/products/Win32OpenSSL.html Win32 Openssl v1.0.0a Light] |
|
| |
|
| *Maxima: http://maxima.sourceforge.net
| | cmake -G "MinGW Makefile" -DGDCM_BUILD_SHARED_LIBS=ON ..\gdcm-2-0 |
| | mingw32-make all |
|
| |
|
| *Yacas: http://yacas.sourceforge.net | | ===Features=== |
| | All of these still need work, but they exist, and are usable to some extent. |
| | *dicomdict (load different dict - file follows same format as Matlab's) |
| | *dicominfo (load metadata into octave struct. nasty bug in SQ loading) |
| | *dicomlookup (keyword <-> tag) |
| | *dicomread (load pixel data, 2D or 3D int types. Does not yield colormaps, yet.) |
| | *dicomwrite (only does some 2D int types, ATM. No metadata control, yet) |
|
| |
|
| Non-free software
| | ===Todo=== |
| *Maple: http://www.maplesoft.com
| |
|
| |
|
| *Reduce: http://www.uni-koeln.de/REDUCE | | *dicomanon |
| | *dicomuid |
|
| |
|
| Note that most of these systems (and Octave!) may be used from within TeXmacs http://www.texmacs.org
| | ===Questions=== |
| | I don't have a Matlab license available. I would like to make this package compatible with the dicom functions in Matlab's image processing toolbox, as far as possible. |
|
| |
|
| A list of some other scientific software is available at http://sal.kachinatech.com/
| | *Octave (and Matlab) stores images (y,x) and DICOM is intrinsically (x,y). Does Matlab transpose images when it loads them? |
| | **matlab reads the data from the dicom file as if it's a raw block of numbers (and then converts if necessary). Therefore, current Octave/dicom behaviour is compatible with matlab. |
| | *I would like people to try m-files that worked with Matlab to let me know of problems. |
| | *(not necessarily) Matlab related: I need examples of odd DICOM files. I have plenty with complex metadata, but I need some with unusual images. |
| | **More than one sample per pixel |
| | **Colour |
| | **Float types |
| | *DA (date) VR: does Matlab turn them into a string? |
| | *if the user supplies metadata (eg HighBit?, BitsStored?) that describe the type of the pixels and this is not in agreement with the type of the image matrix supplied, does Matlab |
| | **silently convert the image pixel type to match the metadata? |
| | **silently convert the metadata to match the pixel type? |
| | **error and do nothing? |
| | *What does dicominfo do when a tag is not in its dictionary: skip it or give error? I was wondering about turning the tag into a variable name, something like Tag_3243_0010. (Matlab 6.5 (2002): Private__3243_0010) |
| | *dicominfo: Items in sequences are not necessarily the same, so cannot be stored in arrays of structs. (Matlab 6.5 (2002): makes nested structs like dcm.RTDoseROISequence?.Item_1.DoseUnits?) |