Compute expected diffusion signal from tensor S = feComputeSignal(S0, bvals, bvecs, Q) This function implements the Stejskal Tanner equation prediction given a quadratic form. There should also be a form of this equation that takes in the ADC values, rather than the quadratic form. This is a version of the Stejskal/Tanner equation for signal attenuation See: http://en.wikipedia.org/wiki/Diffusion_MRI#Diffusion_imaging We need a better description of the expected parameter format (BW). INPUTS S0 - The signal measured in the non-diffusion weighted scans (B0) bvals - the b values bvecs - the b vectors Q - The tensors (quadratic forms) (e.g. see fgTensors) corresponding to each node in a voxel. There are often several tensors. OUTPUTS S - The signal predicted according to this form of the Stejskal/Tanner eq: S = S0 exp(-bval*(bvec*Q*bvec)) There is a column of signals for each of the tensors. So if there are 30 directions and 4 tensors, then the returned signals is 30 x 4. Example: Copyright (2013-2014), Franco Pestilli, Stanford University, pestillifranco@gmail.com.
0001 function S = feComputeSignal(S0, bvecs, bvals, Q) 0002 % Compute expected diffusion signal from tensor 0003 % 0004 % S = feComputeSignal(S0, bvals, bvecs, Q) 0005 % 0006 % This function implements the Stejskal Tanner equation prediction given a 0007 % quadratic form. There should also be a form of this equation that takes 0008 % in the ADC values, rather than the quadratic form. 0009 % 0010 % This is a version of the Stejskal/Tanner equation for signal attenuation 0011 % See: http://en.wikipedia.org/wiki/Diffusion_MRI#Diffusion_imaging 0012 % 0013 % We need a better description of the expected parameter format (BW). 0014 % 0015 % INPUTS 0016 % S0 - The signal measured in the non-diffusion weighted scans (B0) 0017 % bvals - the b values 0018 % bvecs - the b vectors 0019 % Q - The tensors (quadratic forms) (e.g. see fgTensors) corresponding 0020 % to each node in a voxel. There are often several tensors. 0021 % 0022 % OUTPUTS 0023 % S - The signal predicted according to this form of the Stejskal/Tanner eq: 0024 % 0025 % S = S0 exp(-bval*(bvec*Q*bvec)) 0026 % 0027 % There is a column of signals for each of the tensors. So if there are 0028 % 30 directions and 4 tensors, then the returned signals is 30 x 4. 0029 % 0030 % Example: 0031 % 0032 % Copyright (2013-2014), Franco Pestilli, Stanford University, pestillifranco@gmail.com. 0033 0034 % Converts the tensors and bvecs into ADC values. If there are 80 0035 % directions and 4 tensors, the returned ADC is 80 x 4, with each column 0036 % representing the ADCs in all directions for one of the tensors. 0037 % ADC = dtiADC(Q, bvecs); 0038 % 0039 % We have a bval for each ADC: S = S0 * exp(-bvals .* ADC); 0040 % 0041 % We repmat the bvals to have the same number of rows as Q. Each row is a 0042 % tensor. But bvals will have nDirs x nTensors after the repmat. 0043 % S = S0 * exp(- (repmat(bvals, 1, size(Q,1)) .* ADC)); 0044 % 0045 S = S0 * exp(- (repmat(bvals, 1, size(Q,1)) .* dtiADC(Q, bvecs))); 0046 0047 % end 0048 0049 end