Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
Image/RF signal Analysis

Subject: Image/RF signal Analysis

From: EE Student

Date: 24 Apr, 2010 05:31:33

Message: 1 of 9

Hey there MATLAB image processing and signal analysis community. This is my first post on the message board looking for suggestions, ideas and or help. Let me fill those of you who decide to read this in on some of my backround and that of my problem. I am an electrical engineering student and I am doing some research on a medical imaging technique similar to strain imaging using ultrasound. The basic idea is that if you have some substance (it doesnt really matter what, it could be tissue, it could be tofu, or anyting like that, just some type of soft yet solid material), and you image it using ultrasound over some time interval, say we take an image every 15 seconds, and while we are taking this series of images, we introduce some energy or force that causes actual or apparent movement within the substance we should be able to detect the movement by comparing succsessive signals or
images. To break it down further, the signals rescieved by the ultrasound transducer are RF signals, and we recieve back a 128 (it could be 256 depending on the focal depth and size of the sample tissue) signals which represent the width of the tansducer (and therefore the width of area of interest of our substance). When imported into MATLAB these will be my colums, so I will have 128 colums of data. Each colum of data will hold approximately 2000 samples (of course giving me a 2000 row by 128 colum matrix of data at each time interval an image ultrasound image is taken) and these samples (rows) will redpresent the axial depth into the substance. I am currently only working in 2D so I will not consider elevation at this time. The sampling freuqncy of my transducer is 24MHz.

What I want to do is to detect any shifts in the RF signals from one time to the next. Currently I am doing this by means of a windowed cross-correlation algorithm, and while it does work in the sense it detects the shifts, it is painfully slow. I am most concerned with movment along each column (axial) but I cannot ignore movement along each row (lateral) so going to a 1D anaysis is not an option. To give an example of the basic approach I am currently using:

For this example I will assume no resampling of the input (but i do in my normal approach), but I am resampling the correlation outputs in an attempt to gain sub-sample accuracy in the shift detection, however this is also my greatest enemy in terms of time efficiency

%normally g1 = data_at time_t;
%normally g2 = data_at_time_t_plus_1;

for this example I will create a random set and shift it using circshift, so if you try this and run the code it should detect some varrying integer shifts throughout, the actual shifts are recorded for checking perpouses. You will see that the code works reasonably well, not perfect but good enough to get the point across. My actual algorithm im using is more complex, and resamples a bit more and yields more accurate sub-sample results but again its awefully slow.
g1 = rand(400,40);
g2 = zeros(size(g1));
counter = 1;
for i = 1:50:400
    shifts = -10:1:0;
    g2(i:i+49,:) = circshift(g1(i:i+49,:),shifts(mod(i,7)+1));
    record_of_shifts(counter) = shifts(mod(i,7)+1);
    counter = counter+1;
end

predicted_shift_max = 5; %this is in samples without resmapling
% the sizes of the two arrays are always equal
[rows cols] = size(g1);
compare_window = [50 15];
cc_resample_rate =0;
%my basic cross correlation
frame = 1;
for col = 1:cols-compare_window(2)
    counter = 1;
      for row = 1:rows-compare_window(1)
g1in = zeros(compare_window);
                         g2in = g2( counter: counter+compare_window(1)-1,col:col+compare_window(2)-1);
                         g1in(6:compare_window(1)-5,3:compare_window(2)-2)= g1(counter+5:counter+compare_window(1)-6,col+2:col+compare_window(2)-3);
                        axial_lags = -compare_window(1)+1:compare_window(1)-1;
                        lateral_lags = -compare_window(2)+1:compare_window(2)-1;
                        xc1 = normxcorr2(g1in,g2in);
                        xc1_i = interp2(xc1,cc_resample_rate,'spline');
                        [M1 N1] = size(xc1_i);
                        a_lags_i = interp1(0:length(axial_lags)-1,axial_lags,0:1/2^cc_resample_rate:length(axial_lags)-1,'spline');
                        l_lags_i = interp1(0:length(lateral_lags)-1,lateral_lags,0:1/2^cc_resample_rate:length(lateral_lags)-1,'spline');
                        if row ~= 1
                            temp_v = 0: counter-1;
                            ep1 = round(sum(ROW1( counter-temp_v(1: counter-1)-1))/( counter-1));
                            mask1 = zeros(size(xc1_i));
                            mask1(ep1-predicted_shift_max*2^cc_resample_rate:ep1+predicted_shift_max*2^cc_resample_rate,:) = 1;
                            indices1 = find(mask1(:));
                            [xc_out1( counter,col,frame) idx1] = max(xc1_i(mask1(:)==1));
                            [rows1 cols1] = ind2sub([M1 N1],indices1(idx1));
                            ROW1( counter) = rows1;
                        else
                            [xc_out1( counter,col,frame) idx1] = max(xc1_i(:));
                            [rows1 cols1] = ind2sub([M1 N1],idx1);
                            ROW1( counter) = rows1;%
                        end
                        axial_shift1( counter,col,frame) = a_lags_i(rows1);
                        lateral_shift1( counter,col,frame) = l_lags_i(cols1);
                        counter = counter+1;
      end
                    col
                end
