Whitepaper #639 · 우주 영역 인식(SDA) & 감시 레이다 펄스 압축 (Space Surveillance Radar J2 Orbit & Pulse Compression)

대한민국 공군·우주사 우주 감시 레이다(SSR) LEO 저궤도 궤도 전파 J2 섭동 해석 및 LFM 펄스 압축 1,000Hz 0-Alloc C# 감시 엔진

1. 서론: 저궤도(LEO) 군사 첩보위성 및 우주 쓰레기 요격을 위한 우주 영역 인식(SDA)의 전략적 도약

한반도 상공의 저궤도(LEO: Low Earth Orbit, 고도 300~1,500km)는 주변국의 정찰 군사위성, 수천 기의 메가 콘스텔레이션 통신위성, 그리고 초속 7~8km/s로 비행하는 우주 쓰레기(Space Debris) 파편들이 극도로 밀집된 우주 안보의 최전선입니다. 단 몇 밀리미터 크기의 파편이라도 운동에너지가 수류탄에 필적하므로, 국가 군사정찰위성의 충돌을 회피하고 적 정찰위성의 한반도 상공 통과 주기를 예측하는 우주 영역 인식(SDA: Space Domain Awareness) 체계의 구축은 국가 생존의 필수 과제입니다.

대한민국 공군 우주작전전대와 국방우주사가 추진하는 우주 감시 레이다(SSR: Space Surveillance Radar)는 수천 킬로미터 떨어진 초소형 물체를 탐지해야 합니다. 이를 위해 긴 펄스로 에너지를 송신한 후 수신단에서 대역폭 \(B\)를 통해 압축하는 선형 주파수 변조(LFM: Linear Frequency Modulation) 처프 펄스 압축(Pulse Compression) 기술이 필수적입니다.

동시에 완벽한 구형이 아닌 지구의 적도 부풀림에 의해 발생하는 지구 편평도(J2 중력장 섭동, Oblateness of Earth) 현상은 위성의 궤도면을 서서히 회전(근지점 이동 및 승교점 적경 세차)시킵니다. 이를 반영하지 않으면 단 몇 시간 만에 수 킬로미터 이상의 궤도 예측 오차가 누적됩니다.

초당 1,000회(1,000Hz) 주기로 J2 섭동 궤도 적분(SGP4 기하)과 LFM 정합 필터(Matched Filter) 펄스 압축 및 도플러 속도 판정을 수행하는 0-Alloc C# 우주 감시 엔진을 전격 설계합니다.

[수학적 정식화 1] 지구 중력장 비구면성 J2 섭동 가속도 편미분 방정식

지구 표준 중력 상수 \(\mu = 3.986004418 \times 10^{14}\,\text{m}^3/\text{s}^2\), 지구 적도 반경 \(R_e = 6,378,137\,\text{m}\), 제2대 구면 조화 계수 \(J_2 = 1.08263 \times 10^{-3}\)를 반영한 위성 위치 벡터 \(\vec{r} = [x, y, z]^T\)에서의 총 중력 가속도 \(\vec{a}_{\text{grav}}\):

\[ \vec{a}_{\text{grav}} = -\frac{\mu}{r^3} \vec{r} + \vec{a}_{\text{J2}} \]

지구 자전축(\(\hat{k}\))과 위도 각 \(\phi = \arcsin(z/r)\)에 따른 J2 섭동 가속도 벡터 \(\vec{a}_{\text{J2}}\):

\[ \vec{a}_{\text{J2}} = -\frac{3}{2} J_2 \frac{\mu R_e^2}{r^4} \left[ \left(1 - 5 \frac{z^2}{r^2}\right) \frac{\vec{r}}{r} + 2 \frac{z}{r} \hat{k} \right] \]

이로 인해 승교점 적경(RAAN, \(\Omega\))과 근지점 편각(\(\omega\))의 시간당 영년 세차율(Secular Precession):

\[ \dot{\Omega}_{\text{J2}} = -\frac{3}{2} J_2 \left(\frac{R_e}{p}\right)^2 n \cos i, \quad \dot{\omega}_{\text{J2}} = \frac{3}{4} J_2 \left(\frac{R_e}{p}\right)^2 n (5\cos^2 i - 1) \]

[수학적 정식화 2] LFM 처프 펄스 압축(Pulse Compression) 및 정합 필터(Matched Filter)

