声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1670|回复: 11

[HHT] 急求程序错在那里?

[复制链接]
发表于 2007-6-6 20:25 | 显示全部楼层 |阅读模式

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

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

x
第一个程序运行正常:
clear;
fs=1000;    %fs为采样频率;
N=1000;     %采样点数
t=1/fs:1/fs:1;
y1=2*sin(60*pi*t);
y2=5*sin(90*pi*t);
z=y1+y2;
plot(t,z);
imf=emd(z);
emd_visu(z,1:length(z),imf);
%%%%%%%%%%%%%求边际谱
[A,fa,tt]=hhspectrum(imf);
[E,tt1]=toimage(A,fa,tt,length(tt));
E=flipud(E);
for k=1:size(E,1)
    bjp(k)=sum(E(k,:))*1/fs;  
end
f=(1:N-2)/N*fs;
plot(f,bjp);
title('边际谱');
xlabel('频率 / Hz');
ylabel('幅值');


第二个程序就有点问题,出不了边际谱:
fs=2000;
N=535;
t=1/fs:1/fs:(N-1)/fs;
x=(1+0.2*sin(2*pi*7.5*t)).*cos(2*pi*30*t+0.5*sin(2*pi*15*t))+sin(2*pi*120*t);
figure(1);
plot(t,x);
title('模拟振动信号波形')
xlabel('t:s')
ylabel('幅值')
imf=emd(x);
emd_visu(x,1:length(x),imf)

%%%%%%%%%%%%%求边际谱
[A,fa,tt]=hhspectrum(imf);
[E,tt1]=toimage(A,fa,tt,length(tt));
E=flipud(E);
for k=1:size(E,1)
    bjp(k)=sum(E(k,:))*1/fs;  
end
f=(1:N-2)/N*fs;
plot(f,bjp);
title('边际谱');
xlabel('频率 / Hz');
ylabel('幅值');

报错如下:??? Error using ==> plot
Vectors must be the same lengths.
Error in ==> dengyangben3 at 23
plot(f,bjp);
各位前辈是什么意思呢?
回复
分享到:

使用道具 举报

发表于 2007-6-6 20:27 | 显示全部楼层
看看f 和bjp的长度
 楼主| 发表于 2007-6-6 21:00 | 显示全部楼层
关键是第一个程序运行正常啊!两个程序后半部分一模一样的!
发表于 2007-6-6 21:02 | 显示全部楼层
本帖最后由 wdhd 于 2016-3-11 13:35 编辑
原帖由 dengbangfei 于 2007-6-6 21:00 发表
关键是第一个程序运行正常啊!两个程序后半部分一模一样的!


两个程序同时放在一个 m 文件中,相继运行?试试第二个程序开头也 clear all 吧。这种错误最好自己调试
发表于 2007-6-6 21:11 | 显示全部楼层
第一个程序t=1/fs:1/fs:1; t的长度为1000=fs,等于N
第二个程序t=1/fs:1/fs:(N-1)/fs; t的长度为N-1
 楼主| 发表于 2007-6-6 21:17 | 显示全部楼层

回复 #4 eight 的帖子

不是放在同一个文件运行的,是2个不同命名文件,先后运行的!
 楼主| 发表于 2007-6-6 21:22 | 显示全部楼层
回5楼,谢谢你,是这样的!
发表于 2007-6-7 11:12 | 显示全部楼层
本帖最后由 wdhd 于 2016-3-11 13:35 编辑
原帖由 dengbangfei 于 2007-6-6 20:25 发表
第一个程序运行正常:
clear;
fs=1000;    %fs为采样频率;
N=1000;     %采样点数
t=1/fs:1/fs:1;
y1=2*sin(60*pi*t);
y2=5*sin(90*pi*t);
z=y1+y2;
plot(t,z);
imf=emd(z);
emd_visu(z,1:length(z),i ...

你这样直接用分解后的imf分量求边际谱有些出入吧,其中的imf分量有些是无用的
 楼主| 发表于 2007-6-7 15:29 | 显示全部楼层

回复 #8 form 的帖子

对呀,我正觉得得出来的边际谱有问题呢,那该怎么考虑呢,望指教!
发表于 2007-6-8 11:11 | 显示全部楼层

回复 #9 dengbangfei 的帖子

模拟信号边际谱结果,别人基本上一下就能看出好不好、正确与否。因为本身直接就能知道原信号的imf分量,如你的两个正弦信号。
实际数据比较麻烦了,我觉得要去掉一些无关的分量,可能对同一数据每个人结果不同,只要能找到你需要的信息就成。
发表于 2007-6-8 11:25 | 显示全部楼层

回复 #10 form 的帖子

实际数据只要采用的方法一样,每个人的结果还是一样的,主要是看想从数据里面的得到什么,然后结合不同的方法,通过不同的途径达到这个目的
发表于 2007-6-8 11:27 | 显示全部楼层

回复 #1 dengbangfei 的帖子

而且楼主我觉得你这两个正弦信号叠加仅靠你上面的程序是不会很好的分离的。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-13 21:49 , Processed in 0.060431 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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