Hello,

Using 3D simulation with a circular emitter and a square sensor I am computing the pressure at the same point for media with different level of attenuation "medium.alpha_coeff". The parameter "medium.alpha_power is the same for all the situations and is equal to 1.01.

As an exemple here are 3 signals obtained for different values of "medium.alpha_coeff" (0, 1 and 2 dB/cm), where is possible to see the delay between them: https://meocloud.pt/link/4cf3c14c-52db-41f5-9df6-06217bc37e27/3%20signals.tif/

Why this variation of time of flight for different values of "medium.alpha_coeff", while whole remaining parameters remain the same?

I appreciate some help in this matter.

Best regards.

Here is the simulation code:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% grid dimensions

XX=3.2e-3; YY=3.2e-3;

ZZ=30e-3;

% grid point spacing

scat=200e-6;

dx=scat;

dy=scat;

dz=scat;

% create the computational grid

Nx=round(XX/dx);

Ny=round(YY/dy);

Nz=round(ZZ/dz);

kgrid = makeGrid(Nx, dx, Ny, dy, Nz, dz);

kgrid.t_array = 0:40e-9:20e-6;

% circular transducer

R=round(1.5e-3/scat);

disc = makeDisc(Nx, Ny, Nx/2, Ny/2, R);

source.p_mask = zeros(Nx, Ny, Nz);

aa=zeros(Nx, Ny, Nz-1);%

source.p_mask=cat(3,disc,aa); %

% define properties of the input signal

source_strength = 10e6; % [Pa]

tone_burst_freq = 1e6; % [Hz]

tone_burst_cycles = 2;

% create the input signal using toneBurst

source.p = toneBurst(25e6, tone_burst_freq, tone_burst_cycles);

% define the properties of the propagation medium

medium.sound_speed = 1500*ones(Nx, Ny, Nz); % [m/s]

medium.density = 1000*ones(Nx, Ny, Nz); % [kg/m^3]

% receiver

sensor.mask = zeros(Nx, Ny, Nz);

sensor.mask(1:16,1:16,100:100)=1 %

% attenuation alpha= a.f^b

medium.alpha_coeff =2;

medium.alpha_power = 1.01;

% input arguments

input_args = {'DisplayMask', source.p_mask, 'DataCast', 'single','PMLInside', false,'PMLAlpha',2,'PMLSize', 20}

% run the simulation

sensor_data = kspaceFirstOrder3D(kgrid, medium, source, sensor, input_args{:});

sensor.record ={'p'}

pp=sum(sensor_data);