SPWVD故障诊断

  • lilili123cnm
    了解作者
  • matlab
    开发工具
  • 1.1MB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 5 积分
    下载积分
  • 0
    下载次数
  • 2022-12-04 13:48
    上传日期
SPWVD故障诊断,可以诊断非线性信号,求解时频图,多多下载
window窗口频率精度对比.zip
  • window窗口频率精度对比
  • Sig1.mat
    378.6KB
  • tfrspwv.m
    2.3KB
  • Sig2.mat
    409KB
  • Sig3.mat
    379.1KB
  • tiaopinduibi.m
    2.1KB
  • tftb_window.m
    2.8KB
内容介绍
function h=tftb_window(N,name,param,param2) if (nargin==0), error ( 'at least 1 parameter is required' ); end if (N<=0), error('N should be strictly positive.'); end if (nargin==1), name= 'Hamming'; end name=upper(name); if strcmp(name,'RECTANG') | strcmp(name,'RECT') h=ones(N,1); elseif strcmp(name,'HAMMING') h=0.54 - 0.46*cos(2.0*pi*(1:N)'/(N+1)); elseif strcmp(name,'HANNING') | strcmp(name,'HANN') h=0.50 - 0.50*cos(2.0*pi*(1:N)'/(N+1)); elseif strcmp(name,'KAISER') if (nargin==3), beta=param; else beta=3.0*pi; end ind=(-(N-1)/2:(N-1)/2)' *2/N; beta=3.0*pi; h=besselj(0,j*beta*sqrt(1.0-ind.^2))/real(besselj(0,j*beta)); elseif strcmp(name,'NUTTALL') ind=(-(N-1)/2:(N-1)/2)' *2.0*pi/N; h=+0.3635819 ... +0.4891775*cos( ind) ... +0.1363995*cos(2.0*ind) ... +0.0106411*cos(3.0*ind) ; elseif strcmp(name,'BLACKMAN') ind=(-(N-1)/2:(N-1)/2)' *2.0*pi/N; h= +0.42 + 0.50*cos(ind) + 0.08*cos(2.0*ind) ; elseif strcmp(name,'HARRIS') ind=(1:N)' *2.0*pi/(N+1); h=+0.35875 ... -0.48829 *cos( ind) ... +0.14128 *cos(2.0*ind) ... -0.01168 *cos(3.0*ind); elseif strcmp(name,'BARTLETT') | strcmp(name,'TRIANG') h=2.0*min((1:N),(N:-1:1))'/(N+1); elseif strcmp(name,'BARTHANN') h= 0.38 * (1.0-cos(2.0*pi*(1:N)/(N+1))') ... + 0.48 * min((1:N),(N:-1:1))'/(N+1); elseif strcmp(name,'PAPOULIS') ind=(1:N)'*pi/(N+1); h=sin(ind); elseif strcmp(name,'GAUSS') if (nargin==3), K=param; else K=0.005; end h= exp(log(K) * linspace(-1,1,N)'.^2 ); elseif strcmp(name,'PARZEN') ind=abs(-(N-1)/2:(N-1)/2)'*2/N; temp=2*(1.0-ind).^3; h= min(temp-(1-2.0*ind).^3,temp); elseif strcmp(name,'HANNA') if (nargin==3), L=param; else L=1; end ind=(0:N-1)';h=sin((2*ind+1)*pi/(2*N)).^(2*L); elseif strcmp(name,'DOLPH') | strcmp(name,'DOLF') if (rem(N,2)==0), oddN=1; N=2*N+1; else oddN=0; end if (nargin==3), A=10^(param/20); else A=1e-3; end K=N-1; Z0=cosh(acosh(1.0/A)/K); x0=acos(1/Z0)/pi; x=(0:K)/N; indices1=find((x<x0)|(x>1-x0)); indices2=find((x>=x0)&(x<=1-x0)); h(indices1)= cosh(K*acosh(Z0*cos(pi*x(indices1)))); h(indices2)= cos(K*acos(Z0*cos(pi*x(indices2)))); h=fftshift(real(ifft(A*real(h))));h=h'/h(K/2+1); if oddN, h=h(2:2:K); end elseif strcmp(name,'NUTBESS') if (nargin==3), beta=param; nu=0.5; elseif (nargin==4), beta=param; nu=param2; else beta=3*pi; nu=0.5; end ind=(-(N-1)/2:(N-1)/2)' *2/N; h=sqrt(1-ind.^2).^nu .* ... real(besselj(nu,j*beta*sqrt(1.0-ind.^2)))/real(besselj(nu,j*beta)); elseif strcmp(name,'SPLINE') if (nargin < 3) error('Three or four parameters required for spline windows'); elseif (nargin==3) nfreq=param; p=pi*N*nfreq/10.0; else nfreq=param; p=param2; end ind=(-(N-1)/2:(N-1)/2)'; h=sinc((0.5*nfreq/p)*ind) .^ p; elseif strcmp(name,'FLATTOP') ind=(-(N-1)/2:(N-1)/2)' *2.0*pi/(N-1); h=+0.2810639 ... +0.5208972*cos(ind) ... +0.1980399*cos(2.0*ind) ; else error('unknown window name'); end
评论
    相关推荐
    • matlab 课件
      matlab 功能很强大,本课件详细的介绍了matlab在科学计算中的应用。
    • Matlab教程
      MatlaB经典ppt,主要讲解了MatlaB的入门知识,图形编程以及仿真。
    • matlab入门
      matlab的入门教程,很值得仔细看看,对提高matlab能力有帮助
    • matlab编译器
      matlab编译为exe文件所需要的文件; 使用时解压,将解压后文件拖入至matlab命令行即可
    • matlab
      matlab的基础知识进行介绍
    • MatLab
      “#MatLab
    • MATLAB编译器
      基于MATLAB 2018b版本介绍MATLAB编译器。介绍如何利用编译器将MATLAB代码编译为独立应用程序或组件,并在没有安装MATLAB的计算机上进行部署。
    • MATLAB 论文
      基于MATLAB的论文撰写!可以为你指明一条写作MATLAB论文的道路!
    • matlab
      matlab经典课堂讲义
    • matlab
      matlab