이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

corrmtx

자기상관 행렬 추정을 위한 데이터 행렬

구문

X = corrmtx(x,m)
X = corrmtx(x,m,'method')
[X,R] = corrmtx(...)

설명

X = corrmtx(x,m)X'X가 길이가 n인 데이터 벡터 x의 자기상관 행렬에 대한 (편향) 추정값이 되는 (n + m)x(m + 1)의 사각 테플리츠 행렬 X를 반환합니다. m은 입력값 x의 길이보다 작은 양의 정수여야 합니다.

X = corrmtx(x,m,'method')'method'로 지정된 메서드에 따라 행렬 X를 계산합니다.

  • 'autocorrelation': 디폴트 값이며, 이때 X는 길이가 n인 데이터 벡터 x에 대한 자기상관 추정값을 생성하는 (n + m)x(m + 1) 사각 테플리츠 행렬로, m차 예측 오차 모델을 기반으로 prewindowedpostwindowed 데이터를 사용하여 도출됩니다.

  • 'prewindowed': X는 길이가 n인 데이터 벡터 x에 대한 자기상관 추정값을 생성하는 nx(m + 1) 사각 테플리츠 행렬로, m차 예측 오차 모델을 기반으로 prewindowed 데이터를 사용하여 도출됩니다.

  • 'postwindowed': X는 길이가 n인 데이터 벡터 x에 대한 자기상관 추정값을 생성하는 nx(m + 1) 사각 테플리츠 행렬로, m차 예측 오차 모델을 기반으로 postwindowed 데이터를 사용하여 도출됩니다.

  • 'covariance': X는 길이가 n인 데이터 벡터 x에 대한 자기상관 추정값을 생성하는 (n – m)x(m + 1) 사각 테플리츠 행렬로, m차 예측 오차 모델을 기반으로 nonwindowed 데이터를 사용하여 도출됩니다.

  • 'modified': X는 길이가 n인 데이터 벡터 x에 대한 자기상관 추정값을 생성하는 2(n – m)x(m + 1)의 수정된 사각 테플리츠 행렬로, m차 예측 오차 모델을 기반으로 순방향 및 역방향 예측 오차 추정값을 사용하여 도출됩니다.

[X,R] = corrmtx(...)X'*X로 계산되는, (m + 1)x(m + 1) 자기상관 행렬 추정값 R도 반환합니다.

예제

모두 축소

백색 가우스 잡음에 묻혀 있고 3개의 복소수 지수로 구성된 신호를 생성합니다. 'modified' 메서드를 사용하여 데이터와 자기상관 행렬을 계산합니다.

n = 0:99;
s = exp(i*pi/2*n)+2*exp(i*pi/4*n)+exp(i*pi/3*n)+randn(1,100);
m = 12;
[X,R] = corrmtx(s,m,'modified');

자기상관 행렬의 실수부와 허수부를 플로팅합니다.

[A,B] = ndgrid(1:m+1);
subplot(2,1,1)
plot3(A,B,real(R))
title('Re(R)')
subplot(2,1,2)
plot3(A,B,imag(R))
title('Im(R)')

알고리즘

corrmtx로 계산되는 테플리츠 데이터 행렬은 사용자가 선택하는 메서드에 따라 달라집니다. autocorrelation(디폴트 값) 메서드에 의해 결정되는 행렬은 다음 행렬로 주어집니다.

X=[x(1)0x(m+1)x(1)x(nm)x(m+1)x(n)x(nm)0x(n)]

이 행렬에서 m은 corrmtx에 대한 입력 인수 m과 동일하고, n은 length(x)입니다. 각 메서드에 따른 corrmtx의 출력값 X를 반환하기 위해 이 행렬의 변형된 형태가 사용됩니다.

  • 'autocorrelation' — 디폴트 값으로, 이 경우 위와 같이 X = X입니다.

  • 'prewindowed'X는 첫 번째 행이 [x(1) … 0]이고 마지막 행이 [x(n) … x(n – m)]인 X의 nx(m + 1) 부분행렬입니다.

  • 'postwindowed'X는 첫 번째 행이 [x(m + 1) … x(1)]이고 마지막 행이 [0 … x(n)]인 X의 nx(m + 1) 부분행렬입니다.

  • 'covariance'X는 첫 번째 행이 [x(m + 1) … x(1)]이고 마지막 행이 [x(n) … x(n – m)]인 X의 (n – m)x(m + 1) 부분행렬입니다.

  • 'modified'X2(n – m)-by-(m + 1) 행렬 Xmod로, 다음과 같습니다.

    Xmod=[x(m+1)x(1)x(nm)x(m+1)x(n)x(nm)x(1)x(m+1)x(m+1)x(nm)x(nm)x(n)]

참고 문헌

[1] Marple, S. Lawrence. Digital Spectral Analysis. Englewood Cliffs, NJ: Prentice-Hall, 1987.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

참고 항목

| | | |

R2006a 이전에 개발됨