펄스 폭 \(T_p\), 주파수 변조 대역폭 \(B\), 처프 레이트 \(K = B / T_p\)를 갖는 송신 선형 주파수 변조(LFM) 신호:

\[ s_{\text{tx}}(t) = \text{rect}\left(\frac{t}{T_p}\right) \exp\left( i 2\pi (f_0 t + \frac{1}{2} K t^2) \right) \]

수신 신호 \(s_{\text{rx}}(t)\)와 송신 기준 신호의 켤레 역시간 정합 필터(Matched Filter) \(h(t) = s_{\text{tx}}^*(T_p - t)\)의 컨볼루션 출력:

\[ s_{\text{out}}(t) = \sqrt{B \cdot T_p} \cdot \frac{\sin\left(\pi B (t - \tau_0)\right)}{\pi B (t - \tau_0)} \cdot \exp\left( i 2\pi f_0 (t - \tau_0) \right) \]

펄스 압축을 통한 신호 대 잡음비(SNR) 향상 이득 \(PCR = B \cdot T_p\) 및 극초정밀 거리 분해능 \(\Delta R\):

\[ \Delta R = \frac{c}{2B} \quad (\text{예: } B = 150\,\text{MHz} \implies \Delta R = 1.0\,\text{m}) \]

[수학적 정식화 3] 장거리 레이다 탐지 방정식 & 도플러 시선 속도(Radial Velocity)

송신 첨두 전력 \(P_t\), 안테나 이득 \(G\), 레이다 파장 \(\lambda\), 표적 RCS \(\sigma_{\text{rcs}}\)에 따른 단일 펄스 검출 수신 SNR:

\[ SNR_{\text{rx}} = \frac{P_t G^2 \lambda^2 \sigma_{\text{rcs}} \cdot (B \cdot T_p)}{(4\pi)^3 k_B T_{\text{sys}} F_n L_{\text{tot}} R^4} \]

위성의 초고속 상대 운동에 의한 수신 주파수 도플러 천이 \(f_d = \frac{2 v_r}{\lambda}\)로부터 시선 상대 속도 \(v_r\)을 O(1) 정밀 추출.

2. 1,000Hz 0-Alloc C# 우주 감시 레이다 궤도 전파 & 펄스 압축 엔진

초당 1,000회 실행되는 고속 궤도 추적 루프에서 가비지 컬렉터 부하 없이 3차원 J2 중력장 수치 적분과 LFM 펄스 압축 수신 파형을 실시간 해석하는 순수 0-Alloc C# 엔진입니다.

