Diffuse Correlation Spectroscopy (DCS) analyzes the rapid temporal fluctuations of near-infrared light scattered deeply through biological tissues (e.g., the brain or muscle) to measure microvascular blood flow.
DCS represents the third physics model overlay built on top of the Multi-Tau Correlator (CORM). The background C++ thread fits the semi-infinite medium diffusion approximation to the measured g²(τ) decay curve, outputting critical metrics like the Blood Flow Index (BFI).
| Function | Parameters (In/Out) | Returns | Description |
|---|---|---|---|
nexatom_tt_enable_dcs_analysis |
[In] nexatom_tt_handle device[In] bool enable |
nexatom_error_code_t |
Enables host DCS analysis. An available selected result has analysis_type == 3; enabling alone does not guarantee it. |
nexatom_tt_set_dcs_tissue_properties |
[In] nexatom_tt_handle device[In] double mu_a[In] double mu_s_prime[In] double source_detector_separation_cm |
nexatom_error_code_t |
Defines the macroscopic tissue optics: absorption coefficient (μa), reduced scattering coefficient (μs’), and the physical source-detector separation in centimeters. |
nexatom_tt_set_dcs_model_parameters |
[In] nexatom_tt_handle device[In] double anisotropy_g[In] double tissue_n[In] double wavelength_nm |
nexatom_error_code_t |
Defines microscopic optics: tissue scattering anisotropy (g), tissue refractive index (n), and the near-infrared laser wavelength (e.g., 785 nm or 850 nm). |
nexatom_tt_set_dcs_fit_range |
[In] nexatom_tt_handle device[In] uint32_t start_index[In] uint32_t end_index |
nexatom_error_code_t |
Restricts the Levenberg-Marquardt solver to a specific temporal region of the 80-bin CORM lag curve to bypass early hardware afterpulsing. |
nexatom_tt_set_dcs_fitting_control |
[In] nexatom_tt_handle device[In] double tolerance[In] int max_iterations[In] double initial_beta[In] double initial_db |
nexatom_error_code_t |
Seeds the curve fitter with starting estimates for the coherence factor (β) and diffusion coefficient (Db) to optimize convergence speed. |
nexatom_dcs_analysis_result_tAn available DCS result is exported when analysis_type == 3. Enabling analysis alone does not guarantee selection, fit convergence or computed values. General fit quality and beta are in the parent fit_result; uncomputed fields can be NaN or zero. The representation below does not establish clinical validity or instrument qualification for a biological measurement.
| Field | Type | Description |
|---|---|---|
blood_flow_index |
float |
Primary diagnostic output: BFI = α × DB (in cm²/s). |
brownian_diffusion_cm2_s |
float |
Tissue diffusion coefficient (DB). |
alpha |
float |
The fraction of moving scatterers (assumed active red blood cells). |
decorrelation_time_us |
float |
Characteristic decorrelation time (τc). |
penetration_depth_mm |
float |
Effective optical measurement depth based on the source-detector separation. |
absorption_coefficient_per_cm |
float |
μa absorption coefficient (echoes input). |
reduced_scattering_per_cm |
float |
μs’ reduced scattering (echoes input). |
tissue_refractive_index |
float |
Tissue refractive index (echoes input). |
mean_square_displacement_um2 |
float |
⟨Δr²⟩ at τc. |
flow_velocity_mm_s |
float |
Directed flow velocity component (if active flow models are fitted). |
shear_rate_per_s |
float |
Shear flow rate across the sampled microvascular bed. |
decay_rate_per_s |
float |
1/τc. |
perfusion_units |
float |
Model output when computed; not a calibrated clinical unit or proof of clinical validity. |
relative_flow_change_percent |
float |
For monitoring applications comparing baseline vs. current. |
photon_path_length_cm |
float |
Average photon path length through the tissue. |
mu_eff |
float |
Effective attenuation coefficient (reserved/currently NaN when not computed). |
// Fragment: illustrative model inputs, not prescribed tissue properties.
// Check every return and preserve the complete acquisition owner's cleanup.
double mu_a = 0.15; // Absorption (1/cm)
double mu_s_prime = 10.0; // Reduced scattering (1/cm)
double separation = 2.5; // 2.5 cm between laser and detector
nexatom_tt_set_dcs_tissue_properties(my_device, mu_a, mu_s_prime, separation);
// 2. Configure the physical constants
double anisotropy_g = 0.9;
double tissue_n = 1.4; // Refractive index of tissue
double wavelength = 785.0; // 785nm NIR laser
nexatom_tt_set_dcs_model_parameters(my_device, anisotropy_g, tissue_n, wavelength);
// 3. Exclude very fast lags to bypass detector afterpulsing
nexatom_tt_set_dcs_fit_range(my_device, 3, 80);
// 4. Activate the DCS physics pipeline
nexatom_tt_enable_dcs_analysis(my_device, true);
Use the analysis validity guide and appropriate experimental validation before interpreting any derived quantity.