This project has moved. For the latest updates, please go here.

algorithm for spatial frequency domain reflectance simulation

Feb 12, 2015 at 7:46 PM
I was using matlab version of Virtual Photonics to study spatial frequency domain diffuse reflectance. Since there are multiple ways to simulate SFD reflectance, before I can confidently use it, I am wondering what algorithm did this program use? Is is based on standard diffusion approximation, other analytic solution?

Thanks!
Developer
Feb 16, 2015 at 5:01 PM
Hi,

Did you take a look at vts_solver_demo.m? In it there are examples that use the spatial frequency domain diffuse reflectance. For example, "Example ROfFx" (line 307) provides example code of how to specify and obtain R(fx) results. There are also examples for R(fx) for multiple sets of optical properties, R(fx,ft) [spatial- and temporal-frequency] and R(fx,t) [spatial-frequency and time]. To specify the solver type, use the line:
VtsSolvers.SetSolverType('PointSourceSDA');
to specify the standard diffusion approximation solution with an embedded point source. The other options are:
'PointSourceSDA'
'DistributedGaussianSourceSDA'
'DistributedPointSourceSDA'
'MonteCarlo' (basic scaled Monte Carlo)
'Nurbs' (scaled Monte Carlo with smoothing and adaptive binning)

Let me know if you have other questions.
Carole
Mar 18, 2015 at 8:42 PM
Hi Carole,

It seems using MC based SFD calculation will be more accurate. I tried to set VtsSolvers.SetSolverType('Nurbs'). However, it does not seem to work. Also, the arguments of ROfFx is only op and fx. I do not think this information is enough to do MC simulation. So can I assume that ROfFx uses the 'PointSourceSDA' as its default method?

Thanks!
Developer
Mar 18, 2015 at 10:04 PM
Hi,

A couple of things:

1) the examples in vts_solver_demo.m that use 'Nurbs" are scaled Monte Carlo results. So no simulation is executed, per se. A simulation that generated baseline reflectance results have been stored. The examples call upon this data and are scaled to provide results for other optical properties. ROfFx should work with setting the solver type to 'Nurbs' (it should also work with 'PointSourceSDA').

2) if you would like to run a Monte Carlo simulation, there are examples in vts_mc_demo. I see that we don't have an example that specifies an ROfFx detector, but the call would be similar to the example calls for ROfRho except your desired spatial frequency (e.g. linspace(0,0.5,11)) would be specified as the call parameter.

Carole
Mar 19, 2015 at 6:33 PM
Hi Carole,

Thank you for the explanation! Now it makes sense that why ROfFX is so fast. It seems that the SFD reflectance from ROfFX at n=1.4 is comparable to regular MC based simulations. However, at other refractive index like n=1.33, there is a observable difference between ROfFX and MC based method. Is this a limitation of the scaling method? Thanks!
Developer
Mar 19, 2015 at 8:31 PM
Hi,

The baseline simulation assumed a tissue with refractive index n=1.4. Unfortunately the scaling does not apply to refractive index mismatch, so obtaining results for n=1.33 or any other n other than n=1.4 will not work.

Carole