Contents     Functions         Previous Next     PDF Index



Mode indicator functions and signal processing.


OUT =  ii_mmif('command',IN,'waitbar')
ci=iiplot; ii_mmif('command',ci,'CurveName')


This function supports all standard transformations of response datasets in particular mode indicator functions and signal processing.

With data stored in a iiplot figure, from the GUI, open the Stack tab of the property figure (accessible through iicom('CurtabStack') or by clicking on ) then select Compute ... in the context menu to transform a given dataset. This has the advantage of allowing interactive changes to signal processing results, see section 2.1.6.

From the command line, use ii_mmif('command',ci,Curve) (where ci is a handle referring to iiplot figure). Curve can be a string defining a curve name or a regular expression (beginning by #) defining a set of curves. One can also give some curve names as strings in a cell array. Without output argument, computed mmif is stored in the stack with name mmif(CurveName). Accepted command options are

 ci=iicom('curveload','gartid'); % load curve gartid example
 ii_mmif('mmif',ci,'Test');      % compute mmif of set named Test
 iicom('iixonly',{'mmif(Test)'});% display result  

When used with idcom, the Show ... context menu supports the automated computation of a number of transformations of ci.Stack{'Test'}. These mode indicator functions combine data from several input/output pairs of a MIMO transfer function in a single response that gives the user a visual indication of pole locations. You can then use the idcom e command to get a pole estimate.

With data structures not in iiplot use mmif=ii_mmif(command,Curve). Use command option -struct to obtain output as curve data structure.

 ci=iicom('curveload','gartid'); % load curve gartid example
 R1=ci.Stack{'Test'};            % get Test dataset in variable R1
 R2=ii_mmif('mmif-struct',R1);   % compute mmif


The Multivariate Mode Indicator Function (MMIF) (can also be called using iicom Show mmi) was introduced in [58]. Its introduction is motivated by the fact that, for a single mode mechanical model, the phase at resonance is close to -90o. For a set of transfer functions such that {y(s)}=[H(s)]{u(s)}, one thus considers the ratio of real part of the response to total response

{uT [Re(H)T Re(H)] {u}
{uT  Re([HH H]) {u}
{uT [B] {u}
{uT [A] {u}

For structures that are mostly elastic (with low damping), resonances are sharp and have properties similar to those of isolated modes. The MMIF (q) thus drops to zero.

Note that the real part is considered for force to displacement or acceleration, while for force to velocity the numerator is replaced by the norm of the imaginary part in order to maintain the property that resonances are associated to minima of the MMIF. A MMIF showing maxima indicates improper setting of idopt.DataType.

For system with more than one input (u is a vector rather than a scalar), one uses the extreme of q for all possible real valued u which are given by the solutions of the eigenvalue problem [A] {u} q + [B] {u} = 0.

The figure below shows a particular set for MMIF. The system has 3 inputs, so that there are 3 indicator functions. The resonances are clearly indicated by minima that are close to zero.

The second indicator function is particularly interesting to verify pole multiplicity. It presents a minimum when the system presents two closely spaced modes that are excited differently by the two inputs (this is the case near 1850 Hz in the figure). In this particular case, the two poles are sufficiently close to allow identification with a single pole with a modeshape multiplicity of 2 (see id_rm) or two close modes. More details about this example are given in [9].

This particular structure is not simply elastic (the FRFs combine elastic properties and sensor/actuator dynamics linked to piezoelectric patches used for the measurement). This is clearly visible by the fact that the first MIF does not go up to 1 between resonances (which does not happen for elastic structures).

At minima, the forces associated to the MMIF (eigenvector of [A] {u} q + [B] {u} = 0) tend to excite a single mode and are thus good candidates for force appropriation of this mode [59]. These forces are the second optional output argument ua.


The Complex Mode Indicator Function (CMIF) (can also be called using iicom Show cmmi, see [60] for a thorough discussion of CMIF uses), uses the fact that resonances of lightly damped systems mostly depend on a single pole. By computing, at each frequency point, the singular value decomposition of the response

[H(s)]NS × NA = [U]NS × NS [Σ]NS × NA [VH]NA × NA      (10.19)

one can pick the resonances of Σ and use U1,V1 as estimates of modal observability / controllability (modeshape / participation factor). The optional u, v outputs store the left/right singular vectors associated to each frequency point.


ii_mmif provides an alternate mode indicator function defined by

q(s) = 1− 

which has been historically used in force appropriation studies [59]. Its properties are similar to those of the MMIF except for the fact that it is not formulated for multiple inputs.

This criterion is supported by iiplot (use iicom Show amif).


Those functions are based upon the sum of data from amplitude of sensors for a given input. One can specify dimensions affected by the sum using command option -dim i (i is one ore more integers).

   S(s,k) = 

is the sum of the square of all sensor amplitude for each input.

   S(s,k) = 

is the sum of the square of the imaginary part of all sensors for each input.

   S(s,k) = 

is the sum of the amplitude of all sensors for each input.
Those functions are sometimes used as mode indicator functions and are thus supported by ii_mmif (you can also call them using iicom Show sumi for example).



Signal processing

Following commands are related to signal processing. Section section 2.1.6 illustrates the use of those functions through iiplot.

Integrate, DoubleInt, Vel, Acc


Computes the Discrete Fourier Transform of a time signal. FFT normalizes according to the sampling period whereas FFTShock normalizes according to the length of the signal (so that it is useful for shock signal analysis).
IFFT and IFFTShock are respectively the inverse transform.

Accepted command options are

R1=ii_mmif('FFT-struct -window "hanning" wmax 400',def);
% To allow interaction
ii_mmif('FFT-struct -window "hanning" fmax 400 -display',ci,'def');
iicom('CurtabStack') % Show the property figure


ii_mmif('BandPass fmin fmin fmax fmax') Performs a true band pass filtering (i.e. using fft, truncating frequencies and go back to time domain with ifft) between fmin and fmax frequencies.

OctGen, Octave

filt=ii_mmif('OctGen nth',f) computes filters to perform a 1/nth-octave analysis.

As many filters as frequencies at the 1/nth-octave of 1000 Hz in the range of f (vector of frequencies) are computed. Each band pass filter is associated to a frequency f0 and a bandwidth Bw depending on f0. Filters are computed so that their sum is almost equal to 1. Filter computed are, for each f0 :

   H(f,f0) =  
1+ (

With command option plot, filters are plotted.

ii_mmif('Octave nth',ci) performs the 1/nth octave analysis of active curve displayed in iiplot figure.

The 1/nth octave analysis consists in applying each filter on the dataset. Energy in each filtered signal is computed with 10log(S) (where S is the trapezium sum of the filtered signal, or of the square of the filtered signal if it contains complex or negative values) and associated to the center frequency of corresponding filter.

See also

iiplot, iicom, idopt, fe_sens

©1991-2017 by SDTools
Previous Up Next