lonsvm 发表于 2014-4-22 15:17

尺度-小波能量谱程序的问题,求解答!

本帖最后由 lonsvm 于 2014-4-22 15:28 编辑

仿照《尺度- 小波能量谱在滚动轴承故障诊断中的应用》程军圣,一文编写程序。
其中用的小波是自定义小波,想做小波能量谱,但现在遇到的问题是,对自定的小波做连续小波变换报错。

顺便问一句,尺度-小波能量谱的程序到底应该怎么编写?

这是自定义的小波函数,后面程序调用时,总是报错,提示omiga未定义function = pulse(LB,UB,N,sigma,omiga)
%自定义小波函数
%sigma改变变换尺度,omiga改变振荡周期
t = linspace(LB,UB,N);   %参考morlet小波的形式写的
t1=t(1:1:N/2-1);       %函数分段,t<0
psi1=exp(-sigma*omiga.*t1).*sin(omiga.*t1);
t2=t(N/2:1:end);   %t>0psi=;
end       %为什么这两行总是自动被取消了。

将其添加到小波工具箱
clc
clear all
close all
% 创建一个第4类型的小波
familyName      = 'Mywave_Pulse';%小波全名
familyShortName = 'puls';          %小波简称,缩写名,不大于4个字母的字符串
familyWaveType= 4;%小波类型
familyNums      = '';                     %只有一个小波,序列号留空
fileWaveName    = 'pulse';         %创建小波的函数文件名
familyBounds    = [-4 4];               %定义有效支撑集
% 将新创建的小波添加到matlab中
wavemngr('add',familyName,familyShortName,familyWaveType,...
    familyNums,fileWaveName,familyBounds);
% 查看自定义小波是否创建成功.
wavemngr('read')用自定义小波,执行小波连续变换。 用morl小波,和shannon小波可以执行。自定义出错。
%调用编写的小波基函数pulse.m,已用add_custom_wave.m文件将其添加到小波族函数中
clc; clear;close all;
lb = -4; ub = 4;
n=100;
sigma=0.1 ; omiga=7;
= pulse(lb,ub,n,sigma,omiga);   %自定义小波-脉冲小波
figure(1);
plot(x2,psi2); title('me');grid on;

load sumsin; x = sumsin;
scales = 1:64;

%x=load('org_1.txt');%1024

wname='morl';
figure(2)
coefs1 = cwt(x,scales,wname,'plot');

wname='shan1-1.5';
figure(3)
coefs2 = cwt(x,scales,wname,'plot');

wname='puls';
figure(4)
coefs = cwt(x,scales,wname,'plot');以下是出错信息。
??? Input argument "omiga" is undefined.

Error in ==> pulse at 18
psi1=exp(-sigma*omiga.*t1).*sin(omiga.*t1);

??? Input argument "omiga" is undefined.

Error in ==> pulse at 18
psi1=exp(-sigma*omiga.*t1).*sin(omiga.*t1);



寂寞的部落 发表于 2014-4-24 11:03

{:{39}:}{:{39}:}

lonsvm 发表于 2014-4-30 15:56

{:{08}:}
有大神帮我看看吗

xiaosong02 发表于 2014-7-5 22:02

{:{39}:}

韵天之色 发表于 2014-11-1 20:35

{:{39}:}
页: [1]
查看完整版本: 尺度-小波能量谱程序的问题,求解答!