資源簡介
給出了ALLAN方差的計算和擬合!最后算出隨機誤差的各項噪聲的系數!
代碼片段和文件信息
data=load(‘1.txt‘);
format?long;
start_time=10000;
n=length(data);
sf=0.0145;
signal_amp=data(start_time+1:start_time+3600)/sf;
signal_time=1*[0:1:length(signal_amp)-1];
fs=0.001;%?sample?frequcy?unit:s
M=length(signal_time);
T=fs*M;?%?analysis_time?unit?:s
scale=[1:1:(M/10)];%將數據以10個為一小段;
for?i=1:1:length(scale)
????idex=floor(M/i)*i;%將N化成能被i整除的最接近的數idex;
????mat_temp=signal_amp(1:idex);%取N中的前idex項作為mat_temp;
????if?i==1
????????mat_mean=mat_temp‘;
????else
????????mat_mean=mean(reshape(mat_temp[i?idex/i]));%把mat-temp分成i行idex/i列的數組,并求平均值;
????end????
??????
????mat_diff=mat_mean(2:length(mat_mean))-mat_mean(1:length(mat_mean)-1);???
????allan(i)=(sum(mat_diff.*conj(mat_diff))/2/(length(mat_diff)-1));
???%allan(i)=sqrt(sum(mat_diff.*conj(mat_diff))/2/(length(mat_diff)-1));
end
?t=(1:length(allan))*fs;
?loglog(t
評論
共有 條評論