【轴承故障分离】基于matlab共振稀疏分解匹配追踪法轴承故障信号分离【含Matlab源码 1942期】

举报
海神之光 发表于 2022/07/10 00:46:44 2022/07/10
【摘要】 一、获取代码方式 获取代码方式1: 完整代码已上传我的资源:【轴承故障分离】基于matlab共振稀疏分解匹配追踪法轴承故障信号分离【含Matlab源码 1942期】 获取代码方式2: 通过订阅紫极神光...

一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【轴承故障分离】基于matlab共振稀疏分解匹配追踪法轴承故障信号分离【含Matlab源码 1942期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、部分源代码

function [proj,scale,translation,freq,phase]=select_best(signal_r,N,a_base,j_min,j_max,u_base,p_min,v_base,k_min,w_base,i_min,i_max);
 
%% this subroutine program(子程序)is to select in the dictionary the best atom suited the signal or the residual of the signal
 
% INPUT
% the signal_r: the signal or the residual of the signal to be decomposed
% the N: the length of the signal or of the residual of the signal or the length of the atoms
 
% parameters :the parameter to construct the dictionary , it has much influence on the speed of the decomposition
% a_base=2;
% j_min=0;
% j_max=log2(N);
 
% OUTPUT
% proj:the projection of the signal or the residual of the signal on the best atom
% scale:the scale of the best atom(s in the formula)
% translation:the translation of the best atom(u in the formula)
% freq:the freq of the best atom(v in the formula)
% phase:the phase of the best atom(w in the formula)
 
% proj_trans:to determine which projection is biggest
proj_trans=0;
proj=0;
 
% size_dic is one parameter to show the size of the over-complete dictionary used
size_dic=0;
 
% [hy,hx]=meshgrid(0:32-1,0:32-1);
% m=32;n=32;
 
for j=j_min:j_max
    for p=p_min:N*2^(-j+1)
        for k=k_min:2^(j+1)
            for i=i_min:i_max
                
              size_dic=size_dic+1;
              s=a_base^j;
              u=p*s*u_base;
              v=k*(1/s)*v_base;
              w=i*w_base;
              t=0:N-1;
              t=(t-u)/s;
              
              g=(1/sqrt(s))*exp(-pi*t.*t).*cos(v*t+w);
              
              g=g/sqrt(sum(g.*g));
              
              proj_trans=sum(signal_r.*g);
              
                if abs(proj_trans)>abs(proj)
                 proj=proj_trans;
                 scale=s;
                 translation=u;
                 freq=v;
                 phase=w;
                end
             end
         end
    end
end

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

三、运行结果

在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/125685373

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。