QUICK REFERENCE MANUAL

Table of Contents

To know what a macro does exactly and how it should be connected, check its online help (Alt+H) or appropriate sections in the user's manual. The macros requiring internal parameters to be set may be opened by double-clicking on them.

TIP : Enter a keyword or a module name in the Text Search box of your browser to locate all the items containing this keyword.

 

LIBRARY FRONT PANEL : General menu and common operations
INPUTS : Generating numbers and signals
OUTPUTS : Viewing data
CHARACT : Handling character strings
FILES : Reading and writing data
ELEMENTARY OPERATIONS : transforming numbers
VARIABLE CHANGES : handling variables and signal media
COMPLEX : Complex numbers and Fourier Transforms
LINEAR ALGEBRA : Matrix operations and eigenvectors
PROCESSING TOOLS : transforming signals
UTILITIES : Mouse interfaces, time operations and custom libraries
MOUSE INTERFACES
OPERATIONS ON TIME
ADDING A LIBRARY
<-> Directory : Interfacing external routine, defining formulas and batch scripts

 

Quick Reference Manual

 

LIBRARY FRONT PANEL : General menu and common operations

 

Module name

Function

Image

Image window. Allows to build user-friendly interfaces from a MUSTIG program, by sliding elements (macros, graphs, graphical windows, alphanumerical results, text, etc) into it.

?

General help file about MUSTIG

>

Maximum of two inputs

<

Minimum of two inputs

+

Adds two inputs (also concatenates two character strings)

-

Subtracts two inputs

x

Multiplies two inputs

/

Divides two inputs

/t

Creates a variable named /t of specified length. The name can be change directly from the front panel.

Var/t

Creates a variable named /t with specified characteristics (sample rate, length, origin, etc.)

Inputs

Directory (double-click to open). Contains macros for generating numbers and signals.

Outputs

Directory (double-click to open). Contains macros for viewing numbers or signals (Either 1D, 2D or more), and elementary drawing modules for creating custom displays macros.

Charact

Directory (double-click to open). Contains macros for handling character strings.

Files

Directory (double-click to open). Contains macros for reading and writing files of all kinds (binary, ASCII, custom).

Elementary Operations

Directory (double-click to open). Contains macros for carrying out simple operations on numbers : trigonometry, integer precision limiting, mirror, delay, statistical operations, derivative, logical operations, ...

Jumps

Master and slave jump modules. Allow to transmit results to macros without a wire.

Variable changes

Directory (double-click to open). Contains macros for handling signal media : changing the attributes of a variable, cutting a signal, over- and under-sampling, multiplexing, defining dynamic variables, finding boundaries, etc...

Complex

Directory (double-click to open). Contains macros for handling complex numbers and calculating Fourier Transforms.

Clustering

Clustering and de-clustering modules. Allow to gather several wires into a single one to lighten the graph, and to separate the grouped wires back when necessary.

Linear Algebra

Directory (double-click to open). Contains macros for calculating inverses of matrices, QRP and SVD decompositions, eigenvalues and eigenvectors, etc.

Processing tools

Specific tools : filters, convolution, Hilbert Transform, weighting windows, polynomial adjustment, etc.

Utilities

Directory (double-click to open). Contains macros for creating mouse-sensitive interfaces (check boxes, etc), handling date and time and creating custom libraries.

<->

Directory (double-click to open). Contains macros for interfacing external programs (C, Fortran) with Mustig, creating Batch processing scripts, writing formulas, ...

Compat v4.0

The modules inside this box are there to ensure compatibility with previous MUSTIG versions. They should be used any more.

 

INPUTS Directory : Generating numbers and signals

 

Module name

Function

Val

Numerical input module (scalars or vectors)

PI

PI constant

dPI

Double-precision PI constant

Noise/t

Generates a gaussian white noise of variance 1 according to variable /t (modifiable).

Gate/t

Generates a gate signal

Ramp/t

Generates a ramp signal between two values

Sine/t

Generates a Sine wave

Dirac/t

Generates a Dirac (1 for n=0, 0 for n<>0)

Triangle/t

Generates a triangular signal

xGate/t

Multiplies a signal by a gate

Time Base/t

Generates a relative time base (ramp between 0 and 1)

Base Vector/t

Generates a ramp

Matrix input/li/co

Allows to define a matrix

Matrix/li/co

Allows to define a small matrix

Square_p/t

Generates a periodic square wave

Random

Random seed for building random signal

Triangle_p/t

Generates a periodic triangular wave

Gauss

Changes a random seed into another random number, according to a gaussian law

Indices/t

Generates a ramp from 0 to the length of the signal minus 1

