计算太阳的大小频率间隔

计算科学 matlab Python 麻木的 信号处理
2021-12-05 21:42:13

我想从太阳的时间序列数据中确定大小频率分离。下面绘制了数据(时间序列和幂序列)的摘录。

幂级数在 MATLAB 中计算如下:

n = length(t_obs);
dt = diff(t_obs(1:2));
y = fft(d_obs, n);
P = y .* conj(y)/n;
f = (0:n/2)/(n*dt);

f = f(1:(n/2));
P = P(1:(n/2));
plot(f, P);

我无法理解的是:

  • 我怎样才能获得大的频率分离Δν和小小的分离δν为了l=0l=1无需从图中手动读取它(有很多数据集)。如果你想展示一个实现这个的例子(尽管解释或提示就足够了),我精通 Python 和 MATLAB。
  • powerseries上y轴的单位是什么?

时间序列图

http://i.stack.imgur.com/wD9fR.png

幂级数图

http://i.stack.imgur.com/M4m2U.png

以供参考: δνl=νnlνn1l+2

我希望你能帮忙。

1个回答

频率分离

估计大分离(不拟合各个频率)的最简单方法是获取功率谱的自相关并找到最大值。这是一个开始。要找到小的分离,您需要寻找第二个峰。无论如何,看看功率谱的自相关,看看你是否能看到分离。

您可以尝试找到自相关的最大值,但我怀疑数值导数会使找到正确的零点变得困难。而且,如果你真的适合频率,那么你可以直接取差异的平均值。

功率谱的单位

您可以通过计算正在使用的对象来遵循单位。假设你的时间序列有单位x. 傅里叶变换是时间序列乘积的总和,例如eiω,这是无量纲的。所以傅里叶变换的元素有单位x也。最后,幂级数就像变换平方,所以它有单位x2.

如果你以这种方式最终得到奇怪的单位,请注意在星震学中,人们通常将他们的信号除以平均值(或中位数)并减去一个,这样就有一个无量纲的数字。它们通常以百万分之几 (ppm) 为单位表示幂级数。