Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Complex signal construction

  1. Jun 6, 2008 #1
    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:
    ift=conv(it, ht*ts);
    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
    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
    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?
  2. jcsd
  3. Jun 9, 2008 #2
    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!
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook