Home > SRC > FIT_SIGNAL.m

FIT_SIGNAL

PURPOSE ^

fit the ADC from the dMRI signal

SYNOPSIS ^

function [ADC_cmpts,ADC_allcmpts,ADC_allcmpts_S0] = FIT_SIGNAL(MF_cmpts,MF_allcmpts,bvalues)

DESCRIPTION ^

 fit the ADC from the dMRI signal
 
 Input:
     1. MF_cmpts
     2. MF_allcmpts
     3. bvalues
     
 Output:
     1. ADC_cmpts
     2. ADC_allcmpts
     3. ADC_allcmpts_S0

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [ADC_cmpts,ADC_allcmpts,ADC_allcmpts_S0] = FIT_SIGNAL(MF_cmpts,MF_allcmpts,bvalues)
0002 
0003 % fit the ADC from the dMRI signal
0004 %
0005 % Input:
0006 %     1. MF_cmpts
0007 %     2. MF_allcmpts
0008 %     3. bvalues
0009 %
0010 % Output:
0011 %     1. ADC_cmpts
0012 %     2. ADC_allcmpts
0013 %     3. ADC_allcmpts_S0
0014 
0015 nexperi = size(MF_cmpts,2);
0016 nb = size(MF_cmpts,3);
0017 Ncmpt = size(MF_cmpts,1);
0018 % for iexperi = 1:nexperi
0019     % bvec = bvalues(iexperi,:);
0020     % nb = length(bvec);
0021     % for ib = 1:nb
0022         % for icmpt = 1:Ncmpt
0023             % MF_cmpts(icmpt,iexperi,ib) = MT{iexperi}{ib}{icmpt}(end);
0024             % M0(icmpt,iexperi,ib) = MT{iexperi}{ib}{icmpt}(1);
0025         % end
0026         % MF_allcmpts(iexperi,ib) = 0;
0027         % for icmpt = 1:Ncmpt
0028             % MF_allcmpts(iexperi,ib) = MF_allcmpts(iexperi,ib) + MF_cmpts(icmpt,iexperi,ib);
0029         % end
0030         % M0_allcmpts(iexperi,ib) = 0;
0031         % for icmpt = 1:Ncmpt
0032             % M0_allcmpts(iexperi,ib) = M0_allcmpts(iexperi,ib) + M0(icmpt,iexperi,ib);
0033         % end
0034     % end
0035     % ib0 = find(abs(bvec)<=1e-16);
0036     % ibn0 = find(abs(bvec)>1e-16);
0037     % if (length(ib0) >= 1)
0038         % for icmpt = 1:Ncmpt
0039             % S0(icmpt,iexperi) = MF_cmpts(icmpt,iexperi,ib0(1));
0040         % end
0041         % S0_allcmpts(iexperi) = MF_allcmpts(iexperi,ib0(1));
0042     % else
0043         % S0(1:Ncmpt,iexperi) = nan;
0044         % S0_allcmpts(iexperi) = nan;
0045     % end
0046 % end
0047 ADC_cmpts = nan*ones(Ncmpt,nexperi);
0048 ADC_allcmpts = nan*ones(nexperi,1);
0049 ADC_polydeg = nan*ones(Ncmpt,nexperi);
0050 ADC_allcmpts_polydeg = nan*ones(nexperi,1);
0051 for iexperi = 1:nexperi
0052     bvec = bvalues(iexperi,:);
0053     if (length(bvec) >= 2)       
0054         bmin = bvec(1);
0055         bmax = bvec(end);        
0056         for icmpt = 1:Ncmpt
0057             data1d = real(squeeze(MF_cmpts(icmpt,iexperi,:)))';
0058             [fit_poly,ADC01d,KUR1d,KUR01d,S01d,Cfit1d,errfit,ndeg,ADC0_err1d,KUR_err1d] ...
0059                 = process_signal_POLY(data1d,bvec,bmin,bmax);
0060             ADC_cmpts(icmpt,iexperi) = ADC01d;
0061             ADC_polydeg(icmpt,iexperi) = ndeg;
0062             ADC_S0(icmpt,iexperi) = S01d;
0063         end
0064         data1d = real(MF_allcmpts(iexperi,:));
0065         [fit_poly,ADC01d,KUR1d,KUR01d,S01d,Cfit1d,errfit,ndeg,ADC0_err1d,KUR_err1d] ...
0066             = process_signal_POLY(data1d,bvec,bmin,bmax);
0067         ADC_allcmpts(iexperi,1) = ADC01d;
0068         ADC_allcmpts_polydeg(iexperi,1) = ndeg;
0069         ADC_allcmpts_S0(iexperi,1) = S01d;
0070     end
0071 end

Generated on Mon 28-Jan-2019 12:43:57 by m2html © 2005