为衰减增长的振荡器类型的时间序列找到拟合参数的最佳方法

计算科学 回归 信号处理
2021-11-29 00:25:47

我有从数值模拟中出现的离散时间序列。这意味着时间序列可能会有些嘈杂。时间序列应该“服从”以下公式:

ψ(t)=i=1Naiexp(αit)sin(ωit+ϕi)
在哪里N根据给定的模拟,事先不知道(可以是 1、2 或 20)。

更新 2016-08-05:这里的未知参数是ai,αi,ωi,ϕi, 和N,虽然我唯一需要的是提取αiωi从这些时间序列。

以前,当N=1得到保证,我使用了非线性最小二乘算法。事实证明,该算法需要非常好的初始猜测才能找到合适的拟合。我不确定如何在何时提供一个好的初始猜测N事先不知道。

从这些时间序列中提取我需要的参数的最稳健和最好的方法是什么?谢谢!

更新 2016-08-05:以下是演示示例时间序列的代码。不过,这个例子纯粹是人为的,因为我现在没有从数值模拟中出现的实时序列。

alpha(1) = 0.03;
alpha(2) = 0.05;
alpha(3) = -0.01;

a(1) = 1e-5;
a(2) = 1e-5;
a(3) = 1e-5;

omega(1) = 0.9;
omega(2) = 0.125;
omega(3) = 0.001;

phi(1) = pi/2;
phi(2) = pi/3;
phi(3) = pi;

t = linspace(0, 100, 1000);
d = 0 * t;

for i = 1:3
    d = d + a(i) * exp(alpha(i)*t) .* sin(omega(i)*t + phi(i)); 
end

plot(t, d, 'o-');

示例时间序列

0个回答
没有发现任何回复~