FMSine/t

Generates a frequency-modulated wave

2D Noise/t/n

Generates a 2D noise. Used for generating several realizations of a noise, /t being the variable according to which the noise is built, and /n being the number of the realization.

Uniform

Changes a random seed into another random number, according to a uniform law

 

OUTPUTS Directory : Viewing data

 

Module name

Function

???????????

General purpose alphanumerical display module

PrintMat/li/co

Displays a matrix

ForMat/li/co

Displays a matrix (formatted)

?/t

Displays a set of numbers in a separate window with scroll bars

PrintMatC/li/co

Displays a complex matrix

Poles&Zeros drawing

Displays a complex in the unit circle

Read+Draw/t

Read and draws a long 1D file

View/t

Displays a 1D signal (vector)

View_1D/t

Displays a 1D signal. Basic module : use View/t instead to draw vectors.

View-Zoom/t

Interactive zoom : displays a 1D signals and allows several levels of zoom

ViewC/t

Displays a complex vector

XY Drawing/t

Displays two signals X(t) and Y(t) as a cloud of points

View2C/t

Displays two signals (superimposed)

"Wave form" view/t

Displays very large 1D signals

Histogram

Calculates and displays histograms

2D

Macros for displaying matrices and clusters of 1D signals depending on another variable

View_2D_n/t/x

Displays 2D signals (matrices or clusters of 1D signals)

View_2D_N/t/x

Displays 2D signals (matrices or large clusters)

View2DcolorZoom/t/x

Displays a matrix in false colors and allows multiple zooms

View3D/t/x

Displays a matrix in 3D

=

Calculates without displaying anything

Real time

Macros for displaying infinite or finite signals, either 2D (blocks) or 1D.

Sonogram view/t/x

Displays a series of 1D blocks in false color as a scroll

Streaming view/t/x

Displays a series of 1D blocks with a partial scroll

Animated view/t/x

Displays a series of 1D blocks as an animated curve

Sliding view/x

Displays a signal as a scrolling curve

Elementary drawings

Elementary modules for creating custom viewing macros, or modifying existing ones

Rect

Draws a rectangle

Line

Draws a line

Cross

Draws a cross

Triangle

Draws a triangular surface

??????????????

Writes a number in a graphical plane

c

Generates a graphical window (or plane)

BitMap/u/v

Draws a 2D signal

Last

Flushes the waiting outputs and tests the user interrupt

xN/u

Divides a graphical plane horizontally

yN/u

Divides a graphical plane vertically

/4

Divides a graphical plane into 4 sub-planes

4 Curves

Divides a graphical plane into 4 sub-planes

s_Rectangle

Restricts a graphical plane to a rectangular part

Rect->Square

Transforms a rectangular graphical plane into a square one

Reduce curve

Reduces a graphical plane by 10 pixels

R->yyxx

Gives the position of a graphical plane

Reticule

Inserts a mouse-sensitive reticule into a graphical plane

ValVar/t

Vector of the indices of a variable

H_Reticule

Inserts a horizontal mouse-sensitive reticule (scroll bar) into a graphical plane

V_Reticule

Inserts a vertical mouse-sensitive reticule (scroll bar) into a graphical plane

Reticule2D

Inserts a rectangular mouse-sensitive reticule into a graphical plane

Back Color

Sets the background color of a graphical plane

Over

Creates two graphical planes from one

Saved foreground

Memorizes the graphical plane

Superimpose/t

Creates a vector of superimposed graphical planes

Scroll

Scrolls a graphical plane

Animated scroll

Scrolls a graphical plane and flushed the outputs

Slide/t

Creates a vector of scrolled graphical planes

 

CHARACT Directory : Handling character strings

 

Module name

Function

Convert

Converts a character string into a value

Format

Converts a value into a character string

Read_field

Reads a string from a file or a larger string

Character string input

Char

Converts an ASCII integer into the corresponding character

End line

Adds a carriage return

bits

Converts an integer into a bit string

VarName/t

Returns the name of a variable

Nbytes?

Returns the length of a string

+

Concatenates two strings (same module as the numerical adder)

=?

Tests whether two strings are equal

Fix

Returns the ASCII code of a character

Strings/nc

Transforms a string made of several lines into a vector of one-line strings

 

FILES Directory : Reading and writing data

 

Module name

Function

Read/t

Reads a 1D binary file

Read_2D/t/x

Reads a 2D binary file

Read_blocks/t/x

Reads a 2D binary file

Write/t

Writes a 1D binary file

Write 2D/t.x

Writes a 2D binary file

Base modules

Read file

Opens a file to read

Read_i1/t

Reads 1-byte integer data