So what this is doing is sliding a window down both sets of data, the window is 50 samples long (rows) and 15 sample wide (cols) and as this window is sling down the signals, it using normxcorr2 to find the normailized 2D cross correlation, finds the maximum value within set seach parameters based on assuption of how much the maximum shift can be during a time interval, and saves the detected shifts into an array. Once the shifts have been detected the next step is to filter the shifts (displacement) array and take the derivative in the axial direction to generate the strain image. The goal is then to scale the image to map the intensity of the energy causing the movement. So As I said, I am looking for any ideas on ways to speed up my correlation algorithm or alternative approached to detecting sub-sample shift in 2D. Second, I am having problems with the the filtering and
especially taking the derivative portion of the problem. The main obsticale is that if I dont filter enough, the derviative oscilates and I cannot use the result. If I over filter I lose the spatial resolution. Mainly it is a lowpass filter needed, and I currently need a cutoff frequency of approx. .02 normailzed by the sampling frequency. I have tried most of the built in filters, the filter building tool, creating my own custom wondowed sinc filter using methods I learned in DSP, differentialing filters, polynomial fits to take an analytic derivative, first difference, and so on with limited results and again here I am looking for any suggestions or ideas that may help me leap these hurdles. Now I dont want to be scolded for not including data or images which I am more than willing to provide but the data sets are large and would need to know the best way to get those to anyone
who thinks the may want to try and help. As far as images go, again I can provide them but at this time do not know the best way to share them in this setting.

Thanks for any ideas,help, or insight you might provide into improving the algorithm, different approaches to solving the problem and ways to tackle the filtering and differentiating issues. If you think images or actual data may help please let me know how to get them to you.

EEStudent

Subject: Image/RF signal Analysis

From: ImageAnalyst

Date: 24 Apr, 2010 12:52:14

Message: 2 of 9

Have you run it without the col statement in there to print out your
column? Sometimes printing out to the command window really slows
things down. Also, have you tried nlfilter() instead? It might not
be much faster but it might be worth a try.

Finally, tell me how long it takes? Are we talking many minutes or
just a few seconds? We've had people here complain that things are
taking too long where they are taking a fraction of a second, and
they're not using real time processing they just want to try to hammer
down the tic-toc time just for theoretical reasons. Like they click a
button and they think they'll notice that it now takes .005 seconds
instead of .1 seconds.

If you want to post images or data files, the best I've found is
http://drop.io.

Subject: Image/RF signal Analysis

From: Rune Allnor

Date: 24 Apr, 2010 13:11:20

Message: 3 of 9

On 24 apr, 07:31, "EE Student " <n...@cec.wustl.edu> wrote:

>  The goal is then to scale the image to map the intensity of the energy causing the movement.  

Forget it.

The only way to use images to measure energy intensity, is
to use calibrated sensors. You don't have that.

What you measure, is physical displacements and deformations.
That's all. There may or may not be a relation between what
you measure and what you want, but make sure you understand
the difference.

What you attempt to do, is comparable to use image processing
to measure temperature by imaging one of the old-style mercury
thermometers. The image processing part is to measure and
quantifying the length of the mercury column. That length
tells you absolutely nothing about temperature. You need to
know a lot about the design of the thermometer and the thermo
dynamic properties of mercury to map the measured length to
temperature.

