哪位好人懂MATLAB,帮忙看看这幅图,为什么5年以下尺度上的周期在小波实部图上体现不出来呢?代码如下:
请帮我看看这个代码是不是有问题scales=[1:1:32];%进行连续小波变换得到小波系数矩阵,选择复morlet小波函数wf=cwt(qiujijiangyu,sca...
请帮我看看这个代码是不是有问题scales=[1:1:32];%进行连续小波变换得到小波系数矩阵,选择复morlet小波函数wf=cwt(qiujijiangyu,scales,'cmor1-1.5','plot');% 求得系数的实部shibu=real(wf);subplot(221);contourf(shibu,10,'-');colormap('HSV');colorbar;time=1951:6:2013Xlabel('年份Year');Ylabel('时间尺度Time scale/a');set(gca,'XTickLabel', time) %更新XTickLabel% 小波方差是模的平方的算数平均mo=abs(wf);mofang=mo.^2;fangcha=mean(mofang,2);subplot(222);plot(fangcha,'k-','linewidth',0.5);Xlabel('时间尺度/年');Ylabel('小波方差')
展开
展开全部
代码没啥明显问题,出现问题的可能1.原始信号中可能本身就没有尺度5以下的信息,这和你原始信号的特征还有采样多少有关。2.使用的contourf函数,在matlab中所有与二维网格化有关的问题都解决的不好,contourf函数对实际数据绘制的等值线图有时就是惨不忍睹,对于数值较小或较大的不连续区域可能绘不出等值线,而尺度5以下小波系数分布都比较细碎或数值比较其他区域相差较大,这样就绘不出等值线喽!
另外,还想对这种周期分析谈一些个人看法。对于CWT中的尺度是与所用小波函数的数学性质有关的,与所用的小波函数的中心频率有关,根本不是上面的这种理解。连续小波变换对尺度的定义根本不是时间尺度,它是没有量纲的(还扯什么年),上面的程序没错,但对小波分析的理解是错误的。CWT的尺度到底与时间如何对应要通过所用的小波函数的中心频率、采样点数和经历时间计算(就是采样频率)。一直都见到有人这么搞,其实一直都是错的,没办法审稿人也只是混饭吃的棒槌,搞得错误文章满天飞,祸害后来人呐!
另外,还想对这种周期分析谈一些个人看法。对于CWT中的尺度是与所用小波函数的数学性质有关的,与所用的小波函数的中心频率有关,根本不是上面的这种理解。连续小波变换对尺度的定义根本不是时间尺度,它是没有量纲的(还扯什么年),上面的程序没错,但对小波分析的理解是错误的。CWT的尺度到底与时间如何对应要通过所用的小波函数的中心频率、采样点数和经历时间计算(就是采样频率)。一直都见到有人这么搞,其实一直都是错的,没办法审稿人也只是混饭吃的棒槌,搞得错误文章满天飞,祸害后来人呐!
追问
追答
这图用morl小波做CWT,压根就不是复小波,哪来的实部图?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询