Hello,
I am simulating a simple immersion setup using pulse-echo configuration, where a plate of steel in immersed in water. Using 1 MHz frequency everything works well and the recovered signals from the surface and bottom of the steel plate are similar to the excitation signal, with normal smaller amplitudes.
Increasing frequency, for instance 4 MHz or higher, the collected signal present a oscillatory behavior, different from the previous one.
How can this problem be solved or is this a limitation of k-wave, when dealing with very different acoustic impedance materials among then, such as steel and water?
Thanks in advance!
Here is the code:
% grid
XX=21e-3; YY=20e-3;
%grid point spacing
dx=100e-6;
dy=100e-6;
% create the computational grid
Nx=round(XX/dx);
Ny=round(YY/dy);
kgrid = makeGrid(Nx, dx, Ny, dy);
% transducer
d=10e-3;
D=round(d/dx);
Ti=round(Ny/2-D/2+1);
Tf=round(Ny/2+D/2);
line = makeLine(Nx, Ny, [1,Ti], [1,Tf])
source.p_mask = line;
% define properties of the input signal
source_strength = 1e6; % [Pa]
tone_burst_freq = 1e6; % [Hz]
tone_burst_cycles = 3;
% create the input signal using toneBurst
input_signal = toneBurst(1e8, tone_burst_freq, tone_burst_cycles);
source.p = input_signal;
%medium
v_matrix=5830;
ro_matrix=7920;
medium.sound_speed=zeros(Nx,Ny);
medium.density=zeros(Nx,Ny);
%stell plate in water
N1=round(8e-3/dx); %8 mm water
N2=round(21e-3/dx)-1;% 13 mm stell
N3=round(21e-3/dx)
medium.sound_speed((1:N1),:)=1500; % water
medium.density((1:N1),:)=1000;
medium.sound_speed((N1:N2),:)=v_matrix; % steel
medium.density((N1:N2),:)=ro_matrix;
medium.sound_speed(N3,:)=1500; % water
medium.density(N3,:)=1000;
% receiver
sensor.mask=line;
% input arguments
input_args = {'DisplayMask', source.p_mask, 'DataCast', 'single','PMLInside', false,'PMLSize', 20};
% run the simulation
sensor_data = kspaceFirstOrder2D(kgrid, medium, source, sensor, input_args{:});
sensor.record ={'p'}
pp=sum(sensor_data);