Rune

Subject: Image/RF signal Analysis

From: EE Student

Date: 24 Apr, 2010 16:04:04

Message: 4 of 9

"EE Student " <np7@cec.wustl.edu> wrote in message <hqtvnl$739$1@fred.mathworks.com>...
> Hey there MATLAB image processing and signal analysis community. This is my first post on the message board looking for suggestions, ideas and or help. Let me fill those of you who decide to read this in on some of my backround and that of my problem. I am an electrical engineering student and I am doing some research on a medical imaging technique similar to strain imaging using ultrasound. The basic idea is that if you have some substance (it doesnt really matter what, it could be tissue, it could be tofu, or anyting like that, just some type of soft yet solid material), and you image it using ultrasound over some time interval, say we take an image every 15 seconds, and while we are taking this series of images, we introduce some energy or force that causes actual or apparent movement within the substance we should be able to detect the movement by comparing succsessive signals
or
> images. To break it down further, the signals rescieved by the ultrasound transducer are RF signals, and we recieve back a 128 (it could be 256 depending on the focal depth and size of the sample tissue) signals which represent the width of the tansducer (and therefore the width of area of interest of our substance). When imported into MATLAB these will be my colums, so I will have 128 colums of data. Each colum of data will hold approximately 2000 samples (of course giving me a 2000 row by 128 colum matrix of data at each time interval an image ultrasound image is taken) and these samples (rows) will redpresent the axial depth into the substance. I am currently only working in 2D so I will not consider elevation at this time. The sampling freuqncy of my transducer is 24MHz.
>
> What I want to do is to detect any shifts in the RF signals from one time to the next. Currently I am doing this by means of a windowed cross-correlation algorithm, and while it does work in the sense it detects the shifts, it is painfully slow. I am most concerned with movment along each column (axial) but I cannot ignore movement along each row (lateral) so going to a 1D anaysis is not an option. To give an example of the basic approach I am currently using:
>
> For this example I will assume no resampling of the input (but i do in my normal approach), but I am resampling the correlation outputs in an attempt to gain sub-sample accuracy in the shift detection, however this is also my greatest enemy in terms of time efficiency
>
> %normally g1 = data_at time_t;
> %normally g2 = data_at_time_t_plus_1;
>
> for this example I will create a random set and shift it using circshift, so if you try this and run the code it should detect some varrying integer shifts throughout, the actual shifts are recorded for checking perpouses. You will see that the code works reasonably well, not perfect but good enough to get the point across. My actual algorithm im using is more complex, and resamples a bit more and yields more accurate sub-sample results but again its awefully slow.
> g1 = rand(400,40);
> g2 = zeros(size(g1));
> counter = 1;
> for i = 1:50:400
> shifts = -10:1:0;
> g2(i:i+49,:) = circshift(g1(i:i+49,:),shifts(mod(i,7)+1));
> record_of_shifts(counter) = shifts(mod(i,7)+1);
> counter = counter+1;
> end
>
> predicted_shift_max = 5; %this is in samples without resmapling
> % the sizes of the two arrays are always equal
> [rows cols] = size(g1);
> compare_window = [50 15];
> cc_resample_rate =0;
> %my basic cross correlation
> frame = 1;
> for col = 1:cols-compare_window(2)
> counter = 1;
> for row = 1:rows-compare_window(1)
> g1in = zeros(compare_window);
> g2in = g2( counter: counter+compare_window(1)-1,col:col+compare_window(2)-1);
> g1in(6:compare_window(1)-5,3:compare_window(2)-2)= g1(counter+5:counter+compare_window(1)-6,col+2:col+compare_window(2)-3);
> axial_lags = -compare_window(1)+1:compare_window(1)-1;
> lateral_lags = -compare_window(2)+1:compare_window(2)-1;
> xc1 = normxcorr2(g1in,g2in);
> xc1_i = interp2(xc1,cc_resample_rate,'spline');
> [M1 N1] = size(xc1_i);
> a_lags_i = interp1(0:length(axial_lags)-1,axial_lags,0:1/2^cc_resample_rate:length(axial_lags)-1,'spline');
> l_lags_i = interp1(0:length(lateral_lags)-1,lateral_lags,0:1/2^cc_resample_rate:length(lateral_lags)-1,'spline');
> if row ~= 1
> temp_v = 0: counter-1;
> ep1 = round(sum(ROW1( counter-temp_v(1: counter-1)-1))/( counter-1));
> mask1 = zeros(size(xc1_i));
> mask1(ep1-predicted_shift_max*2^cc_resample_rate:ep1+predicted_shift_max*2^cc_resample_rate,:) = 1;
> indices1 = find(mask1(:));
> [xc_out1( counter,col,frame) idx1] = max(xc1_i(mask1(:)==1));
> [rows1 cols1] = ind2sub([M1 N1],indices1(idx1));
> ROW1( counter) = rows1;
> else
> [xc_out1( counter,col,frame) idx1] = max(xc1_i(:));
> [rows1 cols1] = ind2sub([M1 N1],idx1);
> ROW1( counter) = rows1;%
> end
> axial_shift1( counter,col,frame) = a_lags_i(rows1);
> lateral_shift1( counter,col,frame) = l_lags_i(cols1);
> counter = counter+1;
> end
> col
> end
> So what this is doing is sliding a window down both sets of data, the window is 50 samples long (rows) and 15 sample wide (cols) and as this window is sling down the signals, it using normxcorr2 to find the normailized 2D cross correlation, finds the maximum value within set seach parameters based on assuption of how much the maximum shift can be during a time interval, and saves the detected shifts into an array. Once the shifts have been detected the next step is to filter the shifts (displacement) array and take the derivative in the axial direction to generate the strain image. The goal is then to scale the image to map the intensity of the energy causing the movement. So As I said, I am looking for any ideas on ways to speed up my correlation algorithm or alternative approached to detecting sub-sample shift in 2D. Second, I am having problems with the the filtering and
> especially taking the derivative portion of the problem. The main obsticale is that if I dont filter enough, the derviative oscilates and I cannot use the result. If I over filter I lose the spatial resolution. Mainly it is a lowpass filter needed, and I currently need a cutoff frequency of approx. .02 normailzed by the sampling frequency. I have tried most of the built in filters, the filter building tool, creating my own custom wondowed sinc filter using methods I learned in DSP, differentialing filters, polynomial fits to take an analytic derivative, first difference, and so on with limited results and again here I am looking for any suggestions or ideas that may help me leap these hurdles. Now I dont want to be scolded for not including data or images which I am more than willing to provide but the data sets are large and would need to know the best way to get those to anyone

