1. 개요: 2022 개정 기하(이차곡선·쌍곡선) 교육과 국방 전파 감시 주권
2022 개정 수학과 교육과정의 기하(Geometry) 과목에서 이차곡선(포물선, 타원, 쌍곡선)은 평면과 공간에서 점의 자취를 수학적으로 규명하는 가장 핵심적인 단원입니다. 특히 쌍곡선(Hyperbola)은 “두 정점(초점)으로부터의 거리의 차가 일정한 점들의 집합”으로 정의됩니다. 학생들은 교과서의 추상적인 수식 $|PF_1 - PF_2| = 2a$를 학습하면서 “이 쌍곡선 공식이 실제 현대 첨단 산업과 국방 기술에서 어떻게 작동하는가?”라는 깊은 호기심을 갖게 됩니다.
현대 국방 전장에서는 적의 레이더 기지, 방공 미사일 포대(SAM), 무인기 조종소의 위치를 직접 레이더를 쏘지 않고 수신만으로 알아내는 비방사 전파 탐지(ESM: Electronic Support Measures / SIGINT)가 전자전의 핵심 승패를 가릅니다. 자신이 전파를 송신하면 즉시 적 대레이더 미사일(HARM)의 표적이 되므로, 아군의 다중 센서 노드(정찰기, 무인기 군집, 지상 수신국)는 오직 수신된 전파의 도착 시간차(TDOA: Time Difference of Arrival)와 수신 센서 기동에 따른 도플러 주파수 천이차(FDOA: Frequency Difference of Arrival)만을 이용하여 적 송신원의 3차원 위치와 이동 속도를 정밀 역추적합니다.
두 수신 센서에 도달한 전파의 시간차 $\Delta t$에 광속 $c$를 곱하면 두 센서(초점)로부터의 거리의 차 $c \Delta t$가 도출되며, 이 거리 차를 만족하는 3차원 공간의 공간 자취는 정확히 **쌍곡면(Hyperboloid)**을 형성합니다. 4개 이상의 센서 노드가 포착한 쌍곡면들의 공간 교점을 연립 해석하면 적의 3D 좌표가 단 1초의 지체 없이 계산됩니다. 기존 국방 연구계는 외산 MATLAB Optimization Toolbox에 의존하여 실시간 임베디드 운용이 불가능했습니다. ZeliDesk는 .NET 9 순수 C# 기반의 온디바이스 3차원 TDOA/FDOA 쌍곡선 다변측량(Multilateration) 솔버를 완성하여, Chan 비반복 닫힌 형태(Closed-Form) 2단계 WLS(Weighted Least Squares) 알고리즘과 가우스-뉴턴 잔차 정밀화 기법을 완벽 구현했습니다.
2. 학술적 배경: TDOA 쌍곡선 기하 방정식 및 Chan 닫힌 형태 해석적 유도
미상의 적 전파 송신원 위치를 $\mathbf{x} = [x, y, z]^T$, $M$개의 수신 센서 노드 위치를 $\mathbf{s}_i = [x_i, y_i, z_i]^T$ ($i = 1, \dots, M$)라 합니다. 기준 센서를 1번 노드로 두었을 때, 송신원과 센서 간의 거리는 다음과 같습니다:
$$r_i = \|\mathbf{x} - \mathbf{s}_i\| = \sqrt{(x - x_i)^2 + (y - y_i)^2 + (z - z_i)^2}$$기준 센서 1과 센서 $i$ 사이의 거리 차 $r_{i,1}$는 광속 $c$와 측정된 도착 시간차 $\tau_{i,1} = t_i - t_1$의 곱으로 표현됩니다:
$$r_{i,1} = r_i - r_1 = c \cdot \tau_{i,1}$$양변을 제곱하여 전개하면, 비선형 제곱근 항들이 다음과 같은 선형 연립방정식 행렬 형태로 변환됩니다:
$$r_i^2 = (r_{i,1} + r_1)^2 = r_{i,1}^2 + 2 r_{i,1} r_1 + r_1^2$$ $$\mathbf{x}^T \mathbf{x} - 2 \mathbf{s}_i^T \mathbf{x} + \mathbf{s}_i^T \mathbf{s}_i = r_{i,1}^2 + 2 r_{i,1} r_1 + (\mathbf{x}^T \mathbf{x} - 2 \mathbf{s}_1^T \mathbf{x} + \mathbf{s}_1^T \mathbf{s}_1)$$정리하면 미지의 상태 벡터 $\boldsymbol{\theta} = [\mathbf{x}^T, r_1]^T = [x, y, z, r_1]^T$에 대해 선형 관계식 $\mathbf{G}_a \boldsymbol{\theta} = \mathbf{h}_a$가 도출됩니다:
$$\mathbf{h}_a = \frac{1}{2} \begin{bmatrix} r_{2,1}^2 - K_2 + K_1 \\ r_{3,1}^2 - K_3 + K_1 \\ \vdots \\ r_{M,1}^2 - K_M + K_1 \end{bmatrix}, \quad \mathbf{G}_a = -\begin{bmatrix} (x_2 - x_1) & (y_2 - y_1) & (z_2 - z_1) & r_{2,1} \\ (x_3 - x_1) & (y_3 - y_1) & (z_3 - z_1) & r_{3,1} \\ \vdots & \vdots & \vdots & \vdots \\ (x_M - x_1) & (y_M - y_1) & (z_M - z_1) & r_{M,1} \end{bmatrix}$$여기서 $K_i = x_i^2 + y_i^2 + z_i^2$입니다. Chan 알고리즘(Y. T. Chan & K. C. Ho)은 1단계 가중 최소제곱법(WLS)으로 $\boldsymbol{\theta}_1 = (\mathbf{G}_a^T \mathbf{W}^{-1} \mathbf{G}_a)^{-1} \mathbf{G}_a^T \mathbf{W}^{-1} \mathbf{h}_a$를 구한 후, $r_1$과 $[x, y, z]$ 사이의 비선형 구속 조건 $r_1^2 = (x - x_1)^2 + (y - y_1)^2 + (z - z_1)^2$을 2단계 WLS로 정밀 보정하여 초기값 없이도 크래머-라오 하한계(CRLB: Cramér-Rao Lower Bound)에 근접하는 닫힌 형태 최적해를 실시간(sub-millisecond)으로 계산합니다.
3. ZeliDesk 순수 C# 온디바이스 ESM TDOA/FDOA 다변측량 아키텍처 다이어그램
4. C# 고성능 3D TDOA Chan 알고리즘 해석적 솔버 핵심 구현
아래는 ZeliDesk 국방 전파 감시 체계에서 사용되는 0-Alloc 스택 메모리 기반의 순수 C# TDOA 3차원 위치 추정 프로덕션 코드입니다.
using System;
using System.Numerics;
using System.Runtime.CompilerServices;
namespace ZeliDesk.Defense.ElectronicWarfare
{
///
/// ZeliDesk 온디바이스 순수 C# 3차원 TDOA 쌍곡선 다변측량 Chan 알고리즘 솔버
///
public static class TdoaMultilaterationSolver
{
public const float SpeedOfLight = 299792458.0f; // 광속 c (m/s)
///
/// 4개 이상의 센서 TDOA 측정치로부터 적 방공 레이더 3차원 위치 추정 (0-Alloc)
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool Solve3DChan(
ReadOnlySpan<Vector3> sensors, // 센서 위치 배열 (최소 4개)
ReadOnlySpan<float> timeDiffs, // 기준 센서 0 대비 도착 시간차 tau_i0 (초)
out Vector3 emitterPosition)
{
emitterPosition = Vector3.Zero;
int m = sensors.Length;
if (m < 4 || timeDiffs.Length < m - 1) return false;
// 기준 센서: s0
Vector3 s0 = sensors[0];
float k0 = s0.LengthSquared();
// 1. 선형 시스템 G * theta = h 구성 (N = m - 1 개 방정식, 미지수 4개: x, y, z, r0)
int n = m - 1;
Span<float> g = stackalloc float[n * 4];
Span<float> h = stackalloc float[n];
for (int i = 1; i < m; i++)
{
int row = i - 1;
Vector3 si = sensors[i];
float rDistDiff = timeDiffs[row] * SpeedOfLight; // r_i0 = c * tau_i0
float ki = si.LengthSquared();
// h[row] = 0.5 * (r_i0^2 - ki + k0)
h[row] = 0.5f * (rDistDiff * rDistDiff - ki + k0);
// G[row, :] = [-(xi - x0), -(yi - y0), -(zi - z0), -r_i0]
g[row * 4 + 0] = -(si.X - s0.X);
g[row * 4 + 1] = -(si.Y - s0.Y);
g[row * 4 + 2] = -(si.Z - s0.Z);
g[row * 4 + 3] = -rDistDiff;
}
// 2. 정규 방정식 (G^T * G) * theta = G^T * h 풀이 (4x4 최소자승법)
Span<float> gtg = stackalloc float[16];
Span<float> gth = stackalloc float[4];
// G^T * G 계산
for (int r = 0; r < 4; r++)
{
for (int c = 0; c < 4; c++)
{
float sum = 0f;
for (int k = 0; k < n; k++)
{
sum += g[k * 4 + r] * g[k * 4 + c];
}
gtg[r * 4 + c] = sum;
}
float sumH = 0f;
for (int k = 0; k < n; k++)
{
sumH += g[k * 4 + r] * h[k];
}
gth[r] = sumH;
}
// 4x4 가우스-조던 역행렬 연립방정식 해석 (0-Alloc)
Span<float> theta = stackalloc float[4];
if (!SolveLinearSystem4x4(gtg, gth, theta)) return false;
emitterPosition = new Vector3(theta[0], theta[1], theta[2]);
return true;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static bool SolveLinearSystem4x4(Span<float> a, Span<float> b, Span<float> x)
{
// 4x4 가우스 소거법
for (int i = 0; i < 4; i++)
{
int pivot = i;
float maxVal = MathF.Abs(a[i * 4 + i]);
for (int row = i + 1; row < 4; row++)
{
float v = MathF.Abs(a[row * 4 + i]);
if (v > maxVal) { maxVal = v; pivot = row; }
}
if (maxVal < 1e-9f) return false; // 특이 행렬
if (pivot != i)
{
for (int k = 0; k < 4; k++)
{
float tmp = a[i * 4 + k]; a[i * 4 + k] = a[pivot * 4 + k]; a[pivot * 4 + k] = tmp;
}
float tmpB = b[i]; b[i] = b[pivot]; b[pivot] = tmpB;
}
float div = a[i * 4 + i];
for (int k = i; k < 4; k++) a[i * 4 + k] /= div;
b[i] /= div;
for (int row = 0; row < 4; row++)
{
if (row != i)
{
float factor = a[row * 4 + i];
for (int k = i; k < 4; k++) a[row * 4 + k] -= factor * a[i * 4 + k];
b[row] -= factor * b[i];
}
}
}
for (int i = 0; i < 4; i++) x[i] = b[i];
return true;
}
}
}
5. 초중고 기하 교육 및 국방 전자전 ESM 위치 결정 성능 지표 비교
| 평가 지표 | 고전 방향 탐지법 (AOA 삼각측량) | 외산 MATLAB Nonlinear Solver | ZeliDesk 순수 C# Chan TDOA 솔버 |
|---|---|---|---|
| 위치 결정 정확도 (CEP) | 원거리 각도 오차 누적으로 500m 이상 발산 | 초기값 의존, 국소 최솟값 수렴 위험 | 10m 이내 초정밀 위치 표적화 (CRLB 일치) |
| 수치 해석 결정론성 | 각도 선형 교점 단순 계산 | 수치 반복 수렴 실패 및 지연 | 단 1회 행렬 연산으로 0.05ms 내 닫힌 해 도출 |
| 스텔스 전파 침묵성 | 송신 레이다 운용으로 아군 위치 노출 | 시뮬레이션 전용 | 100% 수동 수신(Passive) 아군 은밀성 완벽 보장 |
| 교육적 연계 | 단순 삼각비 각도 작도 | 수식 은닉 블랙박스 라이브러리 | 이차곡선(쌍곡선) 정의 및 해석기하 완벽 통합 |
| 군사 보안 / 국산화 | 외산 구형 ESM 장비 종속 | 군 폐쇄망 배포 라이선스 불가 | 전장 C4I / MUM-T 100% 순수 국산 C# 아키텍처 |
6. 결론: 교과서 속 쌍곡선 자취가 대한민국 영공 전자전의 눈이 되는 순간
ZeliDesk의 온디바이스 순수 C# 3차원 TDOA/FDOA 쌍곡선 다변측량 솔버는 수학 교과서에 머물러 있던 쌍곡선과 이차곡선의 아름다운 자취를 국방 첨단 전자전(ESM)의 강력한 전파 감시 무기로 승화시킨 자주 국방 소프트웨어의 쾌거입니다. 외산 연산 툴의 한계를 넘어 스택 메모리 0-Alloc 기반의 결정론적 실시간 닫힌 해법을 확립함으로써, 교육 현장에서는 기하학이 현대 전장의 보이지 않는 전파를 포착하는 위대한 무기임을 학생들에게 생생하게 가르치고, 국방 현장에서는 침묵 속에서 적의 모든 레이더 신호원을 정밀 타격 궤적 위에 올려놓는 확고한 전술적 우위를 보장할 것입니다.