主要内容

dsp。MovingVariance

移动的方差

描述

dsp。MovingVariance系统对象™计算输入信号沿每个通道的移动方差,随时间独立。该对象使用滑动窗口方法或指数加权方法来计算移动方差。在滑动窗口方法中,将指定长度的窗口逐个样本地移动到数据上,并对窗口中的数据计算方差。在指数加权方法中,对象从平均值中减去每个数据样本,对差值进行平方,并将平方结果与加权因子相乘。然后,该对象通过添加所有加权数据来计算方差。有关这些方法的详细信息,请参见算法

计算输入的移动方差:

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

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

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

创建

描述

MovVar= dsp。MovingVariance返回一个移动的方差对象,MovVar,使用默认属性。

例子

MovVar= dsp。MovingVariance (Len设置WindowLength财产Len

MovVar= dsp。MovingVariance (Len重叠设置WindowLength财产LenOverlapLength财产重叠

例子

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

例子:MovVar = dsp。MovingVariance(“法”、“指数加权”,“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= movVar (x计算输入信号的移动方差,x,以滑动窗口法或指数加权法计算。

输入参数

全部展开

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

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

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

输出参数

全部展开

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

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

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

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

对象的功能

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

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

计算具有变化幅度的有噪声方波信号的移动方差dsp。MovingVariance对象。

初始化

设置movvarWindowmovvarWindow_overlap,movvarExp对象。movvarWindow使用滑动窗口方法,窗口长度为800个样本,默认重叠长度为799个样本,比指定的窗口长度少1个样本。movvarWindow_overlap使用800个样本的窗口长度和700个样本的重叠长度。movvarExp采用指数加权法,遗忘因子为0.999。

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

framength = 100;Fs = 100;movvarWindow = dsp.MovingVariance(800);movvarWindow_overlap = dsp.MovingVariance(800,700);movvarExp = dsp。MovingVariance (“方法”指数权重的...“ForgettingFactor”, 0.999);Scope = timescope(“SampleRate”Fs, [Fs, Fs / (800 - 700), Fs),...“TimeSpanOverrunAction”“滚动”...“TimeSpanSource”“属性”...“时间间隔”, 1000,...“ShowGrid”,真的,...“BufferLength”1 e7,...“YLimits”[0 7军医]);title =“移动方差”;范围。标题=标题;范围。ChannelNames = {原始信号的...滑动窗口的800个样本默认重叠...800个样本的滑动窗口,700个样本重叠...遗忘因子为0.999的指数加权};

计算方差

产生一个有噪声的方波信号。在给定帧数后改变方波的振幅。对该信号应用滑动窗口法和指数加权法。实际的方差是np.此值在向数据添加噪声时使用。在时间范围内比较实际方差和计算方差。

Count = 1;噪声功率= 1e-4 * [1 2 3 4];Index = 1:length(noisepower) np = noisepower(Index);yexp = np*ones(FrameLength,1);i = 1:250 x = 1 +根号(np) * randn(帧长度,1);y1 = movvarWindow(x);y2 = movvarWindow_overlap(x);y3 = movvarExp(x);范围(yexp, y1, y2, y3);结束结束

算法

全部展开

参考文献

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

扩展功能

版本历史

在R2016b中引入

全部展开