> who thinks the may want to try and help. As far as images go, again I can provide them but at this time do not know the best way to share them in this setting.
>
> Thanks for any ideas,help, or insight you might provide into improving the algorithm, different approaches to solving the problem and ways to tackle the filtering and differentiating issues. If you think images or actual data may help please let me know how to get them to you.
>
> EEStudent


ImageAnalysit,

Yes I just add the "col" statement to track the progress when the code is running. The datasets typicially consist of 30 to 100 matrices (i will refere to these as frames) in sized about 2000 by 128 or 2000 by 256. Generally speaking you do not need to correlate each frame to the next, but the further apart in time the frames are, the more decorrelation and error occurs. A good model for the ultrasound signal is

q(r) = summation q_i * delta(r - r_i) from k = 1 to Nr where q_i is the reflectivity and r_i is the position of the "ith" scatter. Basically, a burst is shot doen into tissue, the burst is reflected back off different points within the tissue and reutrn to the transducer in varrying applitudes and non-uniform incremements (but related to the speed of sound in the material) to creat 1 signal. The closer in time you send another burst the more similar the return signal to the previous, but the longer you what, the more the orignal causes of scatter may be moved by the applied energy thereby causing the return scatter pattern to differ and making it harder to accurately correlate the signals. Currently, the code I am written does a great job of detecting the shifts in successive frame or every few frames, but I cannot go from say frame 1 to frame 30, there is too much
decorrelation. Each frame however takes a anwhere from30 minutes to a few hours or more to work through dependingon the ammount and location of interpolations. I will get an account for the drop site you posted this afternoon to share some data and results I currently have. I know that this can work well when the force applied is mechanical and causes a lot of movement. I have great results for this case to measure the strain of the material being stressed, although it works better in phantoms or tofu than on animal tissue. The more difficult problem is say I want to use heat as the energy to cause motion in the tissue. As when know if you heat tissue, such a muscle, the cell volume expands as the thermal energy rises, tis will cause the distance the ultrasound signal has to travel to become longer causeing an apparent delay in subsequent signals. However, the change in
temerature will also effect the speed of sound (SOS) in the medium so the SOS is a function of distance (z) and temperature (T) . Measure the apparent delay cause by the heating could then reasonably be used to determine temperature if the signals are processed correctly. The shifts, or delays in this case are much smaller and therefore harder t detect but again my algorithm does this well to map the "echo-shifts" as it is refered to, however, at this point becomes the problem of filtering, spatial resolution and differentiating that I refered to before. The echo-shift maps look just like one would expect to see as heat diffused from a localized source. However, mathmeatically it is the derivative of the echo-shifts that is related to the change in temperature, although I guess I could try to soleve the problem to eleminate the need for the diferentiation. But this would create
other questions. I am balabbering. Let me get the data and images posted to better show you what is going on. Thanks for the reply and I will also look into the nlfilter() function.


