# GNSS 수신기의 기본 동작 흐름

#### 전체 개요

GNSS(Global Navigation Satellite System) 수신기는 인공위성에서 전송되는 무선 신호를 수신한 뒤, 내부적으로 특정한 하드웨어 및 소프트웨어 과정을 거쳐 위성까지의 거리(의사거리)와 도플러 주파수 등을 추정한다. 이러한 측정값을 통해 사용자는 자신의 위치, 속도 등 항법 정보를 계산할 수 있게 된다. 여기서는 GNSS 수신기의 내부 처리 흐름을 단계별로 살펴보며, 각 단계에서 수행되는 연산 및 신호 처리 과정을 엄밀하게 설명한다. 결론에 해당하는 언급은 하지 않는다.

아래는 GNSS 수신기의 전형적인 처리 흐름을 간략히 나타낸 예시 흐름도이다.

{% @mermaid/diagram content="flowchart TB
A(안테나) --> B(RF Front-End)
B --> C(IF단 변환)
C --> D(ADC)
D --> E(코드 획득 & 트래킹)
E --> F(측정값 산출)
F --> G(항법 해결)" %}

위 흐름도에서, 실제 항법 해(解)를 구하는 단계는 “측정값 산출” 이후에 이루어지지만, 여기서는 “GNSS 수신기의 기본 동작”에 집중하기 위해 항법 해 과정은 상세히 다루지 않는다. 본 장에서는 다음과 같은 주요 단계를 설명한다.

1. **RF 전치 증폭 및 필터링**
2. **주파수 변환(Down-conversion) 및 중간 주파수 신호 생성**
3. **디지털화(ADC 변환) 및 신호 전처리**
4. **코드 획득(Acquisition)**
5. **코드 추적(Delay-Lock Loop, DLL) 및 반송파 추적(Carrier Tracking Loop)**
6. **측정값 산출(의사거리, 반송파 위상 등)**

이 중 항법 해석(측위 알고리즘)은 제외한다. 아래부터 각 단계별 주요 내용을 상세히 기술하되, 결론은 포함하지 않는다.

#### 1. RF 전치 증폭 및 필터링

GNSS 위성 신호는 매우 미약한 전력 수준에서 도달한다. 따라서 먼저 안테나에서 수신된 신호를 저잡음증폭기(LNA)를 통해 증폭하고, 필요에 따라 대역 통과 필터로 잡음이나 불필요한 스펙트럼 성분을 제거한다.

* GNSS 대역(예: L1 = 1575.42 MHz 등)은 매우 협소한 폭을 가지므로, 우선 순수 신호를 최대한 손실 없이 전달하는 것이 중요하다.
* LNA와 필터를 거치면서 신호는 일정 수준으로 증폭되며, 이 과정에서 왜곡이 최소화되도록 매우 낮은 잡음 지수를 갖는 부품이 사용된다.

RF 전치 증폭 및 필터링을 마치면, GNSS 신호는 잡음 비율(N0)이 개선된 상태가 된다. 이 과정은 하드웨어적 특성이 강하나, 최종적으로 디지털 신호 처리를 위한 기반을 마련한다.

#### 2. 주파수 변환 및 중간 주파수 신호 생성

LNA와 필터링을 거친 신호는 그대로는 너무 높은 주파수를 가지므로, 내부 혼합기(Mixer)를 통해 더 낮은 중간 주파수(IF, Intermediate Frequency)로 변환한다. 이를 **다운 컨버전(down-conversion)** 과정이라고 한다.

* 위상 회로에서 생성된 기준 로컬 오실레이터 신호와 곱셈(혼합, Mixing) 과정을 거쳐 높은 주파수 성분을 제거하고, 목표로 하는 IF 대역으로 옮긴다.
* 예컨대, $1575.42\text{ MHz}$ 대역 신호를 특정 내부 오실레이터 주파수(예: $1575\text{ MHz}$)와 곱해 $0.42\text{ MHz}$ 정도의 IF 신호로 만든다.
* 이때 출력 신호에는 관심 대역(목표 IF 성분)과 이미지 주파수 등이 함께 나타날 수 있으므로, 추가적인 IF 필터를 통해 불필요한 스펙트럼을 제거한다.

> 혼합 과정에서, 수신 신호 $s(t)$와 로컬 오실레이터 신호 $l(t)$의 곱은 다음과 같이 표현된다:
>
> $$
> y\`(t) = s(t) \cdot l(t)
> $$
>
> 만약 $s(t)$가 반송파 주파수 $f\_c$ 근처의 신호이고, $l(t)$가 주파수 $f\_{LO}$인 순수 정현파라면, 곱셈 결과는 보통 $|f\_c - f\_{LO}|$ 근처의 저주파(IF) 성분과 $f\_c + f\_{LO}$ 근처의 고주파 성분을 생성한다. 이 중에서 고주파 성분은 필터링을 통해 제거하고, 저주파(IF) 영역만 남긴다.

이렇게 중간 주파수로 변환된 후, 신호는 디지털화하기에 좀 더 적절한 주파수 대역과 신호 세기를 가진다. 이후 다음 단계인 ADC 변환으로 넘어간다.

#### 3. 디지털화(ADC 변환) 및 신호 전처리

중간 주파수(IF) 대역으로 변환된 GNSS 신호는 아날로그-디지털 변환기(ADC)를 거쳐 디지털 신호로 바뀐다. ADC를 거친 신호는 수신기의 소프트웨어 혹은 DSP(Digital Signal Processor)에서 아래와 같은 처리를 거친다.

1. **디지털 필터링:** 아날로그 단계에서 제거되지 못한 잔여 잡음이나 불필요한 대역을 디지털 필터로 한 번 더 억제한다.
2. **복소 신호 변환:** 수신 신호를 복소(baseband) 형태로 변환하기 위해, $I$ 성분(In-phase)과 $Q$ 성분(Quadrature-phase)을 분리한다. 예를 들어, $\mathbf{x}(n) = \begin{bmatrix} x\_I(n) \ x\_Q(n) \end{bmatrix}$ 와 같이 샘플 시점 $n$에서의 I/Q 샘플을 벡터 $\mathbf{x}(n)$로 정의할 수 있다.
3. 주파수 오프셋 조정:

   위성 신호는 도플러 효과나 수신기 내부 기준 오실레이터 오차로 인해 목표 IF 대역에서 약간 벗어날 수 있으므로, 추가적인 디지털 혼합 과정을 통해 주파수 오프셋을 조정한다.

   예: $\mathbf{x}\_\text{baseband}(n) = \mathbf{x}(n) \cdot e^{-j2\pi \Delta f n T\_s}$

   여기서 $\Delta f$는 추정된 주파수 오차, $T\_s$는 샘플링 주기다.

이로써 수신기는 코드 획득(Acquisition) 및 코드 추적(Tracking) 등 본격적인 GNSS 신호 처리를 위한 준비를 마치게 된다.

#### 4. 코드 획득(Acquisition)

코드 획득 과정은 GNSS 수신기가 특정 위성의 스펙트럼 확산 신호를 찾아내고, 그 신호에 대한 대략적인 코드 지연량(code phase)과 도플러 주파수를 결정하는 단계다. GNSS 신호는 PRN(Pseudo-Random Noise) 코드를 사용하여 확산되어 있으므로, 수신단에서 이를 역확산(Despreading)하기 위해서는 다음과 같은 과정을 수행한다.

1. **탐색(search) 범위 설정**
   * 위성 신호에 발생하는 최대 도플러 주파수 편이(수 kHz 범위)와 코드 지연 범위를 고려해, 가능한 모든 조합을 일정 간격으로 훑어본다.
   * 예컨대, 코드 지연이 한 칩 이하의 해상도를 확보하도록 단계(step)를 구성하고, 도플러 주파수도 수백 Hz 정도 간격으로 세분화한다.
2. **상관(Correlation) 연산**
   * 수신 신호(디지털화된 I/Q 샘플)와 국부적으로 생성한 PRN 코드를 곱한 뒤, 일정 구간 동안 누적하여 상관값을 계산한다.
   * 도플러 보정을 위해, 국부 반송파도 함께 생성하여 $\Delta f$만큼 주파수 이동된 신호를 곱해가며 상관값을 구한다.
   * 일반적으로 코드 획득 시점에선 빠른 FFT 기반의 병렬 탐색 알고리즘이나, 시분할 방식의 순차 탐색(Serial Search) 알고리즘을 쓴다.
3. **상관값 비교 및 임계값 판정**
   * 상관값이 통계적으로 유의미한 수준(잡음 분포를 고려한 임계값) 이상인 경우, 해당 도플러 주파수와 코드 지연값이 추정된다.
   * 이는 수신기가 현재 특정 위성의 신호를 “발견”했음을 의미한다.

> 예를 들어, 코드 획득 시 다음과 같은 상관량을 계산한다고 할 수 있다.
>
> $$
> R(\tau, \Delta f) = \sum\_{n=0}^{N-1} x\_I(n) , p\_I(n; \tau, \Delta f) ;+; x\_Q(n) , p\_Q(n; \tau, \Delta f),
> $$
>
> 여기서
>
> * $x\_I(n)$, $x\_Q(n)$는 수신 I/Q 샘플,
> * $p\_I(n; \tau, \Delta f)$, $p\_Q(n; \tau, \Delta f)$는 PRN 코드를 $\tau$만큼 지연하고 도플러 $\Delta f$를 반영한 국부 I/Q 신호다.
> * $N$은 누적하는 샘플 수를 나타낸다.

획득을 통해 결정된 대략적인 코드 지연값과 도플러 주파수는, 이후 정밀 추적(Tracking) 단계에서 더욱 정확하게 수정된다.

#### 5. 코드 추적(Delay-Lock Loop, DLL) 및 반송파 추적(Carrier Tracking Loop)

획득에서 결정된 대략적인 파라미터를 바탕으로, GNSS 수신기는 코드 및 반송파를 동시에 정밀하게 추적한다. 이 과정을 통해 의사거리와 도플러 주파수를 고정밀로 측정할 수 있으며, 그 결과가 최종적으로 항법 해석에 활용된다.

**코드 추적(Delay-Lock Loop, DLL)**

* Early, Prompt, Late correlator: 전형적으로 세 개의 국부 코드(E, P, L)를 사용하여 수신 신호와 상관을 취하고, 각 상관값의 차이를 이용해 코드 지연 오차를 추정한다.
  * 예: $\mathbf{x}\_E(n), \mathbf{x}\_P(n), \mathbf{x}\_L(n)$ 와 같이 세 지연 버전(Early, Prompt, Late)에 대해 상관을 계산한다.
* 오차 신호(Error Signal) 생성

  : Early와 Late의 상관값 차이에 기반해 코드 타이밍 오차를 추정하고, 이를 DLL의 루프 필터로 전달한다.

  * 예를 들어, $e\_\text{DLL} = R\_\text{E} - R\_\text{L}$, 라는 간단한 형태로 표현할 수 있다(각 $R\_\text{E}, R\_\text{L}$는 Early, Late 상관값).
* **루프 필터(Loop Filter) 및 누적 제어**: 루프 필터는 코드 지연 오차 추정값을 평활화하여 국부 코드 발생기의 타이밍을 미세 조정한다.

**반송파 추적(Carrier Tracking Loop)**

* **위상 추적기(Phase-Lock Loop, PLL) 또는 주파수 추적기(Frequency-Lock Loop, FLL)**: 반송파 위상 또는 주파수를 추적하기 위해, 수신기 내부에서 국부 반송파를 생성하고 수신 신호와의 위상(or 주파수) 차이를 추정한다.
* 오차 신호 산출:
  * 만약 PLL이라면, $e\_\text{PLL} = \arctan\biggl(\frac{R\_Q}{R\_I}\biggr)$, 같은 방식으로 I/Q 상관값으로부터 위상 차이를 구한다($R\_I, R\_Q$는 Prompt 지점에서의 I/Q 상관값).
* **루프 필터와 주파수 보정**: 앞서 계산된 오차 신호를 루프 필터에 통과시켜, 국부 반송파 발생기의 주파수와 위상을 보정함으로써 도플러 오프셋을 정밀하게 추적한다.

이처럼 DLL과 PLL(또는 FLL)이 동시에 동작하여, 코드 지연과 반송파 위상을 지속적으로 갱신·보정한다.

#### 6. 측정값 산출(의사거리, 반송파 위상 등)

코드 추적과 반송파 추적이 안정 상태에 진입하면, GNSS 수신기는 매 시점별로 신호의 관측값을 산출한다. 대표적인 관측값으로는 다음이 있다.

1. **코드 기반 의사거리(Code Pseudorange)**
   * 추적 중인 Prompt 지점의 코드 지연량 $\hat{\tau}$를 이용해, $\rho\_\text{code} = c , \hat{\tau}$ 로 측정값을 구한다($c$는 광속).
   * 일반적으로 수 ns 단위의 코드 지연 오차가 존재하므로, 추적 정확도가 매우 중요하다.
2. **반송파 위상 측정(Carrier Phase)**
   * PLL을 통해 추적된 위상 $\hat{\phi}$를 통해, 반송파 위상 기반 의사거리(캐리어 위상 관측값)를 얻을 수 있다.
   * 이는 $\rho\_\text{carrier} = \frac{\lambda}{2\pi} \hat{\phi}$ 와 같이 표현할 수 있으며, $\lambda$는 반송파 파장이다.
3. **도플러 주파수 추정값(Doppler) 혹은 반송파 주파수 오프셋**
   * PLL 또는 FLL의 추정 오차 신호를 통해 위성과의 상대 속도 정보를 얻는다.
   * 이를 통해 사용자 플랫폼의 속도 계산에 활용하기도 한다.

측정값 산출 이후에는, 위성의 궤도력(에페머리스)와 측정된 의사거리를 조합하여 사용자 위치를 추정하는 과정을 거치지만, 이는 “GNSS 수신기의 기본 동작 흐름” 범위를 넘어서는 항법 해석에 해당하므로 여기서는 생략한다.
