Implementation of an extended kalman filter for accelerometer data
    조회 수: 12 (최근 30일)
  
       이전 댓글 표시
    
I have a set of real world accelerometer and GPS (GPS is optional) values that I would like to use to develop a navigation system. I beieve I have to use the commands 'insfilter' and 'trackingEKF' however i am getting difficulty in these working. When using both of these functions i get the error: "Array indices must be positive integers or logical values."
The code I have so far is as follows and regards removing outliers from the data:
clc;
close all;
clear;
workspace;
set(0, 'DefaultAxesFontSize', 15)
%--------------------------------------------------------------------------%
% Define parameters
D=csvread('test20m3.csv');                                                 %Read CSV file
t=D(:,1);                                                                  %Define time
XAccRaw=D(:,5);  XAcc=XAccRaw*9.81;                                        %Define and convert acceleration in x-axis m/s^2
%--------------------------------------------------------------------------%
% Plotting raw acceleration = x-axis
hFig1 = figure(1);                                                         %Define first figure
plot(t,XAcc,'b.-','MarkerSize',5);                                         %Plot raw acceleration against time
grid on;                                                                   %Turn plot grid on
hold on;                                                                   %Hold the plot
fontsize=15;                                                               %Increase font size
title('Raw acceleration against time','FontSize',fontsize);                                    %Title the graph
xlabel('Time (s)','FontSize',fontsize);                                    %Label x-axis
ylabel('Acceleration (m/s^2)','FontSize',fontsize);                        %Label y-axis
hFig1.WindowState='maximized';                                             %Enlarge the figure window to full screen
yline(0,'k','LineWidth',1);                                                %Draw a line at y=0
% Removing outliers from data
XoutlierIndexes = isoutlier(XAcc);                                         %Outline accelerometer outliers
plot(t(XoutlierIndexes), XAcc(XoutlierIndexes), 'ro', 'MarkerSize', 15);   %Highlight outliers on plot
TX=t(~XoutlierIndexes);                                                    %Define good data points w.r.t. time
AX=XAcc(~XoutlierIndexes);         
댓글 수: 0
답변 (1개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