Rune,

Thank you for taking the time to reply, but forgetting it is not an option, nor is it good advice. I do not agree with you analogy of the thermometer as it does not pertain to the sort of analysis I am doing( even though measuring temperature is one of my goals). As I stated above, piece of tissue is heated, the cells that make up that tissue will expand based on the material properties. This is well docemented and tables of coefficients of thermal expansion exist. As the tissue expands it created a longer path that the ultrasound signal must pass through before returning to the transducer. The speed of sound (SOS) in the material will also change with temperature causing an apparent delay in the signal. Measureing this delay (echo_shift) throughout a standard time frame will yield a map of shifts, greater closer to the heat source, less when further away. The results are what you
would epect if you ploted the solution to the heat equation in 2D. Now perhaps I did a poor job of explaining what I was trying to accomplish, but can use techniques like this can be used to learn about physical forces and the materials the signals passed through. This is how we know that the Earths core is moltan. Seizmic waves during earthquakes, while not felt globally can be detected globally, and by measuring the refraction of the waves or other signal characteristics as they pass through dfferent material can tell you alot about the material itself. Similar techniques are used to dtermine where oil and gas are without digging. I am noy looking a the ultrasound images, but looking at the signals that create them, I think I may have failed to clarify this. Sorry if that was confusing.

EEStudent

Subject: Image/RF signal Analysis

From: Rune Allnor

Date: 24 Apr, 2010 16:24:54

Message: 5 of 9

On 24 apr, 18:04, "EE Student " <n...@cec.wustl.edu> wrote:

> Rune,  
>
> Thank you for taking the time to reply, but forgetting it is not an option, nor is it good advice.  I do not agree with you analogy of the thermometer as it does not pertain to the sort of analysis I am doing( even though measuring temperature is one of my goals).  As I stated above, piece of tissue is heated, the cells that make up that tissue will expand based on the material properties.

You are a student, which is a different way to state that you have no
idea
what you are talking about.

The reason why no systems exist to do what you want, is that what you
want
can not be done. At least not the way you want to do it. The
*experienced*
engineers are able to break the task down in sub-tasks, which I did
with
the thermometer example.

The best you can do with ultrasound is to measure time delay of
reflections.
You can *not* explayn what *causes* that time delay: The basic idea is
expressed
as

t = c(T)*v(T)*L(T)*w(T)

where

t is the time delay
T is the temperature
c(T) is the speed of sound at temperature T
v(T) is some correction to c(T) comared to some reference temperature
L(T) is the length of the sample at temperature T
w(T) is some correction to L(T) compared to some refence temperature

Since both c(T) and L(T) depend on T, you are unable to measure T.

This is a classic mistake made by novices and amateurs - the
characteristic
applies just as much to your tutour / supervisor as yourself. Find a
different
project. Your present supervisor have no idea what he or she is
doing.

Rune

Subject: Image/RF signal Analysis

From: EE Student

Date: 24 Apr, 2010 17:10:21

Message: 6 of 9

