Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function g = gaussian(x,pos,wid)
- % gaussian(x,pos,wid) = gaussian peak centered on pos, half-width=wid
- % x may be scalar, vector, or matrix, pos and wid both scalar
- % T. C. O'Haver, 1988
- % Examples: gaussian([0 1 2],1,2) gives result [0.5000 1.0000 0.5000]
- % plot(gaussian([1:100],50,20)) displays gaussian band centered at 50 with width 20.
- g = exp(-((x-pos)./(0.60056120439323.*wid)) .^2);
- endfunction
- function R = derivative(X,n,k)
- l = length(X);
- R = [];
- for i = 1:l-n
- P = polyfit( linspace(-n/2,n/2,n+1)' , X(i:i+n), n);
- R = [ R ; P(k) ];
- endfor
- endfunction
- DD=sqrt(sum((B.-C).^2,2));
- DY=B(:,2)-C(:,2);
- DX=B(:,1)-C(:,1);
- W=atan2(DY,DX);
- CA=[];
- for i=1:437
- alpha=-W(i);
- M=[[cos(alpha),-sin(alpha)];[sin(alpha),cos(alpha)]];
- CA=[CA;(A(i,:)-B(i,:))*M/DD(i)];
- endfor
- # Plot 1 (Unkorrigierte und korrigierte Geschwindigkeiten)
- #
- # plot([derivative(-A(:,2),1,1),derivative(-CA(:,2),1,1)*505.57])
- G1 = gaussian(linspace(-10,10,15),0,8);
- # Referenzkurve 1: Geradenabschnitt, Parabel, die die Messwerte bei Frame 291 schneidet und den Scheitelpunkt
- R = [ ones(290,1)*(-0.12418); polyval(polyfit([232;291;350],CA([350;291;350],2),2),291:437)'];
- # Plot 2 (geglättete Geschwindigkeiten mit Referenzkurve)
- #
- # plot([derivative(conv(-A(:,2),G1),1,1),derivative(conv(-CA(:,2),G1),1,1)*505.57,derivative(conv(-R1,G1),1,1)*505.57](15:end-15,:))
- # "Padding" (Erweiterung nach vorn: Konstant, nach hinten: Parabel)
- D = [ones(200,1)*0.1263;-CA(:,2);polyval(polyfit([350,400,437]',-CA([350,400,437],2),2),437:637)'];
- # Plot 3 (Beschleunigungen, zwei Glättungsstufen, geglättete Referenzkurve)
- plot([zeros(68,1);(-derivative(conv(R,G1),2,1)(15:end-15))*0.2],'r',derivative(conv(D,G1),2,1)(136+7:end-137-7)*0.168,'b--',derivative(conv(D,G2),2,1)(136+17:end-137-17)*0.08,'b')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement