Dear all,
I have problem in simulating focused ultrasound transducer.
I use a k-wave transducer with a center frequency of 0.5 MHz, a diameter of 30 mm, and a focal length of 30 mm.I set medium properties by free water. However, when I see spatial distribution of peak pressure field, they showed focal distance at 26.8 mm. I don't know what is the problem.Please let me know how to fix it.
Below is my code.
% set total number of grid points not including the PML
resolution = 0.2; %[mm]
Nx = 80/resolution; % [grid points]
Ny = Nx;
Nz = Nx;
% set desired grid size in the -direction not including PML
dx = resolution*1e-03; % grid point spacing in the x direction [m: 1mm = 1e-03m]
dy = dx;
dz = dx;
kgrid = kWaveGrid(Nx, dx, Ny, dy, Nz, dz);
% homogeneous
T = 20; %[degC]
f = 0.5; %[mHz]
y = 1.43;
medium.sound_speed = speedSoundWater(T); % [m/s]
medium.density = 999.5; % [kg/m^3]
kgrid.makeTime(medium.sound_speed);
% define the k-wave transducer
grid_size = [Nx Ny Nz];
bowl_pos = [1 round(Nx/2) round(Nx/2)];
radius = round(30e-03/dx);
diameter = (30e-03/dx)-mod(30e-03/dx,2)+1;
focus_pos = [round(Nx/2) round(Nx/2) round(Nx/2)];
source.p_mask = makeBowl(grid_size, bowl_pos, radius, diameter, focus_pos);
% define properties of the input signal
source_freq = f*1e06; % [Hz]
source_mag = 1; % [Pa]
source.p = source_mag * sin(2*pi*source_freq*kgrid.t_array);
source.p = filterTimeSeries(kgrid, medium, source.p);
sensor.mask = ones(Nx, Ny, Nz);
sensor.record = {'p_max'};
input_args = {'DisplayMask', source.p_mask, ...
'PMLInside', false, 'PlotPML', false, 'DataCast', 'single'};
sensor_data= kspaceFirstOrder3D(kgrid, medium, source, sensor, input_args{:});