📜  频谱图 - 正弦模型

📅  最后修改于: 2022-05-13 01:54:45.018000             🧑  作者: Mango

频谱图 - 正弦模型

频谱图用于演示该图的单个主频率。这表明单周期正弦模型可能是合适的。

考虑上面的图,假设该图具有如下分布:

Y_{i} = A_{0} + E_{i}

现在,我们尝试通过样本均值来估计常数。这种类型的分析会导致错误的结论,因为:



  • 样本均值有偏
  • 均值的置信区间 (CI) 太小。

在这里,模型的正确选择就像Y_{i} = C + \alpha\sin{(2\pi\omega t_{i} + \phi)} + E_{i}

Y_{i} = C + \alpha\sin{(2\pi\omega t_{i} + \phi)} + E_{i}

其中, a (alpha) 是振幅, w (omega) 是观测频率, phi是相位差。

此后的下一步:

  • 估计频谱图的频率,这将有助于启动后续非线性拟合的值。我们可以使用复数解调相位图来估计它。
  • 做一个复杂的解调幅度图来估计图的幅度并确定一个恒定的幅度是否足够。
  • 在数据集上执行模型的非线性拟合。

Y_{i} = C + \alpha\sin{(2\pi\omega t_{i} + \phi)} + E_{i}

执行:

  • 在这个实现中,我们将使用梁偏转案例研究,数据集可以从这里下载。
Python3
# necessary imports
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import statsmodels.api as sm
%matplotlib inline
sns.mpl.rcParams['figure.figsize'] = (20.0, 15.0)
 
# read beam data
beam_data = pd.read_csv('beam_Deflection.txt', header=None)
 
# draw 4 plot
sns.set_style('darkgrid')
 
fig, ax  = plt.subplots(2,2)
 
sns.lineplot(x= pd.Series(beam_data.index),y =beam_data[0],ax =ax[0,0])
ax[0,0].set_title('Run Sequence Plot')
 
pd.plotting.lag_plot(beam_data[0],ax =ax[0,1])
ax[0,1].set_title('Lag Plot with k=1')
 
sns.histplot(beam_data[0],kde=True,ax =ax[1,0])
ax[1,0].set_title('Histogram')
sm.ProbPlot(beam_data[0]).qqplot(line='s', ax=ax[1,1],color='blue');
ax[1,1].set_title('Normal Probability Plot')
 
 
fig.suptitle('4-plot')
plt.show()


  • 4-plot(Lag plot) 清楚地表明有一些周期性类型的函数可以用来描述数据集。现在,让我们假设数据可以通过以下等式拟合:

Y_{i} = C + \alpha\sin{(2\pi\omega t_{i} + \phi)}

  • 现在,我们绘制复数解调相位图和复数解调幅度图以获得上述方程的频率和幅度。您可以从此处了解有关如何绘制复数解调相位和幅度图的更多信息。
  • 复数解调相位图给出了 0.3025 的频率,复数解调幅度图给出了冷启动后大约 390 的幅度。

参考:

  • NIST手册