我应用最小二乘谱分析(LSSA,Lomb-Scargle)的信号f(t),既不是等距采样时间t,也不是完全无噪声。
t > 0的理想信号为
f(t)~ exp(-beta · t)· cos(Omega ·t-d)
使用拟合从f(t)中提取beta和Omega可以很好地工作。
我还想从f(t)的LSSA变换中提取这些参数。
问题:使用Python和scipy.signal.lombscargle
:上面定义的理想信号的LSA变换F(ω)的exakt形式是什么?
我希望是某种洛伦兹
F(ω)~ 1 /((ω-ω_0)^2 + β ^2)
1条答案
按热度按时间cnjp1d6j1#
您定义的理想信号的LSSA变换实际上是洛伦兹变换,具有以下形式:
其中
omega_0
是信号的频率,beta
是阻尼常数。要使用Python和scipy.signal.lombscargle从LSSA变换中提取这些参数,可以使用以下步骤:
1.使用
lombscargle()
函数计算信号的LSSA周期图。1.使用
np.argmax()
函数查找周期图中的峰值频率。1.使用
scipy.optimize.curve_fit()
函数将洛伦兹曲线拟合到峰值频率附近的周期图。1.提取的参数
omega_0
和beta
将是洛伦兹拟合的系数。下面是一个如何使用Python和scipy.signal.lombscargle从LSSA变换中提取阻尼余弦信号参数的示例:
输出量:
如您所见,提取的参数非常接近用于生成信号的
omega_0
和beta
的真实值。