主要内容

smoothdata

平滑噪声数据

描述

例子

B= smoothdata (一个使用启发式确定的固定窗口长度返回向量元素的移动平均值。窗口沿着向量的长度向下滑动,计算每个窗口内元素的平均值。

  • 如果一个是矩阵吗smoothdata的每一列计算移动平均值一个

  • 如果一个那么是多维数组吗smoothdata的第一个维度一个它的大小不等于1。

  • 如果一个那么,表格或时间表是带有数值变量的吗smoothdata的每个变量一个分开。

例子

B= smoothdata (一个昏暗的的维度。一个沿着…操作例如,如果一个是矩阵吗smoothdata (2)的每一行中的数据进行平滑一个

例子

B= smoothdata (___方法为前面的语法指定平滑方法。例如,smoothdata (A,“sgolay”)使用Savitzky-Golay过滤器平滑数据一个

例子

B= smoothdata (___方法窗口指定平滑方法使用的窗口的长度。例如,smoothdata(“movmedian”,5)平滑数据一个通过在五元滑动窗口上取中值。

例子

B= smoothdata (___nanflag指定如何值将针对前面的任何语法进行处理。“omitnan”忽略了价值观和“includenan”在每个窗口内计算时包括它们。

例子

B= smoothdata (___名称,值指定使用一个或多个名称-值参数进行平滑的附加参数。例如,如果t是时间值的矢量吗smoothdata(“SamplePoints”,t)平滑数据一个相对于时代而言t

例子

B窗口=平滑数据(___还返回移动的窗口长度。

例子

全部折叠

创建一个包含噪声数据的向量,用移动平均平滑数据。绘制原始和平滑的数据。

X = 1:100;= cos(2 *π* 0.05 * x + 2 *π*兰德)+ 0.5 * randn (1100);B = smoothdata(A);情节(x,,“o”, x、B“- x”)传说(“原始数据”“平滑数据”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示原始数据、平滑数据。

创建一个矩阵,其行表示三个噪声信号。使用移动平均线平滑三个信号,并绘制平滑数据。

X = 1:100;s1 = cos(2 * 0.03π* * x + 2 *π*兰德)+ 0.5 * randn (1100);s2 = cos(2 * 0.04π* * x + 2 *π*兰德)+ 0.4 * randn (1100) + 5;s3 = cos(2 *π* 0.05 * x + 2 *π*兰德)+ 0.3 * randn - 5 (1100);A = [s1;s2;s3);B = smoothdata(A,2);情节(x, B (1:), x, B (2:), x, B (3,:))

图中包含一个轴对象。axis对象包含3个line类型的对象。

用高斯加权移动平均滤波器平滑噪声数据向量。显示筛选器使用的窗口长度。

X = 1:100;= cos(2 *π* 0.05 * x + 2 *π*兰德)+ 0.5 * randn (1100);[B,窗口]=平滑数据(A,“高斯”);窗口
Window = 4

平滑原始数据与更大的窗口长度20。绘制两个窗口长度的平滑数据。

C =平滑数据(A,“高斯”, 20);情节(x, B,“o”, x, C,“- x”)传说(“小窗”“大窗口”

创建包含的噪声向量值,并平滑数据忽略,这是默认值。

A = [NaN randn(1,48) NaN randn(1,49) NaN];B = smoothdata(A);

平滑数据,包括值。在一个包含

C =平滑数据(A,“includenan”);

绘制平滑的数据B而且C

情节(1:10 0 B“o”1:10 0 C“- x”)传说(“忽视南”“包括南”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示忽略NaN,包括NaN。

创建一个与时间向量相对应的噪声数据向量t.平滑数据相对于时间t,并绘制原始数据和平滑数据。

X = 1:100;= cos(2 *π* 0.05 * x + 2 *π*兰德)+ 0.5 * randn (1100);T = datetime(2017,1,1,0,0,0) + hours(0:99);B = smoothdata(A,“SamplePoints”t);情节(t),“o”t、B“- x”)传说(“原始数据”“平滑数据”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示原始数据、平滑数据。

输入参数

全部折叠

输入数据,指定为矢量、矩阵、多维数组、表格或时间表。如果一个是表格还是时间表,那么要么变量必须是数字,要么必须使用DataVariables名称-值参数显式列出数值变量。在处理包含非数字变量的表时,指定变量非常有用。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|表格|时间表

复数支持:金宝app是的

操作维度,指定为正整数标量。如果未指定值,则默认为第一个大小不等于1的数组维数。

考虑一个——- - - - - -n输入矩阵,一个

  • smoothdata (1)的每一列中的数据进行平滑一个并返回——- - - - - -n矩阵。

    smoothdata(A,1)逐列操作

  • smoothdata (2)平滑行中的数据一个并返回——- - - - - -n矩阵。

    smoothdata(A,2)逐行操作

对于表格或时间表输入数据,昏暗的不支持,操作将金宝app分别沿着每个表或时间表变量进行。

平滑方法,指定为以下值之一:

  • “movmean”-每个窗口的移动平均一个.这种方法对于减少数据的周期性趋势是有用的。

  • “movmedian”-移动中值在每个窗口一个.当存在异常值时,这种方法对于减少数据中的周期性趋势非常有用。

  • “高斯”的每个窗口的高斯加权移动平均一个

  • “洛斯”的每个窗口的线性回归一个.这种方法计算量大,但不连续性较少。

  • “黄土”的每个窗口的二次回归一个.这种方法的计算成本略高于“洛斯”

  • “rlowess”的每个窗口的稳健线性回归一个.这种方法是一种计算成本更高的方法“洛斯”,但它对异常值更健壮。

  • “rloess”的每个窗口的稳健二次回归一个.这种方法是一种计算成本更高的方法“黄土”,但它对异常值更健壮。

  • “sgolay”- Savitzky-Golay滤波器,根据拟合在的每个窗口上的二次多项式进行平滑一个.当数据变化迅速时,这种方法比其他方法更有效。

窗口长度,指定为正整数标量、正整数的两个元素向量、正持续时间标量或正持续时间的两个元素向量。

窗口是正整数标量,则窗口围绕当前元素居中并包含窗口1相邻的元素。如果窗口为偶数时,则窗口以当前元素和以前的元素为中心。

窗口两元向量是正整数吗f [b],该窗口包含当前元素,b元素向后,和f元素。

一个是时间表还是SamplePoints指定为datetime持续时间向量,窗口必须有类型持续时间,窗口是相对于样本点计算的。

当窗口长度也指定为输出参数时,输出值与输入值匹配。

条件,指定为以下值之一:

  • “omitnan”——忽略输入中的值。如果一个窗口包含所有值,然后smoothdata返回

  • “includenan”——包括值时在每个窗口内计算,结果为

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:smoothdata(“SmoothingFactor”,0.5)

数据选项

全部折叠

样本点,指定为样本点值的向量,如果输入数据是表格,则指定为下表中的选项之一。样本点代表x数据的-轴位置,并且必须排序并包含唯一的元素。采样点不需要均匀采样。向量[1 2 3…]是默认值。

当输入数据是一个表时,您可以使用以下选项之一将样本点指定为表变量:

表格输入选项 描述 例子
变量名

指定单个表变量名的字符向量或标量字符串

“Var1”

“Var1”

标量变量索引

标量表变量索引

3.

逻辑向量

一种逻辑向量,其每个元素对应于一个表变量,其中真正的指定相应的变量作为样本点,所有其他元素都是

[真假假]

函数处理

接受表变量作为输入并返回逻辑标量(必须为)的函数句柄真正的仅用于一个表变量

@isnumeric

vartype下标

类生成的表下标vartype仅为一个变量返回下标的函数

vartype(数字)

请注意

输入数据为时,不支持此名称-值参数金宝app时间表.时间表使用行时间向量作为样本点。若要使用不同的抽样点,必须编辑时间表,使行时间包含所需的抽样点。

移动窗口是相对于样本点定义的。例如,如果t那么,乘以向量是否对应于输入数据smoothdata(兰德(1 10)3,SamplePoints, t)是否有一个表示时间间隔的窗口-1.5 t(我)而且t(我)+ 1.5

当样本点向量有数据类型时datetime持续时间时,移动窗口长度必须有类型持续时间

例子:smoothdata (A ' SamplePoints 0:0.1:10)

例子:smoothdata (T,“SamplePoints”,“Var1”)

数据类型:||datetime|持续时间

要操作的表变量,指定为此表中的选项之一。的DataVariablesValue表示要平滑输入表中的哪些变量。

表中未指定的其他变量DataVariables传递到输出而不被平滑。

选项 描述 例子
变量名

指定单个表变量名的字符向量或字符串标量

“Var1”

“Var1”

变量名向量

字符向量或字符串数组的单元格数组,其中每个元素都是一个表变量名

{“Var1”“Var2”}

[" Var1”“Var2”)

变量指标的标量或向量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

一种逻辑向量,其每个元素对应于一个表变量,其中真正的包括相应的变量和不包括它

[真真假假]

函数处理

接受表变量作为输入并返回逻辑标量的函数句柄

@isnumeric

vartype下标

类生成的表下标vartype函数

vartype(数字)

例子:smoothdata(T,'DataVariables',["Var1" "Var2" "Var4"])

替换值指示符,指定为这些值之一时一个表或时间表:

  • 真正的1-将输入表变量替换为包含平滑数据的表变量。

  • 0-使用包含平滑数据的表变量附加输入表变量。

对于向量、矩阵或多维数组输入数据,ReplaceValues不支持。金宝app

例子:smoothdata (T ' ReplaceValues假)

平滑的选项

全部折叠

窗口大小因子,指定为从0到1的标量。的值SmoothingFactor通过缩放启发式窗口大小来调整平滑级别。接近0的值产生更小的移动窗口长度,导致更少的平滑。接近1的值产生更大的移动窗口长度,从而产生更平滑的效果。在某些情况下,根据从中确定启发式窗口大小的输入数据,的值SmoothingFactor可能不会对所使用的窗口大小产生重大影响smoothdata

SmoothingFactor默认为0.25,仅当窗口未指定。

Savitzky-Golay度,指定为非负整数。此名称-值参数只能在以下情况下指定“sgolay”指定的平滑方法。的价值学位对应于Savitzky-Golay滤波器中拟合每个窗口内数据的多项式的次,默认为2。

的价值学位必须小于均匀采样点的窗口长度。对于非均匀采样点,该值必须小于任意窗口中的最大点数。

输出参数

全部折叠

平滑的数据,以矢量、矩阵、多维数组、表格或时间表的形式返回。

B尺寸和一个除非ReplaceValues.如果的值ReplaceValues的宽度B输入数据宽度与指定的数据变量数量的和。

窗口长度,以正整数标量、正整数的两个元素向量、正持续时间标量或正持续时间的两个元素向量的形式返回。

窗口指定为输入参数时,输出值与输入值匹配。当窗口没有指定为输入参数,那么它的值是由启发式标量确定的smoothdata根据输入的数据。

算法

当平滑方法的窗口大小未指定时,smoothdata根据启发式计算默认窗口大小。对于平滑因子τ,启发式估计了一个移动平均窗口大小,该窗口大小衰减了输入数据大约100*τ %的能量。

扩展功能

版本历史

在R2017a中引入

全部展开