Read_i2/t

Reads 2-byte integer data

Read_i4/t

Reads 4-byte integer data

Read_ci4/t

Reads 4-byte complex integer data

Read_c8/t

Reads 8-byte complex data

Read_r4/t

Reads 4-byte real data

Read_r8/t

Reads 8-byte real data

Read_field

Read a field from a file or a character string

Nbytes?

Returns the length (in bytes) of a file

Write file

Opens a file in write format

Write/t

Writes data

PermuteBytes

Permutes Most and Less Significant Bytes (to transfer data from Unix to PC and conversely)

Read cmplx I2/f

Reads a 2-byte complex integer file

Cmplx I2 write/f

Writes a 2-byte complex integer file

ASCII Read/li/co

Reads an ASCII file (skips header and calculates the number of columns & lines automatically)

Write ASCII

Writes an ASCII file

read part 2D/t/x

Reads a 2D file partially

 

ELEMENTARY OPERATIONS Directory : transforming numbers

 

Module name

Function

Log

Neperian logarithm

Log10

logarithm

Exp

Exponential

Exp10

Exponential

Expi

Complex exponential

+1

Adds 1

-1

Subtracts 1

-

Calculates the opposite

x2

Multiplies by 2

/2

Divides by 2

||

Calculates the modulus

||2

Calculates the squared modulus

sqrt

Calculates the square root

Sin

Calculates the sine

Cos

Calculates the cosine

Tan

Calculates the tangent

Pow

Calculates the power of two numbers

Mirror/t

Mirrors a signal (reverts the samples)

ASin

Calculates the arcsine

ACos

Calculates the arccosine

ATan

Calculates the arctangent

ATan2

Calculates the arctangent of a fraction

Ceil

Rounds to the nearest larger integer

Fix1

Converts into 1-byte integer

Fix2

Converts into 2-byte integer

Fix

Converts into 4-byte integer

Float

Converts into 4-byte real

Float8

Converts into 8-byte (double precision) real

usFloat

Converts unsigned integer into 4-byte real

Delay/t

Delays a signal by one sample

z-1

Delays a signal by one sample

Advance/t

Advances a signal by one sample

=

Intermediate connector required in some configurations

Round to 2**n

Rounds to the nearest power of 2

Sum/t

Calculates the sum of the samples of a vector

Max/t

Returns the maximum sample of a vector

Min/t

Returns the minimum sample of a vector

Min(>0)/t

Returns the minimum nonzero sample of a vector

m /t

Calculates the arithmetical average of the samples of a vector

sigma/t

Calculates the variance of the samples of a vector

Prod/t

Calculates the product of the samples of a vector

./t

Calculates the scalar product of two vectors

Make even

Rounds to the nearest even larger integer

Integration/t

Estimates the numerical integration of a vector

Derivative/t

Estimates the numerical derivative of a vector

d /h

Delay line

Modulo

Calculates the modulo of two numbers

dB

Converts to decibels : 10*Log10(data)

Time

Returns the time ins seconds since Jan. 01, 1970

AND

Logical AND

OR

Logical OR

XOR

Logical XOR

NOT

Arithmetical NOT

l_NOT

Logical NOT

shift

Shift the bits of a integer (left or right)

>?

tests whether an input is larger than the other

=?

tests whether two inputs are equal

:-

Switches between two results, according to a integer ( non dynamic : both results must have the same type and both are systematically calculated)

Alarm

Displays an alarm message if an integer is nonzero

 

VARIABLE CHANGES Directory : handling variables and signal media

 

Module name

Function

N/t

Sets the length of a variable

N?/t

Returns the length of a variable

Pitch/t

Sets the sample period of a signal

Pitch?/t

Returns the sample period of a signal

Orig/t

Sets the origin of a signal

Orig?/t

Returns the origin of a signal

Dual/f

Sets the dual attribute of a signal

Dual?/f

Returns the dual attribute of a signal

Half/f

Sets the half attribute of a signal

Half?/f

Returns the half attribute of a signal

OrigDual/f

Sets the Dual Origin attribute of a signal

OrigDual?/f

Returns the Dual Origin attribute of a signal

Var?/t

Displays the attributes of a variable

Adjust var/t

Adjusts the attributes of a variables according to those of another variable

First/u

Extracts the first sample from a signal

ChVar/u/v

Changes the name of a variable

Circ shift/t

Shifts a signal circularly

Info

Displays global info about the variables carried by a wire (names, attributes, type of data)

Last/u

Extracts the last sample from a signal

Cut/u

Cuts a sample from a vector at a given index

Undersampling/t

Undersamples a signal

Sample/t

Asynchronous undersampling

