I am doing research on attenuation coefficient estimation for medical ultrasound using k-wave toolbox.I wrote the simulation code to generate the RF signals so as to verify the spectral difference method and spectral shift method for estiamtion. I modified the example_us_bmode_linear_transducer.m matlab code to do simulation, and set sampling frequency to fixed 40MHz instead of CFL related one.
medium.alpha_coeff = 0.5;
% [dB/(MHz^y cm)]
medium.alpha_power = 1.0; % linear relationship between attenuation and frequency
medium.alpha_mode = 'no_dispersion';
% medium.BonA = 6; comment this line to ignore the nonlinear effect
Pairs of two signal segments were extracted from the backscattered signal about the peaks in the envelope, one in near region and the other in far region respectively. So there are several pairs of signal segments, After calculating the pwoer spectrum using Welch method, some central frequency in near region is lower than in far region, this is because of the diffraction effect in the near region which enhanced the lower frequency. Some of the corresponding slopes in near region are negative and will be ignored when calculate the average estimated attenuation coefficient. The issues I encountered are as below:
(1) when the alpha is 0.5 and 0.7 dB/MHz/cm, both spectral difference and spectral shift methods work well; after I changed to 0.8 and 0.9, the bias is very large, only around 0.4 and 0.5.
(2) If I want to compensate for the diffraction effect, shall I do it in time-domain s(t)/s_ref(t) or frequency domain S(f)/S_ref(f), or power spectrum Ps/Ps_ref. Whether normalization should be done.
Thanks.