8/16/01 ------------- genMeasData.m ------------- Rytov was correct to handle RF data correctly. Using delta_D/D instead of -delta_musp/musp. ---------------------------------- Hlm3ptBorn1ZB.m Hlm3ptBorn1slab.m ---------------------------------- Gscat_musp_z had a small mistake in the image. ---------- genRecon.m ---------- Fixed a minus sign for reconstructing delta_musp 7/13/01 ------------- genMeasData.m ------------- Changed the scattering perturbation for Born and Rytov to be delMu_sp / Mu_sp_o. Also corrected a minus sign error for the scattering perturbation. 5/24/01 ----------- genFwdMat.m ----------- The number of coupling coefficients was being counted multiple times when reconstructing musp and mua. This was fixed. 5/18/2001 ---------- genRecon.m ---------- Changed reconstruction of delta_musp to be -delta_musp / musp_o rather than delta_D / Do. 5/10/2001 ---------------------------------- Hlm3ptBorn1ZB.m Hlm3ptBorn1slab.m ---------------------------------- The scattered wave from the musp perturbation had the wrong sign. 4/27/2001 ---------------- GetExtinctions.m ---------------- Maria Angela updated the extinction coefficients for hb and HbO 4/19/2001 ------------- genMeasList.m ------------- SNR was fixed to find the correspondence between a given MeasList and pmi.data.MeasList ----------- LoadFrame.m ----------- Before loading corrected data make sure corrected data exists. ------------------ FitBackGroundCal.m ------------------ Modified to return the least squares value correctly. ------------------- FitBackGroundCal1.m ------------------- Fixed a number of small errors for handling multi-wavelength data and sub-sets of sources and detectors. 4/13/2001 ---------- genRecon.m ---------- Fixed a matrix dimension problem for handle multi-wavelength scattering perturbation. ------------- genMeasData.m ------------- Modified ExactSphere to properly parse result for DC mixed with RF. 2/25/2001 ---------- genRecon.m ---------- No need to scale delta_D as the matrix is already scaled. Scaling fixed for multi-wavelength data. 02/07/2001 ------------------------------------------- genFwdMat.m genMeasData.m DPDWBorn1NB.m DPDWBorn1ZB.m DPDWBorn1slab.m HlmFullBorn_NB.m, HlmFullBorn_ZB.m HlmFullBorn_slab.m ------------------------------------------- Added forward model method type 'ExtBornN'. This does an iterative extended Born approximation. DON'T FORGET THAT 'BornN' AND 'ExtBornN' DON'T NECESSARILY CONVERGE IF THE PERTURBATION IS TOO LARGE. ------------- genMeasData.m ------------- Added Object Type 'Image'. This allows you to specify an arbitrary mua and musp for every voxel in the Object sub-fields of 'Mu_a' and 'Mu_sp'. At the moment there is no check to make sure that the mua and musp specification is consistent with the voxel grid specified in the model. A check should be added by defining the voxel grid in the Object and comparing that against the Model in the forward calculation. ----------------------------------------------------- HlmFullBorn_NB.m, HlmFullBorn_ZB.m HlmFullBorn_slab.m ----------------------------------------------------- Removed 1/3 factor from the matrix. ---------- rowscale.m ---------- Removed the 3rd dimension, as this was screwing up our sparse matrix calculation. ----------- showimage.m ----------- Shows images of mua and musp. ================================================================ ================================================================ ================================================================ 02/02/2001 Congratulations to Ang for fixing the scattering problem. It turns out that the DPDW wavenumber k used for the exact solution inside the sphere was calculated based on the photon diffusion coefficient D outside the sphere. This was fixed to be based on D inside the sphere. Also, the calculation of the perturbation matrix for delta_D had an arbitrary factor of 1/3 that was removed. We now observe that 20 iterations of Born for a sphere in an infinite medium agrees perfectly with the Exact solution. Yeah! We have added the Extended Born Method. Thanks to Eric Miller. The implementation does not yet exploit the sparse matrx format which will make calculations significantly faster when we are dealing with 1000's of voxels. The relevant parameters are: pmiModel.Method.Type = 'ExtBorn' pmiModel.Method.ExtBorn_Radius = radius of influence from neighboring voxels in cm NOTE THAT EXTENDED BORN AND FULL BORN DO NOT PRESENTLY WORK FOR DELTA_D. Any ideas on how to make this work? The code should now support measurement lists with multiple frequencies. ----------- genFwdMat.m ----------- Added Extended Born method. ------------- genMeasData.m ------------- Added Extended Born method. The exact sphere calculation had a major error. Basically, the calculation of k inside the sphere used D from outside the sphere. This was fixed. ------------------------------------------- DPDWBorn1NB.m DPDWBorn1ZB.m DPDWBorn1slab.m ------------------------------------------- Added Extended Born method ------------------------------------------------- Hlm3ptBorn1NB.m Hlm3ptBorn1ZB.m Hlm3ptBorn1slab.m ------------------------------------------------- Removed the 1/3 factor from the calculation of the perturbation matrix for delta_D. I don't recall why this 1/3 appeared originally, but it shouldn't be there. ---------------------------------------------------- HlmFullBorn_NB.m HlmFullBorn_ZB.m HlmFullBorn_slab.m ---------------------------------------------------- Added extended born with radius of influence which is specified by pmiModel.Method.ExtBorn_Radius NOTE THAT EXTENDED BORN AND FULL BORN PRESENTLY DO NOT WORK FOR DELTA_D. 11/30/2000 ---------- genRecon.m ---------- Fixed ds.Recon.Musp to show image of delta_musp rather than delta_D / D_o. 11/8/2000 ----------- genFwdMat.m ----------- Fixed nData to properly handle multiple modulation frequencies. ---------------------- Complex_Log_PhiByPhi.m ---------------------- Fixed this routine to properly handle data sets with multiple modulation frequencies. ================================================================ ================================================================ ================================================================ 11/7/2000 The major update is inclusion of the analytic solution for a spherical inhomogeneity in a homogeneous medium. I have added scattering perturbation for 1st order Born for the infinite medium case. It has not yet been added for semi-infinite and slab geometries. The Nth order Born and Full Born does include absorption and scattering for infinite, semi-infinte, and slab geometries. Self-voxel contribution is included for absorption but not scattering. I cannot convince myself yet that scattering has a self-voxel contribution. Also of concern, the Born solution for absorption agrees with the analytic solution, but not for the case of scattering. This requires further investigation. ------------- genMeasData.m ------------- Added Exact Sphere solution for infinite media. This relies on ExactSphere.m, SphHarm.m, bes_h1.m, bes_h1d.m, bes_j.m, bes_jd.m, bes_y.m . These functions have been added to the toolbox. --------------------------------------------- DPDWBorn1NB.m DPDWBorn1ZB.m DPDWBorn1slab.m --------------------------------------------- The matrix A was scaled by v/D specific for mua perturbations. This was moved to a lower level because of the potential for scattering perturbations which are not scaled by v/D. --------------- Hlm3ptBorn1NB.m --------------- Added v/D scaling for mua perturbation. Added scattering perturbation. ---------------------------------- Hlm3ptBorn1ZB.m Hlm3ptBorn1slab.m ---------------------------------- Added v/D scaling for mua perturbation. HAVE NOT YET added SCATTERING perturbation. ------------------------------------------------------ HlmFullBorn_NB.m HlmFullBorn_ZB.m HlmFullBorn_slab.m ------------------------------------------------------ Scale mua perturbation by v/D. Deal with self-voxel contribution for absorption perturbation. Not yet dealing with self-voxel for scattering perturbation since I am not convinced that it exists. ================================================================ ================================================================ ================================================================ 9/1/2000 genFwdMat.m ----------- Added Model.Method.Type 'FullBorn' and 'BornN' and cleaned up some of the S & D amplitude calculations. genMeasData.m ------------- Having some trouble with re-initializing the P sub-structure. This is probably still not the desired fix. Added Model.Method.Type 'FullBorn' and 'BornN'. For 'BornN' it is necessary to specify 'Model.Method.Born_Order' genNoise.m ---------- Having some trouble with re-initializing the P sub-structure. This is probably still not the desired fix. genRecon.m ---------- Added a pmi.Recon.Whiten flag so that the user can specify whether to whiten the matrix (=1) or not (=0). It does not make sense to whiten the Rytov approximation (at the moment) or Maximum Likelihood. We have removed PhiScat from the Model.P structure. PhiScat is now calculated in genRecon when needed. We have removed the whitened variables (Aw, PhiTotalNw, PhiIncw, etc.) from the Model.P structure. These are now calculated within genRecon when needed. Fixed up flags for TSVD a little. Flags added to pmi.Recon are pmi.Recon.TSVD_FullSVS - sometimes the full SVS does not converge and thus setting this to 0 causes only the necessary (truncation level) elements of the SVS to be calculated. This approach can be slower but has a better chance of converging in those rare instances. Also, setting this to FALSE (=0) has the disadvantage of requiring additional calls to SVDS if the truncation level is increased. The default is 1. pmi.Recon.TSVD_Lsq - Determines whether to calculate the SVD of A'A (the least squares solution =1) or A (=0). The default is 0. pmi.Recon.TSVD_CalcSVD - if true (=1) then recalculate the SVD otherwise use the previously calculated SVD. No default, this variable must be set by the user. We call fattsvd with the options. fattsvdls has been removed from the package as it is redundant with fattsvd. DPDWBorn1NB.m ------------- Moved calculation of coupling coefficient matrix to genFwdMat.m Added Model.Method.Type 'BornN' and 'FullBorn'. DPDWBorn1ZB.m ------------- Moved calculation of coupling coefficient matrix to genFwdMat.m Added Model.Method.Type 'BornN' and 'FullBorn'. DPDWBorn1slab.m ------------- Moved calculation of coupling coefficient matrix to genFwdMat.m Added Model.Method.Type 'BornN' and 'FullBorn'. Hlm3ptBorn1slab.m ----------------- Fixed a small error in the use of multiple images. fattsvd.m --------- Removed fattsvdls.m and changed fattsvd.m to deal with options such as least squares. GetExtinctions.m ---------------- Added extinction coefficients for lipid and aa3. showimage.m ----------- Made minor changes to the titles of the images and calculation of the mXn format of the images. HlmFullBorn_slab.m, HlmFullBorn_ZB.m, HlmFullBorn_NB.m ------------------------------------------------------ Initial version. Calculates the perturbation matrix for the Nth Born Approximation. MPE.m ----- Initial revision Pert_Grad.m ----------- Initial version. |