UNDER_S/t

Asynchronous undersampling

Split/t/b

Cuts a vector into blocks

Merge/t/b

Merges blocks into a vector

Multiplex/t/p

Mixes a cluster of signals into a single signal

Demultiplex/t/p

de-interlace multiplexed signals

Part/t

Extracts a part of the signal (between two indices)

Part_shift/t

Extracts a part of the signal without changing its origin

Part_v/t

Extracts a part of the signal (between two dates)

List/h

Creates a small vector (4 samples max) from separate values

I->V/t

Converts indices into "dates"

V->I/t

Converts "dates" into indices

REAL TIME/t

Processes the variable as if it was infinite

Var_dyna/t

Defines a dynamic variable (its length may depend on another variable)

Load_val/t

Changes a sample in a vector

=

Increases the dimension of the signal

Oversample_0/t

Oversampling (inserts zeros)

Oversample_i/t

Oversampling (sample and hold)

Oversample_l/t

Oversampling (linear interpolation)

Operations on vectors

Pos global min/t

Returns the index, date and value of the minimum

Pos global max/t

Returns the index, date and value of the maximum

Pos local min/t

Returns the index, date and value of the local minimum

Pos local max/t

Returns the index, date and value of the local maximum

Ordering/t

Orders the sample of the vector

Select/t/t'

Selects samples form a vector according to a boolean conditioning vector

SlidingVect./t/r

Creates a set of blocks by sliding a window along a vector, sample by sample

SlidingVect.inv./t/r

Creates a set of blocks by sliding a window along a mirrored vector, sample by sample

SlidingVect.N/t/r

Creates a set of blocks by sliding a window along a vector

Delay bk/t/b

Delay operator for 2D signals made of data blocks (ensures the continuity from one block to another)

Split_double/t/b

Cuts a vector into blocks and doubles the length by adding zeros

Split_overlap/t/b

Cuts a vector into blocks and overlaps

Overlap/t/b

Overlaps a set of non-overlapping blocks

Overlap 2/t/b

Overlaps by half size a set of non-overlapping blocks

Merge_overlap/t/b

Merges, keeping only a limited number of samples before merging

Second half/t

Extracts the second half of a signal

Concatenate/t

Concatenates two vectors

Remove first point/t

Removes first sample

Remove last point/t

Removes last sample

Double+symmetry/t

Doubles the length of a vector by symmetry

Double half/t

Doubles, symmetrizes and removes first and last samples (e.g. to overcome the symmetry of the Fourier Transform of a real signal)

Double 0/t

Doubles the length by padding zeros

 

COMPLEX Directory : Complex numbers and Fourier Transforms

 

Module name

Function

Re

Real part of the input complex number

Im

Imaginary part of the input complex number

Cplx

Creates a complex from the real and imaginary parts

Cplx

Creates a complex with null imaginary part

FT/t/f

Fast Fourier Transform - Changes variable /t into variable /f with proper characteristics - Requires the length of the signal to be a power of two

IFT/f/t

Inverse Fast Fourier Transform - Changes variable /f into variable /t with proper characteristics - Requires the length of the signal to be a power of two plus one

MoPh

Changes from (Real, Imaginary) to (Modulus, phase) representation of complex numbers : the real part becomes the modulus, the imaginary part becomes the phase of the input complex number.

ReIm

Changes from (Modulus, phase) to (Real, Imaginary) representation of complex numbers

CONJUG

Calculates the complex conjugate of a complex number

Real DFT/t/f

Discrete Fourier Transform of a real signal - Does not require the length of the signal to be a power of two, but slower than FT.

Real IDFT/f/t

Inverse Discrete Fourier Transform - Does not require the length of the signal to be a power of two plus one, but slower than IFT.

Complex DFT/t/f

Discrete Fourier Transform of a complex signal - Does not require the length of the signal to be a power of two, but slower than FT.

Complex IDFT/f/t

Inverse Discrete Fourier Transform (complex signal) - Does not require the length of the signal to be a power of two plus one, but slower than IFT.

 

LINEAR ALGEBRA Directory : Matrix operations and eigenvectors

 

Module name

Function

INVERS/ra/rd

Matrix inversion

SolTInf/ra/rd

Solves a lower triangular system

SolTSup/ra/rd

Solves an upper triangular system

Rcondi/ra/rd

Estimates the conditioning of a matrix

Determ/ra/rd

Estimates the determinant of a matrix

Roots/ra/rc

Estimates the roots of a polynomial

EigenVV/ra/rd

Estimates the eigenvalues and eigenvectors of a matrix

RESOLV/ra/rd

Solves a system of equations

