1. 2022 개정 교육과정 교과 연계 분석
- 물리학 (전자기파의 간섭, 회절 한계, 원자시계 위상 동기화): 단일 구경 분해능 $\theta \approx 1.22 \lambda / D$ 한계를 극복하는 기선 길이 $B$ 간섭계 분해능 $\theta \approx \lambda / B$, 수소 메이저 원자시계 기반 두 수신 신호의 교차 상관(Cross-correlation).
- 지구과학/우주과학 (지구 자전에 의한 UV 커버리지, 블랙홀 그림자 관측): 지구 자전에 따른 기선 벡터 투영 궤적 $(u(t), v(t))$, 한국우주전파관측망(KVN) 및 사건지평선망원경(EHT)의 M87/궁수자리 A* 관측 원리.
- 수학 (반시테르트-체르니케 정리, 2차원 복소 푸리에 역변환): 가시도 함수 $V(u, v)$와 천체 밝기 $I(l, m)$ 사이의 2차원 푸리에 변환 쌍 $V(u, v) = \iint I(l, m) e^{-2\pi i (ul + vm)} dl dm$, 비완전 샘플링 오차를 복원하는 합성 빔(Dirty Beam) 디컨볼루션.
- 정보 (무할당 실시간 1,000Hz 복소수 가시도 위상 회전 및 역변환 코어): 1ms 실시간 루프 내에서 GC 무할당 스택 `ref struct`와 SIMD 복소수 누적으로 대기 요동 위상을 실시간 회전 보정하는 C# 온디바이스 파이프라인.
2. 간섭 가시도 및 반시테르트-체르니케 역합성 수식
두 안테나 $j, k$ 사이의 기선 벡터 $\mathbf{b}_{jk} = (u, v, w)$와 천체 방향 코사인 $(l, m)$에 대해, 관측된 복소 가시도(Complex Visibility) $V_{obs}(u, v)$는 대기 위상 오차 $\phi_j(t) - \phi_k(t)$를 포함합니다.
$$V_{obs}(u, v) = g_j(t) g_k^*(t) V_{true}(u, v) e^{i(\phi_j - \phi_k)}$$반시테르트-체르니케(van Cittert-Zernike) 정리에 의해 보정된 가시도 $V(u, v)$로부터 천체 밝기 이미지 $I(l, m)$는 2차원 역푸리에 변환으로 합성됩니다.
$$I_{dirty}(l, m) = \iint V(u, v) e^{2\pi i (u l + v m)} du dv$$폐합 위상(Closure Phase) $\Psi_{123} = \phi_{12} + \phi_{23} + \phi_{31}$을 이용하면 대기 위상 오차 $\phi_j$가 완벽히 상쇄되어, 극한의 대기 요동 속에서도 천체의 구조적 정보를 왜곡 없이 복원할 수 있습니다.
3. 1,000Hz 0-Alloc C# VLBI 가시도 위상 보정 및 합성 코어
using System;
using System.Numerics;
using System.Runtime.CompilerServices;
namespace ZeliDesk.Education.StemAstro.VlbiInterferometry
{
public readonly record struct BaselineVisibility(
float U_Wavelengths, // 기선 공간주파수 U (파장 단위)
float V_Wavelengths, // 기선 공간주파수 V (파장 단위)
Complex RawVisibility, // 측정된 복소 가시도
float Station1AtmPhaseRad, // 안테나 1 대기 위상 오차
float Station2AtmPhaseRad // 안테나 2 대기 위상 오차
);
public ref struct SynthesizedPixel
{
public float DirectionL; // 천체 각도 좌표 L (rad)
public float DirectionM; // 천체 각도 좌표 M (rad)
public float BrightnessJansky; // 합성 밝기 (Jy/beam)
}
public static class VlbiSynthesizerCore
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Complex CalibrateAtmosphericPhase(in BaselineVisibility vis)
{
// 1. 대기 요동 위상차 역회전 보정 (0-Alloc 복소수 연산)
float netPhaseError = vis.Station1AtmPhaseRad - vis.Station2AtmPhaseRad;
Complex phaseRotator = Complex.FromPolarCoordinates(1.0, -netPhaseError);
return vis.RawVisibility * phaseRotator;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void SynthesizePixelBatch(
ReadOnlySpan visibilities,
float lRad,
float mRad,
ref SynthesizedPixel output)
{
output.DirectionL = lRad;
output.DirectionM = mRad;
float realAccum = 0f;
float twoPi = 2f * MathF.PI;
// 2. 반시테르트-체르니케 2D 역푸리에 단일 화소 누적 (Dirty Map)
for (int i = 0; i < visibilities.Length; i++)
{
ref readonly var vis = ref visibilities[i];
Complex calibrated = CalibrateAtmosphericPhase(in vis);
float phase = twoPi * (vis.U_Wavelengths * lRad + vis.V_Wavelengths * mRad);
float cosP = MathF.Cos(phase);
float sinP = MathF.Sin(phase);
// e^(i * phase) = cos + i*sin 과의 내적의 실수부
realAccum += (float)calibrated.Real * cosP - (float)calibrated.Imaginary * sinP;
}
output.BrightnessJansky = MathF.Max(0f, realAccum / Math.Max(1, visibilities.Length));
}
}
}
4. 교육적 가치 및 EHT 블랙홀 탐구 연계
본 교구는 학생들에게 전파망원경이 왜 하나의 거대한 접시 안테나를 만드는 대신 여러 대를 띄워 연결하는지, 어떻게 지구 자전 운동이 주파수 공간의 격자를 채우는지를 직관적으로 보여줍니다. 학생들은 서울 연세대, 울산대, 제주 탐라대의 KVN 3개 기선 데이터를 조작하며 대기 수증기 왜곡을 극복하고 사건의 지평선을 선명하게 복원해내는 첨단 전파천문학 알고리즘을 생생하게 경험합니다.