Continue to Site

Matlab: Some questions about analysing plot data

Status
Not open for further replies.

RobertL

Newbie level 5
Hi all,

I'm new here and I'm also fairly new to Matlab. I have to analyse some data that I've retrieved during experiments for my Master's thesis.

Picture: raw data
file.php (561×420) | Awesome Screenshot

The data I'm talking about here is the moment in time (on the x-axis) versus speed (y-axis). Because of the instruments I use to measure, the data is somewhat unprecise so I need some filtering. It's no problem for me to write something to take several points to determine an average value (see figure below, taken over 10 points) but this figure is still not what I need to take conclusions. (And I think it's even better to filter with a high or lowpass filter, but I don't (yet) know how to do this in Matlab).

file.php (561×420) | Awesome Screenshot

I allready thought of some ways to analyse my data:

- One hypothesis of mine is: if participants are better in the grasping task, they need less 'bumps' to reach the target in my experiment (they already reach it in one arm movement). So, I have to do something like a regression analysis on the filtered data. That's something like: "Do I need a cubic, quartic, quintic, sextic, septic or octic polynomial to describe the outcome best? When isn't the polynomial's fit improving significantly anymore?"
Can Matlab determine what order polynomial is the best, preferably automatic? I allready found the polytool or some basic fitting tools after plotting, but it doesn't tell me how good the fit is and it's many data to analyse it by hand.

- Also, if a participant is better (experts) they have less bumps, that are smaller (higher) because the reach movement is fast. Novices instead need to controll their movements more and have 'bumps' that are wider. Maybe there's something to analyse the shape of the first bump automatically in Matlab?

- Another thing I need is a spectrum derivated from my data.
Do some Fourier analysis (I think this should be possible on the unfiltered data) to determine what frequencies (speeds) are relevant in the data. This way, I can connect frequencies to known data about body constants (e.g. arm muscle time constants, speeds etc). Besides that I approximately know what Fourier analysis is, I don't know how to implement it. I allready found something about the fft-function, but that gives me complex numbers and I think I don't need them..

I know that there are many and maybe stupid questions, but I hope someone can and is willing to help me.

Robert
I'm sorry if my English is not perfect.

Why don´t you measure the average error between model and spected value ?

...That's something like: "Do I need a cubic, quartic, quintic, sextic, septic or octic polynomial to describe the outcome best? When isn't the polynomial's fit improving significantly anymore?"

I faced to that same question when I had to build a precise model to a sensor behaviour in MATLAB.
In that case, I realized the following conclusion :
>> 2nd order : Was not so accurate, because pehaps the real model of component bahaviou was not so of this degree.
>> 3rd order : Intermediate, and hence, the best choice
>> 4th order : Model was not anymore filtering unwanted data due to measurement error, and instead, was following it.

However, that model represented that phenomen, that is different from your.
I think that is not possible to provide some generic answer.

+++

Last edited:

Why don´t you measure the average error between model and spected value ?
Because there is not one perfect model: every participant will have it's own way of reaching the target (pro's will have less bumps; they'll have one high and narrow bump).

I faced to that same question when I had to build a precise model to a sensor behaviour in MATLAB.
In that case, I realized the following conclusion :
>> 2nd order : Was not so accurate, because pehaps the real model of component bahaviou was not so of this degree.
>> 3rd order : Intermediate, and hence, the best choice
>> 4th order : Model was not anymore filtering unwanted data due to measurement error, and instead, was following it.

However, that model represented that phenomen, that is different from your.
I think that is not possible to provide some generic answer.

+++
So you compared the data and the model by hand?

...So you compared the data and the model by hand?

Was done visualizing both curves superimposed : model and real.
Due matching was evident, was no need to choose by calculation.

,,,every participant will have it's own way of reaching the target...

I think your model choice must to be performed adaptivelly, according to each data set.
Some phenomens, we can´t define deterministically a unique representative model.

+++

I've thought and decided to break my question into some easier basic questions:

-How to create a filter (I prefere a Low pass filter or a band pass filter) on the data given above. I've heard about FDAtool, but I don't know how to use it. I think I've found something: https://ccrma.stanford.edu/~jos/fp/Matlab_Filter_Implementation.html (x will be my data, but I don't yet know what A and B are).
-How to do regression analysis in Matlab?
-Is plot(abs(fft(input,1)))) a correct way to do Fourier analysis on my data?
-Maybe I need cluster or discriminant analysis.

I'm sorry to ask you this questions. The point is: I hear this names and know vague what they mean, but nobody is able to tell me how to implement it (and I think it's easy for pro's like you here).

Last edited:

Last edited:

Thanks, I'll try next week.

Status
Not open for further replies.