Rune Allnor <allnor@tele.ntnu.no> wrote in message <dcc5709a-078e-4fba-a342-a902afb5e00c@8g2000yqz.googlegroups.com>...
> On 24 apr, 18:04, "EE Student " <n...@cec.wustl.edu> wrote:
>
> > Rune,  
> >
> > Thank you for taking the time to reply, but forgetting it is not an option, nor is it good advice.  I do not agree with you analogy of the thermometer as it does not pertain to the sort of analysis I am doing( even though measuring temperature is one of my goals).  As I stated above, piece of tissue is heated, the cells that make up that tissue will expand based on the material properties.
>
> You are a student, which is a different way to state that you have no
> idea
> what you are talking about.
>
> The reason why no systems exist to do what you want, is that what you
> want
> can not be done. At least not the way you want to do it. The
> *experienced*
> engineers are able to break the task down in sub-tasks, which I did
> with
> the thermometer example.
>
> The best you can do with ultrasound is to measure time delay of
> reflections.
> You can *not* explayn what *causes* that time delay: The basic idea is
> expressed
> as
>
> t = c(T)*v(T)*L(T)*w(T)
>
> where
>
> t is the time delay
> T is the temperature
> c(T) is the speed of sound at temperature T
> v(T) is some correction to c(T) comared to some reference temperature
> L(T) is the length of the sample at temperature T
> w(T) is some correction to L(T) compared to some refence temperature
>
> Since both c(T) and L(T) depend on T, you are unable to measure T.
>
> This is a classic mistake made by novices and amateurs - the
> characteristic
> applies just as much to your tutour / supervisor as yourself. Find a
> different
> project. Your present supervisor have no idea what he or she is
> doing.
>
> Rune


Rune,

Once again I will thank you for taking the time but I still think you are misguided. Or at least your mathematical expression is not representative of what I am trying to do.

MAthematically what is happening is this:
axial depth is = z
the apparent time shifts I am mesaureing at depth z will be t(z) - t0(z) = td(z)
thermal expansion at depth z = alpha(z)
temperature at depth z = T(z)
intital temerature before heating T0 (also the edged of the sample are kept at this temperture in the lab)
speed of sound is a function of tempertature T and depth z = c(z,T(z))