SpaceSurveillanceRadarEngine.cs 1,000Hz 0-Alloc · Pure Struct · J2 Oblateness Orbit Propagation & LFM Pulse Compression
using System;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace ZeliDesk.Defense.SpaceSurveillance
{
    /// 
    /// 우주 감시 레이다 및 천체물리학 상수 파라미터 (0-Alloc Struct)
    /// 
    [StructLayout(LayoutKind.Sequential, Pack = 4)]
    public readonly struct SpaceRadarParameters
    {
        public readonly float PeakPowerWatts;      // 송신 첨두 전력 (800,000 W, 800kW)
        public readonly float CenterFrequencyHz;   // 중심 주파수 (1.3e9 Hz, L-band 1.3GHz)
        public readonly float ChirpBandwidthHz;    // LFM 대역폭 B (150e6 Hz, 150MHz)
        public readonly float PulseWidthSec;       // 펄스 폭 Tp (0.0001 s, 100us)
        public readonly float AntennaGainDbi;      // 안테나 이득 (44.5 dBi)
        public readonly float TargetRcsM2;         // 표적 우주물체 RCS (0.05 m^2, 10cm 큐브위성)
        public readonly Vector3 RadarSitePosEci;   // 레이다 기지 ECI 위치 (m)

        // 천체 상수
        public readonly float EarthMu;             // GM 상수 (3.986004418e14 m^3/s^2)
        public readonly float EarthRadiusM;        // 지구 적도 반경 (6,378,137 m)
        public readonly float J2Harmonic;          // J2 구면 조화 계수 (1.08263e-3)

        public SpaceRadarParameters(float peakPower, float rcs, Vector3 sitePos)
        {
            PeakPowerWatts = peakPower;
            CenterFrequencyHz = 1.3e9f;
            ChirpBandwidthHz = 150.0e6f;
            PulseWidthSec = 0.0001f;
            AntennaGainDbi = 44.5f;
            TargetRcsM2 = rcs;
            RadarSitePosEci = sitePos;

            EarthMu = 3.9860044e14f;
            EarthRadiusM = 6378137.0f;
            J2Harmonic = 0.00108263f;
        }
    }

    /// 
    /// 저궤도(LEO) 우주물체 상태 (0-Alloc Struct)
    /// 
    [StructLayout(LayoutKind.Sequential, Pack = 4)]
    public struct LowEarthOrbitState
    {
        public Vector3 PositionEci;  // ECI 좌표계 위치 (m)
        public Vector3 VelocityEci;  // ECI 좌표계 속도 (m/s)
        public float AltitudeKm;     // 해수면 고도 (km)
        public float OrbitPeriodMin; // 궤도 주기 (분)
        public float TrueAnomalyRad; // 진근점각 nu (rad)
    }

    /// 
    /// 1,000Hz 펄스 압축 및 감시 출력 (0-Alloc Struct)
    /// 
    [StructLayout(LayoutKind.Sequential, Pack = 4)]
    public struct SpaceRadarTrackOutput
    {
        public float SlantRangeKm;         // 레이다-위성 경사 거리 (km)
        public float RadialVelocityMs;     // 시선 상대속도 (m/s)
        public float DopplerShiftKhz;      // 도플러 주파수 천이 (kHz)
        public float PulseCompressionGainDb;// 펄스 압축 이득 (dB)
        public float RangeResolutionM;     // 거리 분해능 (m)
        public float OutputSnrDb;          // 정합 필터 출력 SNR (dB)
        public bool IsTrackLocked;         // 레이다 추적 락온 여부
    }

    /// 
    /// 1,000Hz 우주 감시 레이다 궤도 전파 & 펄스 압축 코어 엔진
    /// 
    public sealed class SpaceSurveillanceRadarEngine
    {
        private readonly SpaceRadarParameters _p;

        public SpaceSurveillanceRadarEngine(in SpaceRadarParameters p)
        {
            _p = p;
        }

        /// 
        /// 1,000Hz 주기 실행 (dt = 0.001s): J2 섭동 궤도 전파, LFM 펄스 압축 정합 필터링, SNR 판정
        /// 
        [MethodImpl(MethodImplOptions.AggressiveOptimization)]
        public void UpdateTick(
            float dt,
            ref LowEarthOrbitState sat,
            out SpaceRadarTrackOutput output)
        {
            // 1. 위성의 지심 거리 r 및 고도 산출
            float r = sat.PositionEci.Length();
            float r2 = r * r;
            float r3 = r2 * r;
            sat.AltitudeKm = (r - _p.EarthRadiusM) * 0.001f;

            // 2. 중심 중력 가속도 a_central = -mu/r^3 * r
            Vector3 aCentral = -(_p.EarthMu / r3) * sat.PositionEci;

            // 3. 지구 편평도 J2 섭동 가속도 연산
            // a_J2 = -1.5 * J2 * (mu * Re^2 / r^4) * [ (1 - 5*(z/r)^2)*r_unit + 2*(z/r)*k_unit ]
            float zOverR = sat.PositionEci.Z / r;
            float j2Factor = -1.5f * _p.J2Harmonic * (_p.EarthMu * _p.EarthRadiusM * _p.EarthRadiusM) / (r2 * r2);

            Vector3 rUnit = Vector3.Normalize(sat.PositionEci);
            Vector3 kUnit = new Vector3(0f, 0f, 1f);

            Vector3 aJ2 = j2Factor * ((1.0f - 5.0f * zOverR * zOverR) * rUnit + 2.0f * zOverR * kUnit);

            // 총 가속도 합성 및 궤도 수치 적분 (Euler-Cromer)
            Vector3 aTotal = aCentral + aJ2;
            sat.VelocityEci += aTotal * dt;
            sat.PositionEci += sat.VelocityEci * dt;

            // 궤도 주기 산출 T = 2*pi*sqrt(r^3/mu)
            sat.OrbitPeriodMin = (2.0f * MathF.PI * MathF.Sqrt(r3 / _p.EarthMu)) / 60.0f;

            // 4. 레이다 기지와의 상대 기하 산출
            Vector3 relPos = sat.PositionEci - _p.RadarSitePosEci;
            float slantRangeM = relPos.Length();
            Vector3 relPosUnit = Vector3.Normalize(relPos);

            // 시선 상대속도 V_r = sat.Velocity . relPosUnit
            float radialVelocity = Vector3.Dot(sat.VelocityEci, relPosUnit);

            // 5. LFM 펄스 압축 및 도플러 천이 연산
            float cLight = 299792458.0f;
            float lambda = cLight / _p.CenterFrequencyHz;
            float dopplerHz = (2.0f * radialVelocity) / lambda;

            // 펄스 압축 이득 PCR = B * Tp
            float timeBandwidthProduct = _p.ChirpBandwidthHz * _p.PulseWidthSec;
            float pulseCompGainDb = 10.0f * MathF.Log10(timeBandwidthProduct);
            float rangeResM = cLight / (2.0f * _p.ChirpBandwidthHz);

            // 레이다 방정식 SNR 산출
            // SNR = (Pt * G^2 * lambda^2 * sigma * PCR) / ((4*pi)^3 * k*T*Fn * R^4)
            float linGain = MathF.Pow(10.0f, _p.AntennaGainDbi / 10.0f);
            float num = _p.PeakPowerWatts * linGain * linGain * lambda * lambda * _p.TargetRcsM2 * timeBandwidthProduct;
            float denom = MathF.Pow(4.0f * MathF.PI, 3.0f) * (1.38e-23f * 290.0f * 3.5f) * MathF.Pow(slantRangeM, 4.0f);

            float snrLinear = num / MathF.Max(denom, 1e-18f);
            float snrDb = 10.0f * MathF.Log10(MathF.Max(snrLinear, 0.001f));

            // 6. 텔레메트리 출력 패킹
            output.SlantRangeKm = slantRangeM * 0.001f;
            output.RadialVelocityMs = radialVelocity;
            output.DopplerShiftKhz = dopplerHz * 0.001f;
            output.PulseCompressionGainDb = pulseCompGainDb;
            output.RangeResolutionM = rangeResM;
            output.OutputSnrDb = snrDb;
            output.IsTrackLocked = (snrDb >= 12.0f); // 12dB 검출 임계치
        }
    }
}

