function [AN,y]=rdt(x,n);
N=length(x);
% n=1000; %% 截取数据的点数,短时段的长度
s=1.5*std(x); %% 截取阈值,水平线高度
%% 交点求解
l=[]; %% 记录阈值交点序号
for i=1:N-1
y=x-s; %% 零线平移,通过零点判定阈值交点
if sign(y(i))~=sign(y(i+1))
l=[l i]; %% 变号处即为水平线与随机信号交点,记录
end
if i>=N-n;
break;
end
end
%% 短时数据段数
AN=length(l); %也即平均次数
%% 平均
y=[];
for i=1:n %% 以每个交点为起点,依次抽取随后的n个点
u=0;
for j=1:length(l) %% 交点的个数即为抽取的段数
u=u+x(l(j)+i-1); %% 以每个交点为起点,对第i和点平均。
end
y=[y u/length(l)]; %% 依次记录所有短时段的第i个平均值
end
function [AN,y]=rdt(x,n);
N=length(x);
% n=1000; %% 截取数据的点数,短时段的长度
s=1.5*std(x); %% 截取阈值,水平线高度
%% 交点求解
l=[]; %% 记录阈值交点序号
for i=1:N-1
y=x-s; %% 零线平移,通过零点判定阈值交点
if sign(y(i))~=sign(y(i+1))
l=[l i]; %% 变号处即为水平线与随机信号交点,记录
end
if i>=N-n;
break;
end
end
%% 短时数据段数
AN=length(l); %也即平均次数
%% 平均
y=[];
for i=1:n %% 以每个交点为起点,依次抽取随后的n个点
u=0;
for j=1:length(l) %% 交点的个数即为抽取的段数
u=u+x(l(j)+i-1); %% 以每个交点为起点,对第i和点平均。
end
y=[y u/length(l)]; %% 依次记录所有短时段的第i个平均值
end
评论0