EIDORS: Electrical Impedance Tomography and Diffuse Optical Tomography Reconstruction Software |
EIDORS
(mirror) Main Documentation Tutorials − Image Reconst − Data Structures − Applications − FEM Modelling − GREIT − Old tutorials − Workshop Download Contrib Data GREIT Browse Docs Browse SVN News Mailing list (archive) FAQ Developer
|
Unexpected Effect: Imaging with absolute value of measurementsMany EIT systems take the amplitude of the measured signal; however EIDORS expects to see the in-phase (and quadrature) signals. If these are not used, EIDORS will reconstruct incorrectly.Stimulation PatternsThis effect is not visible for adjacent stimulation/measurement (the default from mk_common_models. It is necessary to specify a pattern such as this.% Create Stimulation Patterns [stim,msel] = mk_stim_patterns(16,1,[0,5],[0,5],{},1); Simulation Image% Create Simulation Image extra={'ball1', 'ball2','ball3',... ['solid ob = orthobrick(-1,-1,0;1,1,0.05) -maxh=0.1;' ... 'solid ball1 = cylinder( 0.5, 0.2,0; 0.5, 0.2,1;0.2) and ob;' ... 'solid ball2 = cylinder(-0.5, 0.2,0;-0.5, 0.2,1;0.2) and ob;' ... 'solid ball3 = cylinder( 0.0,-0.5,0; 0.0,-0.5,1;0.2) and ob;']}; fmdl= ng_mk_cyl_models(0,[16],[0.1,0,0.05],extra); fmdl.stimulation = stim; fmdl.meas_select = msel; img = mk_image( fmdl, 1); vh = fwd_solve(img); vh= vh.meas; img.elem_data( fmdl.mat_idx{2} ) = 1.1; img.elem_data( fmdl.mat_idx{3} ) = 0.9; img.elem_data( fmdl.mat_idx{4} ) = 1.1; vi = fwd_solve(img); vi= vi.meas; subplot(221); show_fem(img); print_convert absolute_value02a.png Figure: Stimulation Image Reconstruct without/with Absolute Value% create inverse model imdl = mk_common_model('c2c2',16); imdl.fwd_model.stimulation = stim; imdl.fwd_model.meas_select = msel; imdl.hyperparameter.value = 0.10; % reconstruct normally show_fem( inv_solve( imdl, vh, vi)); print_convert absolute_value03a.png % reconstruct abs vha = abs(vh); via = abs(vi); show_fem( inv_solve( imdl, vha, via)); print_convert absolute_value03b.png Figure: Reconstructed images: left) Real measurements, right) Absolute measurements, Strategy #1 for absolute valuesThe easiest way is to re-calculate the original value, by getting the sign of simulated data. This may have errors if voltages are close to zero.% simulate homogeneous voltages vhomg = fwd_solve( mk_image(imdl, 1)); flip = sign(vhomg.meas); % recalculate the correct values vhr = vha.*flip; vir = via.*flip; show_fem( inv_solve( imdl, vhr, vir)); print_convert absolute_value04a.png Figure: Reconstructed images by re-calculating the sign Strategy #2 for absolute valuesDefine a new Jacobian matrix calculator for the system that knows about absolute valuesfunction J = jacobian_absolute( fwd_model, img); vh = fwd_solve(img); flip = sign(vh.meas); flip = spdiags(flip, 0, length(flip), length(flip)); J = flip*jacobian_adjoint(img);Then use this jacobian to override the jacobian field in the fwd_model.jacobian. % Modify Jacobian imdl.fwd_model.jacobian = @jacobian_absolute; show_fem( inv_solve( imdl, vha, via)); print_convert absolute_value05a.png Figure: Reconstructed images by re-calculating the Jacobian matrix |
Last Modified: $Date: 2017-02-28 13:12:08 -0500 (Tue, 28 Feb 2017) $ by $Author: aadler $