Pulse-Echo Ultrasound Acoustic Simulation Time Domain


I'm not sure if my question is related to this: https://forum.zmt.swiss/post/1240

I'm trying to simulate A-mode ultrasound signals at various points in a volume/phantom, so I'm looking for pressure with respect to time.

It seems, however, that the sensor recording is limited to the time duration of the excitation pulse. So a 1MHz sine wave with 10 periods lasts 10usec - and it seems like the sensor recordings are limited to the same 10usec.

However, I'd like to record longer (200usec or more) so that I can see the echo signals of different reflector objects within the phantom, and the phantom boundary itself.

Is there a way to extend the recording time past the excitation pulse duration?

Here the top is a point sampled near the transducer (excitation), and the bottom is a point some distance away. I'm also not sure why the frequency is so much higher in the bottom graph (though very small amplitude)?

This is what I'm currently getting:

I'm looking for something more like this, time-domain wise pulse_echo_example.jpg

I appreciate any ideas/suggestions!

Thank you very much!

EDIT TO ADD: I'm mostly interested in single-element transmitter & receiver, not focused arrays of transducers, so I hope that simplifies things!

a few things:

  1. e-17 is very close to 0, so I'd guess that maybe the source pulse hasn't reached that position yet (if I recall correctly, for performance reasons, the acoustic field itself is initialized not to zero but to a value very close to zero, alternating between + and - in a checkerboard pattern), so that is what you're seeing

  2. related to 1, look at the whole field distribution and then you should be able to see how far the wave has traveled

  3. the only way to do this is to make your source a 'User Defined Source' and then create a text file with two columns, one for the time signal and the other for the pressure signal, where you'd have the sine wave for 10us and then 0 for the rest of the time.

  • Note: creating user defined sources is a bit tricky, make sure that the setup frequency is set to the same value as the frequency you are using in your source, since that value is used to set the correct time step used in the simulation, and set periods to what it would be if you had an active sine wave on the whole time (200us * frequency).
  • By using user defined sources you can record only in the time domain (check in sensors settings - if you record in the time domain whole fields then chose a reasonable number of snapshots since it would consume a lot of memory if you have a large domain size and too many whole field time recordings)
  • Let me know if you have any questions

Thank you! This is very helpful!

For defining my own wave, I made the time steps at 10x the excitation frequency (so 10MHz sample rate for f=1Mhz) - is that sufficient?

Don't worry about the time step, just make sure it's fine enough, Sim4Life will then interpolate your function into it's own timestep as needed (so, you just need to be careful that your timestep is not too coarse such that Sim4Life won't be able to linearly (I think) interpolate it

Essentially, the answer is yes, its sufficient