function [CMIF] = jzcmif(H,W)
% CMIF - Complex Mode Indicator Function
% Inputs:
% H - full complex H matrix (Frequency Response Function) including at
% least 2 reference points measurements:
% [number of frequency points x number of DOF x number of reference points]
% W - frequency vector [Hz]
% Reference:
% D.J. Ewins, "Modal Testing: Theory, Practice and Application", p. 300
% Author: Jaroslaw Zwolski, Wroclaw University of Technology, Poland
[n,p,r]=size(H);
U=zeros(n,p,p);
S=zeros(n,p,r);
V=zeros(n,r,r);
CMIFx=zeros(n,r,r);
for ia=1:n
temp=zeros(p,r);
temp=squeeze(H(ia,1:p,1:r));
[ua,sa,va]=svd(temp);
U(ia,:,:)=ua;
S(ia,:,:)=sa;
V(ia,:,:)=va;
cmifa=sa'*sa;
CMIFx(ia,:,:)=cmifa;
end
CMIF=zeros(n,r);
for ia=1:n
CMIF(ia,1:r)=diag(squeeze(CMIFx(ia,:,:)));
end
semilogy(W,CMIF)