移动统计系统对象测量MATLAB中的流信号统计®。您还可以使用诸如此类的功能Movemean.
那movmedian.
那Movstd.
, 和Movvar.
测量移动统计数据。这些功能更适合于在批处理中可用的数据的一次性计算。与系统对象不同,功能不设计用于处理大量数据流。
此示例显示如何使用该示例计算信号的移动平均值Movemean.
功能。
这Movemean.
功能计算来自加速度计的嘈杂数据的10点移动平均值。该数据中的三列表示加速度计的线性加速度X-轴,y- 轴,和Z.分别。所有数据都在垫文件中可用。绘制移动平均值X-axis数据。
Winlen = 10;Accel = load('lsm9ds1acceldata73.mat');movavg = movmean(Accel.data,Winlen,'终点'那'充满');绘图([Accel.data(:,1),movavg(:,1)]);传奇('输入'那'沿X数据移动平均值');
数据不是很大(每列中的7140个样本),完全可用于处理。这Movemean.
功能旨在处理这种一次性计算。但是,如果数据非常大,例如按GB的顺序,或者数据是需要实时处理的直播流,则使用系统对象。系统对象将数据划分为称为帧的段,并无缝地处理迭代循环中的每个帧。这种方法是内存有效的,因为在任何给定的时间只处理一帧数据。此外,系统对象经过优化以在内部处理状态。
创建一个dsp.movingverage.
系统对象计算流信号的10点移动平均值。用一个dsp.matfilereader.
系统对象从加速度计垫文件读取数据。查看时间范围的移动平均输出。
系统对象会自动将数据索引到帧中。选择714个样本的帧大小。在MAT文件的每列中有7140个样本或10帧数据。每个迭代循环计算1个数据帧的移动平均值。
框架= 714;读者= dsp.matfilereader('samplesperframe',框架化,......'文件名'那'lsm9ds1acceldata73.mat'那'变量名'那'数据');movavg = dsp.movingaverage(10);范围= timescope('numinputports'2,'采样率'119,......'ylimits',[ - 2500 2500],......'timespansource'那'财产'那'时间跨度'60,......'ChannelNames',{'输入'那'沿X数据移动平均值'},......'陈旧',真的);尽管〜ISDONE(读者)ACCEL = READER();avgdata = movavg(Accel);范围(Accel(:,1),avgdata(:,1));结尾
处理循环非常简单。系统对象自动处理数据索引和状态。