主要内容

平滑数据

在实时编辑器中对含噪数据进行平滑处理

说明

平滑数据任务可让您以交互方式平滑处理含噪数据。该任务会自动为您的实时脚本生成 MATLAB® 代码。

使用此任务,您可以:

  • 自定义在工作区变量中平滑数据的方法。

  • 调整参数以执行不同程度的平滑处理。

  • 将输入数据与平滑后的数据进行可视化比较。

相关函数

平滑数据生成使用 smoothdata 函数的代码。

Smooth Data task in the Live Editor

打开任务

要在 MATLAB 编辑器中将平滑数据任务添加到实时脚本中,请执行以下操作:

  • 实时编辑器选项卡中,选择任务 > 平滑数据

  • 在脚本的代码块中,键入相关关键字,例如 smoothnoisymovmedianlowess。从所建议的命令自动填充中选择平滑数据。对于某些关键字,任务会自动更新一个或多个对应的参数。

示例

全部展开

通过使用实时编辑器中的“平滑数据”任务调整平滑因子,以交互方式增加平滑处理来减少噪声。

首先,创建一个含噪数据向量。

x = 1:100;
rng(0,"twister")
data = cos(2*pi*0.05*x+2*pi*rand) + 0.5*randn(1,100);

在实时编辑器中打开平滑数据任务。要平滑处理含噪数据,请选择 data 作为输入数据。由于采样点与 x 轴位置的默认向量相同,因此您不需要在 X 轴字段中指定 x

通过在平滑方法字段中选择 Gaussian filter 方法,使用高斯加权移动平均滤波器平滑处理向量。绘图的标题表明平滑窗的长度为 4。您也可以选择返回移动窗大小以在返回经过平滑处理的数据之外还返回窗大小。

使用更大的窗大小进行平滑处理,例如通过将平滑因子从默认值 0.25 增大到 0.3 进行更多平滑处理。绘图的标题会更新以指示平滑窗的长度为 6。

Live Task

Figure contains an axes object. The axes object with title Moving window size: 6 contains 2 objects of type line. These objects represent Input data, Smoothed data.

相关示例

参数

全部展开

此任务对包含在向量、表或时间表中的输入数据进行操作。数据可以是 singledoublelogical 类型,或有符号或无符号整数类型,如 int64

对于表或时间表输入数据,要使用支持的类型对所有变量进行平滑处理,请选择所有支持变量。要平滑处理 singledouble 类型的所有变量,或有符号或无符号整数类型的所有变量,请选择所有数值变量。要选择要平滑处理的支持变量,请选择指定的变量

将平滑处理方法指定为以下选项之一,这些选项在数据的本地窗口上操作。

方法描述
移动均值

移动平均值。此方法对于减少数据中的周期性趋势很有用。

移动中位数移动中位数。当存在离群值时,此方法对于减少数据中的周期性趋势很有用。
高斯滤波器高斯加权移动平均值。
局部线性回归(Lowess)Lowess 线性回归。该方法可能会耗费大量计算资源,但它会减少不连续性。
局部二次回归(Loess)Loess 二次回归。此方法的计算开销略高于局部线性回归。
稳健 Lowess稳健 Lowess 线性回归。此方法比局部线性回归的计算开销更大,不过它在处理离群值时更为稳健。
稳健 Loess稳健 Loess 二次回归。此方法比局部二次回归的计算开销更大,不过它在处理离群值时更为稳健。
萨维茨基-戈雷多项式滤波器萨维茨基-戈雷多项式滤波器,它根据指定次数的多项式进行平滑处理,并在每个窗口上进行拟合。当数据变化很快时,此方法可能比其他方法更有效。

指定平滑处理方法的窗口类型和大小,而不是指定一般平滑因子。如果不指定移动窗的类型和大小,则窗大小以启发式方法确定。

窗口描述
居中指定的窗口长度以当前点为中心
不对称指定的窗口包含当前点之前的元素数和当前点之后的元素数

窗口大小相对于 X 轴变量单位。

限制

平滑数据任务不支持二维平滑窗。

版本历史记录

在 R2019b 中推出

全部展开