개요
상호 상관은 신호 처리에서 유용한 기법으로, 본질적으로 두 신호의 유사성을 비교하는 것입니다. 이 기법은 신호 간의 상관관계가 없는(랜덤) 잡음을 제거하여 전체 잡음 레벨을 낮춤으로써 정확한 위상 잡음 분석에 유용합니다. 또한 두 신호가 겹치는 부분에서 진폭이 최대가 되므로 시간적으로 신호를 일치시키는 데에도 유용합니다. 이는 레이더 측정에서 거리 또는 비행 시간을 결정하거나, 수신 신호를 알려진 템플릿과 비교하는 등의 응용 분야에서 중요한 특징입니다.
본 응용 노트에서는 상호 상관의 적분 형태를 소개하고 그 물리적 의미를 살펴봅니다. 그런 다음 이 표현식을 이산화하고 신호 처리 응용 분야에서의 활용에 대해 논의합니다. 마지막으로 주파수 영역에서 상호 상관과 동일한 개념인 교차 전력 스펙트럼 밀도를 제시합니다. Moku 오실로스코프 및 스펙트럼 분석기를 사용하여 이 개념을 설명하는 몇 가지 예제를 제시합니다.
시간 영역에서의 상호 상관관계
정수형
수학적으로 상호 상관은 두 신호의 곱을 적분한 다음 정규화하는 것으로 정의됩니다. 일반적으로 한 신호에는 가변 시간 지연 \(\tau\)가 주어지며, 상호 상관은 이 시간 지연의 함수가 됩니다. 신호의 진폭이 유사한지 또는 반대인지에 따라 상관 함수는 양수 또는 음수 값을 가질 수 있습니다. 두 개의 연속적인 임의 함수 \(y(t)\)와 \(x(t)\)가 있다고 가정하고, \(x(t)\)의 복소 켤레를 \(x^*(t)\)로 나타냅니다. 시간 \(T\)에 대한 평균을 시간 지연 \(\tau\)의 함수로 나타내면 다음과 같습니다.
\(R_{xy} = \frac{1}{T} \int^{T/2}_{T/2}{x^*(t)y(t+\tau)dt}\) (1)
x(t)와 y(t)가 주기 T에 걸쳐 엄밀하게 주기적이며, 진폭은 임의적이고 위상차는 서로 다르다고 가정해 봅시다.
\(x(t) = A \sin{(\omega t)}\) (2)
\(y(t) = B \sin{(\omega t + \phi)}\) (3)
실수 함수 \(x(t)\)의 켤레복소수는 자기동등하다는 점에 유의하십시오. 그러면 \(R_{xy}\)의 정의를 다음과 같이 다시 쓸 수 있습니다.
\(R_{xy} = \frac{1}{T} \int^{T}_{0}{x^*(t)y(t+\tau)dt}\)
계산 과정을 살펴보면 방정식 (2)와 (3)을 대입할 수 있습니다.
\(R_{xy} = \frac{AB}{T} \int^{T}_{0}{\sin{(\omega t)} \sin{(\omega t + \phi)} dt}\)
복소수 표기법으로 다시 쓰면 다음과 같습니다.
\(R_{xy} = \frac{AB}{T} \int^{T}_{0}{ \left( \frac{e^{i \omega t} – e^{-i \omega t}}{2i} \right) \left( \frac{e^{i \omega (t + \tau) + \phi} – e^{-i \omega (t + \tau) – \phi}}{2i} \right) dt}\)
\(R_{xy} = \frac{-AB}{4T} \int^{T}_{0}{e^{i \omega (2t + \tau) + \phi} – e^{-i \omega \tau – \phi} – e^{i \omega \tau + \phi} + e^{-i \omega (2t + \tau) – \phi} dt}\)
t를 포함하는 항들은 주기적이므로, 한 주기 동안 시간 평균을 내면 0이 되어 두 항만 남게 됩니다.
\(R_{xy} = \frac{AB}{2} \left( \frac{e^{i(\omega \tau + \phi)} + e^{-i(\omega \tau + \phi)} }{2} \right) = \frac{AB}{2} \cos{(\omega \tau + \phi)}\)
상관 함수는 신호의 시간 지연과 위상 차이 모두에 따라 달라집니다. 시간 지연이 0일 때(τ = 0), 두 함수는 φ = 0에서 완벽하게 상관 관계를 가지며, φ = 180에서 완벽하게 역상관 관계를 가집니다. φ = 90에서는 두 함수의 위상이 서로 어긋나므로 상관 관계가 0이 됩니다(그림 1 참조).
이산형
오실로스코프로 캡처한 데이터와 같이 디지털 방식으로 샘플링된 데이터의 경우 위 공식은 이산화되어야 합니다. 캡처된 두 스펙트럼이 실수 값 \(x[t]\)와 \(y[t]\)를 포함한다고 가정합니다. 여기서 t는 데이터 포인트의 인덱스입니다. 상호 상관 관계는 다음과 같은 형태를 취합니다.
\(R_{xy}[\tau] = \sum_t x[t] y[t+\tau]\)
여기서 매개변수 \(\tau\)는 점의 개수로 나타낸 x와 y 사이의 시간 차이를 나타냅니다.
실제로 데이터 집합 \(x[t]\)와 \(y[t]\)는 유한하므로 함수가 시간에 따라 이동할 수 있는 양에는 한계가 있습니다. 오프셋이 커지면 데이터 집합 간의 겹치는 부분이 줄어듭니다. 예를 들어, \(x[t]\)와 \(y[t]\)가 정확히 1000개의 점으로 이루어진 집합이라고 가정해 보겠습니다. 수학적으로 \(\tau =999\)개의 점만큼 오프셋할 수 있지만, 이 경우 각 집합에서 겹치는 부분은 단 한 점에 불과하므로 일반적으로 유용한 결과가 아닙니다.
이러한 시나리오에서 일반적인 접근 방식은 원하는 윈도우 크기보다 더 많은 데이터 포인트를 획득하는 것입니다. 경험 법칙에 따라 전체 추적 길이는 다음과 같아야 합니다.
\(N_{trace} = N_{window} + N_{lag, max} \)
이렇게 하면 상관 함수가 경계선에 걸리지 않고 완전히 채워지도록 보장됩니다.
진폭이나 위상차를 비교할 때는 일반적으로 파형에서 DC 오프셋을 빼고 RMS 진폭으로 정규화합니다. 따라서 상관 함수의 전체 형태는 다음과 같습니다.
\(C_{xy}[\tau] = \frac{\sum_t{(x[t] – \bar{x})(y[t+\tau]-\bar{y}_m) }}{\sqrt{\sum_t{(x[t]-\bar{x})^2}} \sqrt{\sum_t{(y[t+\tau]-\bar{y}_m)^2}} }\)
여기서 \(\bar{x}\)와 \(\bar{y}_m\)는 중첩된 윈도우 영역에서 \(x[t]\)와 \(y[t+\tau]\)의 평균입니다. 이를 통해 진폭과 무관하게 항상 -1과 +1 사이의 값을 갖는 정규화된 상관관계를 얻을 수 있습니다.
Moku 오실로스코프를 이용한 상호 상관관계 측정
먼저 Moku에서 오실로스코프 파형을 가져와 파이썬 스크립트를 사용하여 상호 상관 값을 수동으로 계산함으로써 상호 상관 기능을 시연합니다. Moku:Delta를 사용하여 OutputA를 InputA에, OutputB를 InputB에 연결합니다. 그런 다음 오실로스코프 모드를 실행하고 내장된 파형 생성기를 사용하여 아래 그림 1과 같이 약간의 위상 차이가 있는 두 개의 동일한 사인파를 출력합니다.

