Hier ist der minimale Matlab-Code mit vision.KalmanFilter
Klasse. Angenommen, Ihre Messungen sind Spaltenvektoren der Matrix data
[Breite, Breite, Länge, Länge]. hier wird das Modell der konstanten Geschwindigkeit angenommen. Sie sollten ProcessNise
, MeasurementNoise
und die Initialisierung selbst definieren.
data = randn(4,100); % load your data here
delta = 1; % sampling frequency
% state model asuming constant velocity
stateModel = [1 delta 0 0 ;
0 1 0 0 ;
0 0 1 delta;
0 0 0 1 ];
% measurements are simply the state
measurementModel = eye(4);
kalman = vision.KalmanFilter(stateModel, ...
measurementModel, ...
'ProcessNoise',1, ...
'MeasurementNoise',1);
%initialize
kalman.State = [0; 0; 0; 0];
kalman.StateCovariance = eye(4);
T = size(data,2); % length of measurements
filtered = [];
for t=1:T
measurement = data(:,t);
kalman.predict(); % prediction
kalman.correct(measurement);
filtered = [filtered, kalman.State];
end
können Sie einen Hinweis geben, wie Ihre Daten gebildet werden? Erhalten Sie nur die Geschwindigkeit oder auch die Position? Wie viele Dimensionen? – Vahid
danke für die antwort. Ich erhalte die Geschwindigkeit und auch die Position (Breite, Länge). Ich habe 2 Dimensionen. @Vahid – YLM
Suchen Sie nach einem Skript, bei dem Sie nur Ihre GPS-Daten eingeben müssen und die Rückgabewerte die gefilterte Länge, Breite und Breite sind? – bushmills