Hi,
I am using k-wave fro NDT simulation. In order to simulate a defect, I set up a circular region inside the object under test, whose sound velocity and density are different from the material under test. But I found in the simulation that the reflection coefficients of different angles are different. Is there any way to make the reflection coefficient the same in all directions as the sound wave travels to the defect? The echo signal received at two sensor positions does not satisfy (1/sqrt(r1))/(1/sqrt(r2)). So I think it's due to different reflectivity in different directions. Below is my program. Looking for ward your reply. Thank you very much.
%Echo data obtained by FMC(full matrix capture)
% simulation settings
clearvars;
clc;
clear;
% simulation settings
DATA_CAST = 'single';
% =========================================================================
% DEFINE THE K-WAVE GRID
% =========================================================================
% set the size of the perfectly matched layer (PML)
PML_X_SIZE = 20; % [grid points]
PML_Y_SIZE = 20; % [grid points]
% set total number of grid points not including the PML
Nx = 512 - 2*PML_X_SIZE; % [grid points]
Ny = 512 - 2*PML_Y_SIZE; % [grid points]
% calculate the spacing between the grid points
dx = 0.1e-3; % [m]
dy = dx; % [m]
% create the k-space grid
kgrid = kWaveGrid(Nx, dx, Ny, dy);
% =========================================================================
% DEFINE THE MEDIUM PARAMETERS
% =========================================================================
% define the properties of the propagation medium
medium.sound_speed = 6200; % [m/s]
medium.density = 2700; % [kg/m^3]
% create the time array
t_end = 10e-6; % [s]
kgrid.makeTime(medium.sound_speed,[], t_end);
% =========================================================================
% DEFINE THE INPUT SIGNAL Properities
% =========================================================================
% define properties of the input signal
source_strength = 1e6; % [Pa]
tone_burst_freq = 5e6; % [Hz]
tone_burst_cycles = 5;
% =========================================================================
% DEFINE THE Excitation Source
% =========================================================================
N_element = 32; %定义阵元数目
element_width = 4; %定义阵元宽度为4个网格点,即0.4mm
kerf = 1; %定义阵元间隙为1个网格点,即0.1mm
pitch = element_width + kerf; %定义阵元间距
% calculate the width of the transducer in grid points
transducer_width = N_element * element_width ...
+ (N_element - 1) * kerf;
x_start = round(Ny/2 - transducer_width/2); %x的起始网格点
y_start = 1; %y的起始网格点
source_mask = zeros(Nx, Ny, N_element); %定义与阵元数目相同的蒙版
for i = 1 : N_element
x_temp = x_start + pitch * (i-1);
x_element = (x_temp : x_temp + element_width -1);
source_mask(y_start,x_element, i) = 1;
end
source.p_mask = source_mask(:, :, 16); %仅一个阵元被激励,获取全矩阵捕获回波信号
input_signal = toneBurst(1/kgrid.dt, tone_burst_freq, tone_burst_cycles);
input_signal = (source_strength ./ (6200 * 2700)) .* input_signal;
source.p = source_strength * input_signal;
% =========================================================================
% DEFINE THE Sensor
% =========================================================================
% define a single sensor point
% sensor.mask = zeros(Nx, Ny);
% sensor.mask(Nx/4, Ny/2) = 1;
% sensor.mask(2*Nx/4, Ny/2) = 1;
sensor.mask = source_mask(:, :, 1) + source_mask(:, :, 16);
% define the acoustic parameters to record
sensor.record = {'p'};
% =========================================================================
% DEFINE THE Defect
% =========================================================================
%define a circle for the region of interesting
sound_speed_map = ones(Nx, Ny);
density_map = ones(Nx, Ny);
radius = 1.5e-3; % [m]
arc_angle = 2*pi;
x = Nx * dx;
y = Ny * dy;
x_center = x/2;
y_center = y/2;
scattering_region1 = makeCircle(Nx, Ny, Nx/2, Ny/2, round(radius/dx), arc_angle);
sound_speed_map(scattering_region1 == 1) = 1540;
sound_speed_map(scattering_region1 == 0) = 6200;
density_map(scattering_region1 == 1) = 1000;
density_map(scattering_region1 == 0) = 2700;
medium.sound_speed = sound_speed_map;
medium.density = density_map;
% =========================================================================
% Calculator the pressure
% =========================================================================
% set the input settings
input_args = { 'PMLInside', false, 'PlotPML', false, 'PMLSize', [PML_X_SIZE, PML_Y_SIZE], ...
'DataCast', DATA_CAST, 'PlotScale', [-1/20, 1/20] * source_strength};
% run the simulation
sensor_data = kspaceFirstOrder2D(kgrid, medium, source, sensor, input_args{:});