Cholesky/ra/rd

Cholesky LLH decomposition of a matrix

SolQR/ra/rd

Solves an overdimensioned system of equations

QR/ra/ra1/rd

QR matrix decomposition

QRP/ra/ra1/rd1/rd

QR decomposition with pivot

SVD/ra/rb/rc/rd

Singular value matrix decomposition

Matrix transp./li/co

Calculates the transpose of a matrix

Matrix mult./li/co

Multiplies two matrices

 

PROCESSING TOOLS Directory : transforming signals

 

Module name

Function

Weighting windows

Used for spectral estimation

Hanning/t

Hanning weighting function

Hamming/t

Hamming weighting function

Blackman/t

Blackman weighting function

Bartlett/t

Bartlett weighting function

Bartlett 4t/t

Bartlett 4T weighting function

Calc. Histogram/t/h

Calculates an histogram

Linear adjustement/t

Linear fit

Polynomial adjustment/t/coef

Polynomial fit

Zeros/t/zero

Zero crossing estimation (by linear interpolation)

TH/t

Hilbert Transform (quadratic signal)

Envelope/t

Envelope calculation (using Hilbert Transform)

Convolution/t

Convolution (calculated in the frequency domain)

Correlation/t

Correlation (calculated in the frequency domain)

Filtering by parts/t/b

Filters a signal previously split into blocks

Order 1 Filter/t

First order recursive filtering (Infinite Impulse Response IIR filter)

FIR Filter/t

Finite Impulse Response - Moving Average - filter

Spectrum/t/b/f

Calculates the averaged spectrum of a signal

 

UTILITIES Directory : Mouse interfaces, time operations and custom libraries

MOUSE INTERFACES sub-directory

 Module name

Function

Check boxes

Check boxes 0-1

Contains a simple check box - Returns 0 or 1

Vectorial check boxes

Contains multiple check boxes - Return a vector of zeros and ones

Radio boxes

Contains multiple chech boxes (one choice only)

Vector->Scalar

Contains V_scalar modules for interactive selections from a list

Scrolls

Scalar scrolls

Contains horizontal and vertical mouse-sensitive scroll bars

Vector scrolls

Contains multiple horizontal and vertical mouse-sensitive scroll bars

Vector

Contains interactive vector input modules

Scalar increment

Contains horizontal and vertical mouse-sensitive scalar increment modules

?

Small help file

Choice

Switches between several calculations with the mouse

The attributes

Module

Allows to pass the output value(s) of the interface box

Labels

Defines labels on the front panel of the mouse interface box

Label size

Sets the size of the labels

Mini

Sets the minimum output value - default = 0

Maxi

Sets the maximum output value - default = 1

Up

Enables incrementing

Down

Enables decrementing

Horizontal

Displays the mouse interface box horizontally instead of vertically

Bin

Sets the step between two consecutive output values - default = 0.01

Spacing

Sets the vertical space between two labels

Vector length

Sets the length of the output vector

Save

Saves the last value when the module is initialized

Cross

Draws a cross in check boxes instead of a red square

Check

Draws a checkmark in check boxes instead of a red square

Blue

Draws a blue square in check boxes instead of a red square

Yellow

Draws a yellow square in check boxes instead of a red square

Green

Draws a green square in check boxes instead of a red square

Calculation at demand

Calculates the front panel of the mouse interface box only when the user right-clicks on it.

 

OPERATIONS ON TIME sub-directory

 Module name

Function

Time

Current time in seconds since the beginning of 1970

days seconds

Converts the seconds since 1970 into days since 1970 and seconds since beginning of day

Secs->Format

Converts a time in seconds into Hours:Minutes:Seconds

Y-d-b

Converts days since 1970 into year and days since beginning of year

H-M-S

Converts seconds since beginning of day into hours, minutes and seconds

Day

Converts days since 1970 into day of the week

M-D

Converts day since beginning of year into month and day

H-M-S format

Converts Hours, minutes and seconds into formatted time

Y-M-D format

Converts year, month and day into formatted date

Date-Time->seconds

Converts a date into seconds since 1970

 

ADDING A LIBRARY sub-directory

 Module name

Function

My lib.

Allows to add a custom library to an existing one

 

<-> Directory : Interfacing external routine, defining formulas and batch scripts

 

Module name

Function

Formula

Allows to enter a formula instead of building a graph

Extern

Interfaces an external C routine

Fortran

Interfaces an external Fortran routine

Batch

Allows to enter a Batch processing script

=/u

Rearranges data contiguously in memory to facilitate passing them to an external routine

=/u/v

Rearranges 2D data contiguously in memory to facilitate passing them to an external routine