td(z) = 2 * int((1+alpha(z)*(T(z) - T0))/(c(z,T(z)) - 1/c(z,T0))dz from 0 to z
differentiating this with respect to z

d(td(z))/dz = 2*((1+alpha(z)*(T(z) - T0))/(c(z,T(z)) - 1/c(z,T0))
*note this should be a partial derivative on the left but I cant make that character
making a reasonable assumption that the SOS is linear with the temperture range of interest:
c(z,T(z)) = c0(z)*(1+beta(z)(T(z) - T0)) where c0(z) is the mean SOS in the material at T0, and beta(z) = 1/(c0(z) * d(c(z,T0)/dT
* again the derivative on the right here ahould be a partial

the change in temperature T(z) - T0 I will now call delta_T(z)

delta_T(z) = c0(z)/(2*(alpha(z) - beta(z)) * d(td(z))/dz
*the derivative on the right is still a partial

since delta_T(z) = T(z) -T0, the temperature at depth z, T(z) is

T(z) = c0(z)/(2*(alpha(z) - beta(z)) * d(td(z))/dz + T0

 In homogenous materials where we can assume c0(z)/(2*(alpha(z) - beta(z)) = k; where k is some constant due to the materials properties and being homogeneous. Using phantom simualtions or consistant samples such as tofu, I can produce a temperture map based on this equation where I follow the process of estimiateing the time shifts from fram to frame, sum the shifts, filter axially and laterally, differentiate the axial, and scale by k*c0/2. These tempertaure maps are acurate when compared to thermal couple readings. In actual animal tissue where the k parameter cannot be as easily asummed to be constant I am having more difficultl, which is why I was looking for alternative ideas to the processing I am currently doing. Finally I will say just because you dont see a relationship between what is going on doesnt mean there isnt one, close mindedness is the enemy of scietific
discovery.

Subject: Image/RF signal Analysis

From: Rune Allnor

Date: 24 Apr, 2010 17:18:30

Message: 7 of 9

On 24 apr, 19:10, "EE Student " <n...@cec.wustl.edu> wrote:
>  Finally I will say just because you dont see a relationship between what is going on doesnt mean there isnt one, close mindedness is the enemy of scietific
> discovery.

The enemy of scientific discovery is not to use the basic facts.
You should have learned some time around age 12 that one can not
use *one* equation to solve for *two* variables.

In the equation

t = L/c

the only one known factor is the time delaty t. You can use
knowledge or assumptions about *either* c *or* L to infer
something about the other, but not both at the same time.

Of course, 'the open mind' is the incompetent's, the amateur's
and the idiot's defence for not knowing the basics, nor being
able to set up a logical chain of causes and effects.

Rune

Subject: Image/RF signal Analysis

From: EE Student

Date: 24 Apr, 2010 17:58:05

Message: 8 of 9

Rune Allnor <allnor@tele.ntnu.no> wrote in message <6fa630aa-97fb-4081-a295-42ffeef8b28a@r18g2000yqd.googlegroups.com>...
> On 24 apr, 19:10, "EE Student " <n...@cec.wustl.edu> wrote:
> >  Finally I will say just because you dont see a relationship between what is going on doesnt mean there isnt one, close mindedness is the enemy of scietific
> > discovery.
>
> The enemy of scientific discovery is not to use the basic facts.
> You should have learned some time around age 12 that one can not
> use *one* equation to solve for *two* variables.
>
> In the equation
>
> t = L/c
>
> the only one known factor is the time delaty t. You can use
> knowledge or assumptions about *either* c *or* L to infer
> something about the other, but not both at the same time.
>
> Of course, 'the open mind' is the incompetent's, the amateur's
> and the idiot's defence for not knowing the basics, nor being
> able to set up a logical chain of causes and effects.
>
> Rune

Rune,
If you look at the equations carefully, all are functions of depth, known properties of materials, known (within a range of temperatures and based on the medium) speed of sound, and Temperature which again is a known range. Knowing the boundry values, the depth z based on the sampling frequency, and matrial properties should be enough to yield a solution. As I stated I have reached a solution in phantoms and homogeneous mediums. Perhaps the non-homogeneous tissue is too complex and I need to revisit the approach. But in your expression:

t=L/c

we know that L,the length of propegation, is equal to L + dL where dL is the volumetric change of the tissue due to thermal expansion at depth z, alpha(z), so L is therefore (1+alpha(z))*delta_T(z)

c can be assumed to be linear (or very close to it) in the temperature range I am studying, that is c(z,T(z)) = c0(z)*(1+beta(z)*delta_T(z)) where c0(z) is the mean SOS in the medium which is known, for example in water at 20*C is roughly 1.48 mm/us and beta(z)= 1/(c0(z) * d(c(z,T0)/dT The tough part comes in animal tissue where you might have muscle tissue infused with blood vessels, fat, and other tihngs that will cause the SOS to deviate from its relatively lenear characteristic within the temperature range.

With this known information, a solution can be reached. Papers have been published on the topic, I have confirmed the result using my own methods on homogeneous mediums and phantoms.

Now why do you feel it necessary to insult me, my advisor, and my work? I came to this site posting a reasonable request for a discussion of ideas and/or alternative solutions to a problem I have been working on for a while. I Presented the backrund of my work and results to make sure everyone knew I was not trying to get someone to just do my work for me or give me an answer. You did not try and provide any real insight into possible ways to improve the algorithm, techniques to get around the filter/differentiaing problem I have encountered or anthinf remotely constructive. Instead you degrade. What is your background, or what have you done that gives you such authoity to discredit countless numbers of PhDs who have shown that this is indeed a viable solution and are working on ways to improve it?

Subject: Image/RF signal Analysis

From: Rune Allnor

Date: 24 Apr, 2010 18:55:02

Message: 9 of 9

On 24 apr, 19:58, "EE Student " <n...@cec.wustl.edu> wrote:

> Now why do you feel it necessary to insult me, my advisor, and my work?  

There are no insults. You don't know what you are doing; you don't
see the trees for the forest (or vice versa); you are unable to
use the most basic arguments and principles: One can not use *one*
measurement to solve for *two* variables.

Rune

Tags for this Thread

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us