Code

From Octave
Revision as of 19:17, 5 May 2015 by Aylons (talk | contribs) (Remove fixed-point references, as the package is not maintained anymore, is hard to find and the section give users false hope - as it did with me :~()
Jump to navigation Jump to search

Chaos and fractal contributions and toolboxes

Econometrics

Communications Toolbox

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

Data Formats

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

The following packages contain routines that can be made to work with Octave. Sometimes a little effort is required.

The following used to be available:

Other Software:

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

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

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.
  • 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
  • Dynare is a pre-processor and a collection of MATLAB or SCILAB routines which solve non--linear models with forward looking variables. Cannot find any insight about the license terms, but some code is derived work from GPL code, e.g., [1]. The code is adapted from Anders Holtsberg's matlab toolbox (stixbox).

Multivariate kernel density estimation

  • A google search for epanechnikov at the r-project.org site returns several R packages on this subject. They all should be GPL compatible. [2]
  • 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

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

octave:1> df = g_diff ( "sin(x)" , "x" )
df = cos(x)
octave:2> x = pi; eval ( df );
ans = -1

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

Non-free software

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/