function y=lridex(data)
%x为双列数据,第一列为时间,第二列为加速度;t为时间长度,不少于20s;数据采样频率为256Hz。
xx=data(end-5119:end,:);
x=xx(:,2)*100;
t=xx(:,1);
%将20s数据分成10段,每段2s时长、512个数据。
%第1段
x1=x(1:512);
fs=256; %ADAMS中的数据采样频率
n=length(x1); %数据点数
nfft=2^nextpow2(n); %最接近数据点数的2的指数
y1=fft(x1,nfft);
mag1=abs(y1(1:nfft/2))*2/nfft;
f1=([1:nfft]-1)*fs/nfft; %频率序列
f1=f1(1:nfft/2);
%第2段
x2=x(513:512*2);
fs=256; %ADAMS中的数据采样频率
n=length(x2); %数据点数
nfft=2^nextpow2(n); %最接近数据点数的2的指数
y2=fft(x2,nfft);
mag2=abs(y2(1:nfft/2))*2/nfft;
f2=([1:nfft]-1)*fs/nfft; %频率序列
f2=f1(1:nfft/2);
%第3段
x3=x(512*2+1:512*3);
fs=256; %ADAMS中的数据采样频率
n=length(x3); %数据点数
nfft=2^nextpow2(n); %最接近数据点数的2的指数
y3=fft(x3,nfft);
mag3=abs(y3(1:nfft/2))*2/nfft;
f3=([1:nfft]-1)*fs/nfft; %频率序列
f3=f1(1:nfft/2);
%第4段
x4=x(512*3+1:512*4);
fs=256; %ADAMS中的数据采样频率
n=length(x4); %数据点数
nfft=2^nextpow2(n); %最接近数据点数的2的指数
y4=fft(x4,nfft);
mag4=abs(y4(1:nfft/2))*2/nfft;
f4=([1:nfft]-1)*fs/nfft; %频率序列
f4=f1(1:nfft/2);
%第5段
x5=x(512*4+1:512*5);
fs=256; %ADAMS中的数据采样频率
n=length(x5); %数据点数
nfft=2^nextpow2(n); %最接近数据点数的2的指数
y5=fft(x5,nfft);
mag5=abs(y5(1:nfft/2))*2/nfft;
f5=([1:nfft]-1)*fs/nfft; %频率序列
f5=f1(1:nfft/2);
%第6段
x6=x(512*5+1:512*6);
fs=256; %ADAMS中的数据采样频率
n=length(x6); %数据点数
nfft=2^nextpow2(n); %最接近数据点数的2的指数
y6=fft(x6,nfft);
mag6=abs(y6(1:nfft/2))*2/nfft;
f6=([1:nfft]-1)*fs/nfft; %频率序列
f6=f1(1:nfft/2);
%第7段
x7=x(512*6+1:512*7);
fs=256; %ADAMS中的数据采样频率
n=length(x7); %数据点数
nfft=2^nextpow2(n); %最接近数据点数的2的指数
y7=fft(x7,nfft);
mag7=abs(y7(1:nfft/2))*2/nfft;
f7=([1:nfft]-1)*fs/nfft; %频率序列
f7=f1(1:nfft/2);
%第8段
x8=x(512*7+1:512*8);
fs=256; %ADAMS中的数据采样频率
n=length(x8); %数据点数
nfft=2^nextpow2(n); %最接近数据点数的2的指数
y8=fft(x8,nfft);
mag8=abs(y8(1:nfft/2))*2/nfft;
f8=([1:nfft]-1)*fs/nfft; %频率序列
f8=f1(1:nfft/2);
%第9段
x9=x(512*8+1:512*9);
fs=256; %ADAMS中的数据采样频率
n=length(x9); %数据点数
nfft=2^nextpow2(n); %最接近数据点数的2的指数
y9=fft(x9,nfft);
mag9=abs(y9(1:nfft/2))*2/nfft;
f9=([1:nfft]-1)*fs/nfft; %频率序列
f9=f1(1:nfft/2);
%第10段
x10=x(512*9+1:512*10);
fs=256; %ADAMS中的数据采样频率
n=length(x10); %数据点数
nfft=2^nextpow2(n); %最接近数据点数的2的指数
y10=fft(x10,nfft);
mag10=abs(y10(1:nfft/2))*2/nfft;
f10=([1:nfft]-1)*fs/nfft; %频率序列
f10=f1(1:nfft/2);
mag=(mag1+mag2+mag3+mag4+mag5+mag6+mag7+mag9+mag9+mag10)/10;
f=(f1+f2+f3+f4+f5+f6+f7+f8+f9+f10)/10;
[nn,m]=find(f>0.5); %找频率大于0.5Hz的行和列
for i=m(1):length(f) %从第一个大于0.5Hz的频率开始
if f(i)<5.4
Ff=0.8*f(i)^2;
elseif f(i)<26
Ff=650/f(i)^2;
else
Ff=1;
end
W(i)=0.896*(mag(i)^3*Ff/f(i))^0.1;
end
y=(sum(W.^10))^0.1;
评论1