How Can I Estimate Blood Velocity Using Doppler Ultrasound?

AI Thread Summary
Estimating blood velocity using Doppler ultrasound involves addressing unwanted high-frequency components and low-frequency reflections from stationary tissues. A bandpass filter is designed with a higher cutoff at 10,000 Hz and a lower cutoff at 100 Hz to remove these signals. The MATLAB code provided aims to calculate the Fourier transform of the complex signal y(t) to estimate instantaneous blood speed. However, the output yields zero blood velocity, prompting a need for clarification on certain variables, particularly p(t). It is recommended to create a simplified example to verify the results step-by-step, ensuring accuracy in the filtering process.
collier
Messages
1
Reaction score
0
So I am trying to estimate blood velocity using Doppler ultrasound. We have a complex signal y(t)= i (t) + j* q(t). i(t) and q(t) contain unwanted high frequency components created by the demodulation process and low frequency signals that are reflections from stationary tissues. I need to design a bandpass filter to remove these unwanted signals. The higher cutoff frequency of the bandpass filter is can be set at 10000 Hz and the lower frequency at 100 Hz. I am trying to calculate the Fourier transform of y(t) using a time window t(0)-tau<t<t(0) +tau to estimate instantaneous blood speed at t= t(0). This is my MATLAB code so far:
it=xt.*cos(2*pi*f0*t);
ht=9900*sinc((9900)*(t)).*exp(((20000*pi-200*pi)/2+200*pi)*j*t);
ift=conv(it, ht*ts);
qt=xt.*(cos(2*pi*f0*t)-sin(2*pi*f0*t));
qft=conv(qt, ht*ts);
cft(ift, ts,1)
The above is my lowpass filter. Then I used numerical convolution to calculate an approximate output of the filter output i(t) and q(t) when the input is i(t) and q(t) respectively:
for k=1:50
yt=ift+j*qft;
yk =yt(1:length(t)).* ((t>=.02 .*k - .02) - (t>= .02 .*k + .02)) ;
[Yw, w] = cft(yk, ts, 1 ); % calculate the Fourier transform, where
[maxY w_index] = max(abs(Yw)); % find the peak in ||xw||
omega_m(k) = w(w_index); % omega_m(k) is the Doppler shift frequency
end
but when I multiply y(t) by p(t-t0) I get 0 for my w0 and blood velocity is zero everywhere..What am I supposed to do?
 
Engineering news on Phys.org
Excellent that you are working on this problem. Many years ago, I had a brainstorm while taking a DSP class to create a truly non-invasive blood pressure measurement based on the blood velocity profile using doppler ultrasound . But never pursued it and have moved on to other things, etc.

I can't quite follow your Matlab code as some of the variables aren't quite clear - e.g. what is p(t) at the end? Anyhow, some general suggestions: Create a small scale, hand worked artificial example with known result. First without any noise signals or the filter. Then step through the FFT code to verify the result. Separately, add one low and one high freq sampled sine to the known input and step through the filter code.

Tedious, but nothing verifies like stepping through the code.

Good Luck!
 
Thread 'Weird near-field phenomenon I get in my EM simulation'
I recently made a basic simulation of wire antennas and I am not sure if the near field in my simulation is modeled correctly. One of the things that worry me is the fact that sometimes I see in my simulation "movements" in the near field that seems to be faster than the speed of wave propagation I defined (the speed of light in the simulation). Specifically I see "nodes" of low amplitude in the E field that are quickly "emitted" from the antenna and then slow down as they approach the far...
Hello dear reader, a brief introduction: Some 4 years ago someone started developing health related issues, apparently due to exposure to RF & ELF related frequencies and/or fields (Magnetic). This is currently becoming known as EHS. (Electromagnetic hypersensitivity is a claimed sensitivity to electromagnetic fields, to which adverse symptoms are attributed.) She experiences a deep burning sensation throughout her entire body, leaving her in pain and exhausted after a pulse has occurred...
Back
Top