主要内容

dsp。MovingAverage

平均移动

描述

dsp。MovingAverageSystem Object™通过时间随时间独立地计算每个通道的输入信号的移动平均值。该对象使用滑动窗口方法或指数加权方法来计算移动平均值。在滑动窗口方法中,指定长度的窗口通过数据移动,采样通过样本,并且通过窗口中的数据计算平均值。在指数加权方法中,对象将数据样本乘以一组加权因子。通过对加权数据进行求和来计算平均值。有关这些方法的更多详细信息,请参阅算法

计算输入的移动平均数:

  1. 创造dsp。MovingAverage对象,并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

要了解有关系统对象如何工作的更多信息,请参阅什么是系统对象?

创建

描述

Movivg.= dsp.movi​​ngaverage.返回一个移动平均对象,Movivg.,使用默认属性。

Movivg.= dsp.movi​​ngaverage(Len设置WindowLength.财产Len

Movivg.= dsp.movi​​ngaverage(Len重叠设置WindowLength.财产Lenovertaplenth财产重叠

例子

Movivg.= dsp.movi​​ngaverage(名称,价值使用以下命令指定其他属性名称,价值对。未指定的属性具有默认值。

例子:movavg = dsp.movi​​ngaverage('方法','指数加权','forgectfactor',0.9);

属性

展开全部

除非另有说明,属性是不宜,这意味着在调用对象后无法更改其值。当您调用它们时,对象锁定,以及释放功能解锁它们。

如果属性是可调,您可以随时更改它的值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象进行系统设计

平均方法,指定为“滑动窗口”指数权重的

  • “滑动窗口”-指定长度的窗口SpecifyWindowLength沿每个通道移动在输入数据上。对于窗口移动的每个样本,对象计算窗口中数据的平均值。

  • 指数权重的- 对象将样本乘以一组加权因子。随着数据的年龄增加,加权因子的大小呈指数级增长,从未达到零。为了计算平均值,算法总和加权数据。

有关这些方法的更多详细信息,请参阅算法

标志指定窗口长度,指定为标量布尔值。

  • 真的- 滑动窗口的长度等于您在中指定的值WindowLength.财产。

  • 错误的—滑动窗口的长度为无穷大。在这种模式下,使用当前样本和所有过去的样本计算平均值。

依赖关系

此属性在设置时应用方法“滑动窗口”

样本中滑动窗口的长度,指定为正标量整数。

依赖关系

此属性在设置时应用方法“滑动窗口”SpecifyWindowLength真的

数据类型:|双倍的|int8|INT16|INT32.|INT64.|uint8|uint16|uint32|uint64

滑动窗口之间的重叠长度,指定为非负整数。重叠长度的取值范围为[0,WindowLength.−1]。如果不指定,重叠长度为WindowLength.- 1。

依赖关系

此属性在设置时应用方法“滑动窗口”SpecifyWindowLength真的

数据类型:|双倍的|int8|INT16|INT32.|INT64.|uint8|uint16|uint32|uint64

指数加权因子,指定为在(0,1)范围内的一个正实标量。遗忘因子0.9比遗忘因子0.1赋予旧数据更多的权重。遗忘系数为1.0表示内存是无限的。所有过去的样本都被赋予相同的权重。

由于此属性是可调的,因此即使在对象被锁定时也可以更改其值。

可调:是的

依赖关系

此属性在设置时应用方法指数权重的

数据类型:|双倍的

用法

描述

例子

y= movavg(x计算输入信号的移动平均,x,采用滑动窗口法或指数加权法。

输入参数

展开全部

数据输入,指定为向量或矩阵。如果x是一个矩阵,每一列被视为一个独立的通道。沿着每个通道计算移动平均线。该对象还接受可变大小的输入。锁定对象后,可以更改每个输入通道的大小,但不能更改通道的数量。

数据类型:|双倍的
复数的支持:金宝app是的

输出参数

展开全部

输入信号的移动平均值,以向量或矩阵的形式返回。

数据类型:|双倍的
复数的支持:金宝app是的

对象的功能

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj.,使用此语法:

释放(obj)

展开全部

运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重启 使内部状态复位系统对象

例子

全部收缩

使用该计算嘈杂斜坡信号的移动平均值dsp。MovingAverage对象。

初始化

设置movavgWindowmovavgWindow_overlap, 和movavgExp对象。movavgWindow使用滑动窗口方法,窗口长度为50个样本,默认重叠长度为49个样本,这比指定的窗口长度少一个样本。movavgWindow_overlap使用窗口长度为50个样本和45个样本的重叠长度。movavgExp使用具有0.95的遗忘因数的指数加权方法。

创建用于查看输出的时间范围。

FrameLength = 1001;Fs = 1000;movavgWindow = dsp.MovingAverage (50);45 movavgWindow_overlap = dsp.MovingAverage(50岁);movavgExp = dsp。MovingAverage (“方法”指数权重的...'忘记事实',0.95);范围= timescope(“SampleRate”,[Fs, Fs, Fs/(50-45), Fs],...“TimeSpanOverrunAction”'滚动'...“ShowGrid”,真的,...'ylimits',[ -  0.5 1.5]);标题='移动平均';范围。标题=标题;范围。ChannelNames = {'原始信号'...'滑动窗口为50个样本,默认重叠'...“50个样本的滑动窗口,45个样本重叠”...'指数加权与忘记因数0.95'};

计算的平均

生成幅度的斜坡信号,幅度为1和2秒的时间跨度。将滑动窗口平均和指数加权平均应用于斜坡。查看时间范围内的输出。

i = 1:500 t =(0:0.001:1)';unitstep = t> = 0;斜坡= t。* uniteStep;x =斜坡+ 0.1 * randn(FrameLength,1);y1 = movavgwindow(x);y2 = movavgwindow_overlap(x);y3 = movavgexp(x);范围(x,y1,y2,y3);结束

算法

展开全部

参考文献

[1] Bodenham,Dean。“自适应滤波和变更检测流数据。”博士论文。帝国学院,伦敦,2012。

扩展功能

介绍了R2016b