爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 17070|回复: 26

[程序设计] 小波分析程序中的几个参数问题

[复制链接]

新浪微博达人勋

发表于 2014-5-31 22:13:04 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
    最近在着手学习小波分析,用的应该是http://bbs.06climate.com/forum.php?mod=viewthread&tid=7519中提到的程序,程序没问题很好用,能够美观出图,但是其中几个参数的含义和设定原则却搞不清楚(虽有部分英文注释,但是还是不明其里),现将部分程序及问题贴出,希望大家帮我看看,明白的同仁请给与解答,谢谢。程序如下:

  • clc;clear;close all;
  • P=load('q.txt');
  • n=length(P);
  • var =var(P);
  • P_ = (P - mean(P))/sqrt(var);
  • dt = 1;              % 时间间隔
  • year = [0:n-1]+ 1956.0 ;      % construct time array
  • xlim = [1956,2011];             % plotting range
  • pad = 1;             % pad the time series with zeroes (recommended)
  • dj = 1/12;          % this will do 4 sub-octaves per octave(倍频)
  • s0 = 1/2*dt;      % this says start at a scale of 6 months
  • j1 = 7/dj;           % this says do 7 powers-of-two with dj sub-octaves each
  • mother = 'Morlet';
  • [wave,period,scale,coi] = wavelet(P_,dt,pad,dj,s0,j1,mother);
  • subplot('position',[0.05 0.2 0.80 0.70])
  • Yticks = [0:5:36];
  • [c,h]=contour(year,period,real(wave));
  • clabel(c,h);
  • xlabel('年份')
  • ylabel('周期尺度/a')
  • title('(a)')
  • set(gca,'XLim',xlim(:))
  • set(gca,'YLim',[0 36], ...
  •     'YDir','default', ...
  •         'YTick',Yticks(:), ...
  •         'YTickLabel',Yticks)




问题如下:
1、如程序中红色字体所示,pad/dj/s0/j1这四个参数各代表了什么?其数值的设定有什么依据原则?特别是dj和j1.
2、如程序第18行所示,本例用的是56年的数据(只有一列),画小波实部图时,横轴为年份,纵轴为周期,
那么纵轴的标注是如何确定的呢?此处的36是依据什么确定的?


被这两大疑问困扰了3天,查了一些资料和书籍都没有找到合理的答案,希望大家帮我解决一下,谢谢各位。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-1 09:28:01 | 显示全部楼层
本帖最后由 denghaijun 于 2014-6-1 09:33 编辑

Pad:PAD = if set to 1 (default is 0), pad time series with enough zeroes to get N up to the next higher power of 2. This prevents wraparound from the end        of the time series to the beginning, and also speeds up the FFT's used to do the wavelet transform. This will not eliminate all edge effects (see COI
       below).
       PAD = 如果设置为1(默认为0),用足够的0填充时间序列使得N最高达到下一个更高的2次幂。这可以防止从时间序列的末尾到开始的环绕,也加快
       用来做小波变换的傅里叶变换。这并不能消除所有的边缘效应(参照下面的 COI说明).

DJ = the spacing between discrete scales. Default is 0.25.
          A smaller # will give better scale resolution, but be slower to plot.

          DJ = 离散尺度之间的间距。默认是0.25。
          一个更小的 % 将得到更好的尺度分辨率,但画图会变慢。


S0 = the smallest scale of the wavelet.  Default is 2*DT.
      S0= 小波的最小尺度。默认为2*DT


J1 = the # of scales minus one. Scales range from S0 up to S0*2^(J1*DJ), to give a total of (J1+1) scales. Default is J1 = (LOG2(N DT/S0))/DJ.
     J1= #尺度减一.尺度范围冲S0至S0*2^(J1*DJ),直至到得到(J1+1) 尺度。默认是 J1 =(LOG2(N DT/S0))/DJ.


Yticks:指的是周期。这个主要取决于被分析数据的时间尺度,56年的数据,选用32可以的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-1 10:40:57 | 显示全部楼层
为什么我用MATLAB2012a或者2014a都会显示这个错误啊?

[b][color=Red]未定义与 'double' 类型的输入参数相对应的函数 'wavelet'。

出错 lvbo (line 23)
[wave,period,scale,coi] = wavelet(pc1,dt,pad,dj,s0,j1,mother)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-2 08:22:14 | 显示全部楼层
denghaijun 发表于 2014-6-1 09:28
Pad:PAD = if set to 1 (default is 0), pad time series with enough zeroes to get N up to the next hig ...

这个注释版的我也看了,只是感觉理解不透呵呵,感谢指点
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-2 08:23:07 | 显示全部楼层
千里草 发表于 2014-6-1 10:40
为什么我用MATLAB2012a或者2014a都会显示这个错误啊?

未定义与 'double' 类型的输入参数相对应的函数 ' ...

wavelet函数要自己编写,默认安装里面没有的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-16 13:24:40 | 显示全部楼层
直接下载的代码不可以吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-17 14:46:42 | 显示全部楼层
问个简单啊?subplot('position',[0.05 0.2 0.80 0.70])怎么理解?谢谢指点。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-17 20:18:53 | 显示全部楼层
tomming 发表于 2014-6-17 14:46
问个简单啊?subplot('position',[0.05 0.2 0.80 0.70])怎么理解?谢谢指点。

应该是设置坐标轴相对于页面的位置,你改动这几个数值对照一下看看就会发现
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-17 20:20:47 | 显示全部楼层
huzengyun 发表于 2014-6-16 13:24
直接下载的代码不可以吗?

wavelet是需要编写的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-6-18 08:56:16 | 显示全部楼层
奋斗的蜗牛 发表于 2014-6-17 20:18
应该是设置坐标轴相对于页面的位置,你改动这几个数值对照一下看看就会发现

就上面这个程序,我之前看过,最后给出四副图,有三副图后面[]的4个数字是一样的,所以,我不明白,如果是指位置,应该每个图的数据都有改动,所以不明白。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表