声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1489|回复: 4

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

[复制链接]
发表于 2014-4-22 15:17 | 显示全部楼层 |阅读模式

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

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

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

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

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

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

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

  9. load sumsin; x = sumsin;
  10. scales = 1:64;

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

  12. wname='morl';
  13. figure(2)
  14. coefs1 = cwt(x,scales,wname,'plot');

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

  18. wname='puls';
  19. figure(4)
  20. 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 | 显示全部楼层
 楼主| 发表于 2014-4-30 15:56 | 显示全部楼层

有大神帮我看看吗
发表于 2014-7-5 22:02 | 显示全部楼层
发表于 2014-11-1 20:35 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-29 23:25 , Processed in 0.060705 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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