- As I can see from the code you have already calculated the power spectrum, the next step is to express the power spectrum in decibels (dB), you apply 10*log10 to the power spectrum.
- The attenuation is also expressed per centimeter, so we need to know the distance that the ultrasound wave has traveled through the medium to normalize the attenuation coefficient correctly.
- The actual attenuation coefficient is related to the slope of the exponential decay of the ultrasound wave amplitude as a function of distance. If we have the distance information, we can fit an exponential decay model to the amplitude data as a function of distance and extract the attenuation coefficient from there.
- Now we have the slope of the exponential decay in dB per unit distance, from here we need to convert it to dB/MHz/cm.
calculating attenuation in RF data of ultrasound
16 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I am running into something I have not yet managed to figure out after quite some googling. I should find the attenuation of an ultrasound image with different methods and then compare them; I should mention that the output should be a scaler.
In all these methods I am working with, I am stuck in the same step of all of them. How to find that the correct atttenuation coefficient from the spectrum.
I am going to attach one of those data and my code, and also the output.
My sampling frequency is 336000000Hz, and the unit of attenuation is dB/MHz/cm.
Attenuation in ultrasound is exponential so at final step an exponential curve should be fitted to the data, so I am using two different functions for that: mle, and fitdist and they both give me the same number: 67.5993. I stuck in this step and I don't know what is the unit of this number. This phantom data that I have has: att= 0.1 dB/MHz/cm. for having the dB, I used 10*log for the spectrum, but I don't even know if it is coorect or not to apply log at this step to have the "dB" in the unit. And about the MHz in the unit, at first I thought maybe I should divide it to my samling frequency, but the output of "aa=mle(aatenvec,'Distribution','exp')" is too small in this case.
If anyone of you worked on attenuation, that would be a great help for me.
atten=imcrop(fc,[0 3900 200 2650]);
[K,L]=size(atten);
if mod(K,2) == 0 % L is even
l = ( (-K/2) : ((K-2)/2) )/K*Fs;
else % L is odd
l = ( (-(K-1)/2) : ((K-1)/2) )/K*Fs;
end
accum1=zeros(K,1);
for i=1:L
FE=fftshift(abs(fft(atten(:,i))));
power = abs(FE).^2/K;
accum1=accum1+power;
end
faatenvec=10*log(accum1/L+1);
aa=mle(aatenvec,'Distribution','exp')
pd = fitdist(aatenvec,'exponential')
figure,plot(l*1e-6,aatenvec);
aa =
67.5993
pd =
ExponentialDistribution
Exponential distribution
mu = 67.5993 [61.6961, 74.3968]
0 Kommentare
Antworten (1)
SOUMNATH PAUL
am 9 Jan. 2024
Hi,
I understand that you need help in calculating attenuation for ultrasound data, To compute the attenuation coefficient from the spectrum of your ultrasound image, you need to kindly follow the below mentioned steps:
Hope it helps!
Regards,
Soumnath
0 Kommentare
Siehe auch
Kategorien
Mehr zu Ultrasound Imaging finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!