Sperling指标计算实验报告
计算原理:
数据给出的信息为时域中的加速度信号。时间的单位为sec,加速度单位为m/s^2
1、将时域的信号转化为频域下。由于matlab中,FFt快速傅里叶变化计算的值就是离散的,直接能够用于公式WΣ=10i=1n[
2、另一种方法是将整个FFT的频率区段分频,将频率区段中的能量集中到一点上来,再计算Sperling指标。
计算程序:
主程序:
%% 读入数据
str='T6_LH2K_v120_rear.dat';
[H,V,T]=SFileRead(str);
H=H(1:length(H)-1);%只取10000个点
V=V(1:length(V)-1);
T=T(1:length(T)-1);
%加速度单位为cm/s^2
%其采样频率为500Hz,用1s除以其时间间隔即可
%% 垂向Sperling指标
[SperlingV,yV,fV,ampV,fStrV]=constantSperling(V,T);
%直接将yV计算Sperling,yV就是每个频率下的幅值,点数变多,自然会调整
Sum=0;
yV=yV(fV<50);
fV=fV(fV<50);
Ysim=yV;
fsim=fV;
for i=1:length(Ysim)
if fsim(i)>=50
break
end
if fsim(i)<0.5
continue
elseif fsim(i)>=0.5&&fsim(i)<5.9
Fi=0.325*fsim(i)^2;
elseif fsim(i)>=5.9&&fsim(i)<20
Fi=400/fsim(i)^2;
else
Fi=1;
end
Sum=Sum+(Ysim(i)*100)^3/fsim(i)*Fi;%*100因为输入单位为m/s^2,而计算单位为cm/s^2
end
Sum=0.896*Sum^(10^(-1));
%分频计算得到的Sperling指标就是SperlingV
figure(1);
subplot(3,1,1);plot(T,V);
xlabel('time/sec');
ylabel('Accelaration/m*s^-2');
title(str)
subplot(3,1,2);plot(fV,yV);
xlabel('Frequency/Hz');
ylabel('Accelaration/m*s^-2');
title(['直接计算垂向Sperling: ',num2str(Sum,4)])
subplot(3,1,3);stem(fStrV(ampV>1E-3),ampV(ampV>1E-3));
xlabel('Frequency/Hz');
ylabel('Accelaration/m*s^-2');
title(['分段垂向Sperling: ',num2str(SperlingV,4)])
%% 横向Spering指标
[SperlingH,yH,fH,ampH,fStrH]=constantSperling(H,T);
%计算频率分段的Sperling
Sum=0;
for i=1:length(ampH)
if fStrH(i)<0.5
continue
elseif fStrH(i)>=0.5&&fStrH(i)<5.4
Fi=0.8*fStrH(i)^2;
elseif fStrH(i)>=5.4&&fStrH(i)<26
Fi=650/fStrH(i)^2;
else
Fi=1;
end
Sum=Sum+(ampH(i)*100)^3/fStrH(i)*Fi;
end
SperlingH=0.896*Sum^(10^(-1));
%不分频,计算sperling
Sum=0;
yH=yH(fH<50);
fH=fH(fH<50);
Ysim=yH;
fsim=fH;
for i=1:length(Ysim)
if Ysim(i)>50
break
end
if fsim(i)<0.5
continue
elseif fsim(i)>=0.5&&fsim(i)<5.4
Fi=0.8*fsim(i)^2;
elseif fsim(i)>=5.4&&fsim(i)<26
Fi=650/fsim(i)^2;
else
Fi=1;
end