|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
以下是在网上找的关于小波脊线提取的程序:
%多脊提取
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=sig';
noise=randn(1,200);
noise=noise';
dB=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);
[a1,b1]=max(swd(2:120,:));
[a2,b2]=max(swd(100:250,:));
figure(1)
mesh(x,RealFreqBins,swd);
colormap jet;
shading interp;
colorbar;
axis([min(x) max(x) min(RealFreqBins) max(RealFreqBins)]);
ylabel('Frequency / Hz');
xlabel('Time / sec');
figure(2)
plot(0.495/512*10*(b1+2)) %这条命令是什么意思?可否给解释下,还有为什么要用0.495除以后面的数?
axis([1 200 0.05 5])
hold on
plot(0.495/512*10*(b2+100))
axis([1 250 0.05 5])
1、plot(0.495/512*10*(b1+2)) %这条命令是什么意思?可否给解释下,还有为什么要用0.495除以后面的数?
2、[a1,b1]=max(swd(2:120,:));,这种提取小波脊线的方法对吗?
3、如何根据信号的特点来确定小波函数的带宽和中心频率
4、有关信号长度和尺度a的选择问题,尺度a的个数选多少比较合适
|
|