跪求小波多脊提取matlab程序
求一个小波多脊提取程序,matlab的,参考一下,xuesan.2007@163.com 怎么没有人回复呢? {:{39}:} 跪在哪里? 呵呵,先拿出段程序来再说啊 dsp2008 发表于 2012-11-4 18:41 static/image/common/back.gif跪在哪里?
四楼有没有啊?大神帮个忙吧 不知楼主解决问题了没,我这右端程序,也不是我自己写的,别人的,你可以参考下
%多脊提取
clear
SampFreq = 10;
x=1/SampFreq:1/SampFreq:20;%原理想信号
%sig=exp(-0.045*x).*cos(2*pi*1.5*x+pi)+exp(-0.098*x).*cos(2*pi*1.0*x+pi/2);
sig=exp(-0.045*x).*cos(2*pi*2*x+pi)+exp(-0.098*x).*cos(3*pi*1.0*x+pi/2);
% sig=sig';
% noise=randn(1,200);
% noise=noise';
% dB=20;
% sig=sigmerge(sig,noise,dB);
% sig=awgn(sig,20)
% sig=sig';
fmax = 0.5; % 最高分析频率(归一化频率)
fmin = 0.005; % 最低分析频率(归一化频率)
fb = 4 ; % 取cmor4-2小波进行实验,带宽参数为4
fc = 2; % 中心频率2Hz
totalscal =512 ; % 所取尺度的数目
FreqBins = linspace(fmin,fmax,totalscal); % 将频率轴在分析范围内等间隔划分
Scales = fc./ FreqBins; % 计算相应的尺度参数
RealFreqBins = FreqBins * SampFreq; % 尺度所对应的实际频率
swd=cwt(sig,Scales,'cmor4-2');
swd=abs(swd);
figure(1)
imagesc(x,Scales,swd);
=max(swd(2:120,:));
=max(swd(100:250,:));
figure(2)
mesh(x,RealFreqBins,swd);
colormap jet;
shading interp;
colorbar;
axis();
ylabel('Frequency / Hz');
xlabel('Time / sec');
figure(3)
m=0.495/512*10*(b1+2);
plot(m)
axis()
hold on
n=0.495/512*10*(b2+100);
plot(n);
axis() 寂寞的部落 发表于 2013-1-20 09:54 static/image/common/back.gif
不知楼主解决问题了没,我这右端程序,也不是我自己写的,别人的,你可以参考下
%多脊提取
clear
比较简单的一段程序:分区域提取小波嵴(如果不知道每个嵴的大概范围呢?),优化算法这边是利用的Matlab自带的函数,这个不知道性能怎么样。再者,对于信号自身来说是不是还有负嵴(如果没做swd=abs(swd)的话)。当然,如果没做swd=abs(swd)会更困难些,因为优化函数不好选(有正有负),那么相应的优化算法就要考虑能提取局部区域内最值点的算法了。
大家接着分享自己知道的程序啊 你好,楼上,不知你是参数识别用什么方法?向你请教问题 寂寞的部落 发表于 2013-1-20 10:31 static/image/common/back.gif
你好,楼上,不知你是参数识别用什么方法?向你请教问题
目前,用过盲信号分离,子空间类方法,和EMD,其他没做过。(ARMA模型类用过,不了解具体内容)。我提到的这三个内容,只子空间类方法我没有在本版发过(因为论文还没有被接收),不过你可以问我,如果你也做的话! 对你来说我应该是初学者,我用小波,目前遇到好多问题{:{10}:} 寂寞的部落 发表于 2013-1-20 11:01 static/image/common/back.gif
对你来说我应该是初学者,我用小波,目前遇到好多问题
你可以把你的问题在这个帖子里列一列(先搜索论坛再做) {:{39}:}学习下
页:
[1]