GNSS 수신기는 다양한 기능을 수행하는 여러 하드웨어 및 소프트웨어 모듈로 구성된다. 이 장에서는 GNSS 수신기의 주요 구성 요소를 설명한다. 각 구성 요소는 GNSS 신호의 수신, 처리, 및 위치 계산을 위해 협력하며, 각 모듈의 역할을 이해하는 것이 GNSS 시스템의 동작을 이해하는 데 중요하다.
1. 안테나
안테나는 위성에서 발신되는 전파 신호를 수신하는 가장 첫 번째 구성 요소이다. GNSS 수신기의 안테나는 매우 높은 주파수 대역(주로 L-밴드)에서 신호를 수신할 수 있어야 하며, 전방향성(omnidirectional) 또는 방향성(directional)일 수 있다.
안테나는 신호를 다음과 같이 분류된 주파수에서 수신한다:
- L1 주파수: GPS의 경우 1575.42 MHz로, C/A 코드 및 P(Y) 코드를 포함.
- L2 주파수: GPS의 경우 1227.60 MHz로, 주로 군사용 목적으로 사용.
- L5 주파수: 1176.45 MHz로, 고정밀 응용에 사용.
2. 프런트엔드 모듈
안테나로 수신된 GNSS 신호는 매우 약하기 때문에, 프런트엔드 모듈에서는 신호를 증폭하고 필터링한다. 여기서 중요한 두 가지 기능은 다음과 같다:
- 증폭기: 저잡음 증폭기(LNA, Low Noise Amplifier)가 신호를 증폭시켜 처리하기 쉬운 수준으로 만든다.
- 필터링: 잡음과 간섭 신호를 제거하는 역할을 하며, 주파수 대역 내에서만 신호를 통과시킨다.
3. 믹서 및 주파수 변환기
GNSS 수신기는 신호를 직접 처리할 수 없으므로, 주파수를 낮추는 주파수 변환 과정이 필요하다. 이를 위해 믹서가 사용되며, 고주파 신호를 중간 주파수(IF, Intermediate Frequency)로 변환한다.
주파수 변환 수식
믹서에서는 입력 신호 \mathbf{S_{RF}}와 지역 발진기(local oscillator, LO)의 주파수 \mathbf{f_{LO}}를 곱하여 중간 주파수 신호를 생성한다:
여기서: - \mathbf{S_{RF}}: 수신된 고주파 신호 - \mathbf{f_{LO}}: 지역 발진기 주파수 - \mathbf{S_{IF}}: 변환된 중간 주파수 신호
믹서의 주된 목적은 고주파 신호를 저주파로 변환하여 후속 처리 모듈에서 효율적으로 처리할 수 있도록 하는 것이다.
4. 신호 샘플러 및 디지털 변환기
중간 주파수(IF) 신호는 아날로그-디지털 변환기(ADC)를 통해 디지털 신호로 변환된다. 이 과정에서 신호의 샘플링 주파수는 나이퀴스트 샘플링 정리에 따라 선택되며, GNSS 신호의 대역폭을 고려하여 적절한 샘플링이 이루어진다.
샘플링 수식
신호의 샘플링은 다음과 같은 수식으로 표현된다:
여기서: - T_s: 샘플링 주기 - n: 샘플링 인덱스 - \mathbf{S_{sampled}}(n): 샘플링된 디지털 신호
디지털 변환 과정에서 신호가 일정한 주기 간격으로 나누어져서 처리되며, 이후 신호 처리가 가능한 형태로 전달된다.
5. 신호 추적 모듈
GNSS 수신기의 핵심은 위성 신호를 정확하게 추적하는 능력이다. 이를 위해 코드 트래킹과 캐리어 트래킹이라는 두 가지 주요 과정이 수행된다. 이 두 트래킹 과정은 각각 신호의 위상과 주파수를 지속적으로 모니터링하여 정확한 측위에 필요한 정보를 얻는다.
5.1 코드 트래킹
코드 트래킹은 위성 신호에 포함된 코드를 수신기 내에서 재생성하고, 이를 위성 신호와 비교하여 시간 지연을 추정하는 과정이다. 코드 위상 동기 루프(CPLL, Code Phase Lock Loop)를 사용하여 코드의 지연을 지속적으로 추적한다.
코드 트래킹 수식
코드 지연을 나타내는 변수 \tau를 통해 코드 트래킹을 설명할 수 있다. 수신 신호 \mathbf{S_{recv}}와 재생성된 코드 \mathbf{S_{gen}}의 상관 관계는 다음과 같이 정의된다:
여기서: - \mathbf{S_{recv}}(t): 수신된 위성 신호 - \mathbf{S_{gen}}(t): 수신기 내에서 생성된 코드 - \tau: 시간 지연
위 식을 통해 코드 지연 값을 계산하고 이를 통해 측정된 거리를 추정한다.
5.2 캐리어 트래킹
캐리어 트래킹은 신호의 주파수 변화를 추적하여 정확한 위성 신호의 도플러 효과를 보정하는 과정이다. 주파수 동기 루프(FLL, Frequency Lock Loop) 또는 캐리어 위상 동기 루프(CPLL, Carrier Phase Lock Loop)를 사용하여 위상 및 주파수를 조정한다.
캐리어 트래킹 수식
캐리어 주파수 \mathbf{f_{carrier}}의 변화는 도플러 효과에 의해 발생하며, 이를 통해 주파수 보정을 수행한다. 주파수 차이 \Delta f는 다음과 같이 표현된다:
여기서: - \mathbf{f_{recv}}: 수신된 신호의 주파수 - \mathbf{f_{gen}}: 재생성된 주파수 - \Delta f: 주파수 차이
이 값은 도플러 주파수 변화를 보정하는 데 사용된다.
6. 신호 분리 및 채널 처리
GNSS 수신기는 다수의 위성 신호를 동시에 처리해야 하므로, 수신기 내부에서는 여러 개의 채널을 통해 각 위성의 신호를 분리하고 추적한다. 각 채널은 코드 트래킹과 캐리어 트래킹을 독립적으로 수행하여 정확한 위치 정보를 얻는다.
- 채널: 각 위성 신호는 독립적인 채널에서 처리되며, 보통 수십 개의 채널이 수신기 내부에 존재한다.
7. 측위 엔진
모든 신호 추적이 완료되면, 최종적으로 각 위성으로부터의 거리 정보를 이용하여 수신기의 위치를 계산하는 측위 엔진이 작동한다. 이 과정에서 삼변측량(trilateration) 또는 삼각측량(triangulation) 기법이 사용된다. 측위 엔진은 각 위성으로부터의 거리와 위성의 정확한 위치를 이용하여 수신기의 위치를 계산한다.
삼변측량 수식
위성에서 수신기까지의 거리 d_i는 신호 전파 시간 \Delta t_i와 빛의 속도 c를 이용하여 계산된다:
수신기의 위치 (x, y, z)는 여러 위성 신호의 거리 방정식을 통해 해결된다:
여기서: - (x_i, y_i, z_i): 각 위성의 위치 - d_i: 수신기에서 해당 위성까지의 거리
이 방정식을 이용하여 수신기의 3차원 위치를 구할 수 있다.
8. 클럭 보정 모듈
GNSS 수신기는 위성에서 오는 신호를 바탕으로 위치를 계산하지만, 수신기 내부 클럭의 오차로 인해 추가적인 보정이 필요하다. 위성은 매우 정밀한 원자 시계를 기반으로 신호를 보내지만, 대부분의 GNSS 수신기는 비교적 저렴한 크리스탈 진동자(clock oscillator)를 사용하므로 클럭 오차가 발생할 수 있다. 따라서 수신기의 클럭 오차를 실시간으로 추정하고 보정하는 클럭 보정 모듈이 필요하다.
클럭 오차 보정 수식
위성으로부터 측정된 거리 d_i는 클럭 오차 \Delta t_{clk}에 의해 다음과 같이 수정된다:
여기서: - \Delta t_{clk}: 수신기의 클럭 오차 - \Delta t_i: 각 위성으로부터의 전파 시간 - c: 빛의 속도
이를 통해 클럭 오차를 보정하고, 신호에 포함된 거리를 정확하게 계산할 수 있다. 다수의 위성에서 얻은 정보를 이용해 \Delta t_{clk}를 추정하고 보정한다.
9. PVT(Position, Velocity, Time) 계산 모듈
GNSS 수신기의 최종 목표는 위치(Position), 속도(Velocity), 그리고 시간(Time)을 계산하는 것이다. 이를 위해 앞서 설명한 거리 측정값과 클럭 보정값을 사용하여 3차원 좌표계에서 수신기의 정확한 위치와 속도를 계산한다. 또한, 정확한 시간 동기화 정보도 제공된다.
9.1 위치 계산
수신기의 위치는 삼변측량 방식을 통해 계산되며, 다수의 위성으로부터 받은 거리 정보를 바탕으로 수신기의 x, y, z 좌표를 다음과 같은 방정식을 통해 구한다:
이때, 각 위성의 위치 (x_i, y_i, z_i)는 미리 알려져 있으며, 각 위성으로부터의 거리 d_i는 앞서 언급한 신호 처리와 클럭 보정을 통해 얻어진다. 여러 위성으로부터 받은 정보를 통해 위치 방정식을 풀면, 수신기의 3차원 위치가 결정된다.
9.2 속도 계산
속도는 수신기 위치의 시간 변화율을 바탕으로 계산된다. 주로 도플러 효과를 이용하여 각 위성 신호의 주파수 변화량을 측정하고 이를 통해 수신기의 상대적인 속도를 계산한다.
속도 계산 수식
도플러 주파수 변화 \Delta f_{Doppler}를 통해 수신기와 위성 간의 상대 속도 v_r는 다음과 같이 계산된다:
여기서: - v_r: 상대 속도 - \Delta f_{Doppler}: 도플러 주파수 변화량 - c: 빛의 속도 - f_{carrier}: 신호의 캐리어 주파수
이를 바탕으로 수신기의 3차원 속도 벡터 \mathbf{v} = (v_x, v_y, v_z)를 계산한다.
9.3 시간 계산
GNSS 수신기는 위성으로부터 신호를 받아 정확한 UTC(협정 세계시)를 동기화한다. 수신된 신호에 포함된 타이밍 정보를 바탕으로 정확한 시간을 계산하며, 이를 통해 전 세계적으로 시간 동기화가 이루어진다.