본문 바로가기
programming language/MATLAB

MATLAB 입력 신호의 delay 확인 xcorr(), finddelay()

by 남성 2011. 3. 14.

통신 또는 신호 처리에 있어서 delay 는 항상 존재 하기 마련이다. 필터링이나, 공기중의 매질을 통과하는 동안의 시간 지연RF 소자에 의한 지연 등.. 굉장히 다양한 지연 요소가 있다. 이런 delay 값을 확인 하기 위하여 수신신호와 기준 신호의 correlation을 이용하곤 한다. correlation 은 상관도로서 reference 값과 들어오는 값이 얼마나 잘 매치가 되는지를 알아 보는 척도이다. 이런 correlation 을 수행하는 함수로 xcorr() 함수가 있다. 본 함수는 Signal processing toolbox 내에 포함된 함수이다.

 

x=1:5

x =

1 2 3 4 5

 

y=[0 0 0 1:5]

y =

0 0 0 1 2 3 4 5

 

위의 x와 y 값을 비교 해 보면 y 가 x 에 비해 3 sample 만큼 delay 가 있다는 것을 확인 할 수 있다.

x와 y 에 대해 correlation 을 취해 보면

[V, D] = xcorr(x,y);

V 에는 correlation 에 따른 결과 값이 입력 되고, D 에는 delay 값이 입력된다. 이에 대해 그래프를 그려 보면 다음과 같은 결과를 확인 할 수 있다.

figure, plot(D, V,'r:.'), grid on

 

 

-3 위치 즉 y 가 3 만큼 delay 된 위치에서 correlation 이 최대가 됨을 확인 할 수 있다. Communication toolbox 에 있는 finddelay() 함수를 이용하면 delay 값을 좀더 쉽게 알 수 있다.

 

D=finddelay(x,y)

D =

3


댓글0