📄 pylbh.m
字号:
%实现频域滤波功能
clear all
clc
close all
load 'bneiranji';
load 'bneiranji1';
load 'bneiranji2';
load 'bneiranji3';
load 'bneiranji4';
step=h;
it=6;%2-9
ip=2;
g=9.8;
if ip==1
y1=aaii(it,:);
y2=aaii1(it,:);
y3=aaii2(it,:);
y4=aaii3(it,:);
y5=aaii4(it,:);
elseif ip==2
y1=xyz(it,:);
y2=xyz1(it,:);
y3=xyz2(it,:);
y4=xyz3(it,:);
y5=xyz4(it,:);
elseif ip==3;
y1=vv(it,:);
y2=vv1(it,:);
y3=vv2(it,:);
y4=vv3(it,:);
y5=vv4(it,:);
end
ng=length(y1);
nfft=2^nextpow2(ng);
%nfft=1024;
yy1=fft(y1,nfft);
yy2=fft(y2,nfft);
yy3=fft(y3,nfft);
yy4=fft(y4,nfft);
yy5=fft(y5,nfft);
cf=1/step;
t=(0:step:(ng-1)/cf);
fmin=300;
fmax=600;
n1=round(fmin*nfft/cf+1);
n2=round(fmax*nfft/cf+1);
aa=zeros(5,nfft);
aa(1,n1:n2)=yy1(n1:n2);
aa(1,nfft-n2+1:nfft-n1+1)=yy1(nfft-n2+1:nfft-n1+1);
aa(2,n1:n2)=yy2(n1:n2);
aa(2,nfft-n2+1:nfft-n1+1)=yy2(nfft-n2+1:nfft-n1+1);
aa(3,n1:n2)=yy3(n1:n2);
aa(3,nfft-n2+1:nfft-n1+1)=yy3(nfft-n2+1:nfft-n1+1);
aa(4,n1:n2)=yy4(n1:n2);
aa(4,nfft-n2+1:nfft-n1+1)=yy4(nfft-n2+1:nfft-n1+1);
aa(5,n1:n2)=yy5(n1:n2);
aa(5,nfft-n2+1:nfft-n1+1)=yy5(nfft-n2+1:nfft-n1+1);
iy1=ifft(aa(1,:),nfft);
iy2=ifft(aa(2,:),nfft);
iy3=ifft(aa(3,:),nfft);
iy4=ifft(aa(4,:),nfft);
iy5=ifft(aa(5,:),nfft);
iy1=(real(iy1))'/g;
iy2=(real(iy2))'/g;
iy3=(real(iy3))'/g;
iy4=(real(iy4))'/g;
iy5=(real(iy5))'/g;
save('hfneiranji','iy1','iy2','iy3','iy4','iy5');
figure(1);
subplot(6,1,1);
plot(t,iy1(1:ng));
subplot(6,1,2);
plot(t,iy1(1:ng));
subplot(6,1,3);
plot(t,iy2(1:ng));
subplot(6,1,4);
plot(t,iy3(1:ng));
subplot(6,1,5);
plot(t,iy4(1:ng));
subplot(6,1,6);
plot(t,iy5(1:ng));
xlabel('sx');
ylabel('sy');
grid on;
figure(2);
subplot(2,1,1);
plot(t,iy1(1:ng));
subplot(2,1,2);
plot(t,iy2(1:ng));
ff=(0:cf/nfft:cf/2-cf/nfft);
nn=1:length(ff);
nn1=length(ff);
gly1=fft(iy1,nfft);
pgly1=gly1.*conj(gly1)/nfft;
pgly11=pgly1(1:nn1,1);
gly2=fft(iy2,nfft);
pgly2=gly2.*conj(gly2)/nfft;
pgly21=pgly2(1:nn1,1);
gly3=fft(iy3,nfft);
pgly3=gly3.*conj(gly3)/nfft;
pgly31=pgly3(1:nn1,1);
gly4=fft(iy4,nfft);
pgly4=gly4.*conj(gly4)/nfft;
pgly41=pgly4(1:nn1,1);
gly5=fft(iy5,nfft);
pgly5=gly5.*conj(gly5)/nfft;
pgly51=pgly5(1:nn1,1);
subplot(2,1,1);
plot(ff(nn),pgly1(nn));
xlim([300,500]);
subplot(2,1,2);
plot(ff(nn),pgly2(nn));
xlim([300,500]);
xxx=ones(1,nn1);
figure(3);
plot3(xxx,ff(nn),pgly11,2*xxx,ff(nn),pgly21,3*xxx,ff(nn),pgly31,4*xxx,ff(nn),pgly41,...
5*xxx,ff(nn),pgly51);
xlim([1,5]);
set(gca,'XTickLabel',{'e=0';'e=0.05';'e=0.1';'e=0.2';'e=0.35'});
ylim([300,600]);
if ip==1
if it==2
title('轴段2角加速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(g)');
elseif it==3
title('轴段3角加速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(g)');
elseif it==4
title('轴段4角加速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(g)');
elseif it==5
title('轴段5角加速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(g)');
elseif it==6
title('轴段6角加速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(g)');
elseif it==7
title('轴段7角加速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(g)');
elseif it==8
title('轴段8角加速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(g)');
elseif it==9
title('轴段9角加速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(g)');
end
elseif ip==2
if it==2
title('轴段2相对角位移高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad)');
elseif it==3
title('轴段3相对角位移高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad)');
elseif it==4
title('轴段4相对角位移高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad)');
elseif it==5
title('轴段5相对角位移高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad)');
elseif it==6
title('轴段6相对角位移高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad)');
elseif it==7
title('轴段7相对角位移高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad)');
elseif it==8
title('轴段8相对角位移高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad)');
elseif it==9
title('轴段9相对角位移高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad)');
end
elseif ip==3
if it==2
title('轴段2角速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad/s)');
elseif it==3
title('轴段3角速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad/s)');
elseif it==4
title('轴段4角速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad/s)');
elseif it==5
title('轴段5角速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad/s)');
elseif it==6
title('轴段6角速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad/s)');
elseif it==7
title('轴段7角速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad/s)');
elseif it==8
title('轴段8角速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad/s)');
elseif it==9
title('轴段9角速度高频部分随裂纹深度变化');
xlabel('裂纹深度与轴直径比');
ylabel('频率(Hz)');
zlabel('幅值(rad/s)');
end
end
%set(gca,'YLimLabel',[300,600]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -