我重新取样方法可以用于增加非线性时间序列?

28日视图(30天)
我有一个时间序列的数据结构(我),从0到360(度),这只会增加从一个样本时间序列中的下一个(即。,总是这样:0,1,2,3,4…360年,从未0,1、2、1,2,3,…360)。时间序列不增加以线性方式,一个数据点到下一个0到360之间的任何数量可能会增加。我想重新取样时间序列增加/减少样本的数量。我试着重新取样标准()函数以及一些其他方法涉及linspace(),没有工作。我需要保留的时间序列只会增加从一个样本,和从未减少。有重新取样方法,在这里工作吗?

接受的答案

约翰D 'Errico
约翰D 'Errico 2023年6月14日22:00
这确实是一个插值问题。你可以叫它重采样,但插值是所有。并使用只是interp1你可以做任何事。最简单的就是使用线性插值。这里是一个简单的系列,是单调,但也很难插入如果你想要一个单调interpolant。
y = cumsum (randi (10 1 10)。^ 3);
纽约=元素个数(y);
x = 1:纽约;
情节(x, y,“o”)
现在,如果我是用样条,例如,它会产生结果,并不单调。
xint = linspace(1纽约5 *纽约- 4);% 4每个原始点之间新的点。
xint yspl = interp1 (x, y,样条的);%这不会单调
xint ylin = interp1 (x, y,“线性”);%线性一定单调
xint ypchip = interp1 (x, y,“pchip”);% pchip也总是单调
情节(x, y,“罗”xint yspl,的r -xint ylin,“g -”xint ypchip,“k -”)
网格
传奇(“原创系列”,“样条”,“线性”,“Pchip”)
所以红色曲线(花键)不是单调这个蹩脚的系列。绿色的,但它只是连接点线性插值。不是不好,而是没有壮观。黑色的曲线尽可能平滑,也单调。
3评论
斯宾塞摩天
斯宾塞摩天 6月14日2023年在下去的
好吧,我想现在我明白了,谢谢你的澄清。y如果我有一个时间序列长度为100,想减少长度到90,我将运行这个然后把它传给一个interporlation方法正确吗?
y = cumsum (randi (1100)。^ 3);
纽约=元素个数(y);
x = 1:纽约;
xint = linspace(1,纽约,90);
这一点超出了Matlab的方面,所以不用担心如果你没有意见,但如果这是我使用的方法,它通常会更好(在保持忠诚的曲线和轨迹数据)每个时间序列长度增加而不是减少他们吗?

登录置评。

更多的答案(0)

类别

找到更多的在插值帮助中心文件交换

标签

s manbetx 845


释放

R2020b

社区寻宝

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

开始狩猎!