Main Content

allanvar

설명

Allan 분산은 시간 영역에서의 데이터 시퀀스 진동에 대한 주파수 안정성을 측정하는 데 사용됩니다. 또한 시스템의 내재적 잡음을 평균화 시간의 함수로 확인하는 데에도 사용할 수 있습니다. 평균화 시계열 τ는 τ = m/fs로 지정할 수 있습니다. 여기서 fs는 데이터의 샘플링 주파수이고 m은 오름차순 평균화 인자(예: 1, 2, 4, 8, …)로 구성된 목록입니다.

[avar,tau] = allanvar(Omega)는 Allan 분산 avar을 평균화 시간 tau의 함수로 반환합니다. 디폴트 평균화 시간 tau는 (1, 2, ..., 2floor{log2[(N-1)/2]})로 지정된 옥타브 시퀀스이며, 여기서 N은 Omega의 샘플 개수입니다. Omega가 행렬로 지정되면, allanvaromega의 열 전체에 대해 연산을 수행합니다.

[avar,tau] = allanvar(Omega,m)m에 의해 정의된 특정 tau 값에 대한 Allan 분산 avar을 반환합니다. 디폴트 주파수 fs는 1로 간주되므로 출력값 taum과 정확히 동일합니다.

[avar,tau] = allanvar(Omega,ptStr)은 지정된 점 사양 ptStr에 대해 평균화 인자 m을 설정합니다. 디폴트 주파수 fs는 1이므로 출력값 tau는 지정된 m과 정확히 동일합니다. ptStr'octave' 또는 'decade'로 지정할 수 있습니다.

예제

[avar,tau] = allanvar(___,fs)를 사용하면 입력 데이터 omega의 샘플링 주파수 fs도 구할 수 있습니다(단위: Hz). 이 입력 파라미터는 이전 구문 중 하나와 함께 사용할 수 있습니다.

예제

모두 축소

데이터의 샘플 레이트(단위: Hz)를 포함해 MAT 파일에서 자이로스코프 데이터를 불러옵니다. Allan 분산을 계산합니다.

load('LoggedSingleAxisGyroscope','omega','Fs')
[avar,tau] = allanvar(omega,'octave',Fs);

Allan 분산을 loglog 플롯에 플로팅합니다.

loglog(tau,avar)
xlabel('\tau')
ylabel('\sigma^2(\tau)')
title('Allan Variance')
grid on

Figure contains an axes object. The axes object with title Allan Variance, xlabel tau, ylabel sigma Squared baseline ( tau ) contains an object of type line.

각도 무작위 행보와 속도 무작위 행보를 포함한 샘플 자이로스코프 잡음을 생성합니다.

numSamples = 1e6;
Fs = 100;
nStd = 1e-3;
kStd = 1e-7;
nNoise = nStd.*randn(numSamples,1);
kNoise = kStd.*cumsum(randn(numSamples,1));
omega = nNoise+kNoise;

m=τ의 특정 값에서 Allan 편차를 계산합니다. Allan 편차는 Allan 분산의 제곱근입니다.

m = 2.^(9:18);
[avar,tau] = allanvar(omega,m,Fs);
adev = sqrt(avar);

Allan 편차를 loglog 플롯에 플로팅합니다.

loglog(tau,adev)
xlabel('\tau')
ylabel('\sigma(\tau)')
title('Allan Deviation')
grid on

Figure contains an axes object. The axes object with title Allan Deviation, xlabel tau, ylabel sigma ( tau ) contains an object of type line.

입력 인수

모두 축소

입력 데이터로, N×1 벡터 또는 N×M 행렬로 지정됩니다. 여기서 N은 샘플 개수이고 M은 샘플 세트 개수입니다. 행렬로 지정되면 allanvarOmega의 열 전체에 대해 연산을 수행합니다.

데이터형: single | double

평균화 인자로, (N-1)/2보다 작은 오름차순 정수 값을 갖는 스칼라 또는 벡터로 지정됩니다. 여기서 N은 Omega의 샘플 개수입니다.

데이터형: single | double

m의 점 사양으로, 'octave' 또는 'decade'로 지정됩니다. ptStr의 값을 기준으로 다음과 같이 m이 지정됩니다.

  • ptStr'octave'로 지정되면, m은 다음과 같습니다.

    [20,21...2log2(N12)]

  • ptStr'decade'로 지정되면, m은 다음과 같습니다.

    [100,101...10log10(N12)]

N은 Omega의 샘플 개수입니다.

입력 데이터 Omega의 기본 주파수(단위: Hz)로, 양의 스칼라로 지정됩니다.

데이터형: single | double

출력 인수

모두 축소

tau에서의 입력 데이터의 Allan 분산으로, 벡터 또는 행렬로 반환됩니다.

Allan 분산의 평균화 시간으로, 벡터 또는 행렬로 반환됩니다.

버전 내역

R2019a에 개발됨

참고 항목

|