Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

False result why applying interp1 function!

조회 수: 2 (최근 30일)
inti
inti 2014년 7월 18일
마감: MATLAB Answer Bot 2021년 8월 20일
Hi to all,
I have data taken at non-regular intervals, and I'd like to interpolate the data to have values every 100ms.
if
17:43:08.437 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.477 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.497 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.516 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.537 > ATT_HandleValueNotification: status=0 h=45 n=3 09 C7 17
17:43:08.577 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
end
My code is :
if s=data(:,3)+data(:,4)/1000; % convert to seconds+fractions
t = datenum(2014,07,18,data(:,1),data(:,2),s)*86400;
t = t - t(1);
sample = interp1(t,res(:,1:3), 0:0.01:t(end)); % i fixed a time to 100ms to obtain estimated data in this time
// end
Thanks in advance
end
  댓글 수: 5
the cyclist
the cyclist 2014년 7월 18일
편집: the cyclist 2014년 7월 18일
@inti,
By far the best thing you can do to help us solve your problem is to give us a small piece of functioning MATLAB code (including the part that defines the data) that illustrates the problem. Otherwise, we spend far too much time guessing.
inti
inti 2014년 7월 18일
Thanks for your reply.
I have irregular time series data: (time (h:m:s:ms), X-acceleration, Y-acceleration, Z-acceleration)in hexadecimal
Portion of my log file
if 17:43:08.437 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.477 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.497 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.516 > ATT_HandleValueNotification: status=0 h=45 n=3 07 C7 17
17:43:08.537 > ATT_HandleValueNotification: status=0 h=45 n=3 09 C7 17
end
The first column is for a Time and the three last columns are for acceleration's data (x,y,z).
My goal here is to interpolate irregular Time series to regular time series and i like to obtain acceleration's data every 0.01 seconds.
After converting acceleration's data from hexadecimal to acceleration's g , i obtain this table
if 0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,140625000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
end
And this a portion of a table sample after applying interp1 function :
if
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
0,110866306584362 -0,890625000000000 0,359375000000000
0,125746056832695 -0,890625000000000 0,359375000000000
0,140624576267240 -0,890625000000000 0,359375000000000
0,132812426778048 -0,890625000000000 0,359375000000000
0,125000277288855 -0,890625000000000 0,359375000000000
0,117188127799663 -0,890625000000000 0,359375000000000
0,109375978310470 -0,890625000000000 0,359375000000000
0,109375000000000 -0,890625000000000 0,359375000000000
end
i think that i have a duplicate values

답변 (0개)

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by