Attenuation as a Function of Frequency
Show older comments
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')
Accepted Answer
More Answers (1)
Abhishek Saini
on 12 Jun 2022
Edited: Abhishek Saini
on 12 Jun 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
Categories
Find more on Spectral Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!