一蓑烟雨
发表于 2013-5-7 19:36
yghit08 发表于 2013-5-7 18:31 static/image/common/back.gif
原作者自己也做了一个GUI挂在自己的网页上卖(我没买)。滑动处理的时候端点问题貌似不是很严重,毕竟滑动 ...
谢谢楼主,共勉吧,大家共同努力吧
zuoyou
发表于 2013-5-13 11:15
ding ding!
大蒜牙
发表于 2013-5-14 20:00
看了大家的跟帖,感觉受益匪浅!
白兔糖
发表于 2013-5-20 13:40
boundary_conditions这个函数出现问题。
if indmax(1) < indmin(1)
if x(1) > x(indmin(1))
lmax = fliplr(indmax(2:min(end,nbsym+1)));
lmin = fliplr(indmin(1:min(end,nbsym)));
lsym = indmax(1);
else
lmax = fliplr(indmax(1:min(end,nbsym)));
lmin = ;
lsym = 1;
end
else
if x(1) < x(indmax(1))
lmax = fliplr(indmax(1:min(end,nbsym)));
lmin = fliplr(indmin(2:min(end,nbsym+1)));
lsym = indmin(1);
else
lmax = ;
lmin = fliplr(indmin(1:min(end,nbsym)));
lsym = 1;
end
end
第二个if总有问题,原因写了:IF might not be aligned with its matching END。
本来,用模拟信号就可以运行的。可是导入实际数据就出错了。
yghit08
发表于 2013-5-20 16:12
白兔糖 发表于 2013-5-20 13:40 static/image/common/back.gif
boundary_conditions这个函数出现问题。
if indmax(1) < indmin(1)
if x(1) > x(indmin(1))
信号转置!
白兔糖
发表于 2013-5-20 17:33
yghit08 发表于 2013-5-20 16:12 static/image/common/back.gif
信号转置!
可是我的数据就是一行的啊,不是列的。
还有我想问extr函数怎么会写这么复杂?
function = extr(x)
d = diff(x);
n = length(d);
d1 = d(1:n-1);
d2 = d(2:n);
indmin = find(d1.*d2<0 & d1<0)+1;
indmax = find(d1.*d2<0 & d1>0)+1;
indmin=sort(indmin);
indmax=sort(indmax);
我在书上看到有这么写的,然后就删成这样了,照样能运行的。那写那么多的有什么作用呢?
我是菜鸟{:{16}:}好多不明白啊。
yghit08
发表于 2013-5-20 17:39
白兔糖 发表于 2013-5-20 17:33 static/image/common/back.gif
可是我的数据就是一行的啊,不是列的。
还有我想问extr函数怎么会写这么复杂?
function= extr(x)
我不知道为什么写的这么复杂,不是我写的,我也想写的简单。这部分是做极大极小值点提取的,是一通用部分,当然也有人在这部分改写,使得提取极大极小值点的程序不那么敏感或者很敏感!
我建议你不要改这部分。
目前,大家主要在改的是插值算法部分和程序停止部分。
白兔糖
发表于 2013-5-20 19:45
yghit08 发表于 2013-5-20 17:39 static/image/common/back.gif
我不知道为什么写的这么复杂,不是我写的,我也想写的简单。这部分是做极大极小值点提取的,是一通用部分 ...
你上传的新建文件夹里,怎么没有运行的主程序?或者我把数据给你,你能帮我运行看看吗?
yghit08
发表于 2013-5-20 20:20
白兔糖 发表于 2013-5-20 19:45 static/image/common/back.gif
你上传的新建文件夹里,怎么没有运行的主程序?或者我把数据给你,你能帮我运行看看吗?
不是 lmd_test就是test_lmd。你自己看看吧。
仿真数据我不看!
白兔糖
发表于 2013-5-20 20:53
yghit08 发表于 2013-5-20 20:20 static/image/common/back.gif
不是 lmd_test就是test_lmd。你自己看看吧。
仿真数据我不看!
判断数据是否是一行的代码怎么写的啊?
yghit08
发表于 2013-5-20 21:15
白兔糖 发表于 2013-5-20 20:53 static/image/common/back.gif
判断数据是否是一行的代码怎么写的啊?
=size(x);
if n_1!=1
warning('');
end
大概是这样。
白兔糖
发表于 2013-5-23 15:56
PF1分量瞬时幅值的频谱图你会做吗?教教我啊。{:{20}:}
yghit08
发表于 2013-5-23 16:15
白兔糖 发表于 2013-5-23 15:56 static/image/common/back.gif
PF1分量瞬时幅值的频谱图你会做吗?教教我啊。
什么意思?没看明白?瞬时幅值没有频谱图。肯定要对应到其瞬时频率。
如果是用法国人写的那个程序的话,差不多是这样:
PF1=AM_1.*FM_1;
=hhspectrum(PF1);
=toimage(A);
disp_hhs(AA,tt/sf,[],sf);%%%sf是采样频率
大概是这样。
注意:需要调用时频工具箱中求解瞬时频率的子程序。
另外,请搜索论坛中HHT关于使用的帖子。
华电机械
发表于 2013-5-23 22:30
利用LZ的数据对Am分量做了一下FFT,,这样感觉就是对包络信号做了FFT,那得到的谱线就是包络谱吧,,不知理解有错否。。
x=load('data.txt');
x1=x';
fs=2000;
N=8142;
t=0:1/fs:(N-1)/fs;
subplot(2,1,1);plot(t,x);xlabel('原始信号');
=lmd_test(x1);
subplot(2,1,2)
y=fft(Am_d,N); %信号的快速傅里叶变换
mag=abs(y)*2/N; %求取振幅,修正
f1=(0:N-1)*fs/N;%频率序列
plot(f1(1:N/2.56),mag(1:N/2.56)); %绘出随频率变化的振幅
xlabel('频率/Hz');%定义x轴
ylabel('振幅'); %定义y轴
yghit08
发表于 2013-5-24 09:34
华电机械 发表于 2013-5-23 22:30 static/image/common/back.gif
利用LZ的数据对Am分量做了一下FFT,,这样感觉就是对包络信号做了FFT,那得到的谱线就是包络谱吧,,不知理 ...
我想可以这样理解吧!
不确定是因为我不知道包络谱怎么定义的。
自己看算法过程,对应定义自己把握以下吧!