爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4142|回复: 4

[源程序] 两种小波程序作出的图完全不一样,求解?

[复制链接]

新浪微博达人勋

发表于 2015-10-24 07:58:15 | 显示全部楼层 |阅读模式

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

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

x
各位大神大家好,我从家园里找的两种小波程序,第一种程序如下,但是这两种图做出的几乎一点都不对,由于小弟是初学者,不会根据数据修改程序,我的数据是从1960-2014年,请教哪位大神指点一下,不甚感激!谢谢
clear
load q.txt
zf=q;
t=[1960:2014];% t根据数据修改,岂止年份根据数据修改
figure(1);
subplot(1,1,1);
index=1960:2014;% 年份根据数据修改
t=1:54;% t根据数据修改
c1=cwt(zf,[1:1:54],'morl','plot');%(morl是Morlet小波,mexh为墨西哥帽小波)
contourf(index,t,c1,54);%(50是等值线条数,可以修改)
colormap(jet);
xlabel('年份');ylabel('尺度');
title('MORLET时频分布图');
colorbar('EASTOUTSIDE');
print(gcf,'-djpeg','MORLET时频分布图');
figure(2);%绘制小波时频分析图
subplot(1,1,1);
contourf(index,t,c1,25);
colormap(Jet);
xlabel('年份');ylabel('尺度');
title('MORLET小波实部时频分布等高线');
colorbar('EASTOUTSIDE');
print(gcf,'-djpeg','MORLET时频Coef时频分布等高线');

figure(3);%绘制立体图
subplot(1,1,1);
meshc(c1);
surfc(c1);
shading interp;colormap(jet);
xlabel('年份');ylabel('尺度');zlabel('MORLET小波变换系数Coef');
title('MORLET小波变换系数时频分布立体图');
colorbar('EASTOUTSIDE');
print(gcf,'-djpeg','MORLET时频Coef时频分布立体图');

figure(4);
y=var(c1);%小波方差
plot(y);
title('小波方差图');
ylabel('Morlet小波方差');xlabel('年份');
grid;

figure(5);
subplot(1,1,1);
b=(abs(c1)).^2;%小波系数摸平方
[c,h]=contourf(index,t,b,25);
colormap(Jet);
ylabel('尺度');xlabel('年份');
title('小波系数模平方');


第二种程序如下:
clear;
load q.txt
sst =q;
n=length(q);
variance = std(sst)^2;
sst = (sst - mean(sst))/sqrt(variance);
dt = 1;
year = [0:n-1]+ 1960.0 ;
xlim = [1960,2014];   %
pad = 1;      
dj = 1/12;     
s0 = 1/2*dt;   
j1 = 6.5/dj;   
lag1 = 0.72;  
mother = 'Morlet';
[wave,period,scale,coi] = wavelet(sst,dt,pad,dj,s0,j1,mother);
power = (abs(wave)).^2 ;  %计算小波系数的模的平方
modulus=abs(wave);  %计算小波系数的模
variance1=sum(power')/n;%计算小波方差
%画小波系数实部等值线图

subplot(3,1,1)
levels = [-2.5,-2.0,-1.5,-1.0,-0.5,0,0.5,1.0,1.5,2.0,2.5];
v = [-2.0,-1.5,-1.0,-0.5,0,0.5,1.0,1.5,2.0];
Yticks = 0:5:55;
[c,h]=contourf(year,period,real(wave),levels,'k-');
clabel(c,h,v,'fontsize',5);
xlabel('年份/year')
ylabel('周期/年 period/year')
set(gca,'XLim',xlim(:))
set(gca,'YLim',[0 55], ...
     'YDir','default', ...
'YTick',Yticks(:), ...
'YTickLabel',Yticks)
hold on
% 画小波方差图
subplot(3,1,2)
plot(period,variance1,'k-')
hold on;
levels= [1,10,20,30,40,50,60];
title('(b)')
set(gca,'XLim',[1 55], ...        
     'XTick',levels,...
    'XTickLabel',levels)
xlabel('周期/a')
ylabel('方差 variance')
hold on
%画小波系数模
subplot(3,1,3)
levels = [-2.5,-2.0,-1.5,-1.0,-0.5,0,0.5,1.0,1.5,2.0,2.5];
v = [-2.0,-1.5,-1.0,-0.5,0,0.5,1.0,1.5,2.0];
Yticks = [0:5:55];
[c,h]=contourf(year,period,abs(wave),levels,'k-');
clabel(c,h,v,'fontsize',5);
xlabel('年份/year')
ylabel('周期/年 period/year')
set(gca,'XLim',xlim(:))
set(gca,'YLim',[0 55], ...
     'YDir','default', ...
'YTick',Yticks(:), ...
'YTickLabel',Yticks)
数据如下:
19.5
19.4
19.0
19.1
19.0
19.4
19.8
18.8
19.0
19.4
19.1
18.4
19.3
19.6
19.0
19.3
18.8
18.9
19.3
19.4
19.8
19.4
19.2
19.1
19.1
18.8
19.1
19.9
19.4
19.0
19.3
19.6
19.0
19.3
19.7
19.2
19.1
19.4
20.3
19.7
19.5
19.6
19.8
20.1
19.4
19.9
20.2
19.7
19.3
20.3
20.6
18.9
20.4
20.0
20.3





密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-10-24 09:31:54 | 显示全部楼层
头疼的问题,我也不懂,还请大神指教!  你最好把两张图也传上来吧!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-10-24 11:20:16 | 显示全部楼层
我也想把图插进来 但是我不知道怎么插入
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-3-28 15:09:36 | 显示全部楼层
shenke_1207 发表于 2016-3-9 23:48
楼主问题解决了吗??

没有啊  
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-4-21 10:23:52 | 显示全部楼层
我也是  用metlab程序和Fortran程序跑的  两个出的图不同  纠结
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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