⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 waveletfunc0.m

📁 使用小波分析进行转速计算的程序
💻 M
字号:
%%%采样点1000MS测转速程序
clear all;
close all;
rotatespeed=zeros(6,5);
load 005.dat;
for j=1:2;
    m=j*12000;
x=X005(1:m);

s=x(11:12000-10);

figure(1);
subplot(13,1,1);
plot(s,'b');
title('原始信号数据和各层近似');
xlabel('时间(ms)');
ylabel('激光CCD读数');


[c,l]=wavedec(s,12,'db3');
for i=1:12
    decom=wrcoef('a',c,l,'db3',i);
    subplot(13,1,i+1);
    
      plot(decom);
    
    ylabel(['a',num2str(i)]);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    stepangle=3.1415926/6000;
data=decom;
delti=zeros(1,12000-20);
cacuyuanxinadata=zeros(1,12000-20);
cacuyuanxinbdata=zeros(1,12000-20);
for inum=1:12000-20
    delti(inum)=data(inum)-data(1);
end
deltR=sum(delti)/(12000-20);
for inum=1:12000-20
    cacuyuanxinadata(inum)=delti(inum)*cos(inum*stepangle);
end
for inum=1:12000-20
    cacuyuanxinbdata(inum)=delti(inum)*sin(inum*stepangle);
end
yuanxina=sum(cacuyuanxinadata)/5990;%最小二乘法求得的圆度公式里面的系数a
yuanxinb=sum(cacuyuanxinbdata)/5990;%最小二乘法求得的圆度公式里面的系数b
kersaii=zeros(1,12000-20);
for inum=1:12000-20
    kersaii(inum)=data(inum)-deltR-yuanxina*cos(inum*stepangle)-yuanxinb*sin(inum*stepangle);
end
[maxkersaii maxindex]=max(kersaii);
[minkersaii minindex]=min(kersaii);
maxcita=maxindex*stepangle;
mincita=minindex*stepangle;
yuandu=maxkersaii-minkersaii
    %%%%%%%%%%%%%%%%%%下面进行fft求取该层的分解获得的频率
    
    ffts=fft(decom);
    absffts=abs(ffts);
    
    N = length(ffts);
    ffts(1) = [];
    power = abs(ffts(1:N/2)).^2;
    nyquist = 1/2;
    freq = (1:N/2)/(N/2)*nyquist;
   
    period = 1./freq;
    
    [mp,index] = max(power);
    t=period(index);
    n_zhuansu=60*1000/t
    rotatespeed(j,i)=n_zhuansu;
end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -