|
回复晚了些,呵呵。
%随机减量技术提取自由振动响应
% y 为随机响应信号(实测信号)
% A 为割点值
% L 为所需的自由响应信号长度
% z 为提取出来的自由响应信号
% freeplus, 2010,1 调试通过
function z=random_reduce(y,A,L)
n=length(y);
t1=[];
for k=1:(n-L) %求割线点集
if ( ((y(k)<=A)&&(y(k+1)>=A)) || ((y(k)>=A)&&(y(k)<=A)) )
t1=[t1; k];
end;
end;
m=length(t1);
if (floor(m/2)*2 == (m-1)), t1=t1(1:(m-1)); m=length(t1); end; %保证偶数个割点
% 对于首个峰为半峰的信号应该把首个割点去掉。
zz=zeros(L,m);
for k=1:m, zz(:,k)=y(t1(k):(t1(k)+L-1)); end;
z=sum(zz,2)/m; |
|