Resampling Data using Interp1
Afficher commentaires plus anciens
Hello!
This may be a fairly obvious answer, but I'm trying to resample some data down to 100 Hz using interp1. I load my data, and then extract the first column (which is the time series) to use in my for loop. However, I get the error "Interpolation requires at least two sample points in each dimension." I tried adjusting the code to call for a(i+1) to see if maybe I needed to start later, but I got the same error. The data itself is part of my thesis so I'm not sure if I can attach it, but I've copy and pasted my code below.
Thank you in advance for any help!
load('BNI_processed.mat')
a = Force_arr;
time_matrix =(a(1:end,1)).';
for i = 1:length(time_matrix)-2
aa = length(time_matrix(i):time_matrix(i+1));
p = 61;
Force(:,i)=interp1(a(i,2),1:aa/p:aa, 'spline');
end
1 commentaire
Image Analyst
le 30 Juin 2020
Youi forgot to attach the mat file. We'll check back tomorrow.
Réponse acceptée
Plus de réponses (1)
Walter Roberson
le 1 Juil 2020
Modifié(e) : Walter Roberson
le 1 Juil 2020
load('BNI_processed.mat')
input_forces = Force_arr(:,2);
time_matrix = Force_arr(:,1);
Fs = 100;
last_time = ceil(time_matrix(end) / Fs) * Fs; %round UP
time_to_interp = 0 : 1/Fs : last_time;
Force = [time_to_interp; interp1(time_matrix, input_forces, time_to_interp)] .;
Catégories
En savoir plus sur Multirate Signal Processing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!