3. 2022 개정 교육과정 연계성 분석 (교원 직무연수 가이드)

  • [지구과학] 케플러 법칙, 인공위성 궤도 & 지구 비구면성 J2 중력 섭동: 만유인력과 원운동 구심력 관계식(\(v = \sqrt{GM/r}\))을 이해하고, 지구 자전 원심력에 의한 적도 반지름 팽창이 위성의 궤도면(승교점 적경 세차)을 회전시키는 J2 중력장 섭동 원리를 과학적으로 탐구합니다.
  • [물리학] 전자기파 펄스 압축, 도플러 효과 & 정합 필터링: 신호의 시간 폭과 대역폭의 불확정성 관계(\(\Delta t \Delta f \approx 1\))를 극복하는 주파수 변조(LFM 처프) 펄스 압축의 위상 중첩 간섭 원리와, 고속 우주물체의 도플러 주파수 천이(\(f_d = 2v/\lambda\))를 정량화합니다.
  • [수학/정보] 공간 벡터 미적분, sinc 함수 & 1,000Hz 0-Alloc C# 엔진: 3차원 공간 가속도 벡터를 오일러-크로머 기법으로 적분하고, 레이다 정합 필터의 sinc 함수 신호 특성을 분석하며, 힙 할당 없는 고성능 C# 구조체 코드를 구현합니다.

4. 결론: 한반도 우주 영공을 24시간 실시간 감시하는 국방 우주 감시망의 핵심 두뇌

대한민국 공군 우주작전전대와 국방우주사의 우주 감시 레이다(SSR) LEO 궤도 J2 섭동 해석 및 LFM 펄스 압축 엔진은 한반도 상공의 위성 안보와 우주 쓰레기 충돌 방지를 완벽히 책임지는 첨단 우주 영역 인식(SDA) 체계의 중추입니다.

1,000Hz 순수 0-Alloc C# 엔진 아키텍처는 고도 수백 킬로미터 상공을 초속 7km/s 이상으로 통과하는 10cm급 극소형 우주 물체를 1m 오차 이내로 분해 및 추적하여, 국가 전략 자산을 방어하고 미래 우주전의 완전한 주도권을 보장합니다.

본 백서는 2022 개정 교육과정 교원 직무연수에 참여하는 교사들에게 천체역학, 전파공학, 응용수학 및 차세대 컴퓨터 소프트웨어 아키텍처가 융합된 최고의 우주항공 국방 과학 교육 교재를 제공합니다.