Hi,

I was wondering which of the following approaches for computing the delay manually for a linear array in 2D is correct:

Assume I am modeling a transducer in which each element is consist of 4 grid points and the kerf is also 4 grid points.

In the Steering A Linear Array Example the offset for toneBurst is computed with this:

element_spacing = dx; % [m]

element_index = -(num_elements - 1)/2:(num_elements - 1)/2;

tone_burst_offset = element_spacing * element_index * ...

sin(steering_angle * pi/180) / (medium.sound_speed * kgrid.dt);

There is also an equation in manual p.41, eq. 3.1 that can be used to compute delays.

In the example there is no pitch and each element is only one grid. If I want to adopt this to my problem I'd do this:

element_spacing = 4*dx; % [m]

tone_burst_freq = 5e6; % [Hz]

element_index = 1:2:active_elements*2 ;

tone_burst_offset = element_spacing * element_index * ...

sin(steering_angle * pi/180) / (medium.sound_speed * kgrid.dt);

for i = 1:active_elements

source.ux(count,:) = signal(i,:) ;

source.ux(count+1,:) = signal(i,:) ;

source.ux(count+2,:) = signal(i,:) ;

source.ux(count+3,:) = signal(i,:) ;

count = count+4 ;

end

element spacing 4*dx because of of the number of grid points per element and element_index = 1:2:active_elements*2 because there is a kerf that should be skipped.

When I apply this, simulation looks fine (as far as I see at least).

Now With the equation:

function delay = delay_pw_me(index_num,pitch,angle,c0,dt)

delay = ((index_num*pitch*sin(pi*angle/180))/(c0*dt)) ;

end

pitch = 4*dx + 4*dx ;

for i = 1 : active_elements

tone_burst_offset2(1,i) = delay_pw_me(i,pitch,steering_angle,c0,kgrid.dt) ;

end

for the whole element a delay is computed and then I assign the delay same way (each computed delay to 4 sources). The simulation looks fine with these delays as well.

But there is a shift between these two sets of computed delays, the question is which method is correct?

Thanks in advance,

Farnaz