- 积分
- 1223
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-6-17
- 最后登录
- 1970-1-1
|
发表于 2020-9-25 18:13:37
|
显示全部楼层
i
本帖最后由 小懒C 于 2020-10-5 22:52 编辑
我找到了ncl里面具体specx_anal是咋做的,以及它的源代码,在shea_util.ncl这个函数集里面
https://www.ncl.ucar.edu/Support/talk_archives/all/1526.html
应该不是单位的问题,而是其物理意义的问题根据ncl代码来看,ncl计算顺序为
1.tapper函数
2.fft并计算对应频率的幅值
3.平滑
4.将整个谱统一到方差大小,第四步如下:
- df = 1./N
- total_area = (spcx(0) + spcx(N/2-1))*(df/2) + sum(spcx(1:N/2-2))*df
- sclVar = xVaro/total_area
- spcx = spcx*sclVar
复制代码 这是说ncl中功率谱(spcx(最后一行))与频率步长(1/N)的乘积之和为原数据方差(开始和最后两点×1/2N,这个理解可以对应于傅里叶级数里a0,可以参考其他matlab,ncl等自带fft程序的解释)
李建平教授的程序对功率谱(sl)求和即为原始数据的方差
|
|