Real Time Data Store in Inf Array

5 Ansichten (letzte 30 Tage)
Can Burak Kavuncuoglu
Can Burak Kavuncuoglu am 17 Jul. 2019
Beantwortet: David K. am 17 Jul. 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 Kommentare
dpb
dpb am 17 Jul. 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 am 17 Jul. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

David K.
David K. am 17 Jul. 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

Kategorien

Mehr zu MATLAB Coder finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by