(Radar) 5. 표적 추적 — 검출 목록을 트랙으로 잇기
프레임마다 나오는 검출 목록을 어떻게 하나의 표적으로 잇는가 — 극좌표가 만드는 찌그러진 오차 타원, 칼만 필터와 α-β, 게이팅과 연관, IMM, 트랙 관리, 그리고 필터가 제대로 튜닝됐는지 숫자로 확인하는 방법까지.
3편과 4편은 둘 다 CPI 하나에서 끝났다. 프레임 하나를 처리하면 나오는 것은 그 순간의 검출 목록이고, 목록의 각 줄에는 거리·각도·도플러와 SNR 이 적혀 있다.
그런데 사용자가 원하는 것은 목록이 아니다. “3번 트랙이 방위 042, 거리 87 km, 속도 240 m/s 로 접근 중”이라는 문장이다. 프레임과 프레임 사이를 이어 누가 누구인지 유지하는 일 — 그것이 추적이고, 이 글의 주제다.
기준 시스템은 4편의 X 밴드 감시 레이다를 그대로 쓴다. 여기에 갱신 주기가 추가된다.
| 항목 | 값 | 출처 |
|---|---|---|
| 거리 분해능 $\Delta R$ | 14.99 m | 4편 3절 (압축 후) |
| 빔폭 $\theta_{3\mathrm{dB}}$ | 2° | 4편 7절 |
| 검출 SNR | 13.2 dB | 4편 7절 ($P_d$ 0.9) |
| 스캔 주기 $T$ | 4 s | 회전 감시 |
| 표적 | 250 m/s 항공기 | — |
이 글의 숫자도 전부 검산한 값이고, 그림 5와 6은 실제로 필터를 돌려 뽑은 결과다. 지어낸 곡선이 아니라서 눈금을 그대로 읽어도 된다.
1. 추적이 푸는 문제는 하나가 아니다
그림 1. 되먹임 고리가 핵심이다. 예측이 게이트를 만들고, 게이트가 연관을 좁히고, 연관이 다시 예측을 고친다.
추적을 “칼만 필터”와 같은 말로 쓰는 경우가 많은데, 필터는 세 문제 중 하나일 뿐이다.
- 연관(association) — 이번 프레임의 검출 다섯 개 중 어느 것이 3번 트랙인가. 아무것도 아닐 수도 있다.
- 필터링(filtering) — 잡음 섞인 측정에서 위치와 속도를 어떻게 뽑는가.
- 트랙 관리(track management) — 새 트랙을 언제 만들고, 언제 확인하고, 언제 지우는가.
실무에서 트랙이 깨지는 원인은 대부분 2번이 아니라 1번과 3번이다. 필터는 틀린 측정을 받으면 성실하게 틀린 값으로 수렴한다. 연관이 한 번 어긋나면 필터가 아무리 좋아도 회복되지 않는다.
여기에 레이다 특유의 조건이 얹힌다.
- $P_d < 1$ — 표적이 있어도 못 볼 수 있다. 4편 기준으로 $P_d = 0.9$ 이면 스캔 열 번에 한 번은 빈손이다.
- 오경보 — CFAR 문턱을 넘은 잡음이 표적처럼 목록에 올라온다.
- 표적이 여러 개 — 그리고 서로 가까워지면 어느 쪽이 어느 쪽인지 알기 어려워진다.
2. 좌표계 — 재는 곳과 움직이는 곳이 다르다
추적 필터를 설계할 때 처음 부딪히는 벽이다.
레이다는 극좌표로 잰다. 거리 $R$, 방위각 $\theta$, 고각 $\phi$, 그리고 도플러에서 나오는 시선 속도 $\dot R$. 반면 표적은 직교좌표에서 단순하게 움직인다. 등속 직선 운동은 $x, y, z$ 에서 1차 함수이지만 극좌표에서는 그렇지 않다.
둘 중 하나를 골라야 하고, 어느 쪽을 고르든 비선형이 한 군데 남는다.
| 방식 | 상태 | 측정 | 비선형이 남는 곳 |
|---|---|---|---|
| 직교 상태 + 극 측정 | $x, \dot x, y, \dot y$ | $R, \theta$ | 측정 함수 $h(\cdot)$ → EKF/UKF |
| 직교 상태 + 변환 측정 | $x, \dot x, y, \dot y$ | $x_m, y_m$ | 변환된 $R$ 이 비대각 |
| 극 상태 | $R, \dot R, \theta, \dot\theta$ | $R, \theta$ | 운동 모델 $F$ |
감시 레이다에서 널리 쓰는 것은 두 번째, 변환 측정(converted measurement) 이다. 측정을 먼저 직교로 옮겨 놓으면 필터 자체는 완전히 선형이 되어 표준 칼만 필터를 그대로 쓸 수 있다.
오차 타원이 심하게 찌그러진다
변환할 때 조심할 것이 있다. 두 축의 정확도가 전혀 다르다.
\[\sigma_R = \frac{\Delta R}{\sqrt{2\,\mathrm{SNR}}}, \qquad \sigma_\theta = \frac{\theta_{3\mathrm{dB}}}{k_m\sqrt{2\,\mathrm{SNR}}}\]각도 쪽은 4편 8절 모노펄스에서 나온 식 그대로다. 기준 시스템에 넣으면
\[\sigma_R = 2.32\ \text{m}, \qquad \sigma_\theta = 0.193° = 3.375\ \text{mrad}\]거리 오차는 상수인데 횡거리 오차는 거리에 비례한다.
| 거리 | 거리 오차 | 횡거리 오차 $R\sigma_\theta$ | 비 |
|---|---|---|---|
| 20 km | 2.3 m | 67.5 m | 29 : 1 |
| 100 km | 2.3 m | 337.5 m | 145 : 1 |
그림 3. 100 km 에서 오차 타원의 장단축비가 145 대 1 이다. 알아보게 하려고 크게 그렸다.
이 찌그러짐이 레이다 추적의 거의 모든 것을 설명한다. 측정 공분산 $R$ 을 대각 행렬로 두면 안 되는 이유이고(변환하면 $x$–$y$ 사이에 상관이 생긴다), 게이트가 원이 아니라 길쭉한 타원인 이유이며, 칼만 이득이 스칼라가 아니라 행렬이어야 하는 이유다. 거리축에서는 측정을 믿는 게 맞고 횡거리축에서는 예측을 믿는 게 맞은데, 그 판단을 축마다 따로 해 주는 것이 이득 행렬이다.
변환 자체도 완전히 공짜는 아니다. $x = R\cos\theta$ 는 비선형이라 각도 오차가 반경 방향으로 편향을 만든다.
\[\text{편향} \approx R\left(1 - e^{-\sigma_\theta^2/2}\right)\]$\sigma_\theta = 0.193°$ 이면 100 km 에서 0.57 m 다. $\sigma_R$ 의 1/4 이라 대개 무시한다. 그런데 $\sigma_\theta$ 가 1° 로 커지면 편향이 15.2 m 로 뛰어 $\sigma_R$ 의 6.5 배가 된다. 각도 정확도가 나쁜 시스템에서는 편향 보정한 변환(debiased conversion)을 반드시 써야 한다.
도플러를 측정에 넣으면 판이 바뀐다
시선 속도 $\dot R$ 은 도플러에서 직접 나온다. 이걸 측정 벡터에 넣을지 말지가 큰 갈림길이다.
2편 5절의 주파수 추정 CRLB 를 이 시스템에 적용하면 CPI 128 ms 에서 $\sigma_{\dot R}$ 이 이론적으로 10.5 mm/s 다. 실무에서 열 배 나쁘게 잡아도 0.1 m/s 수준이다. 반면 위치를 미분해 속도를 얻으면
\[\sigma_v \approx \frac{\sqrt2\,\sigma_R}{T} = \frac{\sqrt2 \times 2.32}{4} = 0.82\ \text{m/s}\]도플러 쪽이 여덟 배 이상 정확하다. 게다가 갱신이 빨라질수록 미분은 오히려 나빠진다. $T = 0.1$ s 면 32.8 m/s 다. 필터가 여러 스캔에 걸쳐 누적해 이 값을 줄여 주긴 하지만, 처음부터 좋은 측정을 넣어 주는 것과는 다르다.
$\dot R$ 을 넣으면 측정이 다시 비선형이 되므로(시선 방향 성분이라 $x,y$ 와 얽힌다) EKF 나 UKF 가 필요해진다. 그 값을 치를 만한가 — 대개 그렇다. 기동 탐지와 초기화 수렴 속도가 눈에 띄게 좋아진다.
3. 운동 모델과 프로세스 잡음
필터는 표적이 어떻게 움직일지에 대한 가정 위에서 돈다.
등속 모델 (CV)
가장 기본이다. 1축만 적으면 상태가 $[p, v]^\top$ 이고
\[F = \begin{bmatrix} 1 & T \\ 0 & 1 \end{bmatrix}\]2차원이면 $x$ 와 $y$ 에 대해 같은 블록을 두 개 쌓아 4차 상태가 된다.
프로세스 잡음이 진짜 설계 변수다
표적은 등속으로만 다니지 않는다. 모델이 담지 못하는 가속을 잡음으로 밀어 넣는 것이 $Q$ 다. 이산 백색 가속도 모델을 쓰면
\[Q = \sigma_a^2 \begin{bmatrix} T^4/4 & T^3/2 \\ T^3/2 & T^2 \end{bmatrix}\]$\sigma_a$ 는 “이 표적이 낼 수 있는 예상 밖 가속도”다. 물리량이면서 동시에 튜닝 손잡이라 처음에는 감으로 잡게 되는데, 10절의 NIS 검정으로 숫자로 확정할 수 있다.
| 설정 | $T$ | $\sigma_a$ | 한 스텝 위치 불확실성 | 속도 불확실성 |
|---|---|---|---|---|
| 감시 (완만) | 4 s | 2 m/s² | 16.0 m | 8.0 m/s |
| 추적 (급기동) | 0.1 s | 20 m/s² | 0.1 m | 2.0 m/s |
감시 설정의 16 m 를 2절의 측정 오차와 나란히 놓아 보면 상황이 분명해진다. 거리축은 측정이 2.3 m 로 훨씬 정확하고, 횡거리축은 예측이 16 m 로 훨씬 정확하다(측정은 337 m). 같은 표적, 같은 스텝에서 한 축은 측정을 믿고 다른 축은 예측을 믿어야 한다.
그 밖의 모델
- 등가속(CA) — 상태에 가속도를 넣는다. 꾸준히 가속하는 표적에는 좋지만 등속 구간에서 잡음을 더 문다.
- 좌표 선회(CT) — 선회율 $\omega$ 를 상태에 넣거나 모델 집합에 넣는다. 항공기 기동의 대부분이 일정 선회율에 가깝다.
- Singer 모델 — 가속도를 상관 시간 $\tau$ 를 갖는 1차 마르코프 과정으로 둔다. 기동이 순간적이지 않다는 사실을 반영한다.
하나로 다 담으려 하면 어디선가 반드시 진다. 7절의 IMM 이 그 해법이다.
4. 칼만 필터
그림 2. 예측하면 타원이 커지고, 측정과 합치면 다시 작아진다.
두 단계뿐이다.
예측
\[\hat{x}_{k|k-1} = F\,\hat{x}_{k-1|k-1}, \qquad P_{k|k-1} = F P_{k-1|k-1} F^\top + Q\]갱신
\[\nu = z_k - H\hat{x}_{k|k-1}, \qquad S = H P_{k|k-1} H^\top + R\] \[K = P_{k|k-1} H^\top S^{-1}, \qquad \hat{x}_{k|k} = \hat{x}_{k|k-1} + K\nu, \qquad P_{k|k} = (I - KH)\,P_{k|k-1}\]$\nu$ 가 이노베이션이다. 예측이 빗나간 만큼이고, 필터가 볼 수 있는 유일한 오차 신호다. $S$ 는 그 이노베이션의 공분산이며, 6절의 게이팅과 10절의 검정이 전부 이 $S$ 위에서 돌아간다.
$K$ 를 이렇게 읽으면 외울 것이 없다.
\[K = \frac{\text{예측의 불확실성}}{\text{예측의 불확실성} + \text{측정의 불확실성}}\]스칼라 1차원이면 정확히 이 모양이다. 예측이 정확하면 $K \to 0$ 이라 측정을 무시하고, 측정이 정확하면 $K \to 1$ 이라 측정을 그대로 받는다. 행렬로 확장된 이유는 2절에서 본 대로 축마다 이 비율이 다르기 때문이다.
왜 이것이 최적인가: 모델이 선형이고 잡음이 가우시안이면 칼만 필터의 출력이 사후 평균과 사후 공분산 그 자체다. 즉 MMSE 추정량이면서 동시에 최대사후 추정량이다. 가우시안이 아니어도 선형 추정량 중에서는 여전히 최적이다. 레이다 측정은 대체로 가우시안에 가까워서 이 전제가 잘 맞는데, 깨지는 지점이 둘 있다 — 연관이 틀렸을 때(다봉 분포가 된다)와 표적이 기동할 때(모델이 틀린다). 6절과 7절이 각각 그 둘을 다룬다.
5. α-β 필터 — 칼만의 정상 상태
$F, Q, R$ 이 시간에 따라 변하지 않으면 $P$ 와 $K$ 가 몇 스텝 만에 상수로 수렴한다. 그 수렴값을 미리 계산해 상수로 박아 두면 행렬 연산이 통째로 사라진다.
\[\hat p \leftarrow \hat p_{\text{pred}} + \alpha\,\nu, \qquad \hat v \leftarrow \hat v_{\text{pred}} + \frac{\beta}{T}\,\nu\]곱셈 두 번과 덧셈 두 번이 전부다. 공분산 행렬도, 역행렬도 없다. 임베디드에서 아직도 널리 쓰이는 이유다.
계수는 감으로 잡는 것이 아니라 기동 지수 하나로 정해진다.
\[\lambda = \frac{\sigma_a T^2}{\sigma_z}\]분자는 한 스텝 동안 모델이 놓치는 거리, 분모는 측정 오차다. 둘의 비가 “예측과 측정 중 어느 쪽이 더 못 미더운가”를 말해 준다. Kalata 의 정상해는 이렇다.
\[r = \frac{4 + \lambda - \sqrt{8\lambda + \lambda^2}}{4}, \qquad \alpha = 1 - r^2, \qquad \beta = 2(2-\alpha) - 4\sqrt{1-\alpha}\]기준 시스템에 넣어 본다.
| 상황 | $T$ | $\sigma_a$ | $\lambda$ | $\alpha$ | $\beta$ |
|---|---|---|---|---|---|
| 감시, 완만한 기동 | 4 s | 2 m/s² | 13.80 | 0.987 | 1.571 |
| 추적, 급기동 | 0.1 s | 20 m/s² | 0.086 | 0.339 | 0.070 |
| 추적, 완만 | 0.1 s | 2 m/s² | 0.009 | 0.123 | 0.008 |
같은 측정 정확도인데 갱신 주기 하나로 필터의 성격이 뒤집힌다. 4초에 한 번 보는 감시 레이다는 $\alpha = 0.99$ 라 사실상 측정을 그대로 받아 쓴다 — 4초 사이에 표적이 무엇을 했는지 모르니 예측을 믿을 근거가 없다. 0.1초마다 보는 추적 레이다는 $\alpha = 0.34$ 라 측정의 1/3만 반영하고 나머지는 관성으로 간다.
α-β 는 등속 모델의 정상해다. 가속도항까지 두면 α-β-γ 가 되고, 같은 방식으로 계수가 유도된다. 다만 정상 상태를 전제하므로 초기 수렴 구간과 기동 구간에서는 완전한 칼만 필터보다 확실히 나쁘다. 트랙 초기화만 칼만으로 하고 정상 추적을 α-β 로 넘기는 구현도 흔하다.
6. 연관 — 어느 검출이 어느 트랙인가
그림 4. 게이트로 후보를 줄이고, 남은 것을 어떻게 쓸지에서 방법이 갈린다.
게이팅
모든 검출을 모든 트랙과 따져 보는 것은 낭비다. 예측 위치에서 통계적으로 멀리 떨어진 것은 먼저 버린다. 척도는 이노베이션 공분산으로 정규화한 거리, 즉 마할라노비스 거리다.
\[d^2 = \nu^\top S^{-1} \nu \;\le\; \gamma\]$\nu$ 가 가우시안이면 $d^2$ 은 자유도 $M$ 인 카이제곱을 따르므로 $\gamma$ 는 분위수표에서 바로 읽는다.
| 측정 차원 $M$ | $P_G = 0.95$ | $P_G = 0.99$ |
|---|---|---|
| 2 (거리, 방위) | 5.991 | 9.210 |
| 3 (거리, 방위, 고각) | 7.815 | 11.345 |
| 4 (+ 도플러) | 9.488 | 13.277 |
$S$ 로 정규화한다는 점이 중요하다. 그림 3의 찌그러진 오차 타원이 여기 그대로 반영되어, 게이트도 횡거리 방향으로 길쭉해진다. 유클리드 거리로 게이팅하면 거리축에서는 지나치게 헐겁고 횡거리축에서는 지나치게 빡빡해진다.
게이트 크기는 상충이다. 키우면 표적을 놓칠 확률($1-P_G$)이 줄지만 게이트 안에 들어오는 오경보가 늘어난다. 2차원 게이트의 면적은
\[V = \pi\,\gamma\,\sqrt{\lvert S\rvert}\]기준 시스템 100 km 에서 계산하면 0.158 km² 다. 오경보 밀도가 $10^{-7}\ \mathrm{m^{-2}}$ 이면 게이트 안 기대 오경보 수가 0.016 개 — 60 스캔에 한 번 꼴이다. 클러터가 짙은 저고도라면 이 값이 수십 배로 뛴다.
남은 후보를 어떻게 쓸까
| 방법 | 방식 | 쓸 자리 |
|---|---|---|
| NN | 가장 가까운 하나만 | 표적이 드물고 클러터가 옅을 때 |
| GNN | 트랙–검출 전역 최적 할당 (헝가리안 등) | 표적이 여럿이고 서로 떨어져 있을 때 |
| PDA | 후보 전부를 확률로 가중 | 클러터가 짙고 표적이 하나일 때 |
| JPDA | 트랙끼리의 경합까지 함께 계산 | 표적이 가까이 붙어 있을 때 |
| MHT | 가설을 여러 개 들고 가다 나중에 정리 | 계산 여유가 있고 최고 성능이 필요할 때 |
NN 은 싸고 대부분 잘 듣는다. 문제는 틀렸을 때의 대가다. 한 번의 오연관이 트랙을 통째로 다른 표적으로 끌고 간다.
PDA 는 고르지 않는다. 각 후보의 연관 확률 $\beta_i$ 를 구하고 가중 평균한 이노베이션을 쓴다.
\[\bar\nu = \sum_{i=1}^{m}\beta_i \nu_i, \qquad \beta_0 = P(\text{전부 오경보})\]그리고 확신이 없는 만큼 공분산을 늘려 준다. 이 항이 PDA 의 핵심이다. 후보가 흩어져 있으면 게이트가 다음 스캔에 넓어져 스스로 회복할 여지를 남긴다. NN 은 틀렸다는 사실조차 모르므로 그 여지가 없다.
연관 시점이 가장 위험하다. 필터는 사후적으로 고칠 수 있지만 연관은 그렇지 않다. 트랙이 이상하면 필터 계수부터 만지는 것이 사람의 본능인데, 로그를 남길 곳은 게이트 안에 몇 개가 들어왔고 어느 것을 골랐는지 쪽이다. 연관 결정을 기록하지 않는 추적기는 디버깅이 사실상 불가능하다.
7. 기동 — 하나의 모델로는 안 된다
3절에서 $Q$ 를 정하는 문제가 딜레마라고 했다. 작게 잡으면 직진에서 매끄럽지만 기동에서 트랙이 밀리고, 크게 잡으면 기동은 따라가는데 직진에서 흔들린다. 표적이 두 상태를 오가므로 어느 한 값도 정답이 아니다.
그림 5. 20초에 3°/s 선회가 시작된다. 단일 CV 모델은 바깥으로 밀리고, IMM 은 모델 확률을 바꿔 따라간다.
IMM(Interacting Multiple Model) 은 모델을 하나 고르지 않는다. 여러 개를 동시에 돌리고, 각 모델이 얼마나 그럴듯한지를 매 스텝 갱신한다.
- 섞기(mixing) — 이전 스텝의 추정들을 모델 전이 확률로 섞어 각 필터의 초기값을 만든다.
- 각자 갱신 — 모델별 칼만 필터를 독립적으로 한 스텝 돌린다.
- 모델 확률 갱신 — 각 필터의 이노베이션 우도로 $\mu_j$ 를 다시 계산한다.
- 결합 — $\hat x = \sum_j \mu_j \hat x_j$ 로 최종 출력을 만든다.
그림 5 오른쪽이 그 $\mu_j$ 다. 20초에 기동 모델로 넘어가고 40초에 등속으로 되돌아온다. 모델 확률 자체가 유용한 출력이다 — 기동 탐지기를 따로 만들 필요 없이 $\mu_{\text{기동}}$ 이 문턱을 넘는지만 보면 된다.
전이 확률 행렬 $\pi_{ij}$ 는 “표적이 이 상태에 얼마나 머무는가”로 정한다. 대각 성분 0.95 는 평균 20 스텝 유지를 뜻한다. 모델은 2~3개면 대개 충분하고, 늘릴수록 각 모델의 확률이 희석되어 오히려 반응이 둔해진다.
8. 트랙 관리 — 언제 만들고 언제 지우는가
필터와 연관이 완벽해도 이 부분이 허술하면 화면이 유령 트랙으로 덮인다.
생성과 확인
어느 게이트에도 안 들어간 검출은 신규 트랙 후보가 된다. 그런데 오경보도 똑같이 후보가 되므로 바로 트랙으로 승격시키면 안 된다. 가장 흔한 방법은 M/N 로직이다. 최근 $N$ 스캔 중 $M$ 번 이상 연관되면 확인한다.
| $P_d$ | 로직 | 확인 확률 |
|---|---|---|
| 0.9 | 3/5 | 0.9914 |
| 0.9 | 2/3 | 0.9720 |
| 0.7 | 3/5 | 0.8369 |
| 0.7 | 2/3 | 0.7840 |
$P_d$ 가 0.9 면 3/5 로 충분하다. 0.7 로 떨어지면 3/5 가 0.84 까지 내려가므로 조건을 완화하거나 $N$ 을 늘려야 한다. 반대로 오경보가 연속 3번 같은 게이트에 들어올 확률은 게이트가 좁은 만큼 급격히 작아져서, 실질적으로 거짓 트랙은 거의 만들어지지 않는다.
더 정교한 방법은 트랙 점수다. 매 스캔 로그우도비를 누적하고 두 문턱 사이에서 판정한다.
\[\mathrm{LLR} \;\leftarrow\; \mathrm{LLR} + \ln\frac{P(\text{연관} \mid \text{표적})}{P(\text{연관} \mid \text{오경보})}\]축차 확률비 검정(SPRT)의 형태라 확인·삭제 문턱을 원하는 오경보율에서 직접 계산할 수 있다. M/N 은 검출을 있고 없고로만 세지만, 점수 방식은 얼마나 잘 맞았는지(마할라노비스 거리)와 SNR 까지 반영한다.
삭제
미연관이 연속 $K$ 번이면 지운다. 다만 $K$ 를 스캔 수로 고정하지 말고 공분산으로 보는 편이 낫다. 예측을 반복하면 $P$ 가 $Q$ 만큼씩 계속 커지므로, 게이트가 감당 못 할 크기가 되면 그때가 놓은 시점이다. 이렇게 하면 갱신 주기나 표적 기동성이 달라져도 같은 규칙이 통한다.
병합과 분리
두 트랙이 같은 표적을 물고 있으면(중복 트랙) 상태가 거의 같아진다. 상태 차이의 마할라노비스 거리가 문턱 아래면 병합한다. 반대로 분해되지 않던 두 표적이 갈라지면 하나의 트랙에 검출 두 개가 지속적으로 들어오는데, 이때 트랙을 분리해야 한다.
9. 레이다에서만 생기는 문제들
일반적인 추적 이론에는 안 나오는데 실장비에서는 반드시 만나는 것들이다.
모호한 측정. 4편 5절에서 본 접힌 거리와 접힌 속도다. 겉보기 값만으로는 몇 바퀴 감겼는지 알 수 없지만, 트랙이 있으면 예측값이 그 답을 준다. 기준 시스템에서 300 m/s 표적은 4초 동안 1.2 km 를 가는데 $R_{\max}$ 가 149.9 km 이므로 바퀴 수가 스캔 사이에 튀지 않는다. 즉 초기 획득에서 한 번만 풀면 그다음은 트랙이 유지해 준다. 초기 획득은 다중 PRF 로 푼다.
분해되지 않은 표적. 편대 비행처럼 두 표적이 한 분해 셀 안에 있으면 검출이 하나만 나오고, 그 위치는 둘의 에너지 가중 중심이다. 두 트랙에 같은 검출을 주면 둘 다 중심으로 끌려간다. 진폭이 평소보다 크거나 모노펄스 오차 신호가 흔들리는 것이 단서인데, 근본적으로는 분해능을 올리는 것 말고 방법이 없다.
센서 바이어스와 정합. 각도 오프셋, 거리 오프셋, 시각 오차는 잡음이 아니라 상수다. 필터는 이것을 지우지 못한다. 다중 센서를 융합할 때는 각 센서의 바이어스를 먼저 추정해 빼는 정합(registration) 단계가 필수이고, 이걸 건너뛰면 같은 표적이 두 개의 트랙으로 갈라진다.
순서가 뒤바뀐 측정. 여러 센서를 묶으면 늦게 도착한 오래된 측정이 생긴다. 그냥 버리면 정보를 잃고, 그냥 넣으면 시간 순서가 깨진다. 표준 해법은 OOSM 알고리즘으로 뒤로 되돌려 반영하는 것이다. 단일 레이다만 쓴다면 안 만나도 되는 문제라, 아키텍처를 정할 때 다중 센서 확장 여부를 먼저 정해야 한다.
갱신 주기가 일정하지 않다. 위상배열은 표적마다 다른 주기로 조사한다. $F$ 와 $Q$ 를 $T$ 의 함수로 매번 다시 만들어야 하고, 5절의 α-β 상수는 쓸 수 없다. 그 주기를 무엇으로 정하는지 — 여기서 계산한 공분산이 그대로 그 판단 기준이 된다 — 는 6편 9절에서 다룬다.
짧은 궤적은 필터가 아니라 일괄 적합이 낫다
3편에서 남겨 둔 문제 — STFT 로 얻은 추정치를 궤적으로 묶고 임팩트 시점으로 역외삽하는 일 — 는 여기까지의 이야기와 성격이 다르다.
추적 필터는 재귀적이고 현재 시점을 추정한다. 무한히 이어지는 관측을 실시간으로 처리해야 하니 그 구조가 맞다. 그런데 관측이 60 ms 동안 스무 개로 끝나고, 알고 싶은 것이 구간의 시작점이며, 실시간 제약이 없다면 조건이 완전히 다르다.
이럴 때는 전체 구간을 한꺼번에 놓고 최소제곱으로 물리 모델을 맞추는 쪽이 낫다. 필터링(현재 추정)이 아니라 평활(smoothing, 과거 추정) 문제이고, 스무 개 점 전부를 t = 0 의 추정에 쓸 수 있으므로 마지막 점만 반영되는 재귀 필터보다 정확하다. 항력과 중력이 들어간 모델을 알고 있다면 그 모델의 계수를 직접 적합하면 된다.
어느 쪽인지 먼저 판단해야 한다. 실시간으로 계속 이어지는 표적이면 필터, 짧고 완결된 궤적이면 일괄 적합이다. 후자에 칼만 필터를 얹으면 코드만 복잡해지고 정확도는 오히려 떨어진다.
10. SW 관점 — 구조, 수치, 그리고 검증
자료 구조와 연산량
트랙 하나가 들고 다니는 것은 상태 벡터, 공분산 행렬, 그리고 관리 정보(점수, 미연관 카운트, 이력)다. 4차 상태면 공분산이 4×4 라 트랙당 수백 바이트다. 트랙 수천 개도 메모리는 문제가 아니다.
비용은 연관에서 나온다. 트랙 $N_T$ 개와 검출 $N_D$ 개를 모두 따지면 $O(N_T N_D)$ 이고, 여기에 GNN 의 할당 문제가 $O(n^3)$ 로 붙는다. 실무의 해법은 공간 색인이다. 검출을 격자나 k-d 트리에 넣어 게이트 근처만 꺼내면 대부분의 쌍이 애초에 계산되지 않는다.
수치 안정성 — 여기서 실제로 터진다
공분산 갱신을 $P = (I-KH)P$ 로 쓰면 수식으로는 맞지만, 반올림 오차가 쌓이면서 $P$ 가 대칭성을 잃고 결국 음의 고유값을 갖는다. 그러면 게이트가 뒤집히거나 역행렬에서 발산한다. 감시 레이다처럼 몇 시간씩 도는 시스템에서는 반드시 겪는다.
Joseph 형은 이 문제를 구조적으로 막는다.
\[P_{k|k} = (I - KH)\,P_{k|k-1}\,(I - KH)^\top + K R K^\top\]곱셈이 늘지만 두 항 모두 대칭 양반정치라 결과도 그렇다. 더 확실하게 하려면 $P$ 대신 그 제곱근(또는 UD 분해)을 들고 다니는 제곱근 필터를 쓴다. 조건수가 제곱근으로 줄어드는 효과가 있어 수치적으로 훨씬 안전하다.
그리고 추적 필터에 고정소수점은 권하지 않는다. 공분산의 동적 범위가 초기화 직후와 수렴 후에 여러 자릿수 차이가 나서 스케일을 잡기가 어렵다. 4편의 신호처리와 달리 여기는 연산량이 작으므로 double 을 쓰는 편이 낫다.
검증 — 감이 아니라 숫자로
가장 자주 넘어가는 부분이자 가장 중요한 부분이다. $Q$ 와 $R$ 을 감으로 맞추면 잘 도는 것처럼 보이다가 조건이 바뀌면 무너진다. 표준 도구가 둘 있다.
NIS(정규화 이노베이션 제곱) — 이노베이션을 그 자신의 공분산으로 정규화한 값이다.
\[\epsilon_\nu = \nu^\top S^{-1}\nu\]필터가 일관적이면 기대값이 측정 차원 $M$ 과 같다. $N$ 회 평균하면 $N\epsilon_\nu$ 가 자유도 $NM$ 인 카이제곱을 따르므로 신뢰구간을 바로 계산할 수 있다. $M = 3$, $N = 50$ 이면 평균 NIS 가 [2.360, 3.716] 안에 있어야 한다.
그림 6. 실제로 몬테카를로를 돌린 결과다. Q 를 틀리게 잡으면 띠를 위아래로 벗어난다.
- 위로 뚫는다 → 필터가 과신하고 있다. 공분산이 실제 오차보다 작다. $Q$ 를 키우거나 $R$ 을 다시 재야 한다.
- 아래로 처진다 → 과보수다. 공분산이 필요 이상으로 커서 게이트가 헐거워지고 오연관이 늘어난다.
NIS 의 가장 큰 장점은 참값이 필요 없다는 것이다. 이노베이션과 $S$ 는 필터 내부에 이미 있으므로 실장비 로그에서 그대로 계산된다. 시뮬레이션에서만 쓸 수 있는 NEES(참값 대비 상태 오차)와 달리 현장 튜닝에 바로 쓸 수 있다.
NEES(정규화 추정 오차 제곱) — 참값을 아는 시뮬레이션에서 쓴다. $\tilde x^\top P^{-1}\tilde x$ 의 기대값이 상태 차원과 같아야 한다. NIS 는 통과하는데 NEES 가 어긋나면 모델 자체가 틀렸다는 뜻이다.
테스트에 꼭 넣을 시나리오
- 교차 표적 — 두 표적이 같은 지점을 서로 다른 방향으로 지난다. 연관이 바뀌어 트랙이 뒤바뀌는지 본다.
- 연속 미검출 — $P_d$ 를 0.5 까지 낮춰 보고 트랙이 언제 끊기는지 확인한다.
- 급기동 — 6G 선회를 넣고 IMM 이 몇 스캔 만에 따라오는지 잰다.
- 오경보 폭주 — 클러터 밀도를 열 배로 올려 거짓 트랙이 몇 개 생기는지 센다.
- 장시간 구동 — 수치 안정성은 몇 시간을 돌려야 드러난다.
11. 정리
| 절 | 핵심 |
|---|---|
| 1 | 추적은 필터 하나가 아니라 연관·필터·관리 셋이다 |
| 2 | 레이다 오차 타원은 100 km 에서 장단축비가 145:1 이다 |
| 3 | $Q$ 는 튜닝 손잡이이면서 물리량이다 |
| 4 | 칼만 이득은 두 불확실성의 비, 그래서 행렬이다 |
| 5 | 기동 지수 $\lambda$ 하나가 α-β 계수를 정한다 |
| 6 | 게이트는 $S$ 로 정규화한 거리, 문턱은 카이제곱 분위수 |
| 7 | 하나의 모델로는 직진과 기동을 함께 담지 못한다 |
| 8 | 트랙이 유령으로 덮이는 원인은 대개 관리 로직이다 |
| 9 | 모호한 측정은 트랙의 예측값으로 푼다 |
| 10 | 튜닝은 NIS 로 확인한다. 참값이 없어도 잴 수 있다 |
되돌아오게 될 것은 셋이다.
- 거리축은 측정을, 횡거리축은 예측을 믿는다 — 오차 타원의 찌그러짐이 설계의 절반을 정한다
- 연관이 틀리면 필터로는 못 고친다 — 로그를 남길 곳은 필터가 아니라 연관이다
- NIS 가 띠 안에 있는가 — 튜닝이 끝났는지 판단하는 유일한 객관적 기준
0편의 단위와 데시벨에서 시작해 IQ, CW 와 FMCW, CW 수신 체인, 펄스 파형을 지나 트랙까지 왔다. 안테나에 들어온 전파가 화면의 트랙 심볼이 되기까지의 한 줄이 여기서 이어진다.
6편은 그 트랙이 다시 다음 빔을 어디로 보낼지 정하는 쪽을 다룬다. 여기서 계산한 공분산이 거기서 갱신 주기를 정하는 기준이 되고, 그 순간 이 글의 α-β 상수는 쓸 수 없게 된다. 전체 지도는 목차에 있다.
참고 자료
- Y. Bar-Shalom, X.-R. Li, T. Kirubarajan, Estimation with Applications to Tracking and Navigation, Wiley — 추적 필터의 표준 교과서. IMM, PDA, NEES/NIS 검정의 원전
- Y. Bar-Shalom, P. K. Willett, X. Tian, Tracking and Data Fusion: A Handbook of Algorithms, YBS — 연관 알고리즘의 실무적 정리
- S. Blackman, R. Popoli, Design and Analysis of Modern Tracking Systems, Artech House — 트랙 점수, MHT, 시스템 설계 관점
- P. Kalata, “The Tracking Index: A Generalized Parameter for α-β and α-β-γ Target Trackers,” IEEE Trans. AES, 1984 — 기동 지수와 정상상태 계수의 원 논문
- M. A. Richards, Fundamentals of Radar Signal Processing, McGraw-Hill — 측정 정확도와 검출 확률의 레이다 쪽 근거
- G. J. Bierman, Factorization Methods for Discrete Sequential Estimation, Academic Press — 제곱근·UD 필터의 수치 안정성