qups icon indicating copy to clipboard operation
qups copied to clipboard

Beam Pattern Support

Open thorstone25 opened this issue 1 year ago • 1 comments

Computing the beam pattern seems to be a very useful feature. It can be used for analyzing a custom Transducer or defining default apodization schemes.

FieldII has calc_hp for this. MUST computes the beam pattern via pfield or pfield3. k-Wave would require just recording p_max(x,y,z) throughout the field rather than p(x=x0,y=y0,z=z0,t) at the transducer surface over time.

To implement this per simulator, one needs to:

  1. Expand the existing respective function to take an input to compute echo (default) or field and select the aperture tx (default) or rx.
  2. Make a branch (i.e. if-else or switch-case) to preserve the existing functionality
  3. Forward the relevant arguments to the field simulator
  • For FieldII / MUST, that means us.scan.positions to calc_hp or pfield
  • For k-Wave that means sensor.record = 'p_max' and bypassing the receive aperture post-processing
  1. Return a regular array instead of ChannelData defined on us.scan (like the beamforming functions).
  2. Update the documentation

thorstone25 avatar Mar 29 '24 17:03 thorstone25

I have some code working for Field II. Will clean it up later and add documentation 😃

l-l-z avatar Apr 01 '24 03:04 l-l-z