Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

시작 시간이 서로 다른 신호 정렬하기

많은 경우 측정값에는 다수의 센서를 통해 비동기식으로 수집된 데이터가 포함됩니다. 신호를 통합하려면 신호를 동기화해야 합니다. Signal Processing Toolbox™에는 이 작업을 수행할 수 있는 다양한 함수가 제공됩니다.

예를 들어, 다리를 건너는 자동차를 고려해 보겠습니다. 자동차에서 발생하는 진동은 서로 다른 곳에 있는 3개의 동일한 센서에서 측정됩니다. 신호의 도착 시간은 각기 다릅니다.

신호를 MATLAB® 작업 공간에 불러온 다음 플로팅합니다.

load relatedsig

ax(1) = subplot(3,1,1);
plot(s1)
ylabel('s_1')

ax(2) = subplot(3,1,2);
plot(s2)
ylabel('s_2')

ax(3) = subplot(3,1,3);
plot(s3)
ylabel('s_3')
xlabel('Samples')

linkaxes(ax,'x')

신호 s1s2보다 뒤처져 있고 s3보다 앞서 있습니다. 이와 같은 지연은 finddelay를 사용하여 정확하게 계산할 수 있습니다. s2s1보다 350개 샘플만큼 앞서 있고, s3s1보다 150개 샘플만큼 뒤처져 있고, s2s3보다 500개 샘플만큼 앞서 있음을 알 수 있습니다.

t21 = finddelay(s2,s1)
t31 = finddelay(s3,s1)
t32 = finddelay(s2,s3)
t21 =

   350


t31 =

  -150


t32 =

   500

먼저 도착한 신호는 그대로 유지하고 다른 벡터에서 지연을 제거하여 신호를 정렬합니다. MATLAB®은 인덱싱을 1부터 시작한다는 점을 감안하여 지연값 차이에 1을 더합니다. 이 방법에서는 가장 빠른 도착 시간 즉, s2의 도착 시간을 기준으로 사용하여 신호를 정렬합니다.

axes(ax(1))
plot(s1(t21+1:end))

axes(ax(2))
plot(s2)

axes(ax(3))
plot(s3(t32+1:end))

alignsignals를 사용하여 신호를 정렬합니다. 이 함수는 빨리 도착한 신호를 지연시키는 방식으로 처리하기 때문에 가장 늦은 도착 시간인 s3의 도착 시간을 기준으로 사용하십시오.

[x1,x3] = alignsignals(s1,s3);
x2 = alignsignals(s2,s3);

axes(ax(1))
plot(x1)

axes(ax(2))
plot(x2)

axes(ax(3))
plot(x3)

이제 신호가 동기화되었으며 추가적인 처리가 가능합니다.

참고 항목

| |

관련 항목