主要内容

测量流信号的统计

移动统计系统对象测量MATLAB中的流信号统计®。您还可以使用诸如此类的功能Movemean.movmedian.Movstd., 和Movvar.测量移动统计数据。这些功能更适合于在批处理中可用的数据的一次性计算。与系统对象不同,功能不设计用于处理大量数据流。

仅使用MATLAB函数计算移动平均值

此示例显示如何使用该示例计算信号的移动平均值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数据移动平均值');

图包含轴。轴包含2个类型的型号。这些对象表示输入,沿X数据移动平均值。

数据不是很大(每列中的7140个样本),完全可用于处理。这Movemean.功能旨在处理这种一次性计算。但是,如果数据非常大,例如按GB的顺序,或者数据是需要实时处理的直播流,则使用系统对象。系统对象将数据划分为称为帧的段,并无缝地处理迭代循环中的每个帧。这种方法是内存有效的,因为在任何给定的时间只处理一帧数据。此外,系统对象经过优化以在内部处理状态。

使用系统对象计算移动平均值

创建一个dsp.movi​​ngverage.系统对象计算流信号的10点移动平均值。用一个dsp.matfilereader.系统对象从加速度计垫文件读取数据。查看时间范围的移动平均输出。

系统对象会自动将数据索引到帧中。选择714个样本的帧大小。在MAT文件的每列中有7140个样本或10帧数据。每个迭代循环计算1个数据帧的移动平均值。

框架= 714;读者= dsp.matfilereader('samplesperframe',框架化,......'文件名''lsm9ds1acceldata73.mat''变量名''数据');movavg = dsp.movi​​ngaverage(10);范围= timescope('numinputports'2,'采样率'119,......'ylimits',[ -  2500 2500],......'timespansource''财产''时间跨度'60,......'ChannelNames',{'输入''沿X数据移动平均值'},......'陈旧',真的);尽管〜ISDONE(读者)ACCEL = READER();avgdata = movavg(Accel);范围(Accel(:,1),avgdata(:,1));结尾

处理循环非常简单。系统对象自动处理数据索引和状态。

相关话题