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年气候数据工具箱。