为什么smoothdata给坏的结果数据集的开始和结束?

56个视图(30天)
当我使用smoothdata处理数据集,我得到坏结果的开始和结束。
起初,平滑曲线显然远远高于它应该是什么。最后,它巧妙地低。
它几乎就像是smoothdata函数是“反映”数据集来弥补缺失的数据。
我缺少一些配置smoothdata还是我使用完全错误的函数?
1评论
乔纳斯
乔纳斯 2022年8月8日
hiw你准确调用你的函数(看到算法类型、wibdow长度等)?不知道,你cpuld尝试前后填充你的数据与实际数据向量的第一/最后一个值

登录置评。

接受的答案

约翰D 'Errico
约翰D 'Errico 2022年8月9日
想想。这是典型的行为,完全预期。想象的平滑程序作为一个数学实现薄,适度灵活的光束,被迫大致通过数据。但光束将不太灵活,当你不想让它追逐每一个凹凸曲线。有意义吗?
附近的一个问题是,当你结束你的数据,曲率难以处理。曲率平滑无法区分,和噪音。和一些流畅的将能更好地预测附近结束。
我将创建一些simpe数据解释发生了什么。
x = linspace(0, 2 *π,200);
日元= cos (x) + randn(大小(x)) / 10;
y1smooth = smoothdata (y1);
情节(x, y₁,“罗”,x, y1smooth“b -”)
你看到最顺利忽略了数据,在地区曲线曲率展品高?认为一个平滑的工具是一个低通滤波器,它试图过滤掉任何高频的东西,只留下低频率的东西。现在,我相信我可以让smoothdata做得更好,如果我不是简单地使用默认值,但它展示我想让你看到的。
平滑工具试图杀死任何信号高曲率,因为这通常是一个症状的噪音。默认的方法在smoothdata移动均值滤波,但显然使用faiirly宽移动窗口。这是一个很好的方案非常嘈杂的数据。(不同的滤波器有不同的特点。例如,移动中位数过滤器是伟大的妥协当你有嘈杂的数据异常值)。
但是你的数据有一个体面的信号噪声比。所以你需要使用一个窄窗口移动的过滤器,或者更好的是,使用不同的方法。就我个人而言,我喜欢Savitsky戈利平滑问题相当强烈的信号。
y1smoothSG = smoothdata(日元“sgolay”,“度”3);
情节(x, y₁,“罗”,x, y1smoothSG“b -”)
不要使用过高的Savitsky-Golay订单。3应该是一个好的妥协。
2的评论
里克元
里克元 2022年8月11日
编辑:里克元 2022年8月11日
谢谢!使用Savitsky戈利真正帮助消除我所有地区的数据集。
最主要的原因我想平稳数据时间导数的温度数据。申请另一个平滑的衍生品帮助很大。其实真正有趣的是如何的导数Savitsky戈利平滑不跳来跳去,直到我们进入中间的数据集。这可能是数据集的开始和结束的另一个工件平滑算法。

登录置评。

答案(1)

威廉•罗斯
威廉•罗斯 2022年8月9日
编辑:威廉•罗斯 2022年8月9日
(编辑:改变“一边”我描述的一部分“内部”和“外部”,哪个更清晰,我希望)
你不使用错误的功能。
x =摘要;
y = 12.2 + 4.5 * sin (x * 2 *π/ 1200)+兰德(大小(x)) / 10;
情节(x, y,“- b”)
看起来像你的数据。试着平滑的默认选项。
日元= smoothdata (y);
持有;情节(x, y₁,“- r”)
这同样的问题作为例子,只有更糟。这是我htink happning,:
smoothdata默认使用一个平面移动平均每个数据点为中心的窗口。附近的边缘,窗外不再为中心,因为它是截在外面但不截断在里面,和在边缘,窗外只有内部延伸,而不是外,平滑的数据点。所以一般在这种情况下会表现得像你所看到的在你的例子,如上图所示。尝试其他方法选项,看看你更喜欢的一个人。
1评论
威廉•罗斯
威廉•罗斯 2022年8月9日
编辑:威廉•罗斯 2022年8月9日
让我们试一试其他方法。你也可以尝试调整平滑因子或宽度,等等。
x =摘要;
y = 12.2 + 4.5 * sin (x * 2 *π/ 1200)+兰德(大小(x)) / 10;
日元= smoothdata (y,“movmean”);y2 = smoothdata (y,“movmedian”);
y3 = smoothdata (y,“高斯”);y4 = smoothdata (y,“洛斯”);
日元= smoothdata (y,“黄土”);日元= smoothdata (y,“rlowess”);
日元= smoothdata (y,“rloess”);日元= smoothdata (y,“sgolay”);
情节(x, y,“k”。,x, y₁,“- r”,x, y2,“g”,x, y3,“- b”日元,x,,“c”,
x,日元,“- m”,x,日元“——c”,x,日元“- m”,x,日元,“- y”);
传奇(“生”,“movmean”,“movmedian”,“高斯”,“洛斯”,“黄土”,
“rlowess”,“rloess”,“sgolay”,“位置”,“东南”)
xlim (70 [0]);ylim (13.6 [12])
左边缘,如上所示,方法黄土,洛斯,他们健壮的版本,和s g都做得更好比movmean movmedian,高斯。在正确的边缘(图中未显示)、方法黄土,rloess, sgolay是最好的。在这个例子中。

登录置评。

标签

s manbetx 845


释放

R2019b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!