hi, my name is Eun.
I've been getting a lot of help from this tool to study acoustics. I am also quiet new to this tool and matlab. I really appreciate if you could provide help.
I have a few questions. I have the medium set up (2D) so that upper region is water and the lower region is silicon, and there is a void(0.18mm) inside the silicon.
http://imageshack.us/photo/my-images/684/simlayout.jpg/
and I have the curved shape source and point sensor at the same point in order to capture the signal reflected from the front wall of the silicon and from the void.
I originally intended to use sine wave with ultasonic frequency, but it created a lot of scattering in the whole medium, and it was really hard to tell from measured data the signal reflected from void. So I used the impulse instead of continuous wave to eliminate this issue, but still there are unwanted signal in the measured data.
Is there anyway to capture the signal reflected only from the front-wall of the silicon and from the void?
here is the code I used and please feel free to run it to see what I am talking about.
again, I would greatly appreciate any help you could give.
clear all;
% =========================================================================
% SIMULATION
% =========================================================================
% create the computational grid
Nx = 200; % number of grid points in the x (row) direction
Ny = 200; % number of grid points in the y (column) direction
dx = 0.1e-2; % grid point spacing in the x direction [m]
dy = 0.1e-2; % grid point spacing in the y direction [m]
kgrid = makeGrid(Nx, dx, Ny, dy);
% time array
dt = 1.5e-7; % [s]
dt2 = 1e-6 ; % [s]
t_end = 150e-6; % [s]
kgrid.t_array = 0:dt:t_end;
time2 = 0:dt:1*dt;
% computation settings
input_args = {'PMLInside', false};
% define the properties of the propagation medium
medium.sound_speed = 1007*ones(Nx, Ny); % [m/s]
medium.sound_speed(1:round(Nx/4), :) = 1480; % [m/s]
medium.density = 1134*ones(Nx, Ny); % [kg/m^3]
medium.density(1:round(Nx/4), :) = 1000; % [kg/m^3]
medium.alpha_coeff = 3.6252*ones(Nx,Ny);
medium.alpha_coeff(1:round(Nx/4), :)= 0.0022;
medium.alpha_power = 1.5;
%medium.BonA = 6;
% Void Parameters
void_size = 0.18;
void_depth = 30;%%%%%%%
object = makeDisc(kgrid.Nx, kgrid.Ny, kgrid.Nx/4+void_depth, kgrid.Ny/2, void_size);
medium.sound_speed(object==1) = 350 ;
medium.density(object ==1) =1.2;
%create initial pressure distribution using makeDisc
arc_radius = 12 ;
arc_height = 4 ;
x_pos = Nx/4-23; %%%%%%%%%%
y_pos = Ny/2;
arc = makeCircle(Nx,Ny,x_pos,y_pos, arc_radius);
arc(x_pos - arc_radius+arc_height:end, :) = 0;
%imagesc(arc);
%axis image;
disc_magnitude = 20; % [au]
%disc_x_pos = Nx/4-30; % [grid points]
%disc_y_pos = Ny/2; % [grid points]
%disc_radius = 2; % [grid points]
source_freq = 3.5e6; % [Hz]
source.p_mask = arc;
%source.p_mask = makeDisc(Nx, Ny, disc_x_pos, disc_y_pos, disc_radius);
source.p = disc_magnitude%*sin(2*pi*source_freq*kgrid.t_array);
display_mask = source.p_mask;
% define a point sensor
source_sensor_distance = 35; %%%%%%%%%%
sensor.mask = zeros(Nx, Ny);
sensor.mask(Nx/4 - source_sensor_distance, Ny/2) = 1;
display_mask = sensor.mask;
% run the simulation with optional inputs for plotting the simulation
% layout in addition to removing the PML from the display
sensor_data = kspaceFirstOrder2D(kgrid, medium, source, sensor, 'PlotLayout', true, 'PlotPML', false, input_args{:});
% =========================================================================
% VISUALISATION
% =========================================================================
% plot the simulated sensor data
figure;
imagesc(sensor_data, [-1, 1]);
colormap(getColorMap);
ylabel('Signal received by sensor');
xlabel('Time Step');
colorbar;
figure;
[t_sc, t_scale, t_prefix] = scaleSI(t_end);
plot(kgrid.t_array*t_scale, sensor_data./max(abs(sensor_data)), 'r-');
xlabel(['Time [' t_prefix 's]']);
ylabel('Recorded Pressure [Normalized]');
legend('2D plane wave');
dataeun = sensor_data./max(abs(sensor_data));