Dear Bradley,

I want to make sure whether the FFT image reconstruction only processes the homogeneous media?

I have implanted the heterogeneous density and sound speed distribution into the phantom. But the kgrid.dt has been set to be homogeneous like kgrid.makeTime(c0, [], t_end) ; Then I run to find the medium.sound_speed have to be modified to the basic sound speed c0, like

% reconstruct the initial pressure

% p_xy = kspaceLineRecon(sensor_data.', dy, kgrid.dt, medium.sound_speed,...

p_xy = kspaceLineRecon(sensor_data.', dy, kgrid.dt, c0,...

'Plot', true, 'PosCond', true, 'Interp', '*linear');

% define a second k-space grid using the dimensions of p_xy

[Nx_recon, Ny_recon] = size(p_xy);

% kgrid_recon = kWaveGrid(Nx_recon, kgrid.dt * medium.sound_speed,Ny_recon, dy);

kgrid_recon = kWaveGrid(Nx_recon, kgrid.dt * c0,Ny_recon, dy);

Otherwise, the code will break for “The dimension of the matrix is not consistent”.

My questions are:

1. Does the FFT image reconstruction only process the homogeneous media directly? Thus if the users want to process the heterogeneous media, they have to add extra correction to correctly reconstruct the source position?

2. Compare to FFT, Time Reversal reconstruction method accounts the influence of the heterogeneous media, just like how to come, and how to back. Thus TR belongs to a model-based correction?

3. I also wonder how the following instructions shows it used the FFT method ? It is the default method in k-Wave? Does it have other optional methods except for FFT? And how I change it?

p_xy = kspaceLineRecon(sensor_data.', dy, kgrid.dt, c0,...

'Plot', true, 'PosCond', true, 'Interp', '*linear');

Thanks your time very much!

Hui