이제 파이썬으로 넘어가겠습니다. 오실로스코프 설정을 구성하고 파형을 캡처하여 이 측정 과정을 자동화합니다. Moku 파이썬 API에 대한 자세한 내용은 문서를 참조하십시오. 각 파형은 set_timebase 명령으로 제어되는 8192개의 데이터 포인트로 구성됩니다. 스크립트가 예상대로 데이터를 수집하는지 확인하기 위해 그림 2에 결과를 그래프로 나타냈습니다.

다음으로, 각 벡터를 N개의 점으로 분할한 다음 남은 데이터를 모두 곱하는 함수를 생성하여 상호 상관 관계 플롯을 계산합니다. 위의 \(C_{xy}\) 방정식에 따라 적절하게 정규화하면 그림 3과 같은 플롯을 얻습니다.

상호 상관 그래프는 지연 시간에 따라 +1(완벽한 상관)에서 -1(완벽한 역상관) 사이에서 진동합니다. 지연 시간이 0일 때, 소스 신호가 직교하므로 상관 값은 0입니다. 다른 위상 편이를 적용하면 상호 상관 그래프의 값이 왼쪽 또는 오른쪽으로 이동합니다. 그러나 입력 신호가 주기적인 한, 그래프는 주기성을 유지합니다. 이 진동의 주기는 약 312 샘플입니다. 즉, 신호의 주기성 때문에 채널 B의 신호를 312 샘플만큼 이동시키면 동일한 상호 상관 값을 얻게 됩니다. 312 샘플이라는 값은 오실로스코프의 샘플링 속도와 수집된 어레이의 크기에 따라 달라집니다.
시계열 데이터로부터 교차 스펙트럼 계산
시계열 데이터의 상호 상관을 계산한 후, 동일한 오실로스코프 설정을 사용하여 주파수 영역에서의 상관을 계산할 수 있습니다. 주파수 영역에서 이 값은 일반적으로 교차 스펙트럼 또는 때때로 교차 전력 스펙트럼 밀도라고 하며, 주파수 공간에 걸쳐 상관이 어떻게 분포하는지에 대한 정보를 제공합니다. 먼저, 이산 시계열 데이터 세트 \(x[t]\)와 \(y[t]\)를 푸리에 변환을 통해 주파수 영역으로 변환합니다. 이 값들을 각각 \(X[f]\)와 \(Y[f]\)로 나타냅니다. 두 신호 간의 위상 관계를 측정하기 위해 \(Y[f]\)의 켤레 복소수를 취한 다음, 데이터 포인트 수 N으로 정규화합니다. 이렇게 하면 전압 제곱 단위를 갖는 값을 얻게 되므로 위상 정보를 유지하면서 원래 신호의 전력 스펙트럼과 비교할 수 있습니다. 교차 스펙트럼의 공식은 다음과 같습니다.
\(S_{AB}(f) = \frac{X[f] \times Y^*[f]}{N^2}\)
위의 값은 일반적으로 복소수라는 점에 유의하십시오. Moku 스펙트럼 분석기에서 다른 스펙트럼 데이터와 함께 표시하기 위해, 50옴의 임피던스를 가정하고 다음 공식을 사용하여 크기를 로그 스케일로 변환합니다.
\(P_{dBm} = 10 \log_{10} \left( 0.001 \times \frac{|S_{AB}|}{50 \Omega}\right)\)
이로 인해 표시되는 양에서 위상 정보가 제거되는 불행한 결과가 발생하지만, 복소수 값 표현식 \(S_{AB}(f)\)에는 여전히 위상 정보가 남아 있습니다. 다음 절에서 살펴보듯이, 이는 잡음을 제거하고 시간에 민감한 신호를 정량화하는 데 유용한 도구로 남아 있습니다.
Moku 스펙트럼 분석기를 사용한 교차 상관 분석
이제 Moku:Pro와 Moku:Delta를 사용하여 상호 상관 기능을 테스트하는 간단한 데모를 진행해 보겠습니다. 상호 상관을 위해 Moku:Delta의 스펙트럼 분석기를 단일 기기 모드로 사용하고, Moku:Pro를 사용하여 신호를 생성합니다. Moku:Pro의 다중 기기 모드에서는 그림 4에서처럼 파형 발생기를 슬롯 1에, 오실로스코프를 슬롯 2에 배치합니다. 이렇게 하면 파형 발생기의 출력을 시간 영역에서 모니터링하는 동시에 Delta에서 주파수 영역을 모니터링할 수 있습니다.

