rehmanali1994/FullWaveformInversionUSCT

Wonder if the simulation program would be available

Closed this issue · 2 comments

Dear professor, we would like to use your method as a contrast with our method, which is based on ray tracing theory. However, bad results are acquired using our simulated data. I consider some parameters setting in my own program would be wrong. Therefore, I am wondering if the simulation program would be available. Best wishes!

The main reason I suspect that your simulated data did not work with the waveform inversion code provided here was the source scaling. Unfortunately, I did not provide an automated source scaling here.

In a future work, I intend to discuss and implement an automated source scaling as well as to provide k-Wave simulation code. Please keep a look out for this.

I have fixed two issues in the code provided:

  1. The computation of the step size at each iteration of the conjugate gradient algorithm initially assumed that the grids over which (1) the plane waves were propagated and (2) the sound speed was reconstructed were the same. However, we interpolate the backprojection in (1) onto the grid in (2). To account for the change in the voxel size we added a grid_conv_factor to both the MATLAB and Python code.
  2. The code initially provided for the work presented at SPIE Medical Imaging 2022 assumed that the source waveform was known exactly in both shape and amplitude. However, it is practically impossible to know the source waveform exactly, so source estimation must be automated. I've provided an implementation of source estimation (requested by zero34521 above) as a frequency-dependent complex-valued scaling factor that can vary with each transmission. The updated code tests the waveform inversion algorithm with source estimation by applying a random complex-valued scaling to each frequency in the transmitted waveform. However, automated source estimation also makes waveform inversion less robust to cycle skipping, so we also adjusted our conjugate gradient algorithm and increased the number of iterations to offset this issue. I will discuss this tradeoff between automated source estimation and cycle skipping in a future work.