KR101056094B1 - 다수의 위성 시스템에 속하는 위성들로부터 수신된 신호에대해 신호 상관 연산을 수행하는 방법 및 장치 - Google Patents

다수의 위성 시스템에 속하는 위성들로부터 수신된 신호에대해 신호 상관 연산을 수행하는 방법 및 장치 Download PDF

Info

Publication number
KR101056094B1
KR101056094B1 KR1020087008650A KR20087008650A KR101056094B1 KR 101056094 B1 KR101056094 B1 KR 101056094B1 KR 1020087008650 A KR1020087008650 A KR 1020087008650A KR 20087008650 A KR20087008650 A KR 20087008650A KR 101056094 B1 KR101056094 B1 KR 101056094B1
Authority
KR
South Korea
Prior art keywords
signal
code
correlation
galileo
satellite
Prior art date
Application number
KR1020087008650A
Other languages
English (en)
Other versions
KR20080049818A (ko
Inventor
챨스 아브라함
Original Assignee
글로벌 로케이트, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 글로벌 로케이트, 인크. filed Critical 글로벌 로케이트, 인크.
Publication of KR20080049818A publication Critical patent/KR20080049818A/ko
Application granted granted Critical
Publication of KR101056094B1 publication Critical patent/KR101056094B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/14Determining absolute distances from a plurality of spaced points of known location
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/35Constructional details or hardware or software details of the signal processing chain
    • G01S19/37Hardware or software details of the signal processing chain
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/30Acquisition or tracking or demodulation of signals transmitted by the system code related
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/33Multimode operation in different systems which transmit time stamped messages, e.g. GPS/GLONASS

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Radio Relay Systems (AREA)

Abstract

복수의 위성 위치 확인 시스템들 중 하나로부터 오는 위성 신호와 의사 랜덤 기준 코드 사이의 컨볼루션을 계산하는 방법 및 장치이다. 상기 방법 및 장치는 복수의 해상도 모드로 동작할 수 있으며, 따라서 컨볼루션 프로세싱의 민감도를 향상시킬 수 있다.

Description

다수의 위성 시스템에 속하는 위성들로부터 수신된 신호에 대해 신호 상관 연산을 수행하는 방법 및 장치{METHOD AND APPARATUS FOR PERFORMING SIGNAL CORRELATION FOR SIGNALS RECEIVED FROM SATELLITES IN MULTIPLE SATELLITE SYSTEMS}
본 발명은 디지털 신호 수신기들을 위한 신호 상관기들(correlators)에 관련된 것이고, 더욱 상세하게는, 본 발명은 예를 들어 전역 위치 확인 시스템(GPS) 위성 및 갈릴레오 위성과 같이 다수의 위성 시스템에 속하는 위성들로부터 수신된 신호에 대해 신호 상관 연산을 수행하는 방법 및 장치에 관련된 것이다.
전역 위성 항법 시스템(Global Satellite Navigation System, GNSS)은 전역 위치 확인 시스템(Global Positioning Sytem, GPS) 및 갈릴레오 시스템(Galileo System) 중 어느 시스템에 속하는 위성들로부터 오는 신호들을 이용하여 위치 확인을 도모할 수 있도록, GPS 위성들 및 갈릴레오 시스템 위성들 모두로부터 오는 위성 신호들을 이용하는 방식이 생각되어 왔다. 그런데, 위성 신호 수신기들은 일반적으로 어떤 한 위성 시스템, 다시 말해 GPS 시스템 또는 갈릴레오 시스템에 속하는 위성들로부터 오는 신호들을 수신하도록 설계되지, 두 시스템 모두의 위성들로부터는 아니다. 따라서, 이러한 수신기는 적어도 네 개의 GPS 위성들이 관측 가능 하고, 위성 신호 수신기가 신호들을 획득할 수 있을 정도로 충분히 강한 신호를 제공할 때를 기다려야만 한다. 통상적으로 수신자에게 4 내지 8 개의 위성들이 관측 가능하기 때문에, 24 개 GPS 위성들로 이뤄진 위성단(constellation)은 평지에서 사용자가 자신의 위치를 결정하는 데에는 충분하다. 그러나, GPS 수신기가 숲, 산 또는 건물들이 하늘을 관측할 시야를 가리는 지역에서 동작할 경우에는, 그러한 수신기는 정확한 위치를 결정할 수 없거나 아예 제대로 동작하지 못할 수도 있다.
GNSS 수신기로 하여금 낮은 신호 레벨에서도 위성 신호들을 수신할 수 있도록, 보조 정보(assistance information)가 수신기에 보내져서 수신기가 그러한 신호들을 획득하고 추적할 수 있게 한다. 그러한 보조 정보는 위성 궤도 정보(satellite orbit information), 타이밍 동기 정보(timing synchronization information), 도플러 주파수 정보(Doppler frequency information) 기타 등등을 포함할 수 있다. GNSS 수신기는 통상적으로 수신된 위성 신호의 상관 최고값(correaltion peak)을 잡아내고 추적할 상관 회로(correlation circuit)를 포함한다. 보조 정보는 이러한 상관기 회로가 위성 신호를 획득하고 추적하는 데에 이용할 적절한 코드 위상(code phase) 및 주파수 추정치를 식별하는 것을 보조하는 데에 이용된다.
여러 GNSS 시스템이 서로 다른 변조 기술을 이용하기 때문에, 상관기 회로들도 갈릴레오 수신기나 GPS 수신기냐에 따라 다르다. 예를 들어, GPS 위성은 1mS 에포크(epoch) 동안에 반복되는 1023 칩 코드(chip code)를 이용하는 의사 랜덤 잡음(pseudorandom-noise, PRN) 변조된 신호를 송신하는 데에 반해, 갈릴레오 위성은 4mS 에포크 동안에 4092 칩 코드를 이용할 뿐 아니라 GPS 신호 대역폭의 두 배까지 신호를 확산(spread)시키는 이진 오프셋 반송파(Binary Offset Carrier, BOC) 코드를 추가한다. 이는 다시 말해 4092 비트 PRN 코드가 이진 신호를 가지고 그 PRN 코드의 전송률의 두 배로 변조된다는 뜻이다.
이러한 신호의 차이점들로 인하여, GPS 신호의 수신기들과 갈릴레오 신호의 수신기들은 호환되지 않는다. 따라서, 정확한 위치를 산출하려면, 단일한 위성 시스템에 대해 설계된 수신기는 그 위성 시스템에 속하는 네 개의 위성들로부터 충분한 세기의 신호 세기를 가져야 한다. 어떤 상황에서는, 이러한 점이 불가능할 수 있으며, 수신기는 위치를 계산하는 데에 실패하거나 또는 위치를 계산하는 데에 상당히 긴 시간을 소요할 것이다. 물론 수신기는 각각의 위성 시스템에 전용으로 이용되는 상관기 회로를 가질 수도 있지만, 이는 수신기 내에서 회로의 크기를 대략 두 배로 만들 것이다.
따라서, 공통되는 상관기 회로들을 이용하여 다수의 위성 시스템들에 속하는 위성들로부터 신호를 획득할 수 있는 개선된 위성 신호 수신기에 대한 필요성이 여전하다.
본 발명은 다수의 위성 시스템들로부터 수신되는 위성 신호들을 상관시키기 위한 방법 및 장치를 제공한다. 상기 방법 및 장치는 복수의 채널들을 제공하는데, 각 채널은 복수의 위성 시스템들로부터 오는 위성 신호를 수신하고 처리할 능력이 있다. 일 실시예에서, 각 채널은 GPS 위성들 내지 갈릴레오 위성들 양자로부터 오는 신호들을 수신할 수 있다. 부분 상관 기법(partial correlation technique)을 이용하면, 각 채널 내의 상관기는 입력 신호(예를 들어 GPS 신호 또는 갈릴레오 신호 중 어느 하나)와 의사 랜덤 잡음(PRN) 코드 기준 사이의 완전 컨볼루션(full convolution)을 연산할 수 있다.
본 발명은 이어지는 상세한 설명을 첨부된 도면들과 함께 살펴봄으로써 쉽게 이해될 수 있다.
도 1은 갈릴레오 위성 신호를 형성하는 BOC 변조 의사 랜덤 잡음 신호(BOC modulated pseudorandom noise signal)의 주파수 스펙트럼에 관한 그래프다.
도 2는 완전 상관(full correlation)을 이용한 갈릴레오 신호의 자기 상관 함수를 "필터링된(filtered)" 갈릴레오 신호에 의해 생성된 자기 상관 함수에 비교한 그래프이다.
도 3은 본 발명을 포함하는 GPS 수신기의 블록도를 나타낸다.
도 4는 GPS와 갈릴레오 신호들 모두를 수신하는 데에 이용되는 튜너(tuner)를 설명한다.
도 5는 GPS 신호를 수신할 경우에 도 1의 발명에 의해 생성되는 파형들의 예를 나타낸다.
도 6a 및 6b는 도 3에 나타난 발명의 동작 방법에 관한 순서도를 함께 설명한다.
도 7은 전통적인 방식으로 완전 컨볼루션을 연산하는 간략한 예를 도면으로 설명한다.
도 8은 완전 컨볼루션이 본 발명을 이용하여 어떻게 수행되는 지를 도면으로 예시한다.
도 9는 도 3의 발명에서 이용되기 적합한 코드 룩업 장치(code lookup apparatus)의 일 실시예를 예시한다.
도 10은 도 3의 발명의 다른 실시예에서 이용되기에 적합한 2 차원 코드 쉬프트 레지스터의 실시예를 예시한다.
도 11은 본 발명의 다른 실시예를 포함하는 GNSS 수신기의 블록도를 나타낸다.
도 12는 고 해상도 모드에서 누적 크기 파형(accumulated magnitude waveform)을 상세하게 설명한다.
도 13은 도 11의 발명에 이용되기에 적합한 코드 룩업 장치의 실시예를 예시한다.
도 14는 도 11에 나타낸 발명의 동작 방법에 관한 순서도를 설명한다.
GPS 신호와 갈릴레오 시스템의 신호 사이에는 많은 차이점들이 있으며, 이들은 하나의 GNSS 수신기에 의해 다룰 수 있어야 한다. 먼저, BOC(Binary Offset Carrier) 코드는 갈릴레오에서는 이용되지만 GPS에서는 이용되지 않는다. BOC 코드는 이진 신호로서, GPS 신호 스펙트럼의 중심 주파수에 0의 값을 가지는 이중 로브(doubled lobe) 신호를 형성하도록 이 신호를 재변조하는 PRN 코드율(code rate) 의 두 배에 해당하는 코드율(rate)을 가지는 이진 신호이다. 각 로브는 GPS 신호의 대역폭과 비슷한 크기의 대역폭을 가진다. 이중 시스템 GNSS 수신기의 상관 회로들이 갈릴레오 신호와 GPS 신호 모두를 처리할 수 있도록 하려면, 이 BOC 코드가 제거되거나 또는 보상되어야만 한다. 갈릴레오는 L1F 신호(L1 대역 RF 신호)를 이용하여 두 개의 서브 채널(L1B 및 L1C 성분들)을 운반한다. L1B 서브 채널은 데이터 성분(초당 250 심볼의 항법 데이터를 전송하는 BOC 변조된 4096 칩 확산 코드(BOC modulated 4096 chip spreading code)를 이용함)을 운반하고, L1C 서브 채널은 파일럿 성분(에포크당 25 비트 2차 코드(secondary code)를 전송하는 BOC 변조된 4096 칩 확산 코드를 이용함)을 운반한다. 최종적인 갈릴레오 시스템 설계에서 상기 2차 코드는 이용되지 않을 수도 있다. 수신기(100)는 이러한 서브 채널들 중 어느 하나에 튜닝될 수 있으며, 또는 양자 모두를 처리할 수도 있다. 양 서브 채널들의 반복되는 갈릴레오 PRN 코드는 GPS 코드보다 네 배 더 긴데, 다시 말해 4096 칩들이 매 4 mSec마다 반복되는 것과 1023 칩들이 매 1 mSec 마다 반복된다. 각 서브 채널에서 이용되는 코드들은 서로 다르다. 갈릴레오 PRN 코드는 현재로서는 정의되지 않은 상태로서, 따라서 수신기는 사용하게 될 코드를 업데이트할 수 있는 메카니즘을 반드시 갖고 있어야 한다.
갈릴레오 신호에 관하여 또 하나의 측면이 지적될 필요가 있을 것이다. 상기 데이터는 갈릴레오 PRN 코드의 한 에포크에 해당하는 길이와 동일한 한 비트 길이(bit length)를 가진다. 따라서, 각 에포크가 끝나면 한 비트로도 코드를 반전(invert)할 수 있으며, 이러한 점은 갈릴레오 신호에 대한 정합 누적 구 간(coherent integration period)을 한 에포크로 제한시킨다. 더 긴 정합 누적 구간을 구현하기 위해서는, PRN 코드의 상관 응답에 가해지는 데이터 충격(impact)을 대처해야 할 필요가 있다(이 과정은 "데이터 완전 삭제(data wiping)"라고 알려져 있다). 일단 이러한 데이터 충격이 제거되면, 여러 에포크에 해당하는 PRN 코드가 하나의 상관기를 이용하여 정합 누적될 수 있다. 더 나아가, 2차 코드가 이용되는 경우에, 상기 데이터가 대처되는(즉 삭제되는) 것과 동일한 방식으로, 이 2차 코드가 파일럿 채널로부터 제거되어야 한다. 상기 데이터 및 2차 코드는 서로 간에, 그리고 PRN 코드 에포크와 동기되어 있는데, 이는 다시 말해, 데이터를 가지는 경우와 마찬가지로, 상기 2차 코드도 또한 한 에포크의 길이와 똑같은 비트 주기를 가진다. 따라서, 2차 코드를 제거하지 않으면, 정합 길이도 한 에포크로 제한된다.
도 1은, 갈릴레오 위성에 의해 전송된 신호와 같은 BOC 변조 의사 랜덤 잡음 신호(BOC modulated pseudorandom noise signal)의 주파수 스펙트럼에 관한 그래프(100)이다. 이 스펙트럼(102)은 두 개의 주 사이드 로브(side lobes), 즉 상부 측파대(upper sideband, USB)(104) 및 하부 측파대(lower sideband, LSB)(106)를 가진다. 파선으로 표시된 스펙트럼(108)은 GPS 위성에 의해 전송되는 신호의 주파수 스펙트럼을 나타낸다.
도 2는 갈릴레오 위성 신호에 관한 자기 상관 함수(autocorrelation functions, ACF)(202)를 나타낸 그래프(200)이다. 함수(202)는 전체 신호의 ACF(204)를 나타내는 반면에, 다른 함수(206)는 USB 만의(또는 LSB 만의) ACF, 즉 "필터링된" 갈릴레오 신호의 ACF를 나타낸다. 비교의 목적으로, GPS 신호에 대한 ACF(208)를 파선으로 표시하여 나타내었다. 필터링되기 전의 갈릴레오 신호는 예를 들어 약 +/- 0.4 칩에 해당할 정도로 훨씬 (시간 축 상에서) 좁은 ACF(204)를 가지며, 이러한 점은 +/- 1.0 칩 정도의 폭을 가지는 GPS 신호에 대해 상관 연산을 하는 데에 이용되는 것보다 더 정교한 상관 간격(spacing of correlations)을 요구한다. 갈릴레오 신호를 필터링함으로써, 상관 함수의 응답은 GPS 신호의 응답과 유사하게 되며, GPS 신호들을 수신하거나 갈릴레오 신호들을 수신하는 경우에 대해 상관 간격이 똑같아지게 할 수 있다.
본 발명의 일 실시예에서 본 발명의 이중 시스템 GNSS 수신기는 전체 신호(ACF(204) 참조)를 이용하는 반면, 다른 실시예에서는 수신기는 단지 하나의 측파대(ACF(206) 참조)를 처리하며, 또 다른 실시예에서는, 상기 GNSS 수신기는 신호 획득에는 단일한 측파대를 활용하지만 신호 추적을 하는 동안에는 신호 전체를 이용할 수도 있다. 모든 경우에서, 본 발명의 GNSS 수신기는 GPS 신호 및 갈릴레오 신호를 처리하는 데에 있어 공통되는 상관 회로를 이용한다. GNSS 수신기에 관한 실시예들 각각은 아래에서 논의된다.
본 발명은 GPS/갈릴레오 신호의 차이점들 각각에 대해 다양한 해결책을 이용하여 단일한 GNSS 수신기로 갈릴레오 신호와 GPS 신호를 모두 처리할 수 있게 한다. 첫 번째 문제점인 BOC 코드는 상관 연산에 앞서서 갈릴레오 신호를 필터링하여 USB, LSB 또는 이들 양자를 생성함으로써, 또는 전체 갈릴레오 신호를 상관 연산함으로써 처리된다. 상관 연산은 데이터 성분, 파일럿 성분 또는 이들 모두에 대해 수행될 수 있다. 두 번째 문제점인 코드 길이는, USB 신호들 또는 LSB 신호들만 처 리된다고 가정할 때에, 상관 회로를 GPS 신호를 처리할 경우에 비해 적어도 4 배 빠르게 작동시킴으로써 대처될 수 있다. 다른 방법으로는, 상기 수신기는 GPS 신호를 처리할 때와 동일한 속도로 작동하되, 갈릴레오 신호에 있을 법한 지연 시간(possible delay lags)의 1/4 만을 상관 연산할 수도 있다. 세 번째 문제는 정의되지 않은 PRN 코드로서, 갈릴레오 신호들에 대한 PRN 코드를 저장하는 RAM(random access memory)를 사용함으로써 해결될 수 있다. 따라서, 코드에 어떤 변화가 있다면 이는 단순히 저장 내용을 변경한다거나 갱신하기만 하면 될 뿐이다. 이러한 갱신 동작은 실제 물리적인 메모리 장치를 교체하는 것이 아닌, 다운로드를 통해 달성될 수 있다.
도 3은 본 발명을 구체화한 이중 시스템 전역 항법 위성 시스템(GNSS) 수신기(300)의 블록도를 설명한 것이다. GNSS 수신기를 본 발명이 그 안에서 일체화되는 일종의 플랫폼으로서 이용하는 것은 본 발명의 하나의 응용예를 구성한다. 서로 다른 두 개의 시스템들로부터 신호 상관 연산을 필요로 하는 다른 플랫폼들도 본 발명에 관하여 소정의 용도를 찾을 수 있을 것이다.
본 발명의 일 실시예에서, GNSS 수신기(300)는 적어도 두 개의 서로 다른 위성 위치 확인 시스템들로부터 위성 신호들을 수신하고 처리한다. 예를 들어, 수신기의 각 채널 내에서, 적어도 하나의 GPS 위성 내지 적어도 하나의 갈릴레오 위성으로부터 오는 신호들이 공통 회로부를 이용하여 처리될 수 있다.
신호들(예를 들어 GPS/갈릴레오 신호들)은 안테나(301)에 의해 수신된다. 무선 주파수-중간주파수 변환기(RF/IF converter)(302)는 아날로그-디지털 변환 기(A/D converter)(303)를 이용한 디지털 변환을 위해 상기 신호들을 필터링하고 증폭하며 주파수 이동을 수행한다. 상기 요소들(301, 302, 303)은 종래의 GPS 또는 갈릴레오 수신기 내에 이용되는 그러한 요소들과 실질적으로 동일한 것이지만, 이 시스템의 RF 대역폭은 BOC 변조된 갈릴레오 신호의 늘어난 스펙트럼 점유를 허용할 수 있도록 대략 두 배로 증가될 필요가 있다.
도 3의 설명을 계속하자면, A/D(303)의 출력은 디지털 논리회로의 형태로 구현된 일단의 프로세싱 채널들(3041, 3042, ...304n)(여기서 n은 정수)에 연결된다. 각각의 프로세싱 채널(304n)은 GPS 위성에서 또는 갈릴레오 위성에서 온 신호를 처리할 수 있는 능력이 있다. 특정한 채널 내의 신호는, 수치 제어 발진기(numerically controlled oscillator, NCO)(306)에 의해 구동되는 튜너(305)에 의해 디지털 방식으로 튜닝된다.
도 4는 GPS 신호와 갈릴레오 신호 모두를 수신하는 데에 이용되는 튜너(tuner)(305)를 설명한다. 상기 튜너는 한 쌍의 믹서들(400, 402), 쿼드러쳐 분할기(quadrature splitter)(404), 한 쌍의 필터들(406, 408) 및 신호 선택기(410)(예를 들어, 하나의 6:2 멀티플렉서 또는 두 개의 3:1 멀티플렉서)를 포함한다. 동작을 보면, NCO 신호가 상기 분할기(404)로 연결되는데, 그럼으로써, 0 도 위상 편이된 NCO 신호가 상기 믹서(400)에 인가되고, 90도 위상 편이된 NCO 신호는 상기 믹서(402)로 인가된다. NCO 신호를 상기 디지털 변환된 위성 신호와 믹싱시킨 결과가 정위상 성분(in-phase component, I) 및 쿼드러쳐 성분(quadrature component, Q)이다. 이들 I 및 Q 성분들은 필터링되기도 하고 필터링되지 않기도 한다. 본 발명의 일 실시예에서는, 이후의 처리를 위해 BOC 변조된 PRN 신호의 USB 부분(IUSB, QUSB)을 선택하는 데에 USB 필터(406)가 이용된다. 이와 다르게, 이후의 처리를 위해 신호의 LSB 부분(ILSB, QLSB)을 선택하는 데에는 LSB 필터(410)가 이용될 수 있다. 마지막 실시예에서는, 아무런 필터링도 수행되지 않으며 I 및 Q 성분들이 튜너(305)의 출력을 구성한다. GPS 신호가 수신될 경우에도, 필터링이 적용되지 않으며, 신호들은 필터링되지 않은 I 및 Q 신호들 자체로 처리된다. 신호 선택기(410)는 상기 신호들 중 어떤 것이 튜너 출력으로서 사용될 것인지를 선택하는 데에 이용된다.
상기 튜너(305)는 주로 두 가지 목적을 수행한다. 먼저, RF/IF 변환 후에도 남아있는 IF 주파수 성분이 제거된다. 둘째, 위성의 움직임, 사용자의 움직임 및 기준 주파수의 오차 등으로부터 초래되는 위성의 도플러 주파수 변위가 제거된다. 보조 측위 위성 위치 확인 시스템(assisted satellite positioning system) 수신기에 있어서, 이러한 수신기는 GPS 및 갈릴레오 위성들 양자 모두에 대한 달력 정보 내지 위성력 정보를 제공받는다. 따라서, 상기 수신기(300)는 수신기의 시야 내에 있는 위성들을 결정할 수 있다. 그 결과, 도플러 변위에 대한 추정치를 이용할 수 있게 되고, 그럼으로써 초기 도플러 값이 추정될 수 있다. 심지어 도플러 추정치가 이용가능하지 않을 경우에도, 어떤 GPS 및 갈릴레오 위성들이 시야에 있는지를 알고 있다는 점은 수신기로 하여금 그렇게 시야에 있다고 알려진 GPS 내지 갈릴레오 위성들의 신호를 수신할 수 있는 적절한 채널들을 찾아낼 수 있게 한다. 만약 상기 수신기가 아무런 보조 정보를 가지지 못하는 경우에는, 상기 수신기의 채널들은 GPS 위성들에 대해 무작위 탐색(blind search)을 수행하고, 이어서 갈릴레오 위성들을 탐색하며, 또는 그 반대 순서로 수행한다.
상기 USB 필터(406)(또는 LSB 필터(408))는 스펙트럼(102)의 상부 로브(104) 위에 중심을 가지는 복소 필터(complex filter)이다. 한쪽 측파대를 필터링함으로써, USB 신호는 일종의 "BPSK와 유사한" 신호가 되어 GPS 신호와 동일한 방식으로 처리(예를 들어 상관 연산)될 수 있다. 하나의 측파대를 이용하는 방식의 결과는 대략 3dB 정도의 신호 세기의 손실과 더불어, 도 2에서 ACF(206)로 나타낸 상관 함수에 생기는 약간의 "만곡(rounding)"과, 상기 상관 함수에 대해 2 칩 너비의 기저부(2-chip wide base)이다.
일단 신호가 타당한 주파수를 이용하여 수신되면, 상기 튜너(305)의 출력은 정위상 성분(I)과 쿼드러쳐 성분(Q)으로 구성된 기저대역 신호가 된다. 위에서 언급하였듯이, 이들 성분은 필터링될 수도 있고 필터링되지 않을 수도 있다. 이렇게 튜너 내에서 필터링을 통해 BPSK와 유사한 신호를 생성하면, 상기 프로세싱 채널들 내에 포함된 상관 회로들은 GPS 신호들 또는 갈릴레오 신호들 어느 쪽에 대해서도 사용될 수 있다. 필터링되지 않은 갈릴레오 신호들은, 만약 필터링되지 않았을 때에는 BPSK와 유사하지 않기 때문에, GPS 신호들과는 다른 처리가 요구된다. 몇몇 상황에서는, 아래에서 더 설명하겠지만, 필터링되지 않은 갈릴레오 신호들을 이용하는 것이 유리하다. 비록 선택기(410)가 세 개의 복소 신호들 중에서 선택을 수행 하는 것처럼 나타내었지만, 실제 수신기 내에서, 상기 튜너는 어느 한쪽 측파대 또는 다른 쪽 측파대만 생성할 수 있다. 따라서, 상기 튜너는, 예를 들어, USB 필터(406)만 가지고 있을 수 있고, 이는 LSB(408)는 필요하지 않다는 의미이다. 이러한 구성에서는, 상기 선택기(410)를 이용하여, GPS 신호들이 처리될 때에는 I 및 Q 신호들이 선택되고, 갈릴레오 신호들을 처리할 때에는, IUSB 및 QUSB 신호들이 선택된다. 만약 필터링되지 않은 갈릴레오 신호들이 처리되어야 할 경우에는, 상기 선택기(410)는 I 및 Q 신호들을 선택하며, 이때 상기 수신기는 갈릴레오 신호를 전달하는 채널에 맞춰 튜닝된다. 상기 선택기(410)는 CPU(314)에 의해 제어된다. 본 발명의 일 실시예에 있어서, 상기 선택기(410)는 복소 USB 갈릴레오 신호 또는 복소 GPS 신호 중에서 선택할 수 있다.
도 3으로 되돌아가서, 데시메이션 회로(decimation circuit)(307)는 상기 튜너(305)의 출력을 처리한다. 상기 데시메이션 회로(307)의 출력은 I 및 Q 성분들로 구성된 복소 신호 샘플들의 열(series)로서, 입력 신호의 타이밍에 정합(match)되도록 정확히 타이밍된 속도(rate)로 출력된다. 본 발명의 일 실시예에서, 상기 데시메이션 동작은 단순한 사전 합산기(pre-summer)로서, 한 출력 샘플 구간에 걸쳐 모든 유입되는 신호 샘플들을 합산하는 것이다. 수치 제어 발진기(NCO)(308)는 이러한 샘플링 프로세스에 타이밍을 제공하는 데에 이용된다. 예를 들어, 만약 P=2인 경우에는, 상기 코드 NCO(308)는 2 x fs의 주파수를 생성하도록 설정된다. 이때, fs는 f0(GPS/GALILEO 신호의 PRN 코드 칩 주파수)로서, 도플러 변위만큼 조절된 값이 다. 만약 필터링되지 않은 갈릴레오 신호(즉 좁은 자기 상관 함수를 가지는 신호)가 처리되어야 할 경우에는, 상기 P의 값은 최소한 4라는 점을 주의한다. 상기 NCO는 펌웨어(firmware)의 명령어로부터 얻은 외부 입력에 기초하여 도플러 변위에 관하여 조절을 수행한다. 도플러 변위가 각 위성마다 다르기 때문에, 각 채널(304n)마다 별개의 코드 NCO(308) 및 데시메이션 회로(307)가 필요하다. 여기서, 상기 코드 NCO(308)가 임의의 주파수를 생성할 수 있는 능력이 있음에 따라, 유입되는 샘플의 속도가 fs의 정수 배이어야 할 필요는 없다는 점을 주의해야 한다. 만약 상기 데시메이션 회로(307)가 사전 합산기라면, 합산되는 샘플들의 개수는 통상적으로 두 값 중에서 선택될 것이며, 따라서 긴 구간에 걸쳐 보면, 정확한 샘플 타이밍이 유지된다. 예를 들어, 만약 유입 샘플의 속도가 10 MHz이고 바람직한 샘플 속도가 2.046 Mhz라면, 상기 사전 합산기는 4 개 샘플들을 합하거나 또는 5 개 샘플들을 합할 것이며, 그럼으로써 바람직한 샘플 속도는 그 평균으로 유지된다.
상기 데시메이션 회로(307)는 또한 그 출력단에 양자기(quantizer)(도시하지 않음)를 더 포함할 수 있으며, 이어지는 처리에 앞서, 신호 성분들을 나타내는 비트의 개수를 감소시킬 수 있다. 본 발명의 일 실시예에서는 2 비트 양자화가 이용된다.
상기 데시메이션 회로(307)로부터 출력된 신호 샘플들은 컴볼루션 처리기(convolution processor)(309)로 연결된다. 상기 컨볼루션 처리기(309)는 필터링되지 않은 갈릴레오 신호의 I 및 Q 성분들에 대해, 갈릴레오 신호의 상부 또는 하 부 측파대의 I 및 Q 성분들에 대해, 또는 GPS 신호의 I 및 Q 성분들에 대해 부분 상관 프로세스(아래에서 설명할 것임)를 수행한다. 갈릴레오 신호들을 상관 연산할 경우에는, 상관 연산은 파일럿 성분, 데이터 성분 또는 이들 양자에 대해 수행될 수 있다. 상기 컨볼루션 처리기(309)는 부분 상관 연산의 결과 값들을 생성하며, 결과 값들은 신호 RAM(random access memories)(310a, 310b) 내에 축적된다. 특히, 이들 RAM(310a, 310b)는 입력 신호와 기준 PRN 코드(예를 들어 GPS PRN 코드, 갈릴레오 PRN 코드 또는 갈릴레오 파일럿 코드) 사이의 완전 컨볼루션 모두 또는 그 일부를 구성하는 복소 벡터(complex vector)를 저장한다. 컨볼루션의 결과는 신호와 기준 코드 사이에 높은 상관 관계에 상응하는 위치에서 최대치를 가질 것이다. 아래에서 상세하게 논의될 것이지만, 여러 위성 신호들에 대하여 이러한 최대값들의 상대적인 위치는 최종적으로 위치 정보를 연산하는 데에 이용된다.
상기 컨볼루션 처리기(309) 및 신호 RAM들(310a, 310b)은 명목상 1 밀리초 간격으로 반복하는 GPS 신호의 여러 에포크에 걸쳐 컨볼루션 결과들을 누적한다. 예를 들어, 상기 신호 중 10 밀리초 부분이 처리된다고 하면, RAM(310a, 310b) 내의 값들은 적어도 한 GPS 에포크에 걸쳐 생성된 많은 GPS 상관 연산의 결과들(부분 상관 연산들)의 합이다. 4 msec 길이의 에포크를 가지는 갈릴레오 신호들의 경우에는, 4 밀리초의 신호는 한 갈릴레오 에포크에 걸친 상관 연산 결과를 생성하는 셈이다. 데시메이션 동작의 타이밍에 의해 각각의 에포크 내에서 상대적으로 동일한 순간마다 샘플들이 취득된다는 점이 보장되기 때문에, 모든 개별적인 상관 연산들은 유사한 특성들을 가질 것이다. 개별적인 상관 연산에서 얻은 유사한 결과들을 누적하는 것은 신호 대 잡음비(signal to noise ratio)를 향상시키며, 수신기가 약한 신호들을 검출해 내는 능력을 증강시킨다. 이러한 처리 기법은 정합 누적 기법(coherent integration)이라고 불리기도 하며, 이어서 논의되겠지만, 크기 누적 기법(magnitude integration)과 함께 결합되어 최대 수 초의 시간 구간 동안에 걸쳐 평균화된 상관 연산 결과 값들을 산출할 수 있다.
정합 누적 구간이 수행되는 시간의 길이는 몇 가지 요인들로 인해 제한되는데, 그러한 요인들에는 보상되지 못한 도플러 변위, 위성 신호 항법 데이터 비트 및 수신기(300)의 움직임에 의해 초래된 위상 변위 등이 포함된다. 이러한 요인들은 상기 신호에 대해 느리지만 확연히 무작위적인 위상 변동을 초래한다. 수십 밀리 초에 걸쳐, 이러한 위성 변화는 정합 누적 기법의 목적을 방해하는 치명적인 간섭을 일으킬 수 있다. 따라서, 긴 평균화 구간을 실현하기 위해서는, 수신기(300)는 두 번째 단계로서 크기 누적 기법을 수행한다. 특히, 상기 신호 RAM들(310a, 310b)에 저장된 신호들이 주기적으로 복소 정규화기(complex normalizer)(311)로 출력되는데, 상기 복수 정규화기(311)는 복소 컨볼루션 벡터(complex convolution vector)의 복소 크기 값을 생성한다. 이러한 복소 크기 값들은 합산기(adder)(312)에 의해 적산(accumulated)되고 크기 RAM(magnitude RAM)(313)에 저장된다. 상기 신호의 복소 크기가 계산될 때마다, 상기 신호 RAM들(310a, 310b)은 또 다른 정합 누적 연산이 일어날 수 있도록 소거된다. 이러한 프로세스는 원하는 횟수의 크기 누적 연산이 완료될 때까지 계속된다. 예를 들어, GPS 신호를 상관 연산할 경우에, 만약 정합 평균화 구간이 10 밀리초이고, 200 회의 크기 누적 연산이 바람직하다 면, 전체 프로세스는 2 초에 걸쳐 수행될 것이다. 갈릴레오 신호들에 대해서는, 상기 크기 누적 연산의 1/4이 상기 2 초 구간에 걸쳐 이용된다.
갈릴레오 신호의 경우에는, 앞서 언급한 바와 같이, L1B 서브 채널은 한 에포크 동안에 상기 L1B PRN 코드를 주기적으로 반전(invert)하는 데이터 신호를 포함하며, L1C 서브 채널은 한 에포크 동안에 L1C PRN 코드를 주기적으로 반전시키는 2차 코드를 포함할 수 있다. 이러한 반전은 정합 누적 주기를 오직 4 mS로 제한시킨다. 따라서, 한 에포크보다 더 긴 정합 누적 주기를 가지기 위해서는, 상기 데이터 및 2차 코드는 신호로부터 제거되어야 할 필요가 있다. 비록 그러한 제거가 신호 프로세싱 중 어느 시점에서라도 수행될 수 있지만, 상관 연산이 끝난 후 그리고 정합 누적 연산이 수행되기 전이 편리한 위치라 할 수 있다. 상기 데이터 또는 제2 코드를 제거하기 위해, 상관 연산 결과는 제거 신호(removal signal) 즉 적절하게 타이밍이 잡힌 +1 또는 -1에 곱해진다. 제2 코드를 제거하기 위해 이용되는 값들의 시퀀스는 사전적으로(a priori) 알려진 코드로서 메모리 내에 저장된다.
컨볼루션 처리가 끝난 후에, 상기 크기 RAM(313)은 신호 대 잡음비를 개선할 수 있도록 누산된 컨볼루션 결과의 복소 크기 값을 가지는 벡터를 저장한다. 아래에서 논의될 것이지만, 이 벡터는 추가적으로 CPU(314)에 의해 실행되는 소프트웨어 알고리즘들에 의해 처리되어, 수신기의 위치를 산출해 내는 데에 이용되는 의사 거리 데이터(pseudorange data)를 생성한다. 이들 단계들을 처리하기 위한 상기 CPU의 계산상의 부하는 종래의 소프트웨어 추적 루프 신호 수신기(software tracking loop signal receiver) 또는 FFT 기반의 상관기에 비하여 매우 양호한 수 준이다. 이 구현예에서, 상관 연산 및 누적 연산에 대한 계산 집약적인(computationally intensive) 연산 작업들은 소프트웨어 프로세싱에 들어가기 앞서 완료된다.
도 5는 컨볼루션 처리기(309)(이와 함께 컨볼루션 결과 처리 회로(500)도 포함)의 상세한 블록도를 설명한 것으로, 특히 어떻게 완전 컨볼루션이 작은 회로 블록을 반복적으로 사용함으로써 생성되는 지를 보여준다. 이 실시예 내의 회로들의 동작은 도 5와 함께 동시에 도 5의 프로세서(309)의 동작을 설명하는 도 6의 순서도를 참조하고, 또한 도 7 및 도 8의 간단한 예들의 비교를 통해 가장 잘 이해될 수 있을 것이다.
비록 본 발명이 적절하게 선택된 기준 코드를 일부 내지 전체 GPS 신호 또는 필터링된 갈릴레오 신호와 병렬적으로 상관 연산함으로써 구현될 수 있지만, 아래의 설명은 부분 상관기를 사용하는 방법에 초점을 두고 있다. 본 기술 분야에 숙련된 자들은 다음의 논의로부터, 이러한 부분 상관기가 수신된 신호들을 상관 연산하여 부분 상관 결과들을 축적하지 않고도 갈릴레오 신호나 GPS 신호 어느 쪽에 대해서도 완전 컨볼루션을 생성할 수 있도록 적절하게 변형될 수 있다는 점을 인식할 수 있을 것이다.
상기 데시메이션 회로(307)로부터 오는 신호들은 각각 I 및 Q 성분들을 취급하는 쉬프트 레지스터들(501a, 501b)에 연결된다. 각각의 쉬프트 레지스터들(501a, 501b)은 길이가 P x K인데, 이때 P는 코드 칩 당 원하는 샘플 개수이며, K는 설계 파라미터로 선택되는 수이다. 이어서 설명될 바와 같이, K는 1023을 인수(factor) 로 가진다. 변수 M은 K 길이의 상관 연산을 이용하여 완전 컨볼루션을 생성하는 데에 수행되는 부분 상관 연산의 총 횟수를 정의한다. 설명을 간단하게 하자면, 이 설명의 나머지 부분은 GPS 신호든 갈릴레오 신호이든 처리할 수 있도록 P=2(즉 1/2 칩만큼 이격된 2 샘플), K=33 및 M=31을 가지는 한 특정 실시예에 초점을 맞추었다. 그렇지만, 갈릴레오 에포크는 GPS 에포크 길이의 네 배가 되기 때문에, 갈릴레오 신호를 처리하기 위한 처리 속도는 GPS 신호들에 대해 드는 것보다 4 배가 더 빠르게 작동되어야 할 것이며, P=2, K=33(필터링된 갈릴레오 신호들에 대해서는 M=124)을 유지하여만 할 것이다. 만약 상관기 내에서 어느 시점에서 처리되는 샘플들의 수가 두 배(K=66)로 된다면, 갈릴레오 신호들에 대한 처리 속도는 GPS 처리 속도의 두 배가 될 뿐이다. 아래에서 논의되는 실시예에서, 상기 상관기는 132 개의 탭들(taps)(PxK 개의 탭들)을 가지며, GPS 신호들을 처리하는 데에 필요한 속도의 두 배인 클럭 속도를 이용한다. 이 실시예에서, 상기 GPS 신호는 이용가능한 탭들 중 절반(K=33)을 이용하여 상관 연산된다. 본 기술 분야에서 숙련된 자들은 탭의 개수는 이용되는 클럭 속도에 의존하여 바뀔 수 있음을, 다시 말해, 상관기 길이가 짧을수록 상관 연산은 수행되는 데에 더 많은 시간이 필요로 할 것이며, 또한 한 에포크 전체만큼의 GPS 및 갈릴레오 신호들이 상관 연산될 수 있다는 점을 보장하는 데에 필요한 클럭 속도는 더 빨라져야 한다는 점을 이해할 것이다.
상관 연산 함수가 한 칩 너비보다 작은 경우에 갈릴레오 신호들이 필터링되지 않는다면, P=4, K=33 및 M=124이고, 상기 연산기는 132 개의 탭들을 이용하며, 클럭은 GPS 신호 상관 시의 클럭 속도의 8 배에 달하는 속도로 작동할 것이다. 이 렇게 신호를 쉬프트 레지스터를 통해 전진시키는 수단은 신호를 더블버퍼링(double-buffer)하기 위한 회로의 필요성을 제거하고, 구현 시의 비용 및 복잡함을 감소시킨다. 상기 쉬프트 레지스터들(501a, 501b)은 GPS 신호의 I 및 Q 신호들을 상관 연산할 뿐 아니라, 필터링된 갈릴레오 신호들의 IUSB 및 QUSB(또는 ILSB 및 QLSB)를 상관 연산하는 데에 이용된다.
갈릴레오 신호들을 처리할 때에, 상기 컨볼루션 처리기(309)는 반드시 L1B(데이터) 및 L1C(파일럿) PRN 코드 양자 모두를 상관 연산할 수 있어야 한다. 본 발명의 일 실시예에서, 갈릴레오 신호를 처리할 때에, 상기 쉬프트 레지스터들(501a, 501b)은 샘플링된 신호들을 저장하며, L1B 신호(데이터 채널)에 관한 PRN 코드 및 L1C 신호(파일럿 채널)에 관한 PRN 코드는 다중화(multiplexed) 방식으로 공급된다. 따라서, 이러한 샘플들이 상기 레지스터들 내에 머물러 있는 동안에, 아래에서 상세하게 논의되는 바와 같이, 모든 가능한 시간 지연에 있어서 두 PRN 코드들이 상기 샘플들과 상관 연산된다. L1B 및 L1C 신호들 양자를 상관 연산하려면, 클럭 속도는 상기 신호의 다음 샘플이 상기 레지스터들(501a, 501b)로 인가되기 전에 L1B 및 L1C 모두에 대한 모든 지연이 상관 연산됨을 확실히 할 수 있도록 두 배로 증가하여야 한다.
신호들은, 상기 코드 NCO(308)에 의해 타이밍이 정해진 대로, P x f0(예를 들어, 2f0)의 속도로 쉬프트 레지스터들(501a, 501b)을 통과하며 진행한다. 상기 신호들은 쉬프트 레지스터들 내에서 몇 클럭 사이클 동안 자리에 머무르게 되는데, 그럼으로써 일련의 부분 상관 연산이 수행될 수 있다. 특히, 총 M 번의 부분 상관 연산들이 수행되는데, 이때 GPS 신호에 관한 이러한 예에서는 M=1023/K 즉 31이고, 필터링된 L1B 및 L1C 갈릴레오 신호들 각각에 관한 예에서는 M=4096/K 즉 124이다. 필터링되지 않은 갈릴레오 신호에 대해서는 네 배 많은 부분 상관 연산들이 이뤄진다. 각각의 부분 상관 연산은 각 신호 쉬프트 레지스터의 저장 내용 및 PxK(예를 들어 132) 개의 코드 샘플들을 포함하는 코드의 한 부분 사이에서 이뤄지는 고속 벡터 승산 및 합산 연산으로 구성된다. 이러한 고속 벡터 승산 및 합산 연산은 회로(502a, 502b)에서 일어난다. 상기 회로들(502a, 502b)은 각각 승산기(510a, 510b) 및 합산기들(512a, 512b)을 포함한다. 연산은 상기 신호 레지스터(501a 또는 501b) 내의 132 개 신호 샘플들 각각을 132 코드 샘플들(코드 확장기(code extender)(509)를 이용하여 33 코드 샘플들을 확장함으로써 형성됨)에 승산하고, 그 결과들을 합산기(512a, 512b)에서 합산하는 동작으로 구성된다. 갈릴레오 신호들에 대해서는 각각의 벡터 승산 시에 132 개 탭들 전체가 이용되며, GPS 신호들에 대해서는, 각각의 벡터 승산 시에 탭들 중 절반이 이용된다. 상기 연산은 I 채널 및 Q 채널에서 개별적으로 그리고 동시적으로 일어난다. 수학적으로는, 이 연산은 벡터 내적(inner product)이라고 일컬어지며, 다음과 같이 정의된다.
Figure 112008025832912-pct00001
이러한 벡터 승산 및 합산의 출력은 비트 개수가 작은 범위 내에 유지될 수 있도록 재양자화(re-quantized)될 수 있으며, 그럼으로써 RAM들(504a, 504b)이 오 버플로되는 것을 방지할 수 있다. 간략하게 할 목적으로 이러한 양자화기는 도시하지 않았다. 일 실시예에서, 이러한 재양자화는 2 비트의 해상도를 가진다.
GPS 신호의 경우에는, 상기 66 개의 코드 샘플들은 33 개의 고유 코드 샘플들과 33개의 코드 샘플 복제본들을 포함한다. 따라서, 각각의 고유 코드 샘플마다, 코드 샘플들의 개수를 두 배로 늘리는 데에 복제본이 이용된다. 필터링되지 않은 갈릴레오 신호들의 경우에는, 33 개의 고유 샘플들은 제1 극성을 가지는 두 샘플 다음에 역의 극성을 가지는 두 샘플이 오는 식으로 네 샘플로 확장된다. 따라서, 각각의 고유 샘플은 반대 극성을 가지는 샘플이 이어진다. 필터링된 갈릴레오 신호들에 대해서는, 66 개 샘플들의 코드가 132 개 샘플들로 확장된다.
벡터 승산 및 합산 결과들은 합산기(503a, 503b)에 의해 적산되고, 상기 컨볼루션 결과 처리 회로(500)에 의해 처리된다. 상기 회로들(500)은 신호 RAM(310a, 310b), 복소 정규화기(complex normalizer)(311), 합산기(312) 및 크기 RAM(313)을 포함한다. 상기 적산 프로세스는 RAM(310a, 310b)로부터 특정한 시간 지연에 해당하는 현재 값들을 읽어들이는 단계와, 직전에 계산된 부분 상관 연산 값들을 합산하는 단계 및 합산 값들을 RAM들(310a, 310b)에 다시 기록하는 단계로 구성된다. 특정 시간 지연에 상응하는 부분 상관 연산들을 적절하게 결합함으로써, 그 시간 지연에 해당하는 전체 상관 연산이 계산된다. 앞서 설명한 바와 같이, 이 프로세스는 신호 대 잡음 비를 향상시킬 수 있도록 원하는 에포크의 신호에 대해 지속된다. 이로써, 상기 합산기들(503a, 503b)은 두 가지 목적을 수행한다. 하나는 한 에포크 내에서 부분 상관 연산들을 결합하는 것이고, 다른 하나는 몇 개의 에포크에 걸쳐 상관 연산들을 적산하는 것이다.
갈릴레오 신호들을 상관 연산할 때에, 먼저 상관 연산되어야 할 신호의 형태에 관하여 즉 USB 신호, LSB 신호 및 필터링되지 않은 신호 중에서 선택이 이뤄져야 하며, 이어서 상관 연산되어야 할 신호 성분에 대해, 즉 각 신호 형태에 따라 파일럿 성분(L1C)이냐 데이터 성분(L1B)이냐에 대해 선택이 이뤄진다. 이러한 신호들의 각각은 부분 상관 프로세스를 이용하여 개별적으로 정합 상관 연산되며, 개별적인 상관 연산들이 신호 RAM들(310a, 310b, 310c, 310d) 내에서 누적 연산되도록 한다. 일반적으로, USB 신호 또는 LSB 신호만이 처리될 것이다. 최소한, 이들 신호들 중 하나, 예를 들어 L1C USB 신호가 상관 연산되는데, 상기 벡터 승산기들(502a, 502b)(또는 병렬로 동작하는 복수의 레지스터들 내지 승산기들) 중 어떤 것을 사용할 것인지를 다중화함으로써, 그리고 적절한 시점들에서 상관 연산을 위한 서로 다른 코드 부분들을 선택함으로써, 신호 형태 및 성분에 따른 6 가지 조합이 상관 연산될 수 있다. 또는, 각각의 신호 성분에 따라 다른 컨볼루션 처리기(309)가 이용될 수도 있다. 일반적으로, GPS 신호의 경우에, 상기 RAM들(310a, 310b)은 GPS 신호 상관 프로세스에 의해 생성되는 결과들을 적산하는 데에 이용된다. 갈릴레오 신호의 경우에는, L1B 및 L1C 서브 채널 신호들 모두가 상관 연산될 수 있다. 그러한 경우에 있어서, 상기 신호 RAM들은 두 부분(310a, 310c 그리고 310b, 310d)로 구획될 수 있다. 상기 L1B 및 L1C의 결과 값들은 구분시킨 RAM 구획들(partitions)에서 따로 적산된다. 이러한 방식으로, 각 신호는 별개로 적산된다. 만약에 L1B 또는 L1C만이 이용된다면, RAM들(310a, 310b)만 이용된다.
갈릴레오 신호가, 각 PRN 코드 에포크(즉, 4mS 주기)가 끝난 후에 신호 위상을 반전시키는 L1B 서브 채널 상의 데이터 내지 L1C 서브 채널 상의 2차 코드를 포함하기 때문에, 상관 연산 간격은 그러한 데이터 내지 2차 코드가 제거되지 않는 이상 오직 4mS 뿐이다. 이러한 제거 동작은, 만약 원하는 경우에는, 파일럿 채널이 상관 연산되느냐 또는 데이터 채널이 상관 연산되느냐에 따라, 데이터 코드 또는 2차 코드 중 어느 하나를 가지고 구동되는 한 쌍의 승산기들(525a, 525b)에 의해 수행된다. 상기 코드 소스(527)는 한 에포크의 주기마다 +1 또는 -1을 출력한다. 2차 코드는 사전적으로 알려지며, 메모리 내에 저장될 수 있다. 상기 데이터는 미지의 상태이며, 이전에 수신된 위성 항법 메시지로부터 또는 네트워크를 통해 수신된 보조 정보로부터 상기 CPU(314)에 의해 추출되어야만 한다. 둘 중 어느 경우에서라도, 일단 데이터 또는 2차 코드가 "삭제"되면, 상관 연산 간격은 확장될 수 있으며, 그럼으로써 수 에포크의 데이터가 상관 연산될 수 있어서 수신기의 감도를 향상시킬 수 있다. 만약 2차 코드가 사용되지 않는 경우(갈릴레오 시스템의 한 가지 가능성 있는 구현예이다)라면, 그 긴 상관 연산 간격 때문에 상기 L1C 서브 채널이 신호 획득에 사용될 수 있을 것이다.
신호 RAM들(310a, 310b, 310c, 310d)로부터 나온 출력들은 복소 정규화기(311)에 결합되며 신호의 크기를 형성한다. 이러한 RAM들(310a, 310b, 310c, 310d) 내의 I 및 Q 파형들은 마치 복소 파형의 실수부와 허수부처럼 볼 수 있다. 신호의 크기를 형성하는 단계는 각 성분을 제곱하는 단계, 그 결과들을 합산하는 단계 및 그 결과에 제곱근을 취하는 단계로 구성된다. 이러한 크기 값에 대해 회로 를 간단하게 하는 데에 이용될 수 있는 몇 가지 근사 방법이 있다. 일 실시예에서는, 상기 복소 크기는 I 및 Q의 스칼라 크기를 독립적으로 취하고, 그 중 더 큰 쪽을 결정하는 방법으로 근사될 수 있다. 복소 크기는 더 큰 크기를 취하고, 이를 작은 크기의 절반에 더함으로써 근사될 수 있다.
갈릴레오 신호의 경우에, 최대 9 개의 서로 다른 신호 상관 연산들의 정합 상관 연산들(coherent correlations)이 상기 신호 RAM들(310a, 310b)에서 액세스될 수 있으며, 비정합적으로(non-coherently) 합산되어, 상기 정규화기(311)로 인가될 입력을 형성한다. 다양한 상관 연산들의 결과들이 선택적으로 결합될 수 있는데, 예를 들어, L1B 상관 연산 단독, 결합된 L1B 및 L1C 상관 연산 및 필터링되지 않은 신호의 상관 연산들과 결합된 필터링된 신호의 상관 연산들, 기타 등등을 예로 들 수 있다.
크기 연산의 결과들은 그 값이 작은 범위 내에 유지될 수 있도록 축척(scaled)될 수 있으며, 그럼으로써 RAM(313)이 오버플로되는 것을 방지할 수 있다. 간략하게 하기 위해, 스케일러(scaler)는 도시하지 않았다. 일 실시예에서, 이러한 축척 동작은 그 결과 값을 3 비트만큼 쉬프트시키는 것(즉, 8로 나누는 것)으로 구성된다.
또한 신호의 크기 대신에 신호의 전력(power)을 적산하는 것도 가능하다. 이러한 경우에, 상기 회로(500) 내의 연산은 전력 추정이 될 것이며, 이는 통상적으로 I 및 Q의 제곱들의 합을 취함으로써 계산된다. 다른 방법으로는, I 및 Q의 크기 또는 전력을 나타낼 수 있는 값들을 생성하는 데에 추가적인 비선형 연산들이 이용 될 수 있다.
상기 복소 정규화기(311)로부터 나오는 출력은 합산기(312)에 의해 누적 연산되어 크기 RAM(313)에 저장된다. 이러한 적산 프로세스는 RAM(313)으로부터 특정한 시간 지연에 대한 현재의 크기 값을 읽어내는 단계, 직전에 계산된 크기 결과 값에 합산하는 단계 및 합산 값을 다시 RAM(313)에 기록하는 단계로 구성된다. 앞서 논의된 바와 같이, 크기 적산은 신호 대 잡음 비의 향상을 달성하는 데에 요구되는 회수 정도로 많은 사이클 동안 지속될 수 있다.
상기 벡터 승산기들(502a, 502b)은 상기 신호의 각 쉬프트마다 M 차례의 부분 상관 연산을 수행한다. 코드 룩업 회로(508)은 각 부분 상관 연산을 위한 기준 코드 샘플들을 생성한다. 이러한 룩업 동작은 두 개의 룩업 인덱스(lookup indexes)에 의해 제어된다. 먼저, 상기 GPS 코드는 32 개 코드들 중의 하나로 선택되어야 한다. 이러한 선택은 컨볼루션 프로세스를 통틀어 일정하며, 처리 채널이 어떤 특정한 위성 신호에 대해 상관 연산을 하도록 구성된 때에 이루어진다. 두 번째 인덱스는 1부터 M 사이의 세그먼트 인덱스(segment index)이다. 각 GPS 코드는 1023 칩들로 구성되는데, 이들 칩들은 M 개의 서로 중복되지 않는 세그먼트들로 나뉘며, 각 세그먼트는 K 개의 인접한 코드 칩들로 구성된다. 상기 룩업 인덱스는 어떤 코드 세그먼트가 요구되는 지를 식별시킨다. 상기 코드 룩업 회로로부터 나오는 출력은 그러한 세그먼트를 포함하는 K 개의 칩들이다. 선택 프로세스는 제어/어드레스 로직(514)에 의해 제어된다. 갈릴레오 신호들의 경우에는, 상기 코드는 4096 칩들로 구성되며, 이들은 각각 K 개의 인접하는 코드 칩들로 구성된 M개의 서로 중 복되지 않는 세그먼트들로 분할될 수 있다. L1B 및 L1C 서브 채널들 양자 모두에 대해서 갈릴레오 코드 세그먼트는 GPS 코드 세그먼트에 관해 이용되는 것과 동일한 방식, 즉 코드와 세그먼트 인덱스를 이용하는 방식으로 룩업(lookup)된다.
GPS의 경우에, PRN은 알려진 코드(1023 칩 골드 코드(Gold code))로서, 필요한 대로 생성될 수 있으며 룩업 테이블(508) 내에 저장될 수 있다. 갈릴레오의 경우에는, 코드는 이른바 "메모리 코드(memory code)"로서, 미리 특정되지 않으며, 수학적으로 생성될 수도 없다. 그리하여, 4092 칩들은 갈릴레오 규격에 의해 제공될 것이며, 코드 룩업 테이블(508)에 로딩될 수 있도록 메모리에 저장될 것이다.
상기 코드 확장기(code extender)(509)는 한 세그먼트의 K 칩들을 그 입력으로서 취하여, 그 세그먼트를 K x P 개의 코드 샘플들로 확장시킨다. GPS 신호가 처리되고 있느냐 또는 갈릴레오 신호가 처리되고 있느냐에 따라, 상기 코드 확장기는 특화된 기술을 이용한다. GPS 신호 및 필터링된 갈릴레오 신호들에 대해서는, 상기 확장 동작은 각 코드 칩을 P 개의 동일한 코드 샘플들로 변환하는 단계를 포함한다. P=4인 필터링되지 않은 갈릴레오 신호들에 대해서는, 상기 확장 동작은 2 개의 양의 코드 샘플과 두 개의 반전된 코드 샘플들을 이용하는 단계를 포함한다. 상기 코드 확장기(509)의 출력은 벡터 승산기(502a, 502b)로 입력될 기준 코드를 형성한다. 이 예에서는, 상기 코드 확장기의 출력은, 각각 두 번 복제된, 33 개의 고유 GPS 또는 필터링된 갈릴레오 칩 값들로 이루어진 66 개 샘플들, 또는 각각 추가적인 하나의 양의 값 및 두 개의 반전된 값들을 가지고 복제된, 고유한 필터링되지 않은 갈릴레오 칩 값들을 포함하는 132 개의 샘플들이다.
도 5에 나타낸 아키텍처는 PRN 코드율(code rate) f0보다 실질적으로 더 빠른 클럭을 필요로 한다. 예를 들어, PRN 코드 칩마다 두 샘플들이 이용(P=2)되고, K 및 M은 각각 33 및 31이라면, 완전 컨볼루션을 수행하는 것은 2 x f0의 속도로 이동하는 신호 쉬프트 레지스터의 각 쉬트프마다 31 번의 부분 상관 연산을 수행하는 것을 필요로 한다. 통상적으로, RAM들(110a, 110b)에 대해 읽고 쓰기 위해서는 적어도 한 클럭 사이클이 필요하다. 한 클럭 사이클이라고 가정하면, 완전 컨볼루션을 수행하는 데에 필요한 최소의 클럭 속도는
fclk = 1 x 31 x 2 x f0 = 1 x 31 x 2 x 1.023 MHz ≒ 63.5 MHz
이다. 이러한 속도는 최신의 집적 회로 로직에서는 쉽게 달성될 수 있다.
필터링된 갈릴레오 신호의 경우에는, 클럭킹 속도는 GPS 클럭킹 속도의 두 배가 되는데, 그럼으로써 전체 4 밀리초의 신호가 GPS 신호 프로세싱과 동일한 양의 시간 내에 처리됨을 확실히 한다. 필터링되지 않는 경우에 대해서는, 클럭킹 속도는 GPS 클럭킹 속도의 네 배가 되는데, 그럼으로써 4 밀리초의 신호가 처리된다는 점을 확실히 하고, 또한 P를 2에서 4로 증가시킬 필요에 대해 대응할 수 있다.
본 발명은 또한 완전 컨볼루션의 서브셋(subset)을 계산하는 데에도 이용될 수 있다는 점이 주지될 필요가 있다. 이는 특히 갈릴레오 신호들을 GPS 상관기 클럭 속도의 8 배보다 낮은 클럭킹 속도로 처리할 경우에 중요하다. 이러한 경우에, 신호 쉬프트 레지스터의 각 쉬프트마다 M 보다 적은 횟수의 부분 상관 연산이 수행된다. 이러한 경우에, 지연의 총 범위는 하나의 완전 컨볼루션을 구성할 P x 1023 보다 작아지게 된다.특히, 만약 M2 부분 상관 연산이 수행된다면, M2 곱하기 K 곱하기 P 개의 지연 값들이 생성되게 된다. 상기 프로세서로 인가되는 클럭킹 속도는 M2 대 M의 비율로 감소된다. 더 나아가, RAM의 크기도 마찬가지로 이러한 비율로 감소된다. 따라서, 이러한 대안 구성은 완전 컨볼루션을 처리할 만큼의 계산 자원 내지 메모리 자원을 갖지 못한 시스템들에서 유용할 수 있다.
본 발명의 일 실시예에서는, 갈릴레오 신호들을 상관 연산하는 것은 GPS 신호들에 대해 이용되는 것과 같은 클럭 속도 및 부분 상관 연산들을 이용하여 수행된다. 따라서, 여느 한 시점에 오직 1/4 에포크만 상관 연산된다. 현재 상관 연산되고 있는 에포크의 1/4 구간 내에서 상관 최대치를 생성하는 타이밍 조건을 이용하여 이러한 상관 연산이 수행되도록 하기 위해서, GNSS 수신기는 먼저 GPS 위성으로부터 받은 신호를 획득하여 수신기를 위한 정확한 타이밍을 구축할 수 있으며, 이어서 상기 GPS 신호의 획득으로부터 얻은 타이밍 추정을 이용하여 갈릴레오 신호를 획득할 수 있다. 처음에는, 갈릴레오 위성들보다는 GPS 위성들이 더 많이 있을 것이기 때문에, 수신기에 대한 타이밍은 갈릴레오 신호가 수신되기 이전에 GPS 위성으로부터 온 신호들에 의해 형성될 확률이 높다.
다른 방식으로는, 갈릴레오 신호의 획득은 파일럿 성분에 관하여 수행될 수 있으며, 이어서 데이터 성분이 획득될 수 있다. 상기 파일럿 성분의 일부로써 이용될 것으로 예측되는 2차 코드가, 만약 존재한다면, 알려지게 되고, 이는 L1C 서브 채널에 관하여 더 긴 상관 연산 간격을 가능하게 할 수 있도록 쉽게 제거될 수 있 다. 일단 위성 타이밍이 알려지게 되면, L1B 서브 채널 신호는 상기 데이터 성분을 제거하지 않고 짧은(4mS) 상관 구간을 이용하여 상관 연산될 수 있다. 다른 방식으로, GPS 신호는 자신의 긴 상관 구간을 이용하여 획득될 수 있는데, 타이밍 동기화가 이뤄지고 난 후에 갈릴레오 신호들도 서브 채널들로부터 데이터 또는 2차 코드를 제거하지 않고 어느 한 서브 채널의 짧은(4mS) 상관 구간을 이용하여 획득될 수 있다.
K 및 M에 관하여 다른 값들을 선택하면 추가적으로 설계 상의 트레이드오프를 할 수 있게 하지만, 1023의 인수(prime factor)가 3, 11 및 31이기 때문에 K와 M에 대한 선택 가능 값들은 한정되어 있다. K를 감소시키는 것은 그렇게 하면 쉬프트 레지스터들(501a, 501b)의 크기와 벡터 승산기들(502a, 502b)의 복잡도를 감소시키기 때문에 바람직하지만, 이는 더 큰 M을 필요로 하며 따라서 더 큰 클럭 속도를 필요로 한다. K에 관해 선택 가능한 값들은 3, 11, 31, 33, 93이다. 이러한 선택 값들은 각각 695 MHz, 190MHz, 67.5 MHz 및 22.5 MHz이다(모든 경우에서 P = 2이고 부분 상관 연산마다 1 클럭 사이클이 소요된다고 가정). 실시예를 제시하는 현 시점에서 이용가능한 기술에 기초로 할 경우에, 어떤 실시예에 대해 K = 66이 선택되었다. 앞으로의 기술을 이용한다면, K = 11이라는 선택 값과 190 MHz의 클럭 속도가 이용 가능해질 것이며, 로직의 복잡도를 더 줄이는 결과를 가져올 것이다. 따라서, 이러한 아키텍처는 동작 속도와 로직의 복잡도 사이에 최적화된 트레이드오프를 지원할 수 있는 바람직한 속성을 가진다.
코드 세그먼트들의 정렬(sequencing)은 제어 로직(514)에 의해 제어된다. 이 제어 로직은 또한 RAM들(310a, 310b, 313)에 대해 정확한 어드레스들을 인식시켜준다. 아래에서 논의되겠지만, 부분 상관 연산은 비순차적(non-sequential)인 순서로 생성되며, 따라서 RAM 어드레스들의 생성도 단순하지 않다(non-trivial).
도 5에 나타난 회로의 동작은 또한 도 6의 순서도를 참조함으로써 이해될 수 있다. 방법(600)은 단계(650)에서 시작하여 단계(652)로 진행하는데, 여기서 상기 방법은 프로세싱 채널이 갈릴레오 신호를 처리할 것인지 GPS 신호를 처리할 것인지를 선택한다. 만약 방법(600)이 갈릴레오 신호를 선택하는 경우에는, 상기 방법(600)은 단계(654)로 진행한다. 단계(654)에서, 상기 방법은 처리될, 즉 필터링을 하거나 또는 필터링을 거치지 않거나 할 신호를 검출한다. 단계(656)에서는, 상기 방법은 어떤 서브 채널(L1B 또는 L1C)이 처리되어야 하는지 또는 양자 모두 처리되어야 할 것인지를 결정한다. 만약 L1B만이 처리될 것이라면, 단계(660)에서 L1B PRN 코드가 추후 이용을 위해 선택된다. 만약 L1C만이 처리될 것이라면, 단계(658)에서 L1C PRN 코드가 추후 이용을 위해 선택된다. 만약 L1B 및 L1C 모두가 처리될 것이라면, 상기 방법(600)은 단계(666)에서 L1B PRN 코드를 선택하고 단계(668)에서 L1C PRN 코드를 선택한다. 비록 설명된 실시예가 상관 연산될 신호들을 선택하지만, 간략한 실시예라면 단지 갈릴레오 서브 채널 중 어느 하나만, 즉 L1C 만 상관 연산할 수도 있다. 그러한 실시예에서는, 단계들(654, 656, 660, 666, 668)은 이용되지 않을 것이며, 그러한 실시예는 단계(658)에서 L1C 코드를 선택할 것이다.
만약 GPS 신호가 처리되어야 할 것이라면, 단계(652)에서 선택된 바와 같이, 상기 방법(600)은 GPS PRN 코드를 단계(662)에서 선택한다.
단계(601)에서는, 상기 방법(600)은 신호 쉬프트 레지스터들(501a, 501b)의 프리로딩(pre-loading)을 시작한다. 이 시점에서, 컨볼루션 프로세스가 시작될 수 있다. 단계(602)에서, 선택된 PRN 코드들 중 어느 한 코드 또는 다수의 코드들이 특정 부분 상관 연산을 위해 액세스될 수 있다.
단계(603)에서, 코드 세그먼트는 코드 확장기에 의해 확장되어 PRN 칩마다 P 샘플들을 갖게 된다. 위에서 논의되었던 바와 같이, 필터링되지 않은 갈릴레오 신호들에 관하여는, 반전된 극성의 칩 코드가 이용되며, GPS 신호에 관하여는 복제된 칩 코드가 이용된다. 만약 갈릴레오 신호가 필터링되는 경우에는, 이러한 갈릴레오 신호 코드는 GPS 코드와 동일한 방식으로 확장된다.
다음으로, 단계(604)에서, 지연 인덱스(delay index) 및 이에 상응하는 RAM 어드레스들이 계산된다. 상기 지연 인덱스는 완전 컨볼루션 중의 어떤 지점이 부분 상관에 의해 갱신되어야 하는지를 표시한다. 도 8과 관하여 설명되는 예로부터 명백하게 드러나겠지만, 이러한 지연 인덱스는 비선형적이지만 결정 가능한 방식으로 도약(jump)할 수 있다. 어드레스의 계산은 신호 쉬프트의 횟수 및 코드 세그먼트의 함수이다.
단계(605)에서, 부분 상관 연산이 벡터 승산기들(502a, 502b)을 이용하여 계산된다. 단계(664)에서, 데이터 또는 2차 코드는 필요한 경우에 제거된다. 단계(606)에서, 벡터 승산의 결과 값이 신호 RAM 내에서 상기 지연 인덱스에 의해 지시되는 위치에 누적된다. 단계(670)에서, 상기 방법(600)은 L1B 및 L1C 서브 채널 들이 상관 연산되고 있는지를 질의한다. 만약 L1B 및 L1C 서브 채널 신호들 모두가 처리되고 있는 중이라면, 상기 방법은 단계(603)로 진행하며, 이어서 단계들(603, 604, 605, 664, 606)이 L1B 코드에 대해서 반복되고 다시 L1C 코드에 대해 반복되며, 그 반대로 반복될 수도 있다. 다음으로 단계(607)에서, 처리 과정이 정합 누적 구간의 끝에 도달하였는지 여부를 판정하기 위한 체크 동작이 수행된다. 만약 도달하지 않았다면, 상기 방법은 단계(602)로 돌아가며, 다음 코드 세그먼트에 대해 위의 단계들을 반복한다.
만약 단계(607)에서 점검 결과 부분 상관 연산들이 모든 코드 세그먼트들에 대해 완료되었다면(즉, M 번의 부분 상관 연산들), 상기 방법은 단계(608)로 진행한다. 단계(608)에서, 상기 신호 레지스터들(501a, 501b, 501c, 501d)은 한 샘플만큼 쉬프트된다.
상기 방법(600)은 이어서 단계(609)로 이동하는데, 여기서는 마지막 쉬프트 시에 상기 정합 누적 구간의 끝을 만나게 되는지 여부를 확인하는 체크 동작이 수행된다. 만약 끝이 아니라면 프로세스는 단계(602)로 되돌아가 반복된다. 만약 체크 결과가 정합 누적 구간의 끝을 나타낼 때에는, 상기 방법은 단계(610)에서 계속되며, 여기서는 신호의 크기가 복소 정규화기(311)에 의해 계산된다. 그 결과 값은 합산기(312)를 이용하여 합산되며, 상기 크기 RAM(313)에 저장된다. 다음으로, 단계(611)에서, 모든 크기 적산 동작들이 수행되었는지 여부를 판정하는 체크 동작이 이뤄진다. 만약 모든 적산 동작들이 수행되었다면, 상기 방법은 단계(612)에서 완료된다. 만약 그렇지 않은 경우에는, 절차는 단계(601)에서 다음 부분 상관 연산을 수행함으로써 계속된다.
도 7 및 도 8은 간략화시킨 예를 통해, 완전 컨볼루션 결과를 적산하기 위해 본 발명이 어떻게 부분 상관 연산을 이용하는지를 예시한다. 명확성을 위해, 이들 도면들은, 위성 신호에서 쓰이는 길이 1023의 GPS PRN 코드나 4092인 갈릴레오 PRN 코드에 반하여, 매우 짧은 길이인 6 개 코드의 컨볼루션을 예시한다. 예시를 더 간략화하기 위해, 코드 칩 당 한 샘플만이 이용되며, 즉 P = 1이다. 도 7은 표준적인 정합 필터링 방식을 통한 컨볼루션을 예시하며, 도 8은 부분 상관 연산들을 결합하는 방법을 통한 이상적인 컨볼루션을 예시한다. 도 8의 세부 사항은 본 발명의 전체적인 동작을 이해하는 데에 도움이 된다. 양 발명 모두 이상적인 컨볼루션 결과를 제공한다.
도 7은 길이가 6인 신호에 대한 종래의 정합 필터(matched filter)의 동작을 보여준다. 필터 동작은 쉬프트 0(shift 0)이라고 표시된 시점부터 시작한다. 이 시점에서, 신호의 전체 사이클을 포함하는 6 개의 연속되는 신호 샘플들은 신호 쉬프트 레지스터(701) 내에 있다. 개별 샘플들은 대문자 지시자들(A, B, C, D, E, F)로 이름표가 붙어 있다. 전체 길이가 6인 코드에 대한 코드 샘플들은 기준 레지스터(702) 내에 저장되어 있고, 소문자 지시자들(a, b, c, d, e, f)로 이름표가 붙어 있다. 쉬프트 0의 시점에서 벡터 승산 및 합산이 수행되어 쉬프트 0에 대한 상관 연산 결과가 생성된다. 각각의 신호 샘플은 상응하는 코드 샘플에 승산되며, 그 결과들이 합해져서 상관 연산 결과(703)를 생성한다.
다음으로, 신호 쉬프트 레지스터(704)는 쉬프트 1로 표시된 도면과 같이, 한 샘플만큼 이동된다. 신호는 주기적이며, 따라서 레지스터의 좌측에서 도입되는 새로운 샘플은 우측에서 이동하여 빠져나가는 샘플과 동일하다. 상기 레지스터(704)의 쉬프트 후 저장 내용은 이제 지시자들(F, A, B, C, D, E)로 표시된 샘플들이다. 상기 코드는 쉬프트되지 않는다. 벡터 승산 및 합산 연산은 이제 쉬프트 1에 상응하여 상관 연산 결과(705)를 내놓는다. 이러한 쉬프팅 프로세스는 추가적으로 5 차례 쉬프트만큼 계속되며, 각 쉬프트 시점마다, 완전 컨볼루션을 구성하게 되는 총 6 개의 상관 연산 결과들이 이용가능하게 된다.
도 8은 동일한 컨볼루션 결과가 부분 상관 연산 방법을 통하여 어떻게 얻어지는 지를 예시한다. 설명되었듯이, 본 발명은 코드가 길이 K를 가지는 M 개의 세그먼트로 인수분해될 수 있어야 한다. 도 8의 간략화된 예를 보면, 길이 6의 코드는 길이 2를 가지는 3 개의 세그먼트들로 인수분해된다. 즉 K = 2이고 M = 3이다. 연산은 쉬프트 0으로 표시된 시점에서 시작한다. 이 시점에서, 두 개의 신호 샘플들이 신호 쉬프트 레지스터(801) 내에 들어있다. 이 신호 샘플들은 대문자 지시자들(A, B)라고 이름표가 붙어 있다. 코드의 6 개 샘플들은 각각 길이가 2인 3 개 세그먼트들 내에 저장되어 있다. 첫 번째 코드 세그먼트(802)는 소문자 지시자들(a, b)로 이름붙은 2 개의 코드 샘플들을 포함한다. 상기 신호는 3 번의 부분 상관 연산 동안 현 위치에 유지되며, 부분 상관 연산 결과들(803a, 803b, 803c)을 발생시킨다. 이러한 첫 번째 부분 상관 연산 결과는 상기 신호 레지스터의 저장 내용과 첫 번째 코드 세그먼트(세그먼트 1) 사이에서 이뤄지는 벡터 승산 및 합산에 의해 생성된다. 두 번째 및 세 번째 결과들은 각각 신호 레지스터 내용과 두 번째 및 세 번째 코드 세그먼트들 사이의 벡터 승산 등으로부터 생성된다. 상기 신호 레지스터은 총 세 번의 벡터 승산 연산들이 수행되기 충분한 시간 동안 해당 저장 위치에 유지된다는 점과, 코드는 이러한 연산 시간 동안에는 쉬프트되는 것이 아니라 다른 코드 세그먼트들이 선택된다는 점을 주의한다.
이러한 부분 상관 연산 결과들은 신호 경로들(805)에 따라 메모리 내로 적산된다. 예를 들어, 쉬프트 0에서는, 첫 번째 코드 세그먼트로부터 얻은 부분 상관 연산은 상관 연산 결과(804)에 합산된다. 두 번째 세그먼트로부터 얻은 부분 상관 연산은 쉬프트 2에 대한 상관 연산 결과(806)에 합산된다. 세 번재 세그먼트로부터 얻은 부분 상관 연산은 쉬프트 4에 대한 상관 연산 결과(808)에 기여한다.
세 부분 상관 연산이 끝나면 신호는 쉬프트된다. 쉬프트 1로 표시된 이 단계에서, 신호 레지스터는 샘플(F, A)을 포함한다. 다시 한번, 세 번의 부분 상관이 앞서와 동일한 세 개의 코드 세그먼트들을 가지고 생성된다. 이들 부분 상관 연산들로부터 얻은 결과들은 각각 쉬프트 1, 3, 5에 해당하는 상관 연산 결과들(810, 812, 814)에 기여한다. 연산 절차는 추가적으로 4 번의 신호 쉬프트들만큼 계속되며, 매번 완전 컨볼루션 결과가 얻어진다. 도시된 바와 같이, 이러한 연산은 컨볼루션을 포함하는 6 개의 완전한 결과들에 기여하는 총 18 개의 부분 상관 값들을 생성하는 것을 필요로 한다.
도 8에 설명된 아키텍처는 본 발명의 두 가지 중요한 특성들을 예시한다. 첫째, 완전 컨볼루션은 길이 6의 코드에 대해 하나의 쉬프트 레지스터와 길이 2의 벡터 승산 및 합산 유닛만을 이용하여 생성될 수 있다는 점이 분명하다. 이는 길이 6 인 세 개의 요소들이 있는 도 7에 비해 적은 회로를 요구한다. 둘째, 도 8에서는, 코드 샘플들은 각 쉬프트에 대해서 동일하게 고정된 세그먼트들의 형태로 액세스될 수 있고, 각 세그먼트는 한 코드의 서로 중복되지 않게 분리된 일부이다. 따라서, 간단한 룩업 또는 레지스터 기술만으로도 벡터 승산기들에 코드를 제공하는 데에 사용될 수 있으며, 이는 도 9 및 도 10을 참조하여 더 논의될 것이다. 이러한 기술들은, 큰 블록으로 된 코드 비트들이 더 복잡한 순열(permutations)의 집합 형태로 이용가능하게 되어야 할 필요가 있을 수 있는 다른 아키텍처들에 비해 더 적은 회로를 요구한다. 본 발명은 또한 코드 생성 회로부를 제공할 필요성을 제거한다.
도 9는 코드 룩업 회로(code lookup circuit)(508)의 일 실시예에 관한 블록도를 나타낸다. 테이블(901)은 각각이 총 1023 비트인 32개의 코드들과, 이에 더불어 각각이 4092 비트인 갈릴레오 코드들(L1B 또는 L1C)에 관하여 저장 값들을 포함한다. 갈릴레오 코드는 사전에 정의되지 않은 상태이기 때문에, 코드들은 회로(508)에 로딩되어야만 한다. 따라서 회로(508)는 랜덤 액세스 메모리일 수 있다. 상기 테이블(901)은 각 코드당 하나씩, 다수의 서브 테이블(sub-table)로 조직되어 있다. 각 서브 테이블은 더 나아가 길이 K인 M 개의 세그먼트들로서 구성되는데, 이때 K x M = 1023(또는 4092)이며, K와 M은 앞서 설명한 바와 같이 선택된다. 멀티플렉서(902)는 선택된 값에 기초하여 특정한 코드를 선택한다. 상기 멀티플렉서(902)의 출력은 원하는 코드에 상응하는 특정한 서브 테이블이 된다. 멀티플렉서(903)는 1부터 M 사이의 세그먼트 선택 값에 기초하여 특정한 세그먼트를 선택한다. 멀티플렉서(903)의 출력은 특정한 코드 세그먼트(904)로서 길이가 K이고, 코드 확장기(509)로 제공될 코드 비트들을 포함한다.
멀티플렉서(903)는 매 부분 상관연산마다, 즉 매 클럭 사이클마다 코드 세그먼트가 변경될 수 있게 할 수 있도록 고속으로 동작하여야 한다. 이러한 이유로, 모든 코드 비트들은, 종래의 방식에서 GPS 코드 생성기를 사용하여 실시간으로 생성되던 것과는 반대로, 테이블(901)에 사전에 저장되어 있어야 하는 점이 필요하다.
도 9의 회로들은 예시의 목적을 의도한 것이다. 실제로는, 기능상으로 등가인 서로 다른 많은 회로 설계안들이 존재한다. 특히, 최신의 ASIC 설계에 이용되는 로직 합성(logic synthesis) 프로세스를 하다 보면 위에서 설명된 동작과 동일한 동작을 수행하지만 설명된 방식과 같은 멀티플렉서를 반드시 사용하지는 않는 특정한 패턴의 게이트들에 도달하게 될 수 있다.
도 10은 코드 룩업 회로(508)의 또 다른 실시예의 블록도를 예시한다. 특정 코드에 대해 상응하는 1023(또는 4092) 코드 비트들은 길이 K인 M 개의 행으로 구성된 1023(또는 4092) 양방향 쉬프트 레지스터(1001) 내에 유지된다. 상기 쉬프트 레지스터들은 두 가지 모드 즉 구동 모드(running mode)와 로딩 모드(loading mode)로 동작한다. 일반적으로, 두 세트의 4092 쉬프트 레지스터들이 갈릴레오 L1B 및 L1C 코드들 모두를 동시에 수용할 수 있게 이용된다. 갈릴레오 신호가 처리되고 있을 때에, 상기 쉬프트 레지스터들은 전체가 채워지고, GPS 신호가 처리되고 있을 때에는 1023 개의 레지스터들만 채워진다. 그렇지 않고 다른 경우에는 GPS 신호들에 대해 4092 개의 레지스터들 전체가 4 개의 코드들로 채워질 수도 있다.
구동 모드에서는, 각 레지스터(1001)는 가장 바닥 행(bottom row)의 레지스터들에 쉬프트시키는 가장 맨 위 행의 레지스터들을 제외하고, 다음 행 내에 있는 자신의 바로 위 레지스터에 자신의 샘플을 쉬프트시키도록 구성된다. 구동 모드에서 쉬프트 방향은 참조번호 1001 내에서 실선 화살표로 표시되어 있다. 모든 레지스터들에 클럭을 줌으로써, 코드 비트들의 행들이 순환하고, 그럼으로써 어느 한 시점에서 가장 맨 위 행은 길이 K의 M 개코드 세그먼트들 중 하나를 저장하게 된다. 이 가장 맨 위 행의 비트들은 코드 확장기(509)로 제공된다. 레지스터들은 빠르게 순환하며, 따라서 다른 코드 세그먼트가 각 부분 상관 연산 시에 이용가능하게 된다.
로딩 모드에서는, 각 레지스터는 바로 위 행 내의 첫 번째 열의 레지스터들에 쉬프트시키는 가장 마지막 열의 레지스터들을 제외하고, 자신의 행 내의 다음 레지스터에 자신의 샘플을 쉬프트시키도록 구성된다. 로딩 모드의 쉬프트 방향은 참조번호 1001 내에서는 파선 화살표로 표시되어 있다. 좌측 하단의 쉬프트 레지스터(1004)는 통상적으로 플래시 메모리인 코드 메모리(1002)에 연결된다. 상기 코드 메모리는 32 개 코드들 각각에 대해 1023 GPS 코드 비트씩을 저장하고, L1B 및 L1C 코드들 각각에 대해 4092 갈릴레오 코드 비트들을 저장한다. 코드 룩업 회로(508)가 특정한 코드에 관하여 구성되는 경우에, 상기 레지스터들은 로딩 모드에 놓이게 되고, 클럭이 레지스터들에 제공되면 상기 메모리는 상기 코드의 비트들을 제공할 수 있도록 액세스된다. 모든 비트들에 대해 클럭킹된 후에는, 코드는 길이 K의 M 개 세그먼트들 형태로 레지스터들 내에 자리잡게 될 것이다. 상기 회로는 이제 구 동 모드로 사용될 수 있게 준비되었다.
쉬프트 레지스터를 사용하는 것에 대한 다른 대안으로는 모든 필요한 GPS 및 갈릴레오 코드들을 저장하는 RAM이 있다. RAM은 코드 세그먼트들을 선택할 수 있도록 액세스되며, 코드 세그먼트들은 벡터 승산기들(502a, 502b)에 제공된다.
도 11은 여러 해상도 모드로 동작할 수 있는 GNSS 수신기(1100)의 또 다른 실시예에 관한 블록도를 나타낸다. 상기 GNSS 수신기(1100)는 표준 해상도 모드 또는 고 해상도 모드 중 어느 하나에서 동작하는 컨볼루션 처리기(1109)를 포함한다. 더 나아가, 표준 해상도 모드에서 디지털 신호 샘플들은 1/2 PRN 코드 칩(즉, P = 2)만큼 떨어져 있다. 고 해상도 모드에서 디지털 신호 샘플들은 1/5 PRN 코드 칩(P = 5)만큼 떨어져 있다. 따라서, 코드 NCO(1108) 및 데시메이션 회로(1107)는 다수의 샘플링 속도에서 동작한다. 본 기술 분야에 숙련된 자들은 위와 다른 샘플링 간격을 위한 값들을 용이하게 고안할 수 있으며, 본 발명이 두 개 이상의 해상도 모드에서 동작할 수 있다는 점을 이해할 수 있을 것이다.
도 11의 실시예들은 도 3에 묘사된 구성요소들과 유사한 구성요소들을 포함한다. 도 3과 동일한 형태의 참조 번호를 가지는 구성요소들은 도 3과 관련하여 위에서 설명하였던 것처럼 동작한다. 데시메이션 회로(1107), 코드 NCO(1108), 컨볼루션 처리기(1109) 및 모드 선택 처리기(1102)와 같은 구성요소들은 복수의 해상도 모드들의 사용을 원활하게 할 수 있도록 아래에서 설명하는 바와 같이 동작한다. 도 11은 더 나아가 모드 선택 처리기(1102)를 포함한다. 상기 모드 선택 처리기(1102)는 처리 중인 채널(1104)이 고 해상도 모드로 또는 표준 해상도 모드로 동 작할 것인지를 결정할 수 있도록 수신된 신호들을 처리한다.
표준 해상도(즉 P = 2)에서, 최소 제곱 추정은 상관 폭(width of the correlation)에 걸쳐 단지 4 지점들(points)만을 이용한다는 점을 주의하여야 한다. 잡음이 존재하는 경우에는, 이는 커브 고정 프로세스(curve fitting process)의 정확도를 제한시킨다. 더 나아가, 많은 경우에, 삼각형의 중점(center of the triangle)(즉, ACF 내의 최대 상관 지점)은 관측된 상관 값들 중에 위치할 것이다. 이러한 경우에, 상기 관측된 상관 값은, 그리고 관측된 신호 대 잡음 비 또한, 삼각형의 꼭지점이 관측 지점에 가까이 있는 경우에 비해 대단히 낮을 것이다. 고 해상도 모드는 최소 제곱 추정 프로세스를 수행하면서 세밀한 간격을 가진 많은 지점들을 포함시킴으로써, 정확도와 신호 대 잡음 비를 향상시킨다.
특히, 도 12는 GPS 신호 또는 필터링된 갈릴레오 신호에 관하여 고 해상도 모드에서 누적 크기 파형(accumulated magnitude waveform)을 상세하게 설명한다. 필터링되지 않은 갈릴레오 신호에 대해서는, 피크가 좀더 좁지만, 아래에서 논의 될 개념은 동일하게 적용된다. 그래프(1200)는 고 해상도 모드에서 처리되는 신호의 시간 지연에 상응하는 피크 인근에서 컨볼루션의 크기(축(1208))를 나타낸다. 코드 칩 축(1210) 상의 지점들은 PRN 코드 칩 길이를 P로 나눈 값과 같은 간격으로 이격되어 있으며, 여기서 P는 신호 샘플링 레이트와 f0, PRN 코드 칩핑 레이트(code chipping rate)의 비(ratio)이다. 고 해상도 예에서, P = 5이고 따라서 축 상의 지점들은 1/5 칩 간격, 즉 대략 200 ns의 간격으로 떨어져 있다. (이러한 시간 상의 간격은 대략 60 미터의 거리(range) 차이에 상응한다.) 높은 정확도의 의사 거리 측정을 이룩할 수 있도록, 상기 컨볼루션의 출력은 통상적으로 CPU(314)에서 좀더 처리된다.
표준 해상도 프로세싱의 경우에 있어서, 컨볼루션에 의해 제공되는 이산 상관 연산 값들을 이용하여 진정한 시간 지연을 추정하는 데에 이용될 수 있는 수많은 인터폴레이션 기술들이 존재한다. 일 실시예는 잡음이 낀 데이터에 가장 잘 고정(fit)되는 신호 파라미터들을 식별하기 위한 최소 제곱 추정 기술을 이용한다. 상관 연산 응답은 융기된 삼각형(1202)의 형태를 취한다. 삼각형(1202)의 밑변(1203)은 정확히 2 PRN 코드 칩들에 해당하며, 이는 11 개의 샘플 지점들(P = 5의 경우)에 상응한다. 삼각형(1202)의 밑변까지의 높이(1204)는 컨볼루션 시의 시간 지연으로 인한 잡음의 크기로, 신호에 상응하는 것은 아니다. 이 잡음의 크기는 데이터로부터 추정될 수도 있고, 또는 설계 파라미터들, 예를 들어 증폭기 잡음 특성치, 케이블 및 필터 손실 및 시스템 온도 등에 기초하여 사전에 계산될 수도 있다. 삼각형(1202)의 꼭지점(1205) 및 중선(1206)은 신호 크기 및 시간 지연에 상응하는 변수들이다. 최소 제곱법은 이들 두 가지의 파라미터들을 추정하는 데에 이용될 수 있으며, 그럼으로써 잡음이 낀 데이터 지점들을 특정 꼭지점과 중선을 가지는 삼각형에 고정시킬(fit) 수 있다.
표준 해상도 모드에 비해 고 해상도 모드의 한 가지 장점은 융기된 삼각형 상관 연산 응답이 두 배 이상 많은 지점들에서 샘플링된다는 점이다. 본 기술 분야의 숙련된 자들에게 이해될 수 있듯이, 고정 프로세스의 정확도는 추정에 이용된 값들의 개수에 종속적이다. 더 나아가, 삼각형의 밑변 높이에 대한 삼각형 꼭지점의 비(ratio)는 고 해상도 모드에서 증가된다. 이러한 점은, 부분적으로는 이용가능하게 된 상관 연산 지점들이 최대 상관 연산 값을 갖는 지점에 가까워지기 때문에, 신호 대 잡음 비에 향상이 있음을 의미한다. 따라서, 고 해상도 모드는 표준 모드에서는 적절한 수준으로 인지하지 못할 수 있는 상관 연산 최대값들을 신뢰성있게 식별하고 측정하는 데에 이용될 수 있다. 이는 낮은 에너지를 가진 신호들, 예를 들어 실내에서 SPS 위성들로부터 수신된 신호들과 같은 신호들을 처리하는 경우에 매우 유리할 수 있다.
도 13에 관하여 좀더 설명될 것이지만, 이러한 두 가지 모드의 동작은 파라미터들 P, K 및 M의 값들을 동적으로 변화시켜가면서 원하는 해상도를 얻음으로써 수행될 수 있다. 일 실시예에서, 표준 모드에서는 P = 2(즉, PRN 코드 칩마다 두 개의 샘플들)이고 고 해상도 모드에서는 P = 5(즉, PRN 코드 칩마다 5 개의 샘플들)이다. 전체 상관 연산 지점들은 1/P 칩씩 떨어져 위치하며, 따라서 P의 값이 크면 클수록 해상도가 더 세밀해진다는 점은 명백하다. 위에서 논의된 바와 같이, K는 설계 파라미터의 하나로 선택되며, 1023의 인수이다. 설명을 간략하게 하고자, 논의의 나머지 부분은 표준 모드에서는 P = 2, K = 33이고 고 해상도 모드에서는 P = 5, K = 11인 특정한 실시예에 초점을 맞추기로 한다.
P = 5이어서 2에 의해 딱 나누어떨어지지 않기 때문에, 필터링되지 않은 갈릴레오 신호를 처리할 경우에, 샘플링 신호는 첫 번째 칩 상에서 3 개의 정상 샘플들과 2 개의 반전된 샘플들과, 이어서 두 번째 칩 상에서 2 개의 정상 샘플들과 3 개의 반전된 샘플들을 이용하며, 이후에 각각의 연속적인 칩에 대해 이를 반복한다. 이와 다른 실시예에서는 P = 6이 고 해상도 모드에서 필터링되지 않은 갈릴레오 신호들을 샘플링하는 데에 이용될 수 있는데, 서로 반복되는 정상 및 반전 샘플들이 모든 칩들 상에서 이용될 수 있다. 물론, 만약 갈릴레오 신호가 필터링되어 BPSK와 유사한 신호를 생성한다면, 정상 샘플링이 신호 전체에 대해 이용된다.
도 13은 여러 가지 모드의 해상도 내에서 본 발명의 동작에 적합한 컨볼루션 처리기(1109)의 또 다른 실시예의 블록도를 예시한다. 설명을 간략하게 할 수 있도록 I 채널에 대한 프로세싱만 표시되어 있지만, Q 채널도 동일한 프로세싱 요소들을 포함한다는 점은 명백하다. 본 실시예에서, 컨볼루션 처리기(1109)는 쉬프트 레지스터(1301), 벡터 승산기 회로(1302), 합산기(1303), 코드 확장기(1309) 및 코드 룩업 테이블(1308)을 포함한다. 코드 확장기(1309)는 더 나아가 표준 코드 확장기(1304) 및 고 해상도 코드 확장기(1305)를 포함한다. 상기 데시메이션 회로(1107)로부터 온 I 신호는 쉬프트 레지스터(1301)에 연결된다. P x K의 값이 표준 모드냐 고 해상도 모드냐에 따라 변하기 때문에 쉬프트 레지스터(1301)는 가변 길이를 가진다. 구체적으로는, 쉬프트 레지스터(1301)는 표준 모드에서는 66 개 샘플들을 보관할 수 있어야 하며, 고 해상도 모드에서는 55 개 샘플들을 보관할 수 있어야 한다. 따라서, 쉬프트 레지스터(1301)는 양 길이 값들을 모두 지원할 수 있게 66 개의 요소들을 포함한다. 고 해상도 모드에서는, 끝쪽 11개의 요소들은 비활성화된다.
신호들은 표준 모드 또는 고 해상도 모드 중 어느 하나에 대해 코드 NCO(1108)가 제공한 타이밍에 맞춰 Pf0의 속도로 쉬프트 레지스터(1301)를 통과하며 이동한다. 이 신호들은 수 클럭 사이클 동안 제자리에 머물러 있는데, 그럼으로써 일련의 부분 상관 연산들이 수행될 수 있다. 구체적으로는, 총 M 차례의 부분 상관 연산들이 수행되는데, 이때 M = 1023/K이다. 본 실시예에 있어서, 표준 모드에서는 M = 31이며, 고 해상도 모드에서는 M = 93이다. 각 부분 상관 연산은 쉬프트 레지스터(1301)의 저장 내용과 P x K 코드 샘플들을 포함하는 코드 중의 한 세그먼트 사이의 고속 벡터 승산 및 합산 연산으로 구성된다. 상기 연산은 벡터 승산기(1302)를 통해 수행되며, 이는 승산기들(1310) 및 합산기(1312)를 포함한다. 쉬프트 레지스터(1301)와 유사하게, 벡터 승산기(1302)도 표준 모드와 고 해상도 모드 동작을 모두 지원할 수 있도록 가변 길이를 가진다.
상관 연산은 쉬프트 레지스터(1301) 내의 P x K 신호 샘플들 각각을 P x K 코드 샘플들(코드 확장기(1309)를 가지고 코드 샘플들을 확장함으로써 형성됨)에 곱하는 연산과, 합산기(1312)로 그 결과들을 합산하는 연산으로 구성된다. 위에서 논의된 바와 같이, 수학적으로, 이 연산은 내적(inner product)라고도 불린다. 벡터 곱 및 합의 결과 값들은 합산기(1303) 내에 적산되며, 컨볼루션 결과 처리 회로들(500)에 의해 도 5와 관련하여 위에서 논의되었던 것과 동일한 방법을 통해 처리된다.
코드 룩업 테이블(1308)은 각 부분 상관 연산을 위한 기준 코드 샘플들을 생성하며, 표준 모드 및 고 해상도 모드 모두에 대해 코드 세그먼트들을 공급하도록 구성된다. 먼저, 상기 코드는 이용가능한 GPS 또는 갈릴레오 코드들로부터 선택되어야 한다. 이러한 선택은 컨볼루션 프로세스 전반에 걸쳐 고정적이며, 프로세싱 채널이 특정한 위성 신호에 대해 상관 연산을 하도록 구성될 때에 이뤄진다. 두 번째 인덱스는 1과 M 사이의 세그먼트 인덱스이다. 본 실시예에 있어서, 세그먼트 당 샘플들의 개수는 표준 모드에서 33이고 고 해상도 모드에서 11이다. 양 모드를 모두 지원할 수 있으려면, 상기 코드 룩업 테이블(1308)은 11 칩들로 된 93 개의 세그먼트들(1307)을 포함한다. 상기 93 개의 세그먼트들(1307)은 더 나아가 각각 31 개 세그먼트들로 된 3 개의 블록들(1306a 내지 1306c)로 구성된다. 각 그룹(1306a 내지 1306c)의 출력(11 개 칩으로 된 세그먼트)는 코드 확장기(1309)에 연결된다.
표준 모드에서 상기 각 그룹(1306a 내지 1306c)의 출력 세그먼트는 33 개 칩들을 가지는 넓은 세그먼트를 형성하도록 합쳐진다. 구체적으로, 1부터 31 사이에서 세그먼트 선택 값이 만들어진다. 상기 세그먼트 선택 값 및 코드 선택 값은 상기 그룹들 (1306a 내지 1306c)로부터 11 개 샘플들로 이뤄진 3 개의 세그먼트들(1307)을 다중화하는 데에 이용된다. 상기 세그먼트(1307)는 연쇄적으로 연결되어 33 개 샘플로 된 넓은 세그먼트를 형성하며, 이는 표준 코드 확장기(1304)의 입력이 된다. 고 해상도 모드에서, 세그먼트 선택 값은 1부터 93까지이다. 세그먼트들(1307) 중에서 오직 하나만이 그룹들(1306 내지 1306c)로부터 선택된다. 11 개 샘플로 된 세그먼트들(1307)은 이어서 고 해상도 코드 확장기(1305)로 연결된다.
표준 모드에서, 상기 표준 코드 확장기(1304)가 동작하며, 33 개 샘플의 넓은 세그먼트를 66 개 샘플들로 확장시킨다. 고 해상도 모드에서는, 상기 고 해상도 코드 확장기(1305)가 동작하며, 11 개 샘플의 코드 세그먼트들을 55 개 샘플들로 확장한다. 비록 코드 확장기(1309)가 표준 코드 확장기(1304) 및 고 해상도 코드 확장기(1305)로 구성된 것처럼 표현되어 있지만, 기술 분야에 숙련된 자들에게 이들 확장기들이 기능상 하나의 단일한 코드 확장기(1309)로 합체될 수 있다는 점이 이해될 것이다.
클럭 속도는 표준 모드와 고 해상도 모드 사이에서 바뀐다. 예를 들어, 표준 모드에서는, 도 5에 관하여 논의되었던 바와 같이, 대략 63.5 MHz의 클럭 속도는 P, K 및 M이 각각 2, 33 및 31인 경우에서 실시간으로 완전 컨볼루션을 수행하는 것을 지원하며, RAM 사이클 당 2 차례의 클럭 사이클이 요구된다. 본 실시예에서는, 고 해상도 모드의 파라미터들 P, K 및 M은 각각 5, 11 및 93이다. 따라서, 완전 컨볼루션을 생성하기 위한 클럭 속도는 다음과 같다.
fclk = 5 x 93 x 2 x f0 = 5 x 93 x 2 x 1.023 MHz ≒ 952 MHz
이 정도의 속도는 현대적인 집적 회로 로직에서 달성하기 어려울 수 있기 때문에, 그리고 RAM의 크기가 2046 샘플들에서 5115 샘플들로 커져야 할 수 있기 때문에, 고 해상도로 동작할 때에는 컨볼루션 처리기(1009)의 비용과 복잡도를 줄이기 위해서는 완전 컨볼루션보다 낮은 수준의 컨볼루션을 생성하는 것이 바람직할 수도 있다.
따라서, 일 실시예에서는, 입력 신호들의 각 쉬프트에 대해 부분 상관 연산들의 횟수를 감소시킴으로써 완전 컨볼루션보다 낮은 수준의 컨볼루션이 계산될 수 있다. 도 14에 관하여 아래에서 설명되겠지만, 부분 상관 연산들은 완전 컨볼루션 영역 중에서 특정한 관심 영역에 관하여 상관 연산 지점들이 생성되도록 선택된다. 이러한 대안적인 실시예에서 필요로 하게 되는 클럭 속도는 다음과 같다.
fclk' = 5 x L x 2 x f0
여기서 L은 M보다 작은 수로서, 입력 사이클 쉬프트마다 이뤄지는 부분 상관 연산의 횟수를 나타낸다. 따라서, 생성되는 상관 연산 지점들의 총 개수는 P x K x L과 같다. 예를 들어, 일 실시예에서 L = 12 이고 P x K x L = 660이거나, 한 C/A 코드 에포크의 약 1/8이다. 이러한 예에서, 요구되는 클럭킹 속도는 다음과 같다.
fclk = 5 x 12 x 2 x 1.023 MHz ≒ 123 MHz
이러한 값은 표준 모드에서의 클럭 속도에 대해 균형이 잡힌 값이다.
오직 완전 컨볼루션의 부분 집합(subset)만이 생성되기 때문에, 관심 영역이 신호의 최대값을 포함하도록 선택하는 것이 필요하다. 도 14는 여러 상관 연산 해상도들을 계산하는 본 발명의 연산 방법(1400)에 대한 순서도를 설명한다. 상기 방법(1400)은 단계(1402)에서 시작한다. 단계(1404)에서, 고 해상도 모드의 직접적인 사용을 가능하게 할 정도의 충분한 외부 보조 정보가 존재하는지 여부를 결정하기 위해 체크가 이루어진다. 이러한 보조 정보는 여러 가지 형태를 지닐 수 있는데, 관심 대상인 위성들에 대한 추정된 의사 거리 값들 및 국부적인 클럭 바이어스(bias)의 추정치를 포함한다. 만약 보조 정보가 충분히 정확하다면, 상기 방법은 단계(14010)에서 고 해상도 모드로 천이한다. 그러나 종종 국부 클럭 바이어스는 미지인 경우가 있다. 예를 들어, 추정된 의사 거리 값들은 저장된 위성력(ephemeris) 및 최종적으로 알려진 수신기 위치로부터 이용가능하게 될 수 있지만, 수신기가 정확한 시간 계측을 유지한다거나 또는 외부적으로 동기화되지 않는 한, 국부 클럭 바이어스는 알 수 없게 될 것이다. 만약 충분한 외부 보조 정보가 없는 경우에는, 의사 거리 측정치들은 단계(1406)에서 표준 모드로 생성된다. 단계(1406)에서, 완전 컨볼루션이 표준 해상도를 이용하여 획득된다. 표준 모드로 한 차례 또는 그 이상의 측정이 이뤄진 후에, 단계(1408)에서 국부 클럭 바이어스가 추정된다. 이 단계는 선택적으로 시간 태그 오차의 추정도 포함할 수 있다. 이 시점에서, 신호 지연은 표준 해상도에서 상관 최고점들을 포함시킬 수 있는 여러 개의 윈도우로 묶일 수 있는데, 이는 단계(1412)에서 계산된다. 거리 윈도우들(range windows)이 계산된 후에는 상기 방법(1400)은 단계(1414)에서 고 해상도 모드에서(즉 고 해상도 상관 최고점들을 이용하여) 의사 거리 측정을 수행한다. 상기 방법(1400)은 단계(1416)에서 끝이 난다.
갈릴레오 신호들을 처리할 때에는, 상기 고 해상도 모드는 필터링되지 않은 갈릴레오 신호를 이용한다거나, 데이터 및 파일럿 성분들을 모두 이용한다거나 기타 등등으로 변경하는 데에 이용될 수 있다. 갈릴레오 신호들은 상관 연산에 대해 여러 가지의 서로 다른 신호 옵션들을 제공하기 때문에, 일단 시간의 추정이 알려지고 고 해상도 모드가 가능하게 되면, 추가적인 신호 성분들에 관하여 더 많은 신호 프로세싱이 이용될 수 있다. 3dB 신호 감쇄에도 USB만(또는 LSB만)을 이용하여 획득함으로써, 갈릴레오 코드 중의 대다수의 세그먼트들(또는 전부)이 L1C 서브 채 널을 이용하여 상관 연산될 수 있다. 일단 타이밍이 L1C USB 신호들(또는 L1C LSB 신호들)을 처리함으로써 획득되면, 타이밍 추정치에 근접한 일부 코드가 표준 또는 고 해상도에서 필터링된 L1B 서브 채널를 이용하여, 또는 L1B 내지 L1C의 필터링되지 않은 갈릴레오 신호를 이용하여 처리될 수 있다.
상기 방법(1400)은 오직 부분적인 컨볼루션이 계산되는 제약점에도 불구하고 고 해상도 모드가 효율적으로 이용될 수 있게 할 수 있다. 적어도 하나의 GPS 또는 갈릴레오 위성이 표준 모드에서 검출되는 한, 고 해상도 모드는 모든 후속하는 위성 신호 획득에 대해 활용될 수 있다. 고 해상도 모드에서, 상관 연산 프로세싱의 민감도는 증가되며, 이는 더 많은 위성들이 감지될 수 있게 한다. 더 나아가, 앞서 설명하였듯이, 고 해상도 모드에서는 모든 측정치들의 정확도가 향상된다.
본 발명의 가르침을 구체화하는 다양한 실시예들이 본 명세서에서 상세하게 제시되고 설명되었지만, 본 기술 분야의 숙련된 자들은 그러한 가르침들을 마찬가지로 구체화하는 다른 많은 변형된 실시예들을 용이하게 고안할 수 있을 것이다.

Claims (21)

  1. 복수의 위성 시스템들로부터 수신된 신호를 처리하는 장치로서,
    제1 위성 시스템에 속하는 위성으로부터 오는 제1 신호를 선택하고 단일 측파대 필터링(single sideband filtering)을 수행하거나, 또는 제2 위성 시스템에 속하는 위성으로부터 오는 제2 신호를 선택하는 튜너(tuner); 및
    상기 튜너에 결합하며, 상기 필터링된 제1 신호 또는 상기 제2 신호를 기준 코드 중의 선택된 부분과 상관 연산(correlating)하여 적어도 하나의 부분 상관 값을 생성하고, 또한 상기 적어도 하나의 부분 상관 연산 결과를 누적시켜 완전 컨볼루션(full convolution)을 생성하고, 상기 완전 컨볼루션을 이용하여 타이밍 및 주파수 동기화를 구축하는 컨볼루션 처리기(convolution processor)를 포함하되;
    상기 제1 위성 시스템은 갈릴레오 시스템(Galileo System)이고, 상기 제2 위성 시스템은 GPS(Global Positioning System)이고,
    상기 튜너에서의 상기 제1 신호에 대한 단일 측파대 필터링은,
    상기 제1 신호에 대한 상관 간격이 상기 제2 신호에 대한 상관 간격에 대응되도록 상기 컨볼루션 처리기에서의 상관 연산에 앞서 수행되는 것을 특징으로 하는 위성 신호 처리 장치.
  2. 삭제
  3. 삭제
  4. 청구항 1에 있어서, 상기 튜너는
    상기 제1 또는 제2 신호의 정위상 성분(in-phase component)와 쿼드러쳐 위 상 성분(quadrature-phase component)을 생성하는 쿼드러쳐 튜너(quadrature tuner); 및
    상기 쿼드러쳐 튜너에 결합하여 상기 제1 신호를 필터링하는 복소 단일 측파대 필터(complex single sideband filter)를 더 포함하는 것을 특징으로 하는 위성 신호 처리 장치.
  5. 청구항 1에 있어서, 상기 컨볼루션 처리기는
    상기 필터링된 제1 신호 또는 제2 신호의 일부분들을 상관 연산하는 부분 상관기(partial correlator)를 포함하는 것을 특징으로 하는 위성 신호 처리 장치.
  6. 복수의 위성 시스템들로부터 수신된 신호를 처리하는 장치에서, 의사 랜덤 기준 코드를 이용한 디지털 신호의 상관 연산을 계산하는 방법에 있어서,
    제1 위성 시스템으로부터 오는 제1 신호 또는 제2 위성 시스템으로부터 오는 제2 신호에 있어서, 상기 제1 신호는 부가적인 코딩을 가지는 경우에, 상기 제1 신호 또는 제2 신호 중 적어도 어느 하나를 수신하는 단계;
    상기 제1 신호를 단일 측파대 필터링하여 필터링된 제1 신호를 생성하는 단계;
    의사 랜덤 기준 코드로 상기 필터링된 제1 신호 또는 상기 제2 신호를 상관 연산하여 제1 부분 상관 연산 결과들을 생성하는 단계;
    상기 제1 부분 상관 연산 결과들을 누적하여 완전 컨볼루션(full convolution)을 생성하는 단계; 및
    상기 완전 컨볼루션을 이용하여 타이밍 및 주파수 동기화를 구축하는 단계를 포함하되,
    상기 제1 위성 시스템은 갈릴레오 시스템(Galileo System)이고, 상기 제2 위성 시스템은 GPS(Global Positioning System)이고,
    상기 제1 신호에 대한 단일 측파대 필터링은,
    상기 제1 신호에 대한 상관 간격이 상기 제2 신호에 대한 상관 간격에 대응되도록 상기 상관 연산에 앞서 수행되는 것을 특징으로 하는 디지털 신호 상관 연산 방법.
  7. 삭제
  8. 복수의 위성 시스템들로부터 오는 신호들을 처리하는 장치에 있어서,
    제1 위성 시스템에 속하는 위성으로부터 오는 제1 신호를 선택하고 단일 측파대 필터링을 수행하거나, 또는 제2 위성 시스템에 속하는 위성으로부터 오는 제2 신호를 선택하는 튜너; 및
    상기 튜너에 결합하며, 상기 필터링된 제1 신호 또는 상기 제2 신호를 기준 코드와 상관 연산하여 완전 컨볼루션을 생성하고, 상기 완전 컨볼루션을 이용하여 타이밍 및 주파수 동기화를 구축하는 컨볼루션 처리기(convolution processor)를 포함하되;
    상기 제1 위성 시스템은 갈릴레오 시스템(Galileo System)이고, 상기 제2 위성 시스템은 GPS(Global Positioning System)이고,
    상기 튜너에서의 상기 제1 신호에 대한 단일 측파대 필터링은,
    상기 제1 신호에 대한 상관 간격이 상기 제2 신호에 대한 상관 간격에 대응되도록 상기 컨볼루션 처리기에서의 상관 연산에 앞서 수행되는 것을 특징으로 하는 위성 신호 처리 장치.
  9. 삭제
  10. 복수의 위성 시스템들로부터 수신된 신호를 처리하는 장치에서, 의사 랜덤 기준 코드를 이용한 디지털 신호의 상관 연산을 계산하는 방법에 있어서,
    제1 위성 시스템으로부터 오는 제1 신호 또는 제2 위성 시스템으로부터 오는 제2 신호에 있어서, 상기 제1 신호는 부가적인 코딩을 가지는 경우에, 상기 제1 신호 또는 제2 신호 중 적어도 어느 하나를 수신하는 단계;
    상기 제1 신호를 단일 측파대 필터링하여 필터링된 제1 신호를 생성하는 단계;
    의사 랜덤 기준 코드로 상기 필터링된 제1 신호 또는 상기 제2 신호를 상관 연산하여 완전 컨볼루션(full convolution) 연산 결과를 생성하는 단계; 및
    상기 완전 컨볼루션을 이용하여 타이밍 및 주파수 동기화를 구축하는 단계를 포함하되;
    상기 제1 위성 시스템은 갈릴레오 시스템(Galileo System)이고, 상기 제2 위성 시스템은 GPS(Global Positioning System)이고,
    상기 제1 신호에 대한 단일 측파대 필터링은,
    상기 제1 신호에 대한 상관 간격이 상기 제2 신호에 대한 상관 간격에 대응되도록 상기 상관 연산에 앞서 수행되는 것을 특징으로 하는 디지털 신호 상관 연산 방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
KR1020087008650A 2006-05-26 2007-05-25 다수의 위성 시스템에 속하는 위성들로부터 수신된 신호에대해 신호 상관 연산을 수행하는 방법 및 장치 KR101056094B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/441,798 US8149897B2 (en) 2006-05-26 2006-05-26 Method and apparatus for performing signal correlation for signals received from satellites in multiple satellite systems
US11/441,798 2006-05-26
PCT/US2007/012635 WO2008016412A2 (en) 2006-05-26 2007-05-25 Method and apparatus for performing signal correlation for signals received from satellites in multiple satellite systems

Publications (2)

Publication Number Publication Date
KR20080049818A KR20080049818A (ko) 2008-06-04
KR101056094B1 true KR101056094B1 (ko) 2011-08-11

Family

ID=38749453

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087008650A KR101056094B1 (ko) 2006-05-26 2007-05-25 다수의 위성 시스템에 속하는 위성들로부터 수신된 신호에대해 신호 상관 연산을 수행하는 방법 및 장치

Country Status (5)

Country Link
US (1) US8149897B2 (ko)
EP (1) EP2030040A4 (ko)
KR (1) KR101056094B1 (ko)
CN (1) CN101356449B (ko)
WO (1) WO2008016412A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101475036B1 (ko) * 2013-05-15 2014-12-22 주식회사 두시텍 GPS 및 Galileo 위성 신호의 주피크 특성을 이용한 위성 신호 멀티패스 추적 시스템

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816710B2 (en) * 1998-05-06 2004-11-09 Snaptrack, Inc. Method and apparatus for signal processing in a satellite positioning system
US7990315B2 (en) * 2006-09-15 2011-08-02 Mediatek Inc. Shared memory device applied to functional stages configured in a receiver system for processing signals from different transmitter systems and method thereof
DE602006020153D1 (de) * 2006-12-12 2011-03-31 St Microelectronics Srl Verfahren und System zur Auflösung der Akquisitionsmehrdeutigkeit und des Problems des falschen Einrastens beim Nachführen von BOC (n, n)-modulierten Signalen, im Besonderen für Satellitenpositionierungs-/Navigationssysteme
US20080159198A1 (en) * 2006-12-27 2008-07-03 Mediatek Inc. Boc signal acquisition and tracking method and apparatus
US8284820B2 (en) * 2007-10-17 2012-10-09 Mediatek Inc. Shared processor architecture applied to functional stages configured in a receiver system for processing signals from different transmitter systems and method thereof
US7885363B2 (en) * 2007-10-18 2011-02-08 Mediatek Inc. Correlation device and method for different modulated signals
US9128178B2 (en) * 2007-12-27 2015-09-08 Seiko Epson Corporation Correlation calculation process execution method, control circuit, signal processing circuit, and position calculation device
US8111735B2 (en) * 2008-01-28 2012-02-07 Mediatek Inc. GNSS data/pilot correlator and code generator thereof
US7991042B2 (en) 2008-02-04 2011-08-02 Mediatek Inc. GNSS receiver and method for GNSS memory code generation
US7830993B2 (en) * 2008-02-20 2010-11-09 Trimble Navigation Limited Sample decimation in a GNSS receiver
KR100967196B1 (ko) 2008-03-06 2010-07-05 한양네비콤주식회사 Gps/갈릴레오 수신기의 위성신호 추적 장치
US8144054B2 (en) 2008-05-20 2012-03-27 Raytheon Company Satellite receiver and method for navigation using merged satellite system signals
KR20100032037A (ko) * 2008-09-17 2010-03-25 삼성전자주식회사 휴대용 단말기에서 지피에스 엔진 간의 정보 공유를 위한 장치 및 방법
FR2936669B1 (fr) * 2008-09-26 2011-11-25 Thales Sa Procede pour optimiser une acquisition d'un signal a spectre etale provenant d'un satellite par un recepteur mobile
KR101012176B1 (ko) * 2008-10-13 2011-02-07 재단법인대구경북과학기술원 차량 위치인식용 gnss의 고감도와 고정밀을 고려한 수신기 및 그 제어 방법
US8412093B2 (en) * 2008-10-22 2013-04-02 Mediatek Inc. Receiver applying channel selection filter for receiving satellite signal and receiving method thereof
US8169366B2 (en) * 2008-11-25 2012-05-01 Qualcomm Incorporated Reconfigurable satellite positioning system receivers
US20100141519A1 (en) * 2008-12-04 2010-06-10 Rodal Eric Method and system for a single rf front-end for gps, galileo, and glonass
EP2364454B1 (en) * 2008-12-05 2019-02-13 Leica Geosystems AG A positioning system and method
US8520719B2 (en) * 2009-05-29 2013-08-27 Qualcomm Incorporated Multiple-mode correlator
GB2475675A (en) * 2009-11-17 2011-06-01 Samsung Electronics Co Ltd Navigation receiver operable with multiple navigation systems
JP4911220B2 (ja) * 2009-11-30 2012-04-04 セイコーエプソン株式会社 衛星信号捕捉方法及び衛星信号受信装置
US8452826B2 (en) * 2010-05-04 2013-05-28 Raytheon Applied Signal Technology, Inc. Digital frequency channelizer
EP2395711B1 (en) * 2010-06-11 2013-10-16 Alcatel Lucent Method and router for improved updating of a routing information base
JP5765902B2 (ja) * 2010-09-07 2015-08-19 日本無線株式会社 衛星信号のコード追尾装置
CN102759739A (zh) * 2011-04-26 2012-10-31 中国科学院微电子研究所 快速联合捕获装置及其方法
DE102011113966A1 (de) * 2011-09-21 2013-04-04 Ifen Gmbh Verfahren zur Korrelation von einem abgetasteten Signal mit einem Replikasignal
KR101883947B1 (ko) * 2011-11-14 2018-07-31 현대모비스 주식회사 주차 보조 시스템의 수신 장치 및 수신 방법
US8644788B2 (en) 2012-05-02 2014-02-04 Skytraq Technology, Inc. Signal receiver, portable computer and signal acquisition method used in satellite communication system
US9702979B1 (en) * 2012-08-03 2017-07-11 Rockwell Collins, Inc. Universal channel for location tracking system
JP6135075B2 (ja) * 2012-09-11 2017-05-31 セイコーエプソン株式会社 デコード方法及び受信装置
US8781039B2 (en) * 2012-10-26 2014-07-15 Deere & Company Receiver and method for receiving a composite signal
US8942264B2 (en) * 2012-10-26 2015-01-27 Deere & Company Receiver and method for receiving a composite signal
KR101381104B1 (ko) * 2013-05-22 2014-04-04 성균관대학교산학협력단 Cboc 상관함수 생성 방법, cboc 신호 추적 방법 및 cboc 신호 추적 시스템
FR3017719B1 (fr) * 2014-02-14 2016-03-04 Thales Sa Methode de correlation d'un signal de radio-navigation par satellite recu et dispositif de correlation mettant en oeuvre la methode
CN104375151B (zh) * 2014-09-19 2016-10-19 清华大学 导航信号接收机和接收方法
FR3032323B1 (fr) * 2015-02-03 2017-03-17 Commissariat Energie Atomique Procede et dispositif de modulation de phase d'une onde porteuse et application a la detection de signaux numeriques multi-niveaux codes en phase
KR101702890B1 (ko) * 2015-07-24 2017-02-06 현대자동차주식회사 글로벌 위성 항법 시스템의 위성 신호 수신 장치 및 방법
US10816673B2 (en) * 2015-10-21 2020-10-27 Texas Instruments Incorporated Memory optimized GNSS correlator
CN107730588A (zh) * 2017-10-10 2018-02-23 西安邮电大学 用于图形处理的直角三角形斜边边长快速获取方法和电路
US10768311B2 (en) * 2017-12-27 2020-09-08 Samsung Electronics Co., Ltd System and method for combining signals for improved performance in challenging environment
US10830903B2 (en) 2018-03-07 2020-11-10 Accord Ideation Private Limited Low power minimal rate global navigation satellite system signal tracking system
US10491251B1 (en) * 2018-12-05 2019-11-26 The Aerospace Corporation Suppressing interference in binary offset carrier modulated signals
CN110391838B (zh) * 2019-07-11 2021-11-16 西安空间无线电技术研究所 采用gbbf技术的geo系统星地频差校准方法及系统
FR3099954B1 (fr) * 2019-08-14 2021-07-23 Thales Sa Procede de detection d'une fausse synchronisation d'un recepteur avec un satellite, recepteur et produit programme d'ordinateur associes
US11294067B2 (en) 2019-12-06 2022-04-05 Samsung Electronics Co., Ltd System and method for providing global navigation satellite system (GNSS) signal processing in multipath environment
US11483025B2 (en) 2019-12-10 2022-10-25 Samsung Electronics Co., Ltd System and method for providing a unified global navigation satellite system (GNSS) receiver
RU2747566C1 (ru) * 2020-08-05 2021-05-07 Федеральное государственное казенное военное образовательное учреждение высшего образования "Военный учебно-научный центр Военно-воздушных сил "Военно-воздушная академия имени профессора Н.Е. Жуковского и Ю.А. Гагарина" (г. Воронеж) Министерства обороны Российской Федерации Устройство для обработки навигационных сигналов глобальных навигационных спутниковых систем
US11940542B2 (en) * 2021-02-18 2024-03-26 Mediatek Inc. Method of using multiple received satellite signals to compensate satellite multipath estimation error
WO2024196374A1 (en) * 2023-03-23 2024-09-26 Zeku, Inc. Processing boc-modulated signals using bpsk-modulated signal processing components

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010030317A (ko) * 1999-09-07 2001-04-16 루센트 테크놀러지스 인크 동적 적분 기술을 사용하는 위성에 기초한 위치 설정 시스템
KR20010073136A (ko) * 1998-09-08 2001-07-31 밀러 럿셀 비 Gps 수신기의 감도를 향상시키는 방법 및 장치
KR20020083725A (ko) * 2001-04-30 2002-11-04 주식회사 네비콤 Gps 수신기의 위성신호 포착장치
US6795771B2 (en) 1999-04-23 2004-09-21 Global Locate, Inc. Method and apparatus for correlating a satellite signal with a reference code

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4426712A (en) * 1981-05-22 1984-01-17 Massachusetts Institute Of Technology Correlation system for global position receiver
US4894842A (en) * 1987-10-15 1990-01-16 The Charles Stark Draper Laboratory, Inc. Precorrelation digital spread spectrum receiver
GB9510127D0 (en) * 1995-05-20 1995-08-02 West End System Corp CATV Data transmission system
US6072994A (en) * 1995-08-31 2000-06-06 Northrop Grumman Corporation Digitally programmable multifunction radio system architecture
US6044107A (en) * 1996-05-09 2000-03-28 Texas Instruments Incorporated Method for interoperability of a T1E1.4 compliant ADSL modem and a simpler modem
US6067319A (en) * 1996-09-04 2000-05-23 Integrated Device Technology, Inc. Method for equalization of a quadrature amplitude modulated signal
US5923287A (en) * 1997-04-01 1999-07-13 Trimble Navigation Limited Combined GPS/GLONASS satellite positioning system receiver
US6240133B1 (en) * 1998-02-05 2001-05-29 Texas Instruments Incorporated High stability fast tracking adaptive equalizer for use with time varying communication channels
AU2644799A (en) * 1998-11-11 2000-05-29 Samsung Electronics Co., Ltd. Digital correlator for a receptor of signals from satellite radio-navigation systems
CA2415363C (en) * 2000-07-11 2006-01-24 Samsung Electronics Co., Ltd. Repetitive-pn1023-sequence echo-cancellation reference signal for single-carrier digital television broadcast systems
US7567636B2 (en) 2001-05-18 2009-07-28 Global Locate, Inc. Method and apparatus for performing signal correlation using historical correlation data
US6922167B2 (en) * 2003-07-14 2005-07-26 European Space Agency Hardware architecture for processing galileo alternate binary offset carrier (AltBOC) signals
ATE369570T1 (de) * 2004-05-17 2007-08-15 Univ Technologies Int Verfahren und vorrichtung zur erfassung und verfolgung eines boc-signals

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010073136A (ko) * 1998-09-08 2001-07-31 밀러 럿셀 비 Gps 수신기의 감도를 향상시키는 방법 및 장치
US6795771B2 (en) 1999-04-23 2004-09-21 Global Locate, Inc. Method and apparatus for correlating a satellite signal with a reference code
KR20010030317A (ko) * 1999-09-07 2001-04-16 루센트 테크놀러지스 인크 동적 적분 기술을 사용하는 위성에 기초한 위치 설정 시스템
KR20020083725A (ko) * 2001-04-30 2002-11-04 주식회사 네비콤 Gps 수신기의 위성신호 포착장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101475036B1 (ko) * 2013-05-15 2014-12-22 주식회사 두시텍 GPS 및 Galileo 위성 신호의 주피크 특성을 이용한 위성 신호 멀티패스 추적 시스템

Also Published As

Publication number Publication date
KR20080049818A (ko) 2008-06-04
EP2030040A4 (en) 2011-01-19
US8149897B2 (en) 2012-04-03
US20070274374A1 (en) 2007-11-29
CN101356449B (zh) 2011-06-22
WO2008016412A2 (en) 2008-02-07
EP2030040A2 (en) 2009-03-04
CN101356449A (zh) 2009-01-28
WO2008016412A3 (en) 2008-04-10

Similar Documents

Publication Publication Date Title
KR101056094B1 (ko) 다수의 위성 시스템에 속하는 위성들로부터 수신된 신호에대해 신호 상관 연산을 수행하는 방법 및 장치
US8170086B2 (en) Method and apparatus for performing signal correlation
US7006556B2 (en) Method and apparatus for performing signal correlation at multiple resolutions to mitigate multipath interference
US6704348B2 (en) Method and apparatus for computing signal correlation at multiple resolutions
EP1388241B1 (en) Method and apparatus for computing signal correlation
US8472503B2 (en) Method and apparatus for performing frequency synchronization
US7567636B2 (en) Method and apparatus for performing signal correlation using historical correlation data
US6819707B2 (en) Method and apparatus for performing signal correlation using historical correlation data
Pany et al. Code and phase tracking of generic PRN signals with sub‐Nyquist sample rates
US20240125942A1 (en) Methods and Devices for Performing Mini-Batch Discrete Fourier Transforms for Tracking Satellite Signals

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee