基于R语言进行MTM多窗谱分析
多窗谱分析(Multi-Taper Method,MTM)是一种低方差、高分辨率的谱分析方法,该方法可用于对气温、降水量等时间序列数据的周期性变化分析,且已在气候研究领域中得到了广泛应用。本文将介绍MTM方法在R语言环境中的实现方式。
1 R语言代码
(1) 所需R包:multitaper
(2) 主要代码:
点击查看代码
library(multitaper) # 导入R包
data(willamette) # multitaper 示例数据
# willamette:1950.10-1983.08期间威拉米特河每月日均流量的对数序列数据
will.ts <- ts(data=willamette, start=(1950+9/12), freq=12) # 时间序列数据
# nw:正双精度数,时间带宽参数,此处设置为4.0;k:正整数,锥度数,通常为2倍的nw
# Ftest:布尔变量,说明是否计算并返回F检验结果;plot:布尔变量,说明是否绘制频谱图
resSpec <- spec.mtm(will.ts, nw=4.0, k=8, Ftest=TRUE, plot=FALSE)
plot(resSpec) # 绘制频谱图
plot(resSpec, Ftest=TRUE, siglines=c(0.90, 0.99)) # 绘制F检验结果图,并添加90%、99%两条临界值线
注:上述代码根据 multitaper包官方文档 相关内容修改而成。
(3) 结果展示:
输出的频谱图以及F检验图可通过Adobe illustrator等软件进行修饰,周期值与横轴的Frequency 数值为倒数关系,其修饰后的结果图如下所示:
2 参考文献
[1] 江志红, 屠其璞, 施能. 多窗谱分析方法及其在全球变暖研究中的应用[J]. 气象学报, 2001(4): 480-490.
[2] 王晾晾, 靳立亚. 敦煌近七十年温度与降水序列的多窗谱分析和小波分析[J]. 甘肃农业, 2009(9): 51-53+55.