파형 발생기를 열어 50MHz 주파수와 90°의 상대 위상을 갖는 두 개의 사인파를 생성합니다. 위상을 동기화한 후 오실로스코프로 이동하여 시간 영역에서 신호를 관찰합니다. 그림 5에서 볼 수 있듯이, 두 신호는 진폭은 같지만 위상 차이가 있습니다.

이제 스펙트럼 분석기로 이동하여 그림 6에서 볼 수 있듯이 20MHz 범위에 걸쳐 주파수 영역에서 신호를 살펴보겠습니다. 두 신호는 동일한 소스에서 발생하므로 유사한 형태를 보이며, 동일한 스퓨리어스 및 디지털로 생성된 신호의 다른 특징들을 나타냅니다. 수학 채널과 상호 상관 기능을 활성화하면 노이즈 플로어가 전반적으로 낮아지지만 주요 신호와 스퓨리어스는 유지되는 것을 확인할 수 있습니다. 이는 상호 상관의 원리, 즉 상관 관계가 없는 특징은 억제되고 각 신호의 공통 구성 요소는 유지되는 것과 일치하는 결과입니다.

이전 섹션에서 확인했듯이, 이 기능은 계산된 교차 스펙트럼의 크기만 취하고 위상 정보를 버리므로 두 신호 간의 90° 위상 차이는 반영되지 않습니다.
상호 상관 관계를 통해 두 신호의 시간적 동일성을 판별하는 방법을 보여주기 위해 파형 발생기로 돌아가 50MHz에서 100MHz 범위의 두 개의 처프 펄스를 생성합니다. 구성은 그림 7에 나와 있습니다. 두 신호 모두 50MHz에서 시작하여 5ms 동안 동기화되어 스윕됩니다.

Moku 스펙트럼 분석기의 출력 결과를 보면 두 신호 모두 주파수 공간에서 평탄한 형태로 나타나며, 50MHz 이하와 100MHz 이상에서 급격히 감소하는 것을 확인할 수 있습니다. 두 스윕은 거의 동일해 보이며 그래프에서 깔끔하게 겹쳐지고, 계산된 상호 상관 관계는 두 신호가 시간적으로 겹친다는 것을 보여줍니다.

채널 동기화를 유지하면서 동일한 시간 동안 100MHz에서 50MHz까지 스윕하면서 처프 신호 중 하나의 방향을 반전시켜 상호 상관 관계의 유용성을 보여줍니다. 주파수 공간에서는 푸리에 변환이 스윕 방향을 고려하지 않기 때문에 동일하게 보입니다. 이는 그림 9에서 확인할 수 있습니다. 입력 A와 B는 이전 경우와 동일하게 스펙트럼 분석기 화면에서 겹쳐 보입니다. 그러나 상호 상관 관계는 각 신호의 순간 주파수에 따라 달라지기 때문에 이러한 변화를 반영합니다. 이전에는 평탄했던 상호 상관 관계 그래프는 약 30dB 감소하여 약 75MHz 부근에서만 피크를 나타냅니다. 이 지점은 스윕이 만나 짧은 시간 동안 주파수가 겹친 후 반대 방향으로 계속되는 지점입니다.

스펙트럼 분석기는 주파수 영역에서 작동하지만, 상호 상관 기능을 추가하면 시간 의존적 동작에 대한 감도를 효과적으로 복원할 수 있습니다. 크기 스펙트럼만으로는 구별할 수 없었던 신호들도 시간적 중첩을 고려하면 명확하게 구분할 수 있습니다.
맺음말
상호 상관 분석은 두 신호의 유사성을 비교하고, 상관관계가 없는 잡음을 제거하며, 타이밍 또는 위상 관계를 높은 정밀도로 추출하는 강력한 방법입니다.
본 응용 노트에서는 먼저 상호 상관의 적분 정의를 살펴보고 그 물리적 해석을 탐구했습니다. 그런 다음 상호 상관의 주파수 영역 대응 개념인 상호 전력 스펙트럼 밀도를 살펴보았습니다. 마지막으로 Moku 오실로스코프와 스펙트럼 분석기를 사용하여 이러한 개념들이 실제 측정에서 어떻게 나타나는지 보여주었습니다. 이 두 도구를 통해 상호 상관 기법이 다양한 응용 분야에서 측정 정확도를 어떻게 향상시킬 수 있는지 확인할 수 있습니다.