Измерьте статистику потоковой передачи сигналов

Движущиеся Системные объекты статистики измеряют статистику потоковой передачи сигналов в MATLAB®. Можно также использовать функции такой как movmean, movmedian, movstd, и movvar измерять движущуюся статистику. Эти функции более подходят для одноразовых расчетов на данных, которые доступны в пакете. В отличие от Системных объектов, функции не спроектированы, чтобы обработать большие потоки данных.

Вычислите скользящее среднее значение только Используя функции MATLAB

В этом примере показано, как вычислить скользящее среднее значение сигнала с помощью movmean функция.

movmean функция вычисляет скользящее среднее значение с 10 точками зашумленных данных, прибывающих из акселерометра. Эти три столбца в этих данных представляют линейное ускорение акселерометра в Оси X, Оси Y и оси Z, соответственно. Все данные доступны в файле MAT. Постройте скользящее среднее значение данных об Оси X.

winLen = 10;
accel = load('LSM9DS1accelData73.mat');
movAvg = movmean(accel.data,winLen,'Endpoints','fill');
plot([accel.data(:,1),movAvg(:,1)]);
legend('Input','Moving average along X data');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Input, Moving average along X data.

Данные не являются очень большими (7 140 выборок в каждом столбце) и являются совершенно доступными для обработки. movmean функция спроектирована, чтобы обработать такие одноразовые расчеты. Однако, если данные являются очень большими, такой как в порядке Гбайт, или если данные являются прямой трансляцией, которая должна быть обработана в режиме реального времени, затем использовать Системные объекты. Системные объекты делятся, данные в сегменты вызвали системы координат, и обработайте каждый кадр в цикле итерации беспрепятственно. Этот подход является эффективной памятью, потому что только один кадр данных обрабатывается в любой момент времени. Кроме того, Системные объекты оптимизированы, чтобы обработать состояния внутренне.

Вычислите скользящее среднее значение Используя системные объекты

Создайте dsp.MovingAverage Системный объект, чтобы вычислить скользящее среднее значение с 10 точками сигнала потоковой передачи. Используйте dsp.MatFileReader Системный объект, чтобы считать данные из файла MAT акселерометра. Просмотрите скользящее среднее значение вывод в осциллографе времени.

Системные объекты автоматически индексируют данные в системы координат. Выберите формат кадра 714 выборок. Существует 7 140 выборок или 10 систем координат данных в каждом столбце файла MAT. Каждый цикл итерации вычисляет скользящее среднее значение 1 системы координат данных.

frameSize = 714;
reader = dsp.MatFileReader('SamplesPerFrame',frameSize,...
    'Filename','LSM9DS1accelData73.mat','VariableName','data');
movAvg = dsp.MovingAverage(10);
scope = timescope('NumInputPorts',2,'SampleRate',119,...
    'YLimits',[-2500 2500],...
    'TimeSpanSource','property','TimeSpan',60,...
    'ChannelNames',{'Input','Moving Average along X data'},...
    'ShowLegend',true);

while ~isDone(reader)
    accel = reader();
    avgData = movAvg(accel);
    scope(accel(:,1),avgData(:,1));
end

Цикл обработки очень прост. Системные объекты обрабатывают индексацию данных и состояния автоматически.

Похожие темы