声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3207|回复: 17

[HHT] 请教各位前辈。。急。。

[复制链接]
发表于 2010-10-10 20:21 | 显示全部楼层 |阅读模式

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

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

x
1》请问EMD分解得到IMF分量以后,是不是要安装个HHT谱变换工具箱才能出HHT谱图的???
2》关于论坛里面有位前辈的程序举例:
t=1:500;
t=t*1/2000;
x=sin(2*pi*20*t);
y=0.4*sin(2*pi*40*t+140);
z=x+y;
plot(t,z)

imf=emd(z);
emd_visu(z,1:length(z),imf)

[A,f,tt]=hhspectrum(imf);
[im,tt]=toimage(A,f);
disp_hhs(im);
colormap(flipud(gray))


t=1:500;
t=t*1/2000;      
这个两句程序是什么意思?请哪位前辈帮解释下啊。


回复
分享到:

使用道具 举报

 楼主| 发表于 2010-10-10 20:23 | 显示全部楼层
先谢谢各位了额。。
发表于 2010-10-10 21:08 | 显示全部楼层
逐步执行不就知道了? (将;改为,)
发表于 2010-10-11 08:39 | 显示全部楼层
2》关于论坛里面有位前辈的程序举例:
t=1:500;
t=t*1/2000;
x=sin(2*pi*20*t);
y=0.4*sin(2*pi*40*t+140);
z=x+y;
plot(t,z)

imf=emd(z);
emd_visu(z,1:length(z),imf)

[A,f,tt]=hhspectrum(imf);
[im,tt]=toimage(A,f);
disp_hhs(im);
colormap(flipud(gray))


t=1:500;
t=t*1/2000;      
这个两句程序是什么意思?请哪位前辈帮解释下啊。

这两句应该是抽样的,抽500个点,时间是从0到1/4

评分

1

查看全部评分

发表于 2010-10-11 08:42 | 显示全部楼层
1》请问EMD分解得到IMF分量以后,是不是要安装个HHT谱变换工具箱才能出HHT谱图的?

你要是安的是Rilling的工具箱,里面本身就有计算谱和画谱的函数。[A,f,tt]=hhspectrum(imf);
是计算谱的。disp_hhs(im);是画的,这句后面的那句你要是注释掉就能看到彩色谱图
 楼主| 发表于 2010-10-11 09:52 | 显示全部楼层
明白了。。我少了instfreq函数。。
下了个时频工具箱就出谱图了。
谢谢前辈。。
 楼主| 发表于 2010-10-11 10:12 | 显示全部楼层
我还有一个问题:请问前辈 这句   emd_visu(z,1:length(z),imf)    能降解一下吗?谢谢啊。。
发表于 2010-10-15 15:49 | 显示全部楼层
  emd_visu(z,1:length(z),imf)
z是原始信号,1:length(z)是x轴坐标(这句话就是以1为步长取了length(z)个点),imf是个矩阵,里面有imf分量及余量,这条语句是显示emd分解结果的,应该会出现三个图,第一个是分解结果,后两个分别是由高频到低频,由低频到高频的重建信号的过程图。
我也是新学这块内容的,彼此交流吧~
 楼主| 发表于 2010-10-19 21:34 | 显示全部楼层
回复 blackiris 的帖子

谢谢你啊。。
 楼主| 发表于 2010-10-19 21:39 | 显示全部楼层
回复 blackiris 的帖子

load('data.txt');
tspan=30;
%时长
fs=50;
%采样频率
t=(1/fs:1/fs:tspan);
N=length(t);
%采样点数
x=data(1:N,2);
figure(10);
plot(t,x);
[imf,ort,nbits]=emd(x);
%emd_visu(x,1:length(x),imf)


%%% 求边际谱
[A,fa,tt]=hhspectrum(imf(1:end-1,:));

[E,tt1,ff]=toimage(A,fa,tt,length(tt));
disp_hhs(E);colorbar;
% colormap(flipud(gray))
for k=1:size(E,1)

bjp(k)=sum(E(k,:))*1/fs*1/tspan;
end
f=(0:N-3)/N*(fs/2);
figure(60)
plot(f,bjp);
xlabel('频率 / Hz');
ylabel('·幅值');

请问这句 “ x=data(1:N,2); 是什么意思啊?
 楼主| 发表于 2010-10-19 21:40 | 显示全部楼层
这是一个数据处理的HHT程序。
发表于 2010-10-25 09:20 | 显示全部楼层
回复 youshen 的帖子

请问这句 “ x=data(1:N,2); 是什么意思啊?

data应该是个矩阵型的数据,1:N是指在这个矩阵中取行的第一到第N个数据,2是指取矩阵的第2列。你可以看看MATLAB的基础,这些是MATLAB的基础语句。
 楼主| 发表于 2010-10-25 17:01 | 显示全部楼层
回复 blackiris 的帖子

t=(1/fs:1/fs:tspan);

请问这一句是什么意思? 应该是控制时间的吧?
发表于 2010-10-26 21:08 | 显示全部楼层
回复 youshen 的帖子

对,是时间轴,指的是从1/fs开始,以1/fs为步长,取到tspan为止。针对这个程序,得到的是从0.02开始,以0.02为步长,一直取到30,共1500个点的向量
 楼主| 发表于 2010-10-26 21:49 | 显示全部楼层
回复 blackiris 的帖子

非常感谢。。今天跟导师讨论了下。。初步做出了想要的图。。谢谢你啊,帮了我很多。。以后多讨论讨论啊。。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-19 07:33 , Processed in 0.089435 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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