Attenuation as a Function of Frequency
Mostrar comentarios más antiguos
I am wondering if anyone has any experience moddelling how attenuation of a material. I have made an attempt but my attenuation is decreasing when I think it should be increasing.
In the frequency domain I divide the back wall of my material by the front wall of my material and then work out the attenuation coefficient and plot this against the frequency. I expect attenuation to increase with frequency but it is somehow the opposite. I get this might be a very specific topic but if anyone has done anything similar, any help would be appreciated. Even if there is another method to model the attenuation, I would love to know.

%% Attenuation Calculations
sample_thickness= 0.01; % Distance the wave Propagates through the structure 10cm
d = 2*sample_thickness; % Wave travels twice the distance
A_omega = back_wall_frequency_spectrum./front_wall_frequency_spectrum; % Attenuation coefficient
alpha = (log(A_omega)*-1)/d;
% Equivalent to full width half maximum
i = find(front_wall_frequency_spectrum == max(front_wall_frequency_spectrum),1,'first');
freq_mag_drop = frequency(1,i)/(10^(6/20));
j = find(frequency>=frequency(1,i)-freq_mag_drop,1,'first');
k = find(frequency>=frequency(1,i)+freq_mag_drop,1,'first');
figure()
plot(frequency(1, j:k)/1e6, alpha(1, j:k))
grid
xlabel('Frequency (MHz)')
ylabel('Attenuation (Db/mm)')
title('Attenuation Vs Frequency')
% Full range to 20 MHz
figure()
plot(frequency/1e6, alpha)
xlim([0 20])
grid
xlabel('Frequency (MHz)')
ylabel('Attenuation (Db/mm)')
title('Attenuation Vs Frequency')
Respuesta aceptada
Más respuestas (1)
Abhishek Saini
el 12 de Jun. de 2022
Editada: Abhishek Saini
el 12 de Jun. de 2022
Hi Dave,
I think you already have obtained the answer, but I stumbled on this post and want to comment.
Attenuation can be caluclated by dividing the (frontwall reflection) with backwall reflection. Therefore, attenuation in frequency domain can be calculated as,
% spec1 = first reflectuon spectrum
% spec2 = second reflectuon spectrum
% in your case spec1 = front_wall_frequency_spectrum and spec2=back_wall_frequency_spectrum
att_ratio = log(spec1./spec2); % no unit
att_ratio_dB =20*log10(spec1./spec2); % Unit: dB
att_ratio_dBpermm=amp_ratio_dB/(d); % Unit: dB/m
att_ratio_neperpm = log(spec1./spec2)./(d); % Unit: neper/m
Hope this helps.
Abhishek
Categorías
Más información sobre Spectral Analysis en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!