0
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 1 % CRB computes the inverse of the Fisher Matrix
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 3 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 4 % DESCRIPTION: CRB computes the inverse of the Fisher Matrix
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 5 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 6 % CALL: bs = crb(in,pl)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 7 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 8 % INPUTS: in - matrix objects with input signals to the system
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 9 % model - symbolic models containing the transfer function model
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 10 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 11 % pl - parameter list
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 12 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 13 % OUTPUTS: bs - covariance matrix AO
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 14 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 15 % <a href="matlab:utils.helper.displayMethodInfo('matrix', 'crb')">Parameters Description</a>
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 16 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 17 % VERSION: $Id: crb.m,v 1.17 2011/10/07 08:19:55 miquel Exp $
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 18 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 20
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 21 function varargout = crb(varargin)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 22
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 23 % Check if this is a call for parameters
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 24 if utils.helper.isinfocall(varargin{:})
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 25 varargout{1} = getInfo(varargin{3});
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 26 return
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 27 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 28
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 29 import utils.const.*
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 30 utils.helper.msg(msg.PROC3, 'running %s/%s', mfilename('class'), mfilename);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 31
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 32 % Method can not be used as a modifier
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 33 if nargout == 0
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 34 error('### crb cannot be used as a modifier. Please give an output variable.');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 35 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 36
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 37 % Collect input variable names
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 38 in_names = cell(size(varargin));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 39 for ii = 1:nargin,in_names{ii} = inputname(ii);end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 40
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 41 % Collect all AOs smodels and plists
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 42 [mtxs, mtxs_invars] = utils.helper.collect_objects(varargin(:), 'matrix', in_names);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 43 pl = utils.helper.collect_objects(varargin(:), 'plist', in_names);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 44
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 45 % Combine plists
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 46 pl = parse(pl, getDefaultPlist);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 47
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 48 % get params
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 49 params = find(pl,'FitParams');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 50 numparams = find(pl,'paramsValues');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 51 mdl = find(pl,'model');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 52 mtxns = find(pl,'noise');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 53 outModel = find(pl,'outModel');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 54 bmdl = find(pl,'built-in');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 55 f1 = find(pl,'f1');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 56 f2 = find(pl,'f2');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 57 pseudoinv = find(pl,'pinv');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 58 tol = find(pl,'tol');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 59 outNames = find(pl,'outNames');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 60 inNames = find(pl,'inNames');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 61
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 62 % Decide on a deep copy or a modify
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 63 in = copy(mtxs, nargout);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 64 n = copy(mtxns, nargout);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 65
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 66 % Get number of experiments
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 67 nexp = numel(in);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 68
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 69 % fft
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 70 fin = fft(in);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 71
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 72 % N should get before spliting, in order to convert correctly from psd to
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 73 % fft
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 74 N = length(fin(1).getObjectAtIndex(1).x);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 75
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 76 % Get rid of fft f =0, reduce frequency range if needed
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 77 if ~isempty(f1) && ~isempty(f2)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 78 fin = split(fin,plist('frequencies',[f1 f2]));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 79 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 80
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 81 FMall = zeros(numel(params),numel(params));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 82 % loop over experiments
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 83 for k = 1:nexp
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 84
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 85 utils.helper.msg(msg.IMPORTANT, sprintf('Analysis of experiment #%d',k), mfilename('class'), mfilename);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 86
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 87 if (((numel(n(1).objs)) == 1) && (numel(in(1).objs) == 1))
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 88
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 89 % use signal fft to get frequency vector.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 90 i1 = fin(k).getObjectAtIndex(1,1);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 91 freqs = i1.x;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 92
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 93 FisMat = utils.math.fisher_1x1(i1,n(k),mdl,params,numparams,freqs,N,pl,inNames,outNames);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 94 % store Fisher Matrix for this run
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 95 FM{k} = FisMat;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 96 % adding up
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 97 FMall = FMall + FisMat;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 98
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 99 elseif (((numel(n(1).objs)) == 2) && (numel(in(1).objs) == 2))
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 100 % use signal fft to get frequency vector. Take into account signal
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 101 % could be empty or set to zero
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 102 % 1st channel
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 103 if all(fin(k).getObjectAtIndex(1,1).y == 0) || isempty(fin(k).getObjectAtIndex(1,1).y)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 104 i1 = ao(plist('type','fsdata','xvals',0,'yvals',0));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 105 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 106 i1 = fin(k).getObjectAtIndex(1,1);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 107 freqs = i1.x;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 108 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 109 % 2nd channel
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 110 if all(fin(k).getObjectAtIndex(2,1).y == 0) || isempty(fin(k).getObjectAtIndex(2,1).y)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 111 i2 = ao(plist('type','fsdata','xvals',0,'yvals',0));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 112 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 113 i2 = fin(k).getObjectAtIndex(2,1);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 114 freqs = i2.x;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 115 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 116
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 117 FisMat = utils.math.fisher_2x2(i1,i2,n(k),mdl,params,numparams,freqs,N,pl,inNames,outNames);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 118 % store Fisher Matrix for this run
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 119 FM{k} = FisMat;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 120 % adding up
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 121 FMall = FMall + FisMat;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 122
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 123 elseif ((numel(n(1).objs) == 3) && (numel(in.objs) == 4) && ~isempty(outModel))
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 124 % this is only valid for the magnetic model, where we have 4 inputs
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 125 % (corresponding to the 4 conformator waveforms) and 3 outputs
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 126 % (corresponding to IFO.x12, IFO.eta1 and IFO.phi1). And there is a
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 127 % contribution of an outModel converting the conformator waveforms
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 128 % into forces and torques.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 129
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 130
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 131 % For other cases not implemented yet.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 132
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 133 % use signal fft to get frequency vector. Take into account signal
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 134 % could be empty or set to zero
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 135 % 1st channel
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 136 freqs = fin.getObjectAtIndex(1,1).x;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 137
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 138 for ii = 1:numel(n.objs)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 139 for jj = ii:numel(n.objs)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 140 % Compute psd
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 141 if (ii==jj)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 142 spec(ii,jj) = psd(n(k).getObjectAtIndex(ii), pl);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 143 S2(ii,jj) = interp(spec(ii,jj),plist('vertices',freqs,'method','linear'));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 144 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 145 spec(ii,jj) = cpsd(n(k).getObjectAtIndex(ii),n(k).getObjectAtIndex(jj),pl);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 146 S2(ii,jj) = interp(spec(ii,jj),plist('vertices',freqs,'method','linear'));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 147 S2(jj,ii) = conj(S2(ii,jj));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 148 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 149 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 150 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 151
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 152 S = matrix(S2,plist('shape',[numel(n.objs) numel(n.objs)]));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 153
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 154 % get some parameters used below
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 155 fs = S.getObjectAtIndex(1,1).fs;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 156
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 157
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 158 if(~isempty(outModel))
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 159 for lll=1:size(outModel,1)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 160 for kkk=1:size(outModel,2)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 161 outModel(lll,kkk) = split(outModel(lll,kkk),plist('frequencies',[f1 f2]));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 162 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 163 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 164 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 165
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 166 % Avoid numerical differentiation (faster for the magnetic case)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 167 Param{1} = [ 1 0 0 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 168 0 0 0 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 169 0 0 0 0;];
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 170 Param{2} = [ 0 1 0 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 171 0 0 0 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 172 0 0 0 0;];
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 173 Param{3} = [ 0 0 0 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 174 0 0 1 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 175 0 0 0 0;];
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 176 Param{4} = [ 0 0 0 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 177 0 0 0 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 178 0 0 0 1;];
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 179
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 180 % scaling of PSD
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 181 % PSD = 2/(N*fs) * FFT *conj(FFT)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 182 for j = 1: numel(S.objs)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 183 % spectra to variance
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 184 C(:,j) = (N*fs/2)*S.objs(j).data.getY;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 185 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 186
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 187 detm = (C(:,1).*C(:,5).*C(:,9) + ...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 188 C(:,2).*C(:,6).*C(:,7) + ...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 189 C(:,3).*C(:,4).*C(:,8) -...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 190 C(:,7).*C(:,5).*C(:,3) -...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 191 C(:,8).*C(:,6).*C(:,1) -...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 192 C(:,9).*C(:,4).*C(:,2));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 193
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 194 InvS11 = (C(:,5).*C(:,9) - C(:,8).*C(:,6))./detm;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 195 InvS12 = -(C(:,4).*C(:,9) - C(:,7).*C(:,6))./detm;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 196 InvS13 = (C(:,4).*C(:,8) - C(:,7).*C(:,5))./detm;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 197 InvS21 = -(C(:,2).*C(:,9) - C(:,8).*C(:,3))./detm;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 198 InvS22 = (C(:,1).*C(:,9) - C(:,7).*C(:,3))./detm;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 199 InvS23 = -(C(:,1).*C(:,8) - C(:,7).*C(:,2))./detm;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 200 InvS31 = (C(:,2).*C(:,6) - C(:,5).*C(:,3))./detm;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 201 InvS32 = -(C(:,1).*C(:,6) - C(:,4).*C(:,3))./detm;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 202 InvS33 = (C(:,1).*C(:,5) - C(:,4).*C(:,2))./detm;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 203
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 204 for pp = 1:length(params)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 205 for ll = 1:size(outModel,1)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 206 for kk = 1:size(Param{pp},2)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 207 % index convention: H(1,1)->h(1) H(2,1)->h(2) H(1,2)->h(3) H(2,2)->h(4)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 208 tmp = 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 209 for innerIndex = 1:size(outModel,2)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 210 tmp = tmp + outModel(ll,innerIndex).y * Param{pp}(innerIndex,kk);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 211 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 212 h{pp}(:,(kk-1)*size(outModel,1) + ll) = tmp;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 213 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 214 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 215
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 216 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 217
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 218 for kk = 1:numel(in.objs)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 219 inV(:,kk) = fin.objs(kk).data.getY;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 220 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 221
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 222
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 223 % compute Fisher Matrix
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 224 for i =1:length(params)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 225 for j =1:length(params)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 226
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 227 for ll = 1:size(outModel,1)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 228 tmp = 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 229 for kk = 1:size(Param{1},2)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 230 tmp = tmp + h{i}(:,(kk-1)*size(outModel,1) + ll).*inV(:,kk);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 231 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 232 v{i}(:,ll) = tmp;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 233 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 234
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 235
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 236 for ll = 1:size(outModel,1)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 237 tmp = 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 238 for kk = 1:size(Param{1},2)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 239 tmp = tmp + h{j}(:,(kk-1)*size(outModel,1) + ll).*inV(:,kk);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 240 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 241 v{j}(:,ll) = tmp;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 242 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 243
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 244 v1v1 = conj(v{i}(:,1)).*v{j}(:,1);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 245 v1v2 = conj(v{i}(:,1)).*v{j}(:,2);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 246 v1v3 = conj(v{i}(:,1)).*v{j}(:,3);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 247 v2v1 = conj(v{i}(:,2)).*v{j}(:,1);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 248 v2v2 = conj(v{i}(:,2)).*v{j}(:,2);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 249 v2v3 = conj(v{i}(:,2)).*v{j}(:,3);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 250 v3v1 = conj(v{i}(:,3)).*v{j}(:,1);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 251 v3v2 = conj(v{i}(:,3)).*v{j}(:,2);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 252 v3v3 = conj(v{i}(:,3)).*v{j}(:,3);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 253
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 254 FisMat(i,j) = sum(real(InvS11.*v1v1 +...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 255 InvS12.*v1v2 +...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 256 InvS13.*v1v3 +...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 257 InvS21.*v2v1 +...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 258 InvS22.*v2v2 +...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 259 InvS23.*v2v3 +...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 260 InvS31.*v3v1 +...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 261 InvS32.*v3v2 +...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 262 InvS33.*v3v3));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 263 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 264 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 265 % store Fisher Matrix for this run
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 266 FM{k} = FisMat;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 267 % adding up
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 268 FMall = FMall + FisMat;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 269 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 270 error('Implemented cases: 2 inputs / 2outputs (TN3045 analysis), and 4 inputs / 3 outpus (magnetic complete analysis model. Other cases have not been implemented yet. Sorry for the inconvenience)');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 271 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 272
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 273
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 274 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 275
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 276 % inverse is the optimal covariance matrix
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 277 if pseudoinv && isempty(tol)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 278 cov = pinv(FMall);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 279 elseif pseudoinv
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 280 cov = pinv(FMall,tol);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 281 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 282 cov = FMall\eye(size(FMall));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 283 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 284
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 285
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 286 % create AO
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 287 out = ao(cov);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 288 % Fisher Matrix in the procinfo
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 289 out.setProcinfo(plist('FisMat',FM));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 290
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 291 varargout{1} = out;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 292 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 293
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 294
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 295 %--------------------------------------------------------------------------
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 296 % Get Info Object
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 297 %--------------------------------------------------------------------------
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 298 function ii = getInfo(varargin)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 299 if nargin == 1 && strcmpi(varargin{1}, 'None')
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 300 sets = {};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 301 pls = [];
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 302 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 303 sets = {'Default'};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 304 pls = getDefaultPlist;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 305 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 306 % Build info object
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 307 ii = minfo(mfilename, 'ao', 'ltpda', utils.const.categories.sigproc, '$Id: crb.m,v 1.17 2011/10/07 08:19:55 miquel Exp $', sets, pls);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 308 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 309
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 310 %--------------------------------------------------------------------------
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 311 % Get Default Plist
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 312 %--------------------------------------------------------------------------
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 313 function plout = getDefaultPlist()
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 314 persistent pl;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 315 if exist('pl', 'var')==0 || isempty(pl)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 316 pl = buildplist();
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 317 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 318 plout = pl;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 319 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 320
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 321 function pl = buildplist()
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 322 pl = plist.WELCH_PLIST;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 323 pset(pl,'Navs',1)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 324
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 325 p = plist({'f1', 'Initial frequency for the analysis'}, paramValue.EMPTY_DOUBLE);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 326 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 327
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 328 p = plist({'f2', 'Final frequency for the analysis'}, paramValue.EMPTY_DOUBLE);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 329 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 330
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 331 p = plist({'FitParamas', 'Parameters of the model'}, paramValue.EMPTY_STRING);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 332 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 333
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 334 p = plist({'model','An array of matrix models'}, paramValue.EMPTY_STRING);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 335 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 336
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 337 p = plist({'noise','An array of matrices with the cross-spectrum matrices'}, paramValue.EMPTY_STRING);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 338 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 339
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 340 p = plist({'built-in','Symbolic models of the system as a string of built-in models'}, paramValue.EMPTY_STRING);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 341 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 342
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 343 p = plist({'frequencies','Array of start/sop frequencies where the analysis is performed'}, paramValue.EMPTY_STRING);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 344 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 345
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 346 p = plist({'pinv','Use the Penrose-Moore pseudoinverse'}, paramValue.TRUE_FALSE);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 347 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 348
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 349 p = plist({'tol','Tolerance for the Penrose-Moore pseudoinverse'}, paramValue.EMPTY_DOUBLE);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 350 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 351
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 352 p = plist({'step','Numerical differentiation step for ssm models'}, paramValue.EMPTY_DOUBLE);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 353 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 354
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 355 p = plist({'ngrid','Number of points in the grid to compute the optimal differentiation step for ssm models'}, paramValue.EMPTY_DOUBLE);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 356 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 357
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 358 p = plist({'stepRanges','An array with upper and lower values for the parameters ranges. To be used to compute the optimal differentiation step for ssm models.'}, paramValue.EMPTY_DOUBLE);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 359 pl.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 360 end