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
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, ... |
|
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 |