谱估计子程序

简介

SPE,全称为 Spectrum Estimation Subprocess,在 SAC 中键入 spe 命令即可进入谱估计子程序。该子程序主要用于处理稳态随机过程,包含了如下三种谱估计方法:

  • PDS:能量密度谱

  • MLM:最大似然方法

  • MEM:最大熵方法

这三种方法都是间接法,因为它们都用了采样相关函数而不是数据本身来估计谱内容。

SPE命令

SPE 子程序中包含了一些专门的命令,同时也可以使用 SAC 的部分命令。这里只列出 SPE 专属的命令。

  • cor 计算互相关函数

  • mem 用最大熵方法计算谱估计

  • mlm 用最大似然法计算谱估计

  • pds 用能量密度谱方法计算谱估计

  • plotcor 绘制相关函数

  • plotpe 绘制 RMS 预测误差函数

  • plotspe 绘制谱估计

  • readcor 读取相关函数

  • writecor 将相关函数以 SAC 文件格式写入磁盘

  • writespe 将谱估计以 SAC 文件格式写入磁盘

理论

SPE 主要用于分析稳态随机过程。它实现了三种不同的间接的谱估计方法。它们之所以称为是间接的是由于它们不直接从数据出发去做谱估计,而是从由数据求出的样本相关函数出发去做频谱估计。选择间接方法完全是一种偏爱,因为直接的频谱估计技术也是可以用的。相关函数本身也是一个有用的函数,在进行频谱估计的过程中你会了解这一点。SPE 的谱估计类型为频率域中的功率密度谱,其频谱被定义在一定的频率范围内,于是在一些频带中随机过程的功率即为这个频带的功率谱密度的积分。

用户控制

SPE 可以使用户控制频谱估计过程中的一些细节。对那些有频谱估计的经验的人来说,这是很理想的。对那些不想过细地研究有关理论的用户也提供了便于使用的缺省值。在测定相关函数时用户可以对数据窗口的类型、尺寸和使用的窗口数进行选择。一般地讲,这些参数控制了谱分析的分辨率,以及最后的谱估计中的方差。另外,数据的预白化可以指定为测定相关函数的过程的一部分,预白化对减缓严重的窗口“混淆”现象是很有用的,“窗口混淆”有可能发生在具有大动态范围的谱估计过程中。发生在预白化时的频谱失真在最后的结果中进行补偿。在这个过程中,数据的预白化使用了低阶的预测误差滤波器。

算法

用户可以有三种谱估计算法的选择:功率密度谱、最大似然法和最大熵法。

PDS 法相当简单,样本相关函数乘以相关窗,然后对结果进行 FFT 以获得频谱估计结果。用户还可以对窗的类型和尺寸进行选择。

MLM 法生成一个频谱,这种频谱是一个经过平滑处理的功率密度谱的参量估计。用户可以选择参量的个数。

MEM 估计是另一个参量方法,它使用一个预测误差滤波器对数据进行预白化。这个谱估计的结果反比于滤波器的功率频率响应。用户可以选择预测误差滤波器的阶数。

诊断

除了频谱之外,一些诊断函数也可以计算并标绘出来。预测误差可以被标绘为阶的函数。这个图可用来为应用于MEM方法的预测误差滤波器选择一个较好的尺寸。由于进行 PDS 估计的算法已经众所周知,所以在SPE中给出了关于这种方法的更多的诊断信息。90% 置信区间以及估计的频率分辨率可以通过理论进行估算。这些值都可以在 PDS 的频谱上显示出来。

同主程序的区别

在 SPE 和 SAC 主程序之间有两个主要的区别。SPE 一次只能处理一个数据文件,这是因为 SPE在运行期间生成并保存了大量的辅助函数(例如:相关函数、预测误差函数以及谱估计函数自身)。这种对单个数据文件的限制将在未来的版本中去掉。第二个不同点是,与 SAC 不同,SPE 中具有自己特有的执行不同指令的次序。

初始化

执行 SPE 命令时即调用了 SPE 软件包。调用的同时也定义了各种 SPE 参数的缺省值。数据文件在进入 SPE 之前或进入 SPE 的任何时间均可以使用 READ 命令读入,一旦读入新的文件,系统中将为前面所述的辅助函数生成一个空间。

相关

可以使用 cor 命令计算相关函数,用 writecor 命令可以激昂相关函数作为SAC的数据文件保存起来,还可以用 readcor 命令再将它们读回 SPE 中去,这比每次都重复计算相关函数要更为简单。在数据文件很长的时候尤为如此。此时用户也可以使用 plotcor 命令来看一下相关函数。如果用户准备使用 MEM 方法的话,还可以使用 plotpe 命令来看一下预测误差函数。

估计

用户可以使用 pdsmlmmem命令来选择三种频谱估计中的任何一种。每一种方法都有自己的选项,你可以使用 plotspe 命令来检验谱分析结果。有几种确定比例的选项可以使用。同样的你也可以使用 writespe 命令将谱估计的结果作为 SAC 的数据文件保存起来。

终止

可以使用 quitsub 命令终止谱估计子程序,或使用 quit 命令终止整个 SAC 程序的运行。