主要内容

dsp。MovingAverage

移动平均线

描述

dsp。MovingAverage系统对象™计算输入信号沿每个通道的移动平均值,随时间独立。该对象使用滑动窗口方法或指数加权方法来计算移动平均。在滑动窗口方法中,指定长度的窗口在数据上移动,一个样本一个样本地移动,然后对窗口中的数据计算平均值。在指数加权法中,对象将数据样本与一组加权因子相乘。平均值是将加权数据相加得到的。有关这些方法的详细信息,请参见算法

计算输入的移动平均值:

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

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

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

movAvg= dsp。MovingAverage返回一个移动平均对象,movAvg,使用默认属性。

movAvg= dsp。MovingAverage (Len设置WindowLength财产Len

movAvg= dsp。MovingAverage (Len重叠设置WindowLength财产LenOverlapLength财产重叠

例子

movAvg= dsp。MovingAverage (名称,值使用名称,值对。未指定的属性有默认值。

例子:movAvg = dsp。MovingAverage(“方法”,指数权重的,“ForgettingFactor”,0.9);

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的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.1的遗忘因子相比,0.9的遗忘因子给予旧数据更多的权重。遗忘因子为1.0表示无限记忆。所有过去的样本都被赋予相同的权重。

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

可调:是的

依赖关系

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

数据类型:|

使用

语法

描述

例子

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

输入参数

全部展开

数据输入,指定为向量或矩阵。如果x是一个矩阵,每一列都被视为一个独立的通道。移动平均是沿着每个通道计算的。

对象接受可变大小的输入。锁定对象后,您可以更改每个输入通道的大小,但不能更改通道的数量。

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

输出参数

全部展开

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

当你输入一个大小的信号——- - - - - -n对象,如果你设置方法“滑动窗口”而且SpecifyWindowLength真正的时,输出的上限大小为装天花板/跳)———大小n.跳点大小为窗口长度−重叠长度。在其他情况下,输出的大小为——- - - - - -n

当从该对象生成代码时,生成代码中输出的可变大小行为取决于输入帧长以及输入信号的大小是固定的还是可变的。详情请参见代码生成

数据类型:|
复数支持:金宝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);movavgWindow_overlap = dsp.MovingAverage(50,45);movavgExp = dsp。MovingAverage (“方法”指数权重的...“ForgettingFactor”, 0.95);Scope = timescope(“SampleRate”,[Fs, Fs, Fs/(50-45), Fs],...“TimeSpanOverrunAction”“滚动”...“ShowGrid”,真的,...“YLimits”[-0.5 - 1.5]);title =“移动平均”;范围。标题=标题;范围。ChannelNames = {原始信号的...滑动窗口的50个样本默认重叠...“滑动窗口的50个样本与45个样本重叠”...“遗忘因子为0.95的指数加权”};

计算平均值

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

I = 1:50 00 t = (0:0.001:1)';Unitstep = t>=0;斜坡= t.*unitstep;x = ramp + 0.1 * randn(FrameLength,1);y1 = movavgWindow(x);y2 = movavgWindow_overlap(x);y3 = movavgExp(x);范围(x, y1, y2, y3);结束

算法

全部展开

参考文献

[1]波登汉姆,迪恩。流数据的自适应过滤和变化检测博士论文。帝国理工学院,伦敦,2012。

扩展功能

版本历史

在R2016b中引入

全部展开