Real Time Data Store in Inf Array

5 vues (au cours des 30 derniers jours)
Can Burak Kavuncuoglu
Can Burak Kavuncuoglu le 17 Juil 2019
I have MPU6050 sensor. I had codes and I store in a 1x1 double array. But now I wanna filter it but I cant do it for real time. Because my filter needs at least 3 sample for filtering. And you know, in real time you need filter all datas 1 by 1.
After all I need to store my datas in zeros array. How can store real time "Acc_Mag" datas in "accmag = zeros (1,10000);" array?
  2 commentaires
dpb
dpb le 17 Juil 2019
You'll have to keep an index variable to point to the next point in the array for longer time series.
Can Burak Kavuncuoglu
Can Burak Kavuncuoglu le 17 Juil 2019
Can you explain it with function, please? I have same idea but its just a idea. I tried to do it but still i have same error.
Error using filtfilt>getCoeffsAndInitialConditions (line 182)
Data length must be larger than 3 samples.

Connectez-vous pour commenter.

Réponses (1)

David K.
David K. le 17 Juil 2019
If I understand correctly what you want and a guess at how you are formatting it.
Pointer = 1;
window = sizeFilter % However big you want the filter
while (running)
data = newData; % new 1x1 double
window(Pointer) = data;
% if order matters for your filter you can also use the pointer as indication for that
filteredData = filter(window);
Pointer = Pointer+1;
% Loop pointer
if Pointer >window
Pointer = 1;
end
end
Unless all you want to do is save the initial data. Then that is simply
accmag = zeros(1,10000);
Pointer = 1;
while(running)
data = newData;
accmag(Pointer) = data;
Pointer = Pointer + 1;
end

Catégories

En savoir plus sur MATLAB Coder dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by