如何将周期图结果输出到 Mathematica 中的列表?

How to output periodogram result to a list in Mathematica?

我有一个时域数据。使用周期图进行离散傅里叶变换后,如何将绘图输出到列表中以供进一步操作?

Periodogram[data[[All, 2]], SampleRate -> 3000000/0.01, GridLinesStyle -> Directive[Red, Dashed], PlotRange -> {{100000000 - 10000, 100000000 + 10000}, All}]

谢谢!

A List 可以从 Periodogram 输出中提取,基于其 InputForm,如下所示。 (我们从一些虚构的数据开始。)

data = Table[2 Sin[0.2 \[Pi] n ] + Sin[0.5 \[Pi] n] + RandomReal[{-1, 1}], {n, 0, 127}];
plot = Periodogram[data, SampleRate -> 3000000/0.01, 
   GridLinesStyle -> Directive[Red, Dashed]];

接下来,我们使用 Position 在图中定位所需的数量并提取它们。

plot[[First@Position[plot, Line] /. {0 -> 1} /. List -> Sequence]]
(* {{0., -8.99487}, {2.38095*10^6, 1.60543}, {4.7619*10^6, 1.82102}, ... *)

在这种情况下通常会有一个关联的功能。在这种情况下 PeriodogramArray 输出数据。

data = Table[
   2 Sin[0.2 Pi n ] + Sin[0.5 Pi n] + RandomReal[{-1, 1}],
   {n, 0, 127}];

Periodogram[data]

magdata = PeriodogramArray[data];

ListLinePlot[10 Log[10, magdata], PlotRange -> {{0, Length[magdata]/2}, All}]