plotpsd文档

函数绘制时间序列的功率谱密度周期图函数。需要Matlab的信号处理工具箱。

回到气候数据工具内容

内容

语法

plotpsd (y, Fs) plotpsd (y, x) plotpsd(…,LineProperty LineValue) plotpsd(…,计算lnx) plotpsd(…,db) plotpsd(…,“λ”)h = plotpsd(…)

描述

plotpsd (y, Fs)绘制一维阵列的功率谱y采样频率Fs使用周期图函数。采样频率Fs必须是标量。

plotpsd (y, x)的功率谱y引用一个自变量x.这个语法要求x而且y相等的长度和x必须等距且单调递增。对于时间序列,xLikely有时间单位;用于空间分析x可能有长度单位。

plotpsd(…,LineProperty LineValue)使用LineSpec属性的任何组合指定绘图的线条样式(例如,“颜色”、“r”,“线宽”,2等等)。

plotpsd(…,“计算lnx”)specfies一semilogx情节。

plotpsd(…,“分贝”)以分贝为单位绘制功率谱。

“λ”plotpsd(…)将水平轴标记为波长而不是默认频率。注意,这个语法假设lambda = 1/f。

H = plotpsd(…)返回句柄h绘制的图形对象的。

例1:火车汽笛

使用内置火车哨子示例,绘图从绘制上下文的时间序列开始:

负载火车t =(0:长度(y)-1)/Fs;情节(t, y)盒子包含“时间(s)”

如果你戴着耳机,你可以这样演奏火车汽笛:

soundsc (y, Fs)

火车信号的功率谱是这样的:

plotpsd (y, Fs)包含的频率(赫兹)

这使得火车的三个喇叭非常清晰!不喜欢默认的细蓝色线?画一条肥大的红线:

plotpsd (y, Fs,“颜色”“红色”“线宽”4)包含的频率(赫兹)

想要看到以分贝为单位的洋红色线吗?

plotpsd (y, Fs,“米”“数据库”)包含的频率(赫兹)

这是一条黑线,垂直方向是分贝水平方向是对数刻度。

plotpsd (y, Fs,“k”“数据库”“计算lnx”)轴包含的频率(赫兹)

假设你有一些测量y与某个时间向量相关t你不会想费那么大力气去计算抽样率。如果是这种情况,只需输入t而不是Fs:

plotpsd (y, t,”乙:““计算lnx”)包含的频率(赫兹)

例2:海冰范围

加载CDT附带的海冰范围数据,只使用1988年以后的数据,因为在那之前的东西没有每日分辨率:

负载seaice_extent.mat% CDT附带的一些样本数据自1989年以来的日期指数:Ind = t>datetime(1989,1,1);图(t(ind),extent_N(ind)) ylabel北半球海冰范围(10^6 km^2)盒子%移除丑陋的约束帧

这显然有一定的周期性。我们可以用机灵将所有与儒略日相关的数据做一个散点图:

Jday = doy(t);散射(jday(印第安纳州),extent_N(印第安纳州),10日datenum (t(印第安纳州))“填充”) cb = cbdate(“yyyy”);%将颜色条格式化为日期集(cb,“ydir”“反向”%翻转颜色条轴ylabel北半球海冰范围(10^6 km^2)包含“一年中的一天”

从上面两幅图中,我们可以预期海冰范围时间序列在1/年频率上有能量,此外还有一些长期趋势,这些趋势应该在低频上表现为宽带能量。

绘制功率谱密度作为周期的函数(这里,lambda),假设采样频率为每年365.25个等间隔样本:

图plotpsd (extent_N(印第安纳州),365.25,“λ”甘氨胆酸)组(,“xscale”“日志”“yscale”“日志”)轴包含的时间(年)

正如预期的那样,1年期间的峰值非常突出。但也有其他一些小高峰,特别是在6个月和4个月期间。使用vline向他们展示:

vline ((1:12) / 12,“——”“颜色”rgb (“灰色”)) yl = ylim;% y的限制文本(12/12,yl (2),“12”“绿色”“高级”)文本(6/12,yl (2),“6”“绿色”“高级”)文本(4/12,yl (2),' 4(个月)“绿色”“高级”

作者信息

此函数和支持文档由万博1manbetx查德·a·格林2015年10月,德克萨斯大学奥斯汀地球物理研究所(UTIG)的一项研究。适应2019年气候数据工具箱。