Hi,
I am trying to verify the power law absorption equation provided in the kwave documentation. From what i read the transmission loss is given by "alpha_coeff*distance*(frequency)^y".
I am simulating a case where a transducer source and sensor are separated by 5mm distance, and comparing the input/output values seen. I have added the script used below.
Theoretically, on calculating the loss i get a value of 18.97dB. But on observing the data recorded I get a value of 38.63dB. I am calculating the observed loss as 10log10(input_signal/output_signal).
Is there a loss that i am not taking into account, like the electromechanical coupling?
Or am i calculating the loss incorrectly? Any feedback here would be helpful.
Thanks in advance.
%----------------------------------
medium.sound_speed(:,:,:)=5702;
medium.density(:,:,:)=3.2777e6;
%grid setup, step size 10^-4m(0.1mm)
kgrid = kWaveGrid(100, 1e-4, 100, 1e-4, 100, 1e-4);
kgrid.makeTime(max(medium.sound_speed(:)));
medium.alpha_coeff = 1.2; % [dB/(MHz^y cm)]
medium.alpha_power = 1.5;
grid=zeros(100,100,100);
grid(31,50,50)=1;
grid(81,50,50)=1;
sensor.mask=grid;
source_strength = 100; % [MPa]
tone_burst_freq = 10e6; % [Hz]
tone_burst_cycles = 5;
input_signal = toneBurst(40e6, tone_burst_freq, tone_burst_cycles,'Envelope','Rectangular');
input_signal = (source_strength ./ (max(medium.sound_speed(:))*max(medium.density(:)))) .* input_signal;
settings.number_elements = 1;
settings.active_elements = 1;
settings.element_width = 1; % width of each element [grid points]
settings.element_length = 1; % length of each element [grid points]
settings.element_spacing = 0; % spacing (kerf width) between the elements [grid points]
settings.radius = inf; % radius of curvature of the transducer [m]
settings.position = [31,50,50]; % position of transducer
settings.sound_speed =max(medium.sound_speed(:)); % sound speed [m/s]
settings.focus_distance = 20e-3; % focus distance [m]
settings.elevation_focus_distance = 19e-3; % focus distance in the elevation plane [m]
settings.steering_angle = 0; % steering angle [degrees]
settings.input_signal = input_signal;
transducer = kWaveTransducer(kgrid, settings);
transducer.properties
input_args = {'RecordMovie', true, 'MovieName', 'loss_verify'};
[sensor_data] = kspaceFirstOrder3D(kgrid, medium,transducer,sensor,input_args{:});