arim.models.block_in_immersion.scat_unshifted_transfer_functions#

arim.models.block_in_immersion.scat_unshifted_transfer_functions(views, tx, rx, freq_array, scat_obj, probe_element_width=None, use_directivity=True, use_beamspread=True, use_transrefl=True, use_attenuation=True, scat_angle=0.0, numangles_for_scat_precomp=0, first_nonzero_freq_idx=None, turn_off_invalid_rays=False)[source]#

Compute unshifted transfer functions for scatterer echoes (multi-frequency model).

Returns H_ij(omega) = Q_i(omega) Q'_j(omega) S(omega, theta_i, theta_j)

Output spectra uses the math Fourier convention (not the acoustics one).

Parameters:
  • views (Dict[Views])

  • tx (ndarray) – Shape: (numtimetraces, )

  • rx (ndarray) – Shape: (numtimetraces, )

  • freq_array (ndarray or float) – Shape: (numfreq, )

  • scat_obj (arim.scat.Scattering2d)

  • probe_element_width (float or None)

  • use_directivity (bool)

  • use_beamspread (bool)

  • use_transrefl (bool)

  • use_attenuation (bool)

  • scat_angle (float)

  • numangles_for_scat_precomp (int) – Number of angles in [-pi, pi] for scattering precomputation. 0 to disable. See module documentation.

  • first_nonzero_freq_idx (int or None) – Default: assumes first freq is zero, except if only one freq is given.

  • turn_off_invalid_rays (bool)

Yields:
  • partial_transfer_function_f (ndarray) – Shape: (numscatterers, numtimetraces, numfreq). Complex. Contribution for one view.

  • delays (ndarray) – Shape: (numscatterers, numtimetraces). Float. Contribution for one view.