声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4480|回复: 9

[绘图技巧] 用waterfall绘图出现问题

[复制链接]
发表于 2008-8-12 11:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
waterfall(x,y,z)
x,y均为列向量时,如x为1*10列向量,y为1*12列向量,z为12*10矩阵。
用waterfall命令可以绘出瀑布图,但是当我的x变成1*1000,y变成1*1024,z为1024*1000时,瀑布图就绘不出来了,请问是怎么回事?

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2008-8-12 12:07 | 显示全部楼层
程序和错误提示
 楼主| 发表于 2008-8-12 14:11 | 显示全部楼层
没有错误提示,程序运行正常,就是图像出不来。 200710070016ZHP.txt (6.23 KB, 下载次数: 35) Gs(ZHPUD).txt (189 Bytes, 下载次数: 33)
x=load('200710070016ZHP.txt');
x1=detrend(x,'linear');
fs=100;
n=length(x);
t=0:1/fs:(n-1)/fs;
t=t';
nfft=2^nextpow2(n);
%FFT变换
S=fft(x1,nfft);
g=load('Gs(ZHPUD).txt');
G=fft(g,nfft);
G=G';
D=S./G;
%IFFT变换
y=ifft(D,nfft);
y=real(y(1:n));
y1=cumtrapz(y);
y1=y1';
WinLen = 10;
t=t';
[WT, FreqBins, Scales] = CWT_Morlet(y1,WinLen,1024);
FreqBins = FreqBins * fs;
Pyy=abs(WT).^2;
waterfall(t,FreqBins,Pyy); %三维谱图
colormap jet;
发表于 2008-8-12 15:34 | 显示全部楼层
程序没有错误,只是waterfall计算需要很长的时间,似乎计算机死机了。可得图如下。在这种情况中可以用mesh来作图。
kx2e.jpg

点评

赞成: 5.0
赞成: 5
碰到同样的问题,正解,改用mesh后速度快了很多  发表于 2017-10-7 13:18

评分

1

查看全部评分

 楼主| 发表于 2008-8-12 17:58 | 显示全部楼层
恩,是的,我等了好久也终于等到机子把图绘出来了。还是很感谢帮助!还想请教一个问题,我想知道这个信号优势能量的分布时间区域及频率范围,而不只是单凭肉眼估计,如何做?拜托
我自己采用下面语句求最大优势频率:
f=(0:nfft/2)*fs/nfft;
%返回最大能量值对应的频率和周期值
[a b]=max(Pyy(1:n));
fprintf('\n傅立叶变换结果:\n')
fprintf('           FFT_f = %1.3f Hz\n',f(b))               %输出最大值对应的频率
fprintf('           FFT_T = %1.3f s\n',1/f(b))             %输出最大值对应的周期
但返回的计算结果好像与图像上所示的相差比较远,而且f 的表达式影响计算结果,我想请教一下,如何才能正确求得最大能量对应的频率?

[ 本帖最后由 ChaChing 于 2009-4-22 19:43 编辑 ]
发表于 2008-8-12 18:21 | 显示全部楼层
实际上画出了3维图,由于立体的关系,要找出最大值的位置反而不太方便,建议用:
imagesc(t,FreqBins,Pyy);
axis('xy');
作图,用颜色反映出能量的大小,看起来比3维图更方便。又Pyy是一个2维数组,可以变成1维后求出最大值,再进一步对应相应的时间和频率,及周期。

点评

imagesc的方法,画出来的图像出现扭曲,效果不好,不知是什么原因  发表于 2017-10-7 13:17

评分

1

查看全部评分

 楼主| 发表于 2008-8-12 20:51 | 显示全部楼层
可是查了一下变换维数的帖子,好像都没有答案的。麻烦Songzy41再次指教如何变更数组维数,谢谢

Pyy为一个1024*1000的数组,如何才能转换成您说的可以求最大值的形式呢?
matlab中提供的reshape命令,可以用么?B=reshape(A,m,n),但要求m*n一定要等于A的元素个数。P=reshape(Pyy,1024000,1)  ????

[ 本帖最后由 ChaChing 于 2009-4-22 19:44 编辑 ]
发表于 2008-8-12 21:19 | 显示全部楼层
PP=Pyy(:);
变后数据是按1列1列地顺序排列的.
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-24 17:18 , Processed in 0.078462 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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