|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Mar 2010
Messaggi: 20
|
Analisi di traiettorie in Matlab
Spero di aver scritto nella sezione giusta..
Vi espongo il mio problema: Ho fatto l'acquisizione della traiettoria nello spazio di un marker. Mi trovo ad avere un file .txt in cui ho una serie di coordinate 3d. Questa è una porzione del file (sono coordinate in mm) -9.72742 -141.224 401.578 -9.51058 -142.775 401.518 -9.45633 -143.178 401.485 -6.35867 -143.593 400.581 -4.83707 -143.675 400.053 -5.00037 -144.15 398.159 Quello che vorrei fare è analizzare la velocità della traiettoria lungo gli assi x,y,z. per ricavare la velocità dovrei fare le derivate lungo le tre direzioni. Ho dunque messo la prima colonna in un vettore x e ho applicato semplicemente la formula di derivazione numerica df = [f(x+h)-f(x)]/h con h = intervallo che uso per campionare (nel mio caso 0.02 sec). In Matlab: dx = diff(x); %dx contiene differenze tra un punto e il successivo vx = dx./0.02; plot(vx); seguendo questo procedimento viene fuori un grafico molto irregolare. c'è un metodo migliore per ricavare la velocità da una serie di coordinate? grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2005
Messaggi: 309
|
non ho capito come hai creato il file e cosa intendi per marker, comunque il metodo mi sembra giusto
se ti viene un grafico irregolare forse l'acquisizione non è molto precisa la formula che hai usato approssima bene la derivata nel punto x+h/2 se hai campionato a passo h, la formula migliore da usare (a meno che si vogliano usare più di due campioni) è: df/dx = (f(x+h)-f(x-h))/(2h) in questo modo la derivata è centrata sul campione in coordinata x volendo però potresti allargare i campioni presi in esame df/dx = (f(x+5h)-f(x-5h))/(10h) in questo modo se un singolo intervallo è poco affidabile l'errore verrebbe assorbito dai valori degli intervalli adiacenti (il prezzo da pagare è una risoluzione spaziale minore della velocità calcolata) facendo i conti puoi verificare che quella formula corrisponde alla media delle derivate calcolate su un passo h nei punti adiacenti (in pratica è come filtrare la funzione derivata che ti sei calcolato) |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Mar 2010
Messaggi: 20
|
ho utilizzato un kinect per acquisire alcuni movimenti della mano, il kinect "vedeva" un cartoncino colorato di forma rettangolare e prendeva lecoordinate del baricentro del cartoncino.
grazie della risposta, proverò a fare come dici! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:17.


















