KR20240009930A - 통신 신호를 나타내는 복수의 다운링크 신호의 사후 검출 결합을 위한 시스템 및 방법 - Google Patents

통신 신호를 나타내는 복수의 다운링크 신호의 사후 검출 결합을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20240009930A
KR20240009930A KR1020237037969A KR20237037969A KR20240009930A KR 20240009930 A KR20240009930 A KR 20240009930A KR 1020237037969 A KR1020237037969 A KR 1020237037969A KR 20237037969 A KR20237037969 A KR 20237037969A KR 20240009930 A KR20240009930 A KR 20240009930A
Authority
KR
South Korea
Prior art keywords
processing
recovery operation
block
symbol
blocks
Prior art date
Application number
KR1020237037969A
Other languages
English (en)
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 KR20240009930A publication Critical patent/KR20240009930A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/02Arrangements for detecting or preventing errors in the information received by diversity reception
    • H04L1/06Arrangements for detecting or preventing errors in the information received by diversity reception using space diversity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/02Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
    • H04B7/04Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas
    • H04B7/08Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas at the receiving station
    • H04B7/0837Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas at the receiving station using pre-detection combining
    • H04B7/0842Weighted combining
    • H04B7/0848Joint weighting
    • H04B7/0857Joint weighting using maximum ratio combining techniques, e.g. signal-to- interference ratio [SIR], received signal strenght indication [RSS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/02Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
    • H04B7/04Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas
    • H04B7/08Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas at the receiving station
    • H04B7/0882Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas at the receiving station using post-detection diversity
    • H04B7/0885Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas at the receiving station using post-detection diversity with combination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/185Space-based or airborne stations; Stations for satellite systems
    • H04B7/1851Systems using a satellite or space-based relay
    • H04B7/18513Transmission in a satellite or space-based system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Astronomy & Astrophysics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radio Transmission System (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Burglar Alarm Systems (AREA)
  • Monitoring And Testing Of Transmission In General (AREA)
  • Noise Elimination (AREA)

Abstract

통신 신호를 나타내는 다운링크 신호를 결합시키기 위한 시스템 및 방법의 실시형태가 본 명세서에 제공된다. 예시적인 방법은 다수의 안테나 피드로부터 다운링크 신호의 샘플을 수신하는 단계; 각각 제1 신호 및 제2 신호에서 타이밍 복구 작동을 수행하는 것에 기초하여 제1 신호를 위한 제1 심볼 및 제2 신호를 위한 제2 심볼을 생성하는 단계; 제1 심볼 및 제2 심볼에서 상관기 작동을 수행하는 것에 기초하여 오프셋 정보를 생성하는 단계; 및 가중 결합기 작동을 수행하는 것에 기초하여 제1 신호와 제2 신호를 결합시키는 단계를 포함한다. 제1 타이밍 복구 작동, 제2 타이밍 복구 작동, 상관기 작동, 및 결합 중 적어도 하나는 하나 이상의 프로세서의 복수의 처리 블록에서 수행되고, 제1 처리 블록과 제2 처리 블록은 병렬로 작동한다.

Description

통신 신호를 나타내는 복수의 다운링크 신호의 사후 검출 결합을 위한 시스템 및 방법
본 개시내용은 신호 처리에 관한 것이다. 더 구체적으로, 본 개시내용은 고속 처리를 달성하기 위해 범용 프로세서를 사용하여 분산 컴퓨팅을 구현하는 것에 관한 것이다.
일부 실시예에서, 위성 통신 신호는 데이터를 송신하고/하거나 수신하고 국부적으로 처리하기 위해 대형 지상국 및 다른 설비를 요구할 수 있다. 이것은 연관된 위성으로부터 데이터를 수신, 처리하고 수신된 데이터를 사용하기 위하여 광범위한 안테나 어레이, 연관된 무선 주파수 단말기(radio frequency terminal: RFT), 및 중요한 전자기기(모뎀, 신호 프로세서 등)를 포함할 수 있다.
본 개시내용은 개선된 통신 시스템을 제공한다. 다음의 요약은 본 발명의 모든 양상을 정의하도록 의도되지 않고, 본 개시내용의 다른 특징 및 이점은 도면을 포함하는 다음의 상세한 설명으로부터 명백해질 것이다. 본 개시내용은 통일된 문서로서 관련되도록 의도되며, 특징의 조합이 본 개시내용의 동일한 문장, 단락 또는 섹션에서 함께 발견되지 않더라도, 본 명세서에서 설명된 특징의 모든 조합이 고려된다는 것을 이해해야 한다. 아울러, 본 개시내용은 추가적인 양상으로서, 본 명세서에 구체적으로 언급된 변형보다 어떤 방식으로든 범위가 더 좁은 본 발명의 모든 실시형태를 포함한다.
본 명세서에 개시된 바와 같이, 디지털 신호 처리(digital signal processing: DSP)는 범용 프로세서 또는 중앙 처리 장치(central processing unit: CPU)를 사용하여 많은 상이한 방식으로 수행될 수 있다. 개시된 기능을 수행할 수 있는 고속 처리를 달성하기 위해 범용 프로세서에서 실행되는 예시적인 기법은,
다수의 CPU 및 각각의 CPU의 많은 코어에서 병렬 처리를 사용하는 기법;
단일 명령어 다중 데이터(single instruction, multiple data: SIMD) 기법을 이용하는 기법;
피드백 루프를 해체하기 위한 피드포워드 처리(feed-forward processing) 기법;
여러 CPU에 걸쳐서 비중이 큰 처리를 분할하기 위한 메타데이터(또는 상태 정보)의 사전 계산 기법; 및
CPU 성능을 증가시키거나 또는 메모리 대역폭 활용을 낮추는 방식으로 다수의 기능을 단일 기능으로 수집하는 기법을 포함하지만 이들로 제한되지 않는다.
범용 CPU에서 처리량을 증가시키는 하나의 방식은 CPU에 존재하는 코어를 가능한 많이 활용하는 것이다. 데이터가 CPU 내의 여러 코어 간에 적절하게 공유되도록 세심한 주의를 기울여야 하지만, 이것은 처리량 처리가 더 많은 CPU 코어의 추가에 따라 증가하는 것을 허가한다. 동일한 시스템에서 여러 CPU를 사용하는 것이 또한 가능하고, 각각의 CPU는 다수의 코어를 포함한다. 본 개시내용 내의 모든 실시형태는 CPU 내의 다수의 코어를 사용하는 이점을 취하고, 일부 실시형태는 서버 환경에서 시스템 및/또는 심지어 시스템의 그룹당 다수의 CPU를 갖는 이점을 취한다.
높은 처리 속도를 달성하는 또 다른 방식은 범용 CPU의 단일 명령어 다중 데이터(SIMD) 능력의 이점을 취하는 것이다. 이것은 AVX512 SIMD 연산의 경우에서와 같이 단일 CPU 코어가 단일 명령어에 대해 16개까지의 부동 소수점 연산을 수행하는 것을 가능하게 한다. SIMD를 이용하는 일례는 16개의 부동 소수점 결과가 한 번에 계산되는 유한 임펄스 응답(finite impulse response: FIR) 필터 기능을 사용하는 것이다. 또 다른 예는 복소수를 함께 곱할 때이다. 한 쌍의 직교 신호(IQ 데이터)를 계산하는 대신, AVX512를 이용하여 한 번에 8개의 IQ 쌍을 계산하는 것이 가능하다. 복소수 곱셈은 본 개시내용에서 설명된 거의 모든 처리 알고리즘에서 사용된다.
일부 처리 시스템은 종종 위상 고정 루프(phase lock loop: PLL) 또는 지연 고정 루프(delay lock loop: DLL)를 포함하는 다양한 형태의 피드백을 구현한다. 그러나, 일반적으로 피드백은 피드백의 특성이 병목 현상을 유발하기 때문에 PLL 및 DLL의 경우에서와 같이 문제가 될 수 있다. 피드백 루프는 모든 인커밍 데이터가 쉽게 유출되거나 분할될 수 없는 단일(예를 들어, 선형) 프로세스에서 처리되게 한다. 피드백에 더하여, 오차항(error term)을 계산하는 빈도를 포함하여 PLL 및 DLL을 사용하여 극복해야 하는 다른 장애물이 있다. 피드백 루프는, 오류 상태가 데이터의 블록에서 처리되고, 그런 다음 오차항을 적용하는 다른 블록으로 계산된 오차항이 피드포워드될 수 있는 피드포워드 루프로 대체될 수 있다. 적절한 중첩이 사용되면, 해당 항의 오류 계산 및 적용은 여러 CPU 코어에 걸쳐 분할되어 처리량을 추가로 증가시킬 수 있다. 이것의 일례는 타이밍 및 위상 보정이 하나의 블록에서 계산되고, 타이밍 조정이 다른 블록에서 적용되고, 위상 보정이 또 다른 블록에서 적용되는 다이버시티 결합기에 있다. 이어서, 세트로서의 이러한 방법은 처리량을 더욱 증가시키도록 여러 CPU 코어에 걸쳐서 병렬화될 수 있다.
데이터를 처리하는 피드포워드 방식에 더하여, 여러 CPU 코어에 걸쳐서 데이터의 처리를 분할하는 단일 블록에서 메타데이터의 사전 계산을 수행하는 것이 유리할 수 있다. 이러한 방법은 이미 논의된 피드포워드 방법론과 유사하지만, 이러한 경우, 루프(예를 들어, 피드백 루프)를 해체하는 것이 아니라, 처리될 수 있는 데이터의 양을 증가시키기 위해 단순히 많은 CPU 코어를 활용하는 것이다. 이러한 방식으로, 사전 계산을 수행하는 블록은 CPU 집약적 처리를 수행하지 않고, 포-루프(for-loop) 및 시작 인덱스 내에서의 반복, 및 보간 위상 값 간의 경사 지점(slope point)과 같은 필요한 단계를 계산한다. 이것의 일례는 다이버시티 결합기에서 수행되는 도플러 보상이다. 필요한 위상 조정은 제1 블록에서 생성되지만, 위상 조정을 수행하기 위한 CPU 집약적 계산은 후속 블록 다운스트림으로 넘겨진다. 처리의 제2 부분이 CPU 집약적 부분이면, 이것은 어떠한 수의 CPU 코어도 활용되는 것을 가능하게 하고, 그러므로 단일 블록 내에서 달성될 수 없는 처리 속도를 증가시킬 수 있다.
높은 처리량을 달성하기 위해 범용 CPU에서 이용될 수 있는 또 다른 기법은 기능의 세트가 이용되는 방식과 사용되는 메모리 유형이다. 일부 경우에, 메모리 대역폭은 성능에서의 제한 인자가 된다. 이 경우, 랜덤 액세스 메모리(random-access memory: RAM)(CPU 캐시처럼 더 빠른 메모리가 아님)로/로부터 전달될 필요가 있는 데이터의 양을 제한하는 것이 목표이다. 이렇게 하려면, 더 빠른 CPU 캐시에 액세스하는 것과 비교하여, 더 느린 RAM에 액세스하는 것을 목표로 개별적으로가 아니라 모두 함께 실행되도록 기능을 축소해야 한다. 메모리 대역폭을 낮추는 또 다른 방법은 예를 들어 플로트(float) 또는 더블(double)과 비교하여 가능할 때 공간 메모리 유형을 적절하게 활용하는, 예를 들어, int8을 활용하는 것이다.
하나의 실시형태에서, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법이 본 명세서에 제공된다. 방법은 복수의 안테나 피드로부터 복수의 다운링크 신호의 샘플을 수신하는 단계; 제1 신호의 제1 샘플에서 제1 타이밍 복구 작동을 수행하는 것에 기초하여 복수의 다운링크 신호 중 제1 신호를 위한 제1 심볼을 생성하는 단계; 제2 신호의 제2 샘플에서 제2 타이밍 복구 작동을 수행하는 것에 기초하여 복수의 다운링크 신호 중 제2 신호를 위한 제2 심볼을 생성하는 단계; 제1 심볼 및 제2 심볼에서 상관기 작동을 수행하는 것에 기초하여 시간 및 위상 오프셋 정보를 생성하는 단계; 및 (i) 제1 심볼 및 제2 심볼, (ii) 타이밍 및 위상 오프셋 정보에 기초하여 제2 심볼과 제1 심볼의 시간 및 위상을 정렬시키는 것, (iii) 대응하는 신호 품질에 기초하여 제1 데이터 패킷 및 제2 데이터 패킷의 각각에 스케일링을 적용하는 가중 결합기 작동을 수행하는 것에 기초하여 제1 신호와 제2 신호를 결합시키는 단계를 포함한다. 제1 타이밍 복구 작동, 제2 타이밍 복구 작동, 상관기 작동, 및 결합 중 적어도 하나는 하나 이상의 프로세서의 복수의 처리 블록에서 수행되고, 제1 처리 블록과 제2 처리 블록은 병렬로 작동한다.
또 다른 실시형태에서, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 시스템이 제공된다. 시스템은 복수의 다운링크 신호를 수신하도록 구성된 복수의 안테나 및 복수의 안테나에 통신 가능하게 결합된 하나 이상의 프로세서로서, 복수의 처리 블록을 가진 하나 이상의 프로세서를 포함한다. 하나 이상의 프로세서는 위에서 설명된 방법을 수행하도록 작동 가능하다.
또 다른 실시형태에서, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 장치가 제공된다. 장치는 복수의 안테나 피드로부터 복수의 다운링크 신호의 샘플을 수신하기 위한 수단; 제1 신호의 제1 샘플에서 제1 타이밍 복구 작동을 수행하는 것에 기초하여 복수의 다운링크 신호 중 제1 신호를 위한 제1 심볼을 생성하기 위한 수단; 제2 신호의 제2 샘플에서 제2 타이밍 복구 작동을 수행하는 것에 기초하여 복수의 다운링크 신호 중 제2 신호를 위한 제2 심볼을 생성하기 위한 수단; 제1 심볼 및 제2 심볼에서 상관기 작동을 수행하는 것에 기초하여 시간 및 위상 오프셋 정보를 생성하기 위한 수단; 및 (i) 제1 심볼 및 제2 심볼, (ii) 시간 및 위상 오프셋 정보에 기초하여 제2 심볼과 제1 심볼의 타이밍 및 위상을 정렬시키는 것, (iii) 대응하는 신호 품질에 기초하여 제1 데이터 패킷 및 제2 데이터 패킷의 각각에 스케일링을 적용하는 가중 결합기 작동을 수행하는 것에 기초하여 제1 신호와 제2 신호를 결합시키기 위한 수단을 포함한다. 제1 심볼을 생성하기 위한 수단, 제2 심볼을 생성하기 위한 수단, 시간 및 위상 오프셋 정보를 생성하기 위한 수단, 및 결합시키기 위한 수단은 하나 이상의 프로세서의 복수의 처리 블록에서 수행되고, 제1 처리 블록과 제2 처리 블록은 병렬로 작동한다.
구조 및 작동에 관한 본 발명의 상세사항은 첨부 도면의 연구에 의해 부분적으로 얻어질 수 있으며, 도면에서 유사한 도면 부호는 유사한 부분을 지칭한다:
도 1은 본 명세서에 개시된 실시형태에 따른, 통신 시스템의 실시예의 그래픽 도면.
도 2는 도 1의 시스템의 하나 이상의 컴포넌트로서 사용하기 위한 유선 또는 무선 통신 디바이스의 기능 블록도.
도 3은 본 명세서에 개시된 실시형태에 따른, 피드포워드 또는 사전 계산 신호 처리의 실시예의 그래픽 도면.
도 4는 본 명세서에 개시된 실시형태에 따른, 도 3의 피드포워드 또는 사전 계산 신호 처리의 또 다른 실시예의 그래픽 도면.
도 5는 본 명세서에 개시된 실시형태에 따른, 디지털 신호 다이버시티 결합기의 실시예의 기능 블록도.
도 6은 본 명세서에 개시된 실시형태에 따른, 디지털 신호 다이버시티 결합기의 또 다른 실시예의 기능 블록도.
도 7은 본 명세서에 개시된 실시형태에 따른, 타이밍 및 반송파 복구의 방법의 실시예의 기능 블록도.
도 8은 본 명세서에 개시된 실시형태에 따른, 타이밍 및 반송파 복구의 방법의 또 다른 실시예의 기능 블록도.
도 9는 본 명세서에 개시된 실시형태에 따른, 채널 시뮬레이터의 실시예의 기능 블록도.
도 10은 본 명세서에 개시된 실시형태에 따른, 신호 변조기의 실시예의 기능 블록도.
고속 처리를 달성하기 위해 범용 프로세서를 사용하는 개선된 통신 시스템의 실시형태가 개시된다. 본 명세서에 개시된 실시형태는 고속 신호 처리를 효율적으로 달성하기 위해 범용 프로세서를 활용할 수 있는 개선된 통신 시스템을 제공한다. 이러한 설명을 읽은 후에, 다양한 대안적인 실시형태 및 대안적인 적용에서 본 발명을 구현하는 방법이 당업자에게 자명해질 것이다. 그러나, 본 발명의 다양한 실시형태가 본 명세서에서 설명되더라도, 이러한 실시형태는 단지 예 및 예시의 방식으로 제시되고 제한이 아님을 이해하여야 한다. 이와 같이, 다양한 실시형태에 대한 이러한 상세한 설명은 첨부된 청구범위에 제시된 본 발명의 범위 또는 폭을 제한하는 것으로 해석되어서는 안 된다.
본 명세서 전반에 걸쳐서 "하나의 실시형태" 또는 "실시형태"는 실시형태와 관련하여 설명된 특정한 특징, 구조 또는 특성이 적어도 하나의 실시형태에 포함되는 것을 의미한다. 그러므로, 본 명세서 전반에 걸쳐 다양한 곳에서 어구 "하나의 실시형태에서" 또는 "실시형태에서"의 출현은 모두 동일한 실시형태를 반드시 지칭하는 것은 아니다. 또한, 특정한 특징, 구조 또는 특성은 하나 이상의 실시형태에서 임의의 적합한 방식으로 결합될 수 있다.
통신 시스템이 상세한 설명 전반에 걸쳐서 주요 예로서 사용되며, 그러나 개시된 방법의 적용은 이에 제한되지 않는다. 예를 들어, 디지털 신호 처리, 모뎀 등의 사용을 요구하는 임의의 무선 또는 라디오 통신 시스템은 본 명세서에서 설명된 시스템, 방법 및 컴퓨터 판독 가능 매체를 구현할 수 있다.
본 개시내용은 표준 서버 환경 또는 가상화된 클라우드 환경에서 범용 중앙 처리 장치(CPU)를 사용하여 디지털 신호 처리를 수행하기 위한 시스템 및 방법을 제공한다. 일부 예에서, 시스템은 SSE, SSE2, SSE3, SSE4.1, SSE4.2, AVX, AVX2 및 AVX512 명령어 세트를 포함하는, 높은 처리량을 달성하기 위해 단일 명령어 다중 데이터(SIMD) 기법을 사용할 수 있다. 본 개시내용은 필드 프로그램 가능 게이트 어레이(Field Programmable Gate Array: FPGA)와 같은 전용 신호 처리 하드웨어 또는 그래픽 처리 장치(GPU)와 같은 고성능 컴퓨팅(High Performance Computing: HPC) 하드웨어의 사용없이 필요한 처리량을 달성하기 위해 프로세서(예를 들어, CPU)의 다중 처리 코어를 통해 데이터 처리가 관리되는 방법을 설명한다. Intel 및 AMD 마이크로프로세서에 의해 만들어진 x86 아키텍처뿐만 아니라 Cortex-A76, NEON, AWS Graviton 및 Graviton2와 같은 ARM 프로세서를 포함하지만 이들로 제한되지 않는 범용 서버 CPU에서 이러한 처리를 수행하는 능력은 전용 하드웨어에 대한 필요성 없이 가상화된 처리 아키텍처를 사용하는 범용 클라우드 처리 환경 내에서 기능이 전개되는 것을 가능하게 한다. 범용 CPU에서의 처리는, 아날로그 신호를 샘플링하고 이더넷 연결을 통해 디지털화된 샘플을 CPU에 공급하는 Digital IF 기기에 의해 활성화된다. Digital IF 기기는 전체가 설명된 바와 같이 참조에 의해 본 명세서에 원용되는 2017년 2월 21일자로 허여된 미국 특허 제9,577,936호에 기술된 것과 유사한, 디지털화된 샘플을 수용하고 아날로그 신호로 변환할 수 있다.
도 1은 통신 시스템의 실시형태의 그래픽 도면이다. 통신 시스템(시스템)(100)은 복수의 지상국과 통신하는 플랫폼(110) 및 위성(111)을 가질 수 있다. 플랫폼(110)은 항공기(예를 들어, 비행기, 헬리콥터 또는 무인 항공기(unmanned aerial vehicle: UAV), 미사일, 보트 등)일 수 있다. 복수의 지상국(120, 130, 140)은 지상 무선 주파수(RF) 안테나(122) 또는 하나 이상의 위성 안테나(132, 142)와 관련될 수 있다. 지상국(120)은 디지타이저(124)에 연결된 안테나(122)를 가질 수 있다. 디지타이저(124)는 안테나(122)에서 수신된 아날로그 신호를 네트워크를 통한 송신을 위한 디지털 비트 스트림으로 변환하기 위한 하나 이상의 아날로그-디지털 변환기(analog to digital converter: A2D)를 가질 수 있다. 디지타이저(124)는 또한 플랫폼(110) 및 위성(111)로의 업링크에서의 작동을 위한 대응하는 디지털-아날로그 변환기(digital to analog converter: D2A)를 포함할 수 있다.
유사하게, 지상국(130)은 안테나(132) 및 디지타이저(134)를 가질 수 있고, 지상국(140)은 안테나(142) 및 디지타이저(144)를 가질 수 있다.
지상국(120, 130, 140)은 수신 체인에서, 플랫폼(110)으로부터 다운링크 신호(160)(160a, 160b, 160c로 번호 매겨짐)를, 그리고 위성(111)으로부터의 다운링크 신호(170)(170a, 170b, 170c로 번호 매겨짐)를 각각 수신할 수 있다. 지상국(120, 130, 140)은 또한 송신 체인에서 각각의 안테나(122, 132, 142)를 통해 업링크 신호를 송신할 수 있다. 디지타이저(124, 134, 144)는 디지털 비트 스트림(154)으로서 송신을 위해 수신된 다운링크 신호(160, 170)를 디지털화할 수 있다. 이어서, 디지털 비트 스트림(154)은 네트워크(152)를 통해 클라우드 처리 시스템으로 송신될 수 있다.
일부 실시예에서, 지상국(120, 130, 140)은 모든 데이터(예를 들어, 다운링크 신호에 포함된)를 국부적으로 처리할 수 있으며, 그러나, 이것은 시간, 자원 및 효율성 관점으로부터 예외적으로 비쌀 수 있다. 그러므로, 일부 실시형태에서, 다운링크 신호는 디지털화되어, 디지털 비트 스트림(152)으로서 원격 신호 처리 서버(signal processing server: SPS)(150)로 송신될 수 있다. 일부 구현예에서, SPS(150)는 광역 네트워크(wide area network: WAN)를 통해 액세스 가능한 오프사이트 시설에 위치된 데이터 센터와 같은 물리적 위치에 위치될 수 있다. 이러한 WAN은 예를 들어 인터넷이 될 수 있다. SPS(150)는 디지털 비트 스트림(152)으로부터 다운링크 신호를 복조하고, 다운링크 신호로부터 데이터 또는 정보 비트를 출력할 수 있다. 일부 다른 구현예에서, SPS(150)는 본 명세서에서 설명된 신호 처리 및 다른 방법을 수행하기 위해 클라우드 컴퓨팅 또는 클라우드 처리를 사용할 수 있다. SPS(150)는 클라우드 서버로서 또한 지칭될 수 있다.
이어서, SPS(150)는 처리된 데이터를 사용자에게 제공하거나 또는 다른 사이트로 전송할 수 있다. 데이터와 정보는 임무 의존형일 수 있다. 아울러, 기상 데이터, 영상 데이터, 위성 통신(satellite communication: SATCOM) 페이로드 데이터 등을 포함하는 데이터에 포함된 정보는 위성의 주요 목적이 될 수 있다. 위에서 언급한 바와 같이, SATCOM은 본 명세서에서 주요 예로서 사용되지만, DSP를 사용하는 임의의 통신 또는 신호 처리 시스템은 본 명세서에서 설명된 방법을 구현할 수 있다.
소프트웨어를 이용하여 높은 처리 속도를 달성하기 위해, 위상 고정 루프(PLL) 또는 지연 고정 루프(DLL) 방식은 루프 내의 피드백으로 인해 문제가 될 수 있다. 피드백 루프는 모든 인커밍 데이터(예를 들어, 다운링크 신호(160 및/또는 170))가 쉽게 유출되거나 분할될 수 없는 단일(예를 들어, 선형) 프로세스에서 처리되도록 한다. 피드백 외에, 예를 들어, 오차항을 계산하는 빈도를 포함하여 PLL/DLL을 사용하여 극복해야 할 다른 장애물이 있다.
도 2는 도 1의 시스템의 하나 이상의 컴포넌트로서 사용하기 위한 유선 또는 무선 통신 디바이스의 기능 블록도이다. 처리 디바이스(디바이스)(200)는 예를 들어 도 1의 SPS(150)로서 구현될 수 있다. 디바이스(200)는 본 명세서에 개시된 신호 처리 방법 또는 단계 중 하나 이상을 수행하기 위해 필요에 따라 구현될 수 있다.
디바이스(200)는 디바이스(200)의 작동을 제어하는 프로세서(202)를 포함할 수 있다. 프로세서(202)는 또한 CPU로서 지칭될 수 있다. 프로세서(202)는 예를 들어, SPS(150)에 기인하는 기능을 지시하고/하거나 수행할 수 있다. 프로세서(202)를 포함하는 디바이스(200)의 특정한 양상은 클라우드 기반 처리와 같은 다양한 클라우드 기반 소자로서 구현될 수 있다. 따라서, 프로세서(202)는 네트워크(예를 들어, 인터넷)를 통해 여러 이종 프로세서에 걸쳐서 분산된 클라우드 처리를 나타낼 수 있다. 대안적으로, 특정 컴포넌트가 하드웨어에서 구현될 수 있다. 프로세서(202)는 범용 마이크로프로세서, 마이크로 제어기, 디지털 신호 프로세서(DSP), 필드 프로그램 가능 게이트 어레이(FPGA), 프로그램 가능 논리 디바이스(programmable logic device: PLD), 제어기, 상태 기계, 게이트 논리, 이산 하드웨어 컴포넌트, 전용 하드웨어 유한 상태 기계, 또는 정보의 계산 또는 다른 조작을 수행할 수 있는 임의의 적절한 엔티티 중 하나 이상의 임의의 결합으로 구현될 수 있다.
프로세서(202)는 계산이 수행될 수 있는 하나 이상의 코어(204)(코어(204a) 내지 코어(204n)로서 도시됨)를 가질 수 있다. 클라우드 처리를 사용하는 구현예에서, 코어(204)는 분산 클라우드 처리의 다수의 반복을 나타낼 수 있다. 일부 실시형태에서, 하드웨어를 사용하여, 프로세서(202)는 수신기를 위한 모든 계산이 일어나는 복잡한 집적 회로일 수 있다. 본 명세서에서 사용되는 바와 같이, 코어(204)들은 각각 프로세서(202)의 하나의 처리 소자일 수 있다. 프로세서(202)는 본 명세서에 개시된 방법에 필요한 병렬 처리를 수행하는 다수의 코어(204)를 구현할 수 있다. 일부 실시형태에서, 프로세서(202)는 클라우드 컴퓨팅에서와 같이 다수의 CPU에 걸쳐서 분산될 수 있다.
디바이스(200)는 프로세서(202)에 작동 가능하게 연결된 메모리(206)를 더 포함할 수 있다. 메모리(206)는 클라우드 기반 저장 장치 또는 로컬 하드웨어 저장 장치일 수 있다. 메모리(206)는 프로세서(202)에 명령어 및 데이터를 제공하는 판독 전용 메모리(read-only memory: ROM) 및 랜덤 액세스 메모리(RAM) 둘 다를 포함할 수 있다. 메모리(206)의 일부는 또한 비휘발성 랜덤 액세스 메모리(non-volatile random access memory: NVRAM)를 포함할 수 있다. 프로세서(202)는 전형적으로 메모리(206) 내에 저장된 프로그램 명령어에 기초하여 논리 및 산술 연산을 수행한다. 메모리(206)에서의 명령어는 본 명세서에서 설명된 방법을 구현하도록 실행 가능할 수 있다. 메모리(206)는 제거 가능한 매체 또는 다수의 분산 데이터베이스를 더 포함할 수 있다.
메모리(206)는 또한 소프트웨어를 저장하기 위한 기계 판독 가능 매체를 포함할 수 있다. 소프트웨어는 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 설명 언어 등으로서 지칭되는 임의의 유형의 명령어를 의미하는 것으로 광범위하게 해석되어야 한다. 명령어는 (예를 들어, 소스 코드 형식, 이진 코드 형식, 실행 가능 코드 형식 또는 코드의 임의의 다른 적절한 형식으로) 코드를 포함할 수 있다. 프로세서(202) 또는 하나 이상의 코어(204)에 의해 실행될 때, 명령어는 디바이스(200)(예를 들어, SPS(150))가 본 명세서에서 설명된 다양한 기능을 수행하게 한다.
디바이스(200)는 또한 통신 디바이스(200)와 원격 위치 간의 데이터의 송신 및 수신을 허용하기 위해 송신기(210) 및 수신기(212)를 포함할 수 있다. 이러한 통신은 예를 들어, 네트워크(152)를 통해 지상국(120)과 SPS(150) 간에 발생할 수 있다. 이러한 통신은 무선이거나 또는 유선 통신을 통해 수행될 수 있다. 송신기(210) 및 수신기(212)는 트랜시버(214)로 결합될 수 있다. 트랜시버(214)는 네트워크(152)에 통신 가능하게 연결될 수 있다. 일부 실시예에서, 트랜시버(214)는 네트워크 인터페이스 카드(network interface card: NIC)를 포함하거나 또는 그 일부일 수 있다.
디바이스(200)는 사용자 인터페이스(222)를 더 포함할 수 있다. 사용자 인터페이스(222)는 키패드, 마이크로폰, 스피커 및/또는 디스플레이를 포함할 수 있다. 사용자 인터페이스(222)는 디바이스(200)의 사용자에게 정보를 전달하고/하거나 사용자로부터 입력을 수신하는 임의의 소자 또는 컴포넌트를 포함할 수 있다.
본 명세서에 설명된 디바이스(200)의 다양한 컴포넌트는 버스 시스템(226)에 의해 함께 결합될 수 있다. 버스 시스템(226)은 데이터 버스, 예를 들어, 데이터 버스 이외에 전력 버스, 제어 신호 버스 및 상태 신호 버스를 포함할 수 있다. 일부 실시형태에서, 버스 시스템(226)은 네트워크(152)에 통신 가능하게 연결될 수 있다. 네트워크(152)는 예를 들어 디바이스(200)(예를 들어, 프로세서(202))와 지상국(120) 간에 통신 링크를 제공할 수 있다. 당업자는 디바이스(200)의 컴포넌트가 함께 결합되거나, 또는 분산 처리를 위한 근거리 또는 광역 네트워크와 같은 일부 다른 메커니즘을 사용하여 서로에 대한 입력을 수용 또는 제공할 수 있다는 것을 이해할 것이다.
도 3은 피드포워드 또는 사전 계산 신호 처리(300)의 실시형태의 개략적인 블록도의 그래픽 도면이다. 방법(300)은 예를 들어 프로세서(202)에 의해 복수의 기능을 통합하는 일반화된 프로세스로서 발생할 수 있다. 프로세서(202)는 하나 이상의 원하는 프로세스를 수행하기 위해 도시된 바와 같이 직렬 또는 병렬 배열로 복수의 기능을 수행할 수 있다. 각각의 기능은 프로세서(202)에 의해 실행 가능하고 메모리(206)에 저장된 명령어 또는 소프트웨어의 블록 또는 집합(collection)을 참조할 수 있다.
제1 기능(302)은 프로세서(202)에 의해 수행될 수 있다. 일부 실시형태에서, 제2 기능(304)은 제1 기능(302)에 이어 직렬로 수행될 수 있다. 따라서, 프로세서(202)는 제1 기능(302) 및 제2 기능(304)을 수행하기 위해 다수의 코어(204)를 통한 처리를 위해 상이한 기능을 가진 데이터의 블록을 분할할 수 있다.
프로세서(202)는 제2 기능(304) 후, 제3 기능(306)(306a, 306b, ... 306n으로서 도시됨)의 분산 처리를 병렬로 수행할 수 있다. 다양한 수의 기능(306a 내지 306n)이 병렬로 작동될 수도 있다는 것을 나타내기 위해, 예컨대, 4개, 5개, 6개 등으로 제한되지 않는 임의의 수의 경로가 포함될 수 있는 것을 나타내는 이들 간의 3개의 수직점을 가진 3개의 경로가 도시된다. 제3 기능(306)의 병렬 처리는 예를 들어, 프로세서(202)의 여러 코어(204)(예를 들어, 처리 블록)에 걸쳐서 동일한 기능과 연관된 데이터의 블록을 분할하는 것을 포함할 수 있다. 예를 들어, "데이터의 블록"은 처리될 필요가 있는 샘플의 군을 의미할 수 있다.
용어 "병렬"은 처리가 블록(306a 내지 306n)에서 동시에 발생하는 것을 설명하기 위해 본 명세서에서 사용된다. 처리되는 패킷이 하나의 블록(306a 내지 306n)에서 또 다른 블록까지 상이한 길이를 가질 수도 있으므로, 패킷의 처리는 하나의 블록(306a 내지 306n)에서 그 다음의 블록까지 동일한 레이트 또는 속도를 가질 수도 있다. 아래에서 언급되는 바와 같이, 블록(306a 내지 306n) 중 일부는 다른 블록보다 더 빠르거나 또는 더 느리게 진행될 수도 있다. 따라서, 용어 병렬은 블록(306a 내지 306n) 내의 동시 또는 동시발생 처리로 제한되어서는 안 된다.
이어서, 프로세서(202)는 제4 기능(308) 및 제5 기능(309)을 직렬로 수행할 수 있다. 제1 기능(302) 및 제2 기능(304)과 유사하게, 제4 기능(308) 및 제5 기능(309)의 직렬 수행은 다수의 코어(204)를 통한 처리를 위한 상이한 기능과 연관된 데이터의 블록을 분할하는 것을 포함할 수 있다. 일반적으로, 제1 기능(302), 제2 기능(304), 제3 기능(306), 제4 기능(308), 및 제5 기능(309)의 각각은 상이한 처리 블록에서 각각 수행될 수 있다. 본 명세서에서 사용되는 바와 같이, 처리 블록은 데이터의 블록에서 수행되는 특정 업무를 지칭할 수 있다. 처리 블록은 예를 들어 코어(204) 중 하나 이상과 연관될 수 있다.
그러므로, 방법(300)은 예를 들어, 다수의 코어(204)를 통해 처리하기 위해 동일한 기능을 가진 데이터의 블록을 분할할 수 있다. 유사하게, 방법(300)은 다수의 코어(204)를 통해 처리하기 위해 상이한 기능을 가진 데이터의 블록을 분할할 수 있다.
방법(300)의 일부 다른 구현예에서, 동일한 처리 블록(예를 들어, 코어(204))은 동일하거나 상이한 기능에 관계없이 단일 명령어 다중 데이터(SIMD)를 이용하여 데이터의 처리를 수행할 수 있다.
다른 구현예에서, 방법(300)의 실시형태는 중첩 데이터를 사용하는 것에 의해 최소 상태 정보를 가진 데이터의 처리 블록을 지원할 수 있다. 본 명세서에 사용된 바와 같이, 상태 정보는 피드백 동안 필요한 변수(예를 들어, 피드백 처리), 데이터 프레임 경계 등을 포함할 수 있다. 예를 들어, 피드백 루프의 경우에, 상태 정보는 데이터의 연속적인 스트림의 처리 시에 피드백 동안 필요한, 루프 내에서 계산된 변수를 포함할 수 있다. 상태 정보는 데이터 스트림 내의 프레임 경계의 위치를 또한 포함할 수 있다. 다른 예는 상태 정보가 연속적인 데이터 흐름을 유지하는데 필요한 버퍼(예를 들어, 가능하게 많은 지연 소자)에 저장된 값을 포함하는 FIR 필터와 같은 것을 포함할 수 있다.
상태 정보 및 데이터의 인접한 블록의 중첩 부분을 무시하는 것에 의해, 프로세스는 데이터의 블록 간에서 가변적인 레벨의 중첩을 사용하여 병렬 처리의 이점을 취할 수 있다.
도 4는 도 3의 피드포워드 또는 사전 계산 신호 처리를 위한 방법의 실시형태의 그래픽 도면이다. 방법(400)은 프로세스(315)로서 그룹화된 다수의 기능에 대한 직렬-병렬 및/또는 병렬-직렬 처리를 위해 방법(300)의 원리를 사용할 수 있다. 하나의 실시예에서, 제1 기능(302)(도 3)은 프로세서(202)가 처리를 위해 데이터를 수신하는 데이터 수집 기능(305)일 수 있다. 제2 기능(304)(도 3)은 프로세서(202)가 데이터의 중첩 블록에서 데이터를 파싱(parse)할 수 있는 데이터 분할 기능(310)일 수 있다. 이어서, 데이터의 중첩된 블록은 처리 블록(315a 내지 315n)으로서 다수의 기능의 다양한 병렬 반복으로 병렬로 처리될 수 있다. 예를 들어, 데이터의 제1 블록은 처리 블록(315a)에서 기능의 군에 의해 처리될 수 있고, 데이터의 또 다른 블록은 처리 블록(315a)과 병렬로 실행되는 또 다른 처리 블록(315b 내지 315n)에서 기능의 군에 의해 처리될 수 있다. 복수의 처리 블록(315a-315n)은 병렬로 실행될 수도 있고, 2개의 이러한 처리 블록으로 제한되지 않는다. 데이터의 블록에서의 중첩은 상태 정보에 크게 의존하지 않는(또는 전혀 의존하지 않는) 중복의 레벨을 제공할 수 있다. 필요한 상태 정보가 적을수록, 연속 스트림과 반대로 데이터의 블록을 병렬로 처리하는 것이 더 쉽다. 다양한 수의 처리 블록(315a 내지 315n)이 병렬로 작동될 수도 있다는 것을 나타내기 위해, 예컨대, 4개, 5개, 6개 등으로 제한되지 않는 임의의 수의 경로가 포함될 수 있는 것을 나타내는 이들 간의 3개의 수직점을 가진 3개의 경로가 도시된다.
용어 "병렬"은 처리가 처리 블록(315a-315n)에서 동시에 발생하는 것을 설명하기 위해 본 명세서에서 사용된다. 처리되는 패킷이 하나의 처리 블록(315a 내지 315n)에서 또 다른 처리 블록까지 상이한 길이를 가질 수도 있으므로, 패킷의 처리는 하나의 처리 블록(315a 내지 315n)에서 그 다음의 처리 블록까지 동일한 레이트 또는 속도를 가질 수도 있다. 아래에서 언급되는 바와 같이, 처리 블록(315a 내지 315n) 중 일부는 다른 처리 블록보다 더 빠르거나 또는 더 느리게 진행될 수도 있다. 따라서, 용어 병렬은 블록(315a 내지 315n) 내의 동시 또는 동시발생 처리로 제한되어서는 안 된다.
방법(400)은 처리된 데이터를 결합하는 제4 기능(308)(도 3)과 유사한 데이터 결합 기능(320), 및 제5 기능(309)(도 3)과 유사한 데이터 출력 기능(325)을 더 포함할 수 있다.
추가의 실시예에서, 방법(300)의 다양한 기능의 조정 가능한 직렬-병렬 또는 병렬-직렬 배열은 피드백 루프를 대체하기 위해 피드포워드 처리를 구현하는 여러 방법을 제공한다. 이것은 처리량을 늘리고 피드백 처리시에 지연에 의해 유발되는 병목 현상을 방지할 수 있음에 따라서 유리하다.
방법(300) 및 방법(400)에 의해 제공되는 직렬-병렬 또는 병렬-직렬 처리의 추가적인 이점은 처리 블록(예를 들어, 방법(300)의 5개의 처리 블록 중 하나) 내에 원하는 알고리즘 중 하나 이상을 배열하는 것이, 처리 블록(예를 들어, 코어(204)) 내의 주어진 알고리즘의 속도에 대한 관심 없이 프로세서(202)가 처리 부하를 분산시키는 것(예를 들어, 다수의 코어(204)에 걸쳐서)을 가능하게 하는 것이다. 그러므로, 각각의 코어(204)는 정확히 동일한 처리 부하를 공유하고, 개별 알고리즘에 의해 유발되는 병목 현상 문제를 제거한다.
방법(300)의 실시형태의 추가적인 이점은 프로세서(202) 내의 계산 부담을 낮추기 위해 특정한 순서의 알고리즘(예를 들어, 처리 블록)을 맞춤화하는 것을 포함할 수 있다. 다음에 설명되는 바와 같이, 주어진 프로세스의 전반적인 멀티 스테이지 처리는 다수의 서브 프로세스의 순서에 얽매이지 않을 수 있다. 그러므로, 일부 예에서, 제4 기능(308)을 순서화하는 것은 제3 기능(306) 이전에 수행되면 특정한 이점을 가질 수 있다.
방법(300)은 예를 들어 int8, int16 및 플로트와 같은 메모리 대역폭 최적화를 위한 상이한 변수 유형을 추가로 구현할 수 있다. 이것은 (예를 들어, 유형에 기초한) 특정 알고리즘을 가속화할 수 있다. 아울러, 이것은 메모리 대역폭을 최대화하기 위해 향상된 유연성을 제공할 수 있다.
도 5 및 도 6은 디지털 신호 다이버시티 결합기의 실시형태의 기능 블록도이다. 다이버시티 결합을 위한 방법(500 및/또는 600)은 도 3 및 도 4와 관련되어 위에서 설명된 바와 같은 피드포워드 블록 처리를 포함할 수 있다. 방법(500) 및/또는 방법(600)은 복수의 블록을 포함할 수도 있다. 일부 실시예에서, 각각의 블록은 기능 블록을 나타낼 수도 있고 기능 블록(306a, 306b, ... 306n)(도 3) 등과 유사한 방식으로 기능을 수행할 수도 있다. 또 다른 실시예에서, 도 5 및/또는 도 6의 복수의 블록 중 2개 이상의 블록은 처리 블록(315a, 315b, ... 315n)(도 4) 등과 유사한 방식으로 기능을 수행하는 단일 "프로세스"(315)로서 함께 그룹화될 수 있다.
도 9는 채널 시뮬레이터의 실시형태의 기능 블록도이다. 채널 시뮬레이션을 위한 방법(900)은 도 3 및 도 4와 관련되어 위에서 설명된 바와 같은 피드포워드 블록 처리를 포함할 수 있다. 방법(900)은 복수의 블록을 포함한다. 일부 실시예에서, 각각의 블록은 기능 블록을 나타낼 수도 있고 기능 블록(306a, 306b, ... 306n)(도 3) 등과 유사한 방식으로 기능을 수행할 수도 있다. 또 다른 실시예에서, 도 9의 복수의 블록 중 2개 이상의 블록은 처리 블록(315a, 315b, ... 315n)(도 4) 등과 유사한 방식으로 기능을 수행하는 단일 "프로세스"(315)로서 함께 그룹화될 수 있다.
도 10은 파형 생성을 위한 신호 변조기의 실시형태의 기능 블록도이다. 신호 변조를 위한 방법(1000)은 도 3 및 도 4와 관련되어 위에서 설명된 바와 같은 피드포워드 블록 처리를 포함한다. 방법(1000)은 복수의 블록을 포함한다. 일부 실시예에서, 각각의 블록은 기능 블록을 나타낼 수도 있고 기능 블록(306a, 306b, 306n)(도 3) 등과 유사한 방식으로 기능을 수행할 수도 있다. 또 다른 실시예에서, 도 10의 복수의 블록 중 2개 이상의 블록은 처리 블록(315a, 315b, ... 315n)(도 4) 등과 유사한 방식으로 기능을 수행하는 단일 "프로세스"(315)로서 함께 그룹화될 수 있다.
블록(305)에서, SPS(150)는 (예를 들어, 네트워크(152)를 통해) 디지털 비트 스트림(152)을 수집하거나 또는 그렇지 않으면 수신할 수 있다. 블록(305)에서의 데이터 수집은 네트워크 연결(예를 들어, 이더넷)로부터 디지털 비트 스트림 데이터를 수신할 수 있다.
블록(310)에서, 데이터는 데이터 분할기에 의해 병렬 데이터 스트림으로 분할될 수 있다. 일부 실시형태에서, 프로세서(202)는 블록(310)에서 요구되는 데이터 분할 기능을 수행할 수 있다. 일부 다른 실시형태에서, 별도의 데이터 분할 컴포넌트(예를 들어, 데이터 분할기)가 디바이스(200)(도 2)에 포함될 수 있다. 데이터를 다수의 병렬 스트림으로 분할하는 것은 다운링크 신호, 예컨대, 다운링크 신호(160, 170)의 병렬 처리를 허용할 수 있다. 따라서, 방법(300)은 피드포워드 또는 사전 계산 처리의 이점을 취하여, 인커밍 디지털화된 신호 데이터가 더 작은 조각으로 분할되고, 이어서, 다수의 코어(204)에서 처리되는 것을 가능하게 한다. 디지털 비트 스트림(152)은 동위상/직교(in-phase/quadrature: I/Q) 쌍으로 중첩 패킷을 형성하도록 분할될 수 있다. 일부 실시형태에서, "중첩 패킷"은 연속적인 패킷이 인접한 데이터 패킷과 중첩되는 데이터 패킷을 포함할 수 있다. 일부 실시형태에서, 데이터 패킷은 모두 동일한 길이이지만, 중첩될 수 있다. 데이터 패킷에서의 중첩은 데이터 패킷의 시작 부분이나 단부 부분에 있을 수 있다. 아울러, 데이터 패킷은 이전 및 다음 데이터 패킷과 중첩될 수 있다. 데이터 패킷은 또한 상이한 길이(예를 들어, 다양한 데이터 양)를 가질 수 있다. 그러므로, 처리 블록(315a)으로 전송된 제1 패킷은 처리 블록(315b)으로 전송된 제2 패킷의 특정 데이터를 중첩하거나 또는 그렇지 않으면 반복할 수 있다.
패킷들 간의 중첩의 양 또는 중첩 크기는 프로그래밍 가능하고 필요에 따라 설정될 수 있다. 일부 예에서, 중첩은 패킷 크기의 1퍼센트(1%)로 설정될 수 있다. 이러한 중첩 크기는 필요에 따라 증가되거나 감소될 수 있다. 예를 들어, 중첩 크기에 영향을 줄 수 있는 하나의 특정한 매개변수는 데이터 스트림(152)에서의 심볼 레이트(symbol rate)의 불확실성이다. 대부분의 신호에 대해, 최악의 경우 불확실성은 1% 미만이므로, 1% 중첩은 대부분의 경우를 커버한다. 일부 다른 실시형태에서, 중첩은 필요에 따라 2%, 3%, 4%, 5%, 6%, 7%, 8%, 9% 또는 10%만큼 높거나 또는 그 사이의 어느 곳일 수 있다. 1% 미만의 중복을 갖는 것이 가능하다. 데이터 속도 불확실성이 0.1% 미만이면, 중첩은 0.1% 이하일 수 있다.
프로세서(202)는 디지털 비트 스트림(152)에 대한 단일 명령어 다중 데이터(SIMD) 처리를 구현할 수 있다. 일부 예에서, SIMD는 단일 CPU 명령어에서 단일 CPU 코어에 대해 16번의 부동 소수점 연산을 허용하는, 512비트(AVX-512)를 사용하는 고급 벡터 확장(Advanced Vector Extensions)을 포함할 수 있다. 예를 들어, AVX-512는 CPU(예를 들어, CPU(202))로 엄청난 양의 데이터를 처리할 수 있다. 예를 들어, 프로세서(202)(및 디바이스(200))는 500㎒ 대역폭 데이터 스트림을 수신할 수 있다. 500㎒의 대역폭은 10 기가비트 이더넷 링크의 일반적으로 허용되는 실제 제한이기 때문에 어떤 면에서는 중요하다. I/Q 쌍에 대해 8 비트 샘플이 있고 패리티 비트(parity bit)를 포함하는 데이터를 500㎒에서 샘플링하는 것은 10 기가비트 이더넷 링크를 포화시킬 수 있다. 500㎒ 예는 본 개시내용을 제한하지 않는다. 10 기가비트 이더넷 링크보다 큰 데이터 파이프가 가능하다. 아울러, 처리는 임의의 양의 데이터를 수용하기 위해 n개의 병렬 블록(예를 들어, 블록(315))으로 분할될 수 있다.
프로세스(315)는 점선으로 도시되고 방법(300)의 처리 단계를 도시한다. 다수의 병렬 단계 또는 처리 블록(315a, 315b, ... 315n)으로 실행되는 프로세스(315)가 도시된다.
본 명세서에서 사용되는 바와 같은 프로세스(315)는 예를 들어, 프로세서(202)에 의해 수행되는 처리 기능의 집합을 지칭할 수 있다. 디지털 비트 스트림(152)은 여러 코어(204)에 걸쳐서 처리 부하를 확산시키도록 다수의 병렬 처리 블록(315a, 315b, ... 315n)으로 전송될 수 있다. 개별 처리 블록(315a, 315b, ... 315n)은 클라우드 처리의 개별 반복을 나타낼 수 있다. 그러므로, 처리 블록(315a 내지 315n)의 각각의 처리는 (클라우드 기반) 코어(204a 내지 204n)와 관련될 수 있다. 필요한 처리 블록(315a 내지 315n)의 수는 처리 중인 데이터의 양에 기초하여 달라진다. 일부 실시형태에서, 처리 블록(315a 내지 315n)의 수는 네트워크(152)를 통해 또는 로컬 하드웨어 처리를 위해 프로세서(202) 내에서 이용 가능한 논리 코어의 수에 의해 제한될 수 있다. 일부 다른 실시형태에서, 메모리 대역폭 제약은 신호 처리에서 병목 현상을 유발할 수 있다. 메모리 대역폭은 데이터가 프로세서(예를 들어, 프로세서(202))에 의해 반도체 메모리(예를 들어, 메모리(206))로부터 판독되거나 또는 메모리에 저장될 수 있는 레이트를 지칭할 수 있다.
일부 실시형태에서, 처리 블록(315a 내지 315n)의 수는 변할 수 있다. 일반적으로, 처리 블록(315a 내지 315n)이 적을수록, 전체 프로세스에 필요한 코어의 수를 제한하면 좋다. 이것은 운영 비용이 더 저렴한 더 작은 가상 사설 클라우드(VPC) 기계에 시스템을 맞추는 것을 가능하게 한다. 예를 들어, VPC는 여러 CPU를 갖는 SPS(150)를 포함할 수 있다. 일부 실시형태에서, 8개의 처리 블록(315a 내지 315n)이 10 기가비트 이더넷 링크에 사용될 수 있다. 이러한 실시형태는 순방향 오류 정정 처리 블록을 포함하지 않을 수 있다. 일부 다른 실시형태에서, 필요한 처리 블록(315a 내지 315n)의 수에 대한 유일한 실질적인 제한은 통신 링크의 비트레이트 및 대역폭(예를 들어, 파이프의 크기)이다. 따라서, 임의의 수(n)의 처리 블록(315a 내지 315n)이 가능하다. 그러나, 일부 실시형태에서, 처리 블록(315a 내지 315n)의 수(n)에 대한 실질적인 제한은 CPU에서 실행될 수 있는 스레드의 수 또는 프로세서(202)에서의 코어(204)의 수에 기초하여 존재할 수 있다. 그러나, 제한이 단일 CPU 내에서 도달되면, 다수의 CPU(예를 들어, 프로세서(202))는 SPS(150)(예를 들어, VPC) 내에서 함께 처리를 수행하기 위해 제한되지 않은 수의 클라우드 기반 CPU 또는 코어(204)를 가질 수 있다. 아울러, 프로세서(202)는 필요에 따라 새로운 처리 블록(315a 내지 315n)을 생성할 수 있다. 처리 코어(204)는 처리량 및 효율성을 위해 필요에 따라 다중 분산 프로세서(예를 들어, 프로세서(202))에 걸쳐서 확산될 수 있다.
처리 블록(315a 내지 315n)은 어떤 처리 블록(315a, 315b, ... 315n)이 가장 느리게(또는 가장 빠르게) 수행되는지가 중요하지 않은 방식으로 배열된다. 방법(300)은 처리 블록(315a 내지 315n)에 걸쳐서 처리 부하를 공유할 수 있고, 그러므로 개별 처리 블록(315a 내지 315n)에서 병목 현상 문제에 의해 유발되는 임의의 처리 지연을 완화시킬 수 있다. 예를 들어, 처리 블록(315a 내지 315n)의 개별 서브 프로세스(아래의 도 4의 설명 참조)는 동일한 레이트로 수행되지 않거나 발생하지 않는다(예를 들어, 일부는 다른 것보다 빠르다). 따라서, 예를 들어, 방법(400)(도 4)의 더욱 큰 프로세스는 수행 또는 처리 시간에서의 변동을 설명할 수 있다. 처리 블록(315)은 인커밍 데이터를 처리하도록 필요한 만큼 여러 번 생성될 수 있다.
일부 실시형태에서, 각각의 처리 블록(315a 내지 315n)은 프로세서(202)에 의해 수행되는 신호 처리 알고리즘의 집합을 나타낼 수 있다. 본 명세서에서 사용된 바와 같이, 알고리즘은 원하는 기능을 수행하는 기능 또는 방법 단계의 가장 작은 집합을 나타낼 수 있다. 다수의 예시적인 알고리즘이 본 명세서에서 설명된다.
방법(300)의 예시적인 이점은 필요할 때 더욱 많은 처리 블록(315a 내지 315n)을 생성하는 능력이다. 일반적으로, 처리 블록(315a 내지 315n)은 소프트웨어로 구현될 수 있고, 그래서 주어진 데이터 레이트 또는 처리 부하에 적합하도록 필요에 따라 생성되거나 제거될 수 있다. 각각의 처리 블록(315a 내지 315n)은 상이한 수신된 파형(예를 들어, 다운링크 신호(160 및/또는 170)) 및 연관된 디지털 비트 스트림(154)의 필요에 맞추도록 재배열될 수 있다.
블록(320)에서, 다수의 처리 블록(315)으로부터의 처리된 신호 데이터는 다운링크 신호(160, 170)에 대해 인코딩 및 변조된 원래 데이터를 형성하도록 재결합될 수 있다. 일부 실시형태에서, 프로세서(202)는 데이터 재결합기의 기능을 수행할 수 있다. 다른 실시형태에서, 디바이스(200)는 이러한 기능을 수행하기 위한 추가 컴포넌트를 가질 수 있다. 각각의 데이터 패킷 또는 데이터의 처리된 블록은 타임스탬프를 가질 수 있다. 데이터 재결합기(예를 들어, 프로세서(202))는 타임 스탬프에 기초하여 데이터 블록을 순서화하고, 순서화된 블록 간의 위상을 비교할 수 있다. 재결합기는 인접한 블록의 위상을 추가로 조정하여 데이터 스트림을 재순서화할 수 있다. 일부 실시형태에서, 후속 데이터 블록의 위상은 이전 데이터 블록의 위상과 일치하도록 조정될 수 있다.
프로세스(315)에 도시된 모든 처리 블록에 대해, 실행을 위한 적어도 4개의 옵션이 있다:
1) 처리 블록(315) 내의 각각의 서브 소자(예를 들어, 각각의 블록(315a 내지 315n))가 자체 코어(예를 들어, 코어(204a 내지 204n))를 가져오는 상태에서 실행 중인 다수의 블록;
2) 처리 블록(315)이 전체 블록에 대해 단지 하나의 전용 코어를 가져오는 상태에서 실행 중인 다수의 블록;
3) 처리 블록 내의 각각의 서브 소자가 자체 코어를 가져오는 상태에서 실행 중인 단일 블록; 및
4) 처리 블록이 전체 블록에 대해 단지 1개의 전용 코어를 가져오는 상태에서 실행 중인 단일 블록.
실행될 수 있는 코어가 많을수록, 달성 가능한 속도가 높아진다.
블록(325)에서, 디바이스(200)는 데이터를 적절한 수신기에 출력할 수 있다. 일부 예에서, 이러한 수신기는 하나 이상의 임무 운영 센터일 수 있다. 이러한 데이터는 임무 의존형일 수 있으며(예를 들어, 위성의 목적), 무엇보다도 기상 데이터, 이미지 데이터 및 SATCOM 페이로드 데이터를 포함할 수 있다.
범용 CPU에서, 고속 성능을 제한할 수 있는 적어도 세 가지 주요 인자가 있다: 1) 데이터 수집, 2) CPU 용량, 및 3) 메모리 대역폭 활용. 데이터 수집은 데이터가 CPU에 얼마나 빨리 공급될 수 있는지를 나타낸다. CPU 용량은 CPU 클럭 속도와 CPU 내의 코어의 수에 따라 결정된다. 메모리 대역폭은 CPU로/로부터 외부 DDR RAM(CPU 캐시 아님)으로 데이터가 얼마나 빨리 전달될 수 있는지를 나타낸다. 메모리 대역폭은 메모리 레인의 수와 DDR RAM 클럭 속도에 의해 결정될 수 있다. 특정 경우에, 고속 처리를 달성하기 위한 제한 인자는 CPU 용량이지만, 다른 경우에는 메모리 대역폭이다. 위의 경우 중 어느 것이 성능에 영향을 미치는지 결정하기 위해 주의를 기울여야 하고, 메모리 대역폭이 제한되면, 아래에 설명된 실시형태는 제안된 특허 방식 내에서 메모리 대역폭 활용을 낮추는 방식의 비제한적인 예이다.
주어진 처리 블록 내의 기능 호출은 CPU 계산 또는 메모리 대역폭 활용을 최적화하는 방식으로 배열될 수 있다. 예를 들어, 도 5에 도시된 기능 호출(예시적으로 블록으로서 도시됨)을 참조하면, 주어진 실시예에 대해, 다양한 기능 호출(예를 들어, 타이밍 복구 블록, 반송파 복구 블록, 상관기 블록, 시간 조정 블록, 위상 회전 블록, 전력 및 Es/No 추정기 블록, 진폭 조정 블록, 및 가중 결합기 블록)은 메모리 대역폭을 최소화하는 이러한 방식으로 그룹화될 수 있다. 이들 기능 호출은 각각의 기능을 단순화하기 위해 또 다른 기능이 시작되기 전에 데이터의 세트에서 완료되도록 독립적으로 호출될 수 있다. 다른 예에서, 복수의 또는 모든 기능 호출은 하나의 블록으로 결합될 수 있어서, 데이터는 각각의 실행된 기능 후에 RAM으로 송신되지 않으며, 결합된 기능에 대한 메모리 대역폭은 독립적으로 호출될 때보다 훨씬 더 작다. 독립적으로 호출된 기능의 경우에, 제1 기능 호출(예를 들어, 타이밍 복구)은 제2 기능 호출(예를 들어, 상관기)이 발생하기 전에 전체 데이터 세트에 걸쳐서 수행될 수 있다. 결합의 경우에, 데이터의 일부만이 제2 기능 호출이 실행되기 전에 제1 기능 호출에서 처리된다. 이 방식으로, 메모리 대역폭이 강하된다. 이러한 방법은 도 5에 예시된 것뿐만 아니라 기능의 어떠한 그룹화에도 적용될 수 있다. 예를 들어, 방법은 도 6에 도시된 방법 또는 본 명세서에서 개시된 바와 같은 블록(예를 들어, 도 7 내지 도 10에 도시된 다양한 기능 호출 블록)에서 실행될 기능 호출에 대한 임의의 다른 그룹화에 적용될 수도 있다.
메모리 대역폭 활용을 개선하는 또 다른 방식은 위에서 설명된 방식과 유사하게 여러 기능 호출 블록을 하나의 블록으로 축약하는 것일 수도 있다. 예를 들어, 도 5를 참조하여 아래에서 더 상세히 설명되는 바와 같이, 복수의 기능은 타이밍 및 반송파 복구를 수행하기 위해 필수적일 수도 있다. 통상적으로, 작업의 용이성과 CPU 최적화를 위해, 각각의 기능은 자체 블록을 요구하지만, 메모리 대역폭 활용을 낮추기 위해, 모든 기능은 하나의 처리 블록으로 결합될 수 있다. 이러한 절충안은 CPU 성능에서의 히트(hit)에 대한 메모리 대역폭 활용을 낮춘다.
클라우드 환경에서 높은 처리량 작동을 달성하기 위해 다수의 코어에서 병렬 처리를 이용하는 범용 CPU에서 실행되는 디지털 신호 사후-검출 다이버시티 결합기:
위에서 설명된 바와 같이, 도 5 및 도 6은 방법(500 및 600)의 예시적인 구현예의 기능 블록도이다. 다양한 실시예에서, 방법(500 및 600)의 각각은 다이버시티 결합기 방법의 실시예일 수도 있다. 다양한 수의 신호가 병렬로 처리될 수도 있다는 것을 나타내기 위해, 예컨대, 4개, 8개 등과 같은 임의의 수의 경로가 사용될 수 있는 것을 나타내는 이들 간의 3개의 수직점을 가진 3개의 경로가 도시된다. 다이버시티 결합은 신호가 전부 시간과 위상에서 정렬되도록 다수의 안테나 피드를 함께 결합하기 위해 사용될 수도 있고, 다수의 입력 신호(A 내지 N)의 결합된 정보 전달을 최적화하기 위해 신호 품질에 기초하여 가중될 수도 있다. 신호 품질은 예를 들어 신호 대 잡음비, 심볼당 에너지 대 잡음 전력 스펙트럼 밀도(Es/No), 전력 추정치, 수신 신호 강도 표시기(received signal strength indicator: RSSI) 등 중 하나 이상을 사용하지만 이들로 제한되지 않고 결정될 수 있다. 다수의 안테나 피드는 플랫폼(110) 또는 위성(111)과 같은 하나 이상의 원격 위치로부터 올 수 있다. 위성이 본 명세서에서 예로서 사용되지만, 라디오 안테나(예를 들어, 안테나(122)) 또는 다른 유형의 송신기와 같은 다른 무선 송신 시스템이 구현될 수 있다. 따라서, 위성의 사용은 본 개시내용을 제한하지 않는다.
도 1에 도시된 위성의 경우에, 다이버시티 결합은 플랫폼(110)과 위성(111)이 동일한 지상국(예를 들어, 지상국(122))으로부터 보일 때 안테나 핸드오버 이벤트 동안 사용될 수 있지만, 예를 들어, 위성(111)은 (예를 들어, 동쪽에서) 수평선 아래로 떨어지고, 플랫폼(110)은 (예를 들어, 서쪽에서) 수평선 위로 상승한다. 다운링크 신호를 적절하게 결합하기 위해, 여러 계산이 수행되어야만 한다. 개시된 시스템은 신호를 디지털화하고 디지털 샘플로 변환하고, 이어서, 샘플은 신호 처리 소자로 송신될 수 있다. 시스템은 도플러 효과를 추가로 계산하고 보상할 수 있다. 시스템은 또한 다운링크 신호들 간의 잔여 위상 및 주파수 델타(예를 들어, 차이)뿐만 아니라 각각의 신호의 시간차 및 추정된 신호 대 잡음비를 결정할 수 있다. 이러한 작동 후에, 신호는 이어서 함께 결합된다.
신호를 결합하도록 사용될 수도 있는 많은 방식이 있다. 예를 들어, 신호는 사전-검출(Pre-D) 다이버시티 결합기 및/또는 사후-검출(Post-D) 다이버시티 결합기를 사용하여 결합될 수도 있다. Pre-D 다이버시티 결합기는 정합 필터(예를 들어, 검출기로서 또한 지칭됨)를 실행시키기 전에 신호를 결합하도록 구성될 수도 있다. Pre-D 다이버시티 결합기의 예시적인 구현예가 제PCT/US2020/65351호에서 설명되고, 이의 갯시내용은 전문이 참조에 의해 원용된다. Post-D 다이버시티 결합기는 정합 필터 기능의 완료 후 신호를 결합하도록 구성될 수도 있다. 이와 같이, 신호 패킷과 데이터 패킷이 별개의 디지털 샘플이기 때문에 Post-D 다이버시티 결합기는 Pre-D 방법을 통해 결합하는 다이버시티를 수행하기 위한 간소화된 방법을 제공할 수도 있다. 따라서, 기능 및 복잡성은 Pre-D 다이버시티 결합기와 비교할 때 감소될 수도 있다. 예를 들어, Post-D는 실행이 정합 필터 후 발행하고 결합이 심볼 공간에서 발생하기 때문에 더 간단할 수도 있다. 이것은, 시간 조정이 하나의 전체 심볼 단계에서만 수행될 수도 있고, 하위-샘플 조정이 필요하지 않으며, 이는 Pre-D의 경우에는 해당되지 않는다는 것을 의미한다.
Post-D 다이버시티 결합기의 구현은 Post-D End(본 명세서에서 Post-DE라고 함, 이의 예시적인 예가 도 5에 도시됨) 및 Post-D Mid(본 명세서에서 Post-DM이라고 함, 이의 예시적인 예가 도 6에 도시됨)를 포함할 수도 있다. 본 명세서에서 사용되는 바와 같이, Post-DE는 정합 필터가 실행된 후, 예를 들어, 반송파 및 타이밍 복구를 포함하는 전체 복조를 실행한 후 신호가 결합되는 결합기를 지칭할 수도 있다. 즉, Post-DE 방법에서의 결합은 타이밍 복구와 반송파 복구 둘 다가 로킹된 후에 발생한다. 본 명세서에서 사용되는 바와 같이, 용어 "로킹된"은 각각 타이밍 복구 및/또는 반송파 복구를 통해 적절한 타이밍 및/또는 반송파 정렬이 달성되는 신호의 정확한 복조를 지칭한다. 본 명세서에서 사용되는 바와 같이, Post-DM은 전체 복조 프로세스의 부분적인 실행 후, 예를 들어, 복조 처리 체인 및 정합 파일러의 타이밍 복구 이후이지만 복조 처리 체인의 반송파 복구 이전에 입력 신호가 결합되는 결합기를 지칭할 수도 있다. 따라서, Post-DM 방법은 타이밍 복구가 로킹된 후 반송파 복구 전에 결합을 허용한다. Post-DM의 비제한적 이점의 예는 반송파 복구가 실행되기 전에 결합된 신호가 더 높은 Es/No 및/또는 신호 대 잡음비(signal-to-noise ratio: SNR)를 달성할 수 있다는 것이다. 반송파 복구가 타이밍 복구보다 더 높은 Es/Nos에서 실패할 수도 있으므로, Post-DM 방법은 전체 시스템의 Es/No 감도를 개선시킬 수도 있다. 그러나 Post-DM 방법은 실행에 있어서 복잡도 비용 증가를 포함할 수도 있다. 반면에, Post-DE 방법은 설정 및 실행이 더 간단할 수도 있지만, 결합 전에 반송파 복구가 로킹되어야 할 수도 있고, 이는 일반적으로 수신기 감도에 대한 제한 요인이다. 이것은 다이버시티 결합기가 작동할 수 있는 Es/No 및/또는 SNR의 면에서 얼마나 낮은지를 제한하고 DVB-S2와 같은 일부 파형 표준에서 사용되는 것과 같은 전력 순방향 오류 정정(Forward Error Correction: FEC)에 대한 유용성을 제한할 수도 있다.
본 명세서에 개시된 Post-DM 및 Post-DE 방법은 Post-D 다이버시티 결합기 방법에 대한 두 가지 가능한 높은 수준의 실시예를 예시한다. 본 명세서의 실시형태가 이들 두 가지 방법에만 제한되지 않음을 이해할 것이다. 다른 방법도 가능하다.
도 5는 방법(500)으로서 예시적인 Post-DE 다이버시티 결합기를 예시한다. 도 5에 도시된 바와 같이, 방법(500)은 다수의 안테나 피드로부터 입력 샘플을 수신하고(예를 들어, 다운링크 신호(160 및/또는 170)는 안테나에서 수신되고 샘플링되어 방법(500)으로 공급됨), 입력을 함께 결합하고, 신호가 시간과 위상이 정렬되고 신호 품질에 기초하여 가중치가 부여되어 다수의 신호에서 결합된 정보 전달을 최적화하도록 결합된 신호를 출력한다. 방법(500)은 예를 들어, 도 1의 SPS(150)로서 구현되는 프로세서(예를 들어, 도 2의 프로세서(202))에 의해 실행될 수도 있다.
방법(500)은 복수의 기능 블록, 예를 들어, 복수의 타이밍 복구 블록(510a 내지 510n)(집합적으로 타이밍 복구 블록(들)(510) 또는 블록(들)(510)으로 지칭됨), 복수의 반송파 복구 블록(520a 내지 520n)(집합적으로 반송파 복구 블록(들)(520) 또는 블록(들)(520)으로 지칭됨), 하나 이상의 상관기 블록(들)(530), 복수의 시간 조정 블록(540a 내지 540n)(집합적으로 시간 조정 블록(들)(540) 또는 블록(들)(540)으로 지칭됨), 복수의 위상 회전 블록(550a 내지 550n)(집합적으로 위상 회전 블록(들)(550) 또는 블록(들)(550)으로 지칭됨), 복수의 진폭 조정 블록(560a 내지 560n)(집합적으로 진폭 조정 블록(들)(560) 또는 블록(들)(560)으로 지칭됨), 복수의 전력 및 Es/No 추정기 블록(565a 내지 540n)(집합적으로 전력 및 Es/No 추정기 블록(들)(565) 또는 블록(들)(565)으로 지칭됨) 및 하나 이상의 결합기 블록(들)(570)을 포함한다. 예시된 실시예에서, 복수의 블록(510a 내지 510n), 블록(520a 내지 520n), 블록(540a 내지 540n), 블록(550a 내지 550n), 블록(560a 내지 560n 및 565a 내지 565n)은 복수의 안테나 피드를 통해 수신되는 복수의 다운링크 신호의 샘플에서 기능을 실행하기 위해 도시되고, 각각의 블록은 대응하는 신호에서 실행된다. 임의의 수의 신호가 가능하고; 그러나, 본 명세서에서의 실시예는 2개의 신호(예를 들어, 샘플 A 및 샘플 N)를 참조하여 설명될 것이다.
도 5의 예시적인 실시예에서, 주어진 타이밍 복구 블록(510) 및 대응하는 반송파 복구 블록(520)은 각각의 입력 신호에 대한 정합 필터를 포함하는 전체 복조 프로세스의 일부일 수도 있다. 예를 들어, 블록(510a 및 520a)이 신호 A의 전체 복조 프로세스의 일부일 수도 있는 반면, 블록(510n 및 520n)은 신호 N의 전체 복조 프로세스의 일부일 수도 있다. 각각의 각자의 블록(510) 및 블록(520)은 각각의 입력 신호를 복조하도록 구성될 수도 있고 본 명세서에서 복조기 처리 체인으로서 지칭될 수도 있다. 따라서, 도 5에 도시된 Post-DE 방법은 복조기 체인의 단부에서(예를 들어, 실행 후) 입력 신호를 결합하도록 구성된다. 이와 같이, 결합기 로직은 전체 복조 후이지만 순방향 오류 정정 전이다.
위에서 설명된 같이, 방법(500)의 복수의 블록은 각각 기능을 나타낼 수도 있고 기능(306a, 306b, ... 306n)(도 3) 중 하나 이상의 기능으로서 구현될 수도 있다. 예를 들어, 도 5의 예시적인 구현예에 도시된 바와 같이, 상관기 블록(530)이 도 3의 기능(306)으로서 구현될 수도 있고, 반송파 복구 블록(520a 내지 520n)으로부터의 이러한 데이터가 데이터 블록으로 분할될 수도 있고 병렬 기능(306a 내지 306n)으로 처리될 수도 있다. 유사하게, 도 5에 도시된 바와 같이, 결합기 블록(570)은 기능(306)으로서 구현될 수도 있고 복수의 기능(306a 내지 306n)으로서 실행되어 복수의 데이터 블록을 병렬로 처리할 수도 있다. 기능(306)으로서 구현된 블록의 특정한 실시예가 도시되어 있지만, 이러한 실시예는 제한되는 것으로 의도되지 않고 방법(500)의 임의의 블록은 기능(306)으로서 구현될 수도 있다.
또 다른 실시예에서, 단독으로 또는 조합하여, 도 5에 도시된 복수의 블록은 도 4의 프로세스(315)와 유사한 방식으로 기능을 수행하는 단일 "프로세싱"(515)으로서 함께 그룹화될 수 있다. 즉, 도 5의 복수의 블록은 프로세스(515)로서 함께 그룹화될 수도 있고 처리 블록(315a, 315b, ... 315n)(도 4))으로서 다수의 병렬 반복으로 실행될 수도 있다. 예를 들어, 방법(500)의 상이한 부분은 처리(515)로서 함께 그룹화될 수 있고 도 4와 관련되어 위에서 설명된 바와 같이 직렬-병렬 및/또는 병렬-직렬 처리로 실행될 수 있다. 도 5에 도시된 예시적인 실시예에서, 신호 N의 처리 경로를 따라 정합 필터를 실행하기 위한 타이밍 복구 블록(510n) 및 반송파 복구 블록(520n)은 처리(515)로서 그룹화된다. 이 경우에, 도 4를 참조하면, 입력 샘플이 블록(305)에서 수집될 수도 있고, 블록(310)에서 샘플의 중첩 블록으로 분할될 수 있고, 각각의 중첩 데이터 블록은 처리 블록(315a 내지 315n)으로서 타이밍 복구 블록(510n) 및 반송파 복구 블록(520n)의 다수의 병렬 반복으로 처리될 수도 있다. 이어서 처리된 중첩 데이터 블록은 처리된 데이터를 결합하기 위해 데이터 결합(320)으로 출력되고 이어서 방법(500)의 후속 블록에 의한 처리를 위해 블록(325)에 의해 출력된다. 도 4의 데이터 결합 블록(320)은 결합기 블록(570)과 혼동되지 않는다. 블록(320)이 (315a 내지 315n)의 병렬 블록 처리를 결합하는 반면, 결합기 블록(570)은 아래에서 설명된 바와 같은, 다이버시티 결합을 실행한다. 유사하게, 도 5에 예시적으로 도시된 바와 같이, 시간 조정 블록(540n), 위상 회전 블록(550n), 전력 및 Es/No 추정기 블록(565) 및 진폭 조정 블록(560n)은 처리 블록(315)으로서 그룹화되어 도시되어 있다.
블록의 특정한 실시예가 프로세스(515)로서 함께 그룹화되는 것으로 도시되어 있지만, 이러한 실시예는 제한하려고 의도되지 않고 방법(500)의 하나 이상의 블록의 임의의 그룹화는 도 4와 관련되어 설명된 바와 같이 처리(515)로서 함께 그룹화되고 병렬로 실행될 수도 있다. 예를 들어, 시간 조정 블록(540n), 위상 회전 블록(550n) 및 진폭 조정 블록(560n) 중 하나 이상이 처리 블록(315)으로서 실행될 수도 있다.
게다가, 신호 N 입력으로부터의 입력에 대응하는 경로의 일부만이 함께 그룹화되는 것으로 도 5에 도시되어 있지만, 신호 A 경로에 대한 다양한 블록이 또한 프로세스(515)로서 함께 그룹화되고 병렬로 실행될 수 있다는 것을 이해할 것이다. 예를 들어, 블록(510a 및 520b)은 제1 프로세스(515)로서 그룹화되고 블록(540a 내지 565n)은 제2 프로세스(515)로서 함께 그룹화될 수도 있다. 위에서 언급된 바와 같이 다른 그룹화가 가능하다.
다양한 실시예에서, 도 5의 복수의 블록은 본 개시내용 전반에 걸쳐 설명된 바와 같은 SIMD 처리 기법을 사용하여 구현될 수도 있다. SIMD 기법은 증가된 처리량 및 최소화된 메모리 대역폭 요건을 제공할 수도 있다. SIMD 기법을 사용하여 실행되는 각각의 처리 블록의 기능을 증가시키면 메모리 대역폭 요건의 증가된 최소화를 제공할 수도 있다.
블록(510 및 520)에서, 프로세서(202)(예를 들어, 하나 이상의 코어(204))는 각각의 안테나 피드로부터의 다운링크로부터의 각각의 입력 샘플에 대해 타이밍 및 반송파 복구를 수행할 수 있다. 타이밍 및 반송파 복구 방법의 실시예는 도 7 및 도 8에 예시적으로 도시된다.
도 7은 도 3 및/또는 도 4의 신호 처리 방법에 의해 구현되는 타이밍 및 반송파 복구를 위한 방법의 실시예의 흐름도이다. 도 7은 복수의 블록을 포함하는 방법(700)을 예시하며, 그 중 하나 이상이 프로세스(315)로서 구현될 수도 있어서 블록의 그룹화가 도 4의 처리 블록(315a 내지 315n)의 각각에서 처리된다. 방법(700)의 블록의 각각은 또한 단일 블록이 도 3의 기능(306a 내지 306n)에 걸쳐 실행될 수 있도록 기능(306)으로서 각각 구현될 수도 있다. 도 3에 따른 블록의 실행은 개별적으로 또는 도 4에 따른 프로세스의 실행과 결합하여 수행될 수도 있다.
방법(700)은 아래에 설명된 오프셋 파형과 반대로 표준 파형 처리를 위해 사용될 수 있다. 예를 들어, 표준 파형 처리는 비트를 심볼로 매핑한 다음 심볼을 반송파로 변조하는 파형을 위해 사용될 수 있다. 표준 파형의 예는 BPSK(Binary Phase Shift Keying), QPSK(Quadrature Phase Shift Keying), 8PSK, 16APSK, 32APSK, 64 APSK뿐만 아니라 QAM(Quadrature Amplitude Modulation) 파형을 포함한다. 방법(700)은 도 5의 실례가 되는 예시적인 타이밍 복구 처리 블록(510) 및 예시적인 반송파 복구 블록(520)일 수도 있다.
블록(705)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상)는 수신된 데이터 패킷(예를 들어, 디지털화된 비트스트림(154) 또는 디지털화된 다운링크 신호(160 및/또는 170)의 샘플)에 대해 타이밍 복구 오류 계산을 수행할 수 있다. 타이밍 복구 오류 계산은 인커밍 데이터 스트림(예를 들어, 디지털화된 비트 스트림(134))에 정합 필터를 적절하게 정렬하기 위해 필요한 위상 정보를 제공할 수 있다. 정합 필터는 시간 영역에서 송신된 파형을 정합하는 데 사용되고 타이밍 오류에 의해 정렬되어 수신된 신호의 모든 에너지를 캡처하여 성능을 최적화한다. 타이밍 복구 오류 계산의 결과는 3개의 매개변수를 포함할 수 있다: 1) 시작 단계(각도); 2) 헤르츠(㎐)의 주파수 조정; 및 3) ㎐/초의 도플러 레이트 조정. 전술한 단위는 예시적인 것이고 본 개시내용을 제한하지 않는다. 다른 동등한 단위도 가능하다.
블록(710)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나)는 내부적으로 생성된 정합 필터를 변조기의 각각의 정합 필터에 의해 생성된 수신된 샘플에 정렬시키기 위해 패킷에 대한 타이밍 복구를 수행할 수 있다. 정렬은 블록(705)의 계산에 기초한다. 블록(710)의 출력은 블록(705)에서 수신된 데이터 패킷 내의 동기화된(예를 들어, 시간 정정된) 심볼이다.
타이밍 복구 오류 계산 블록(705) 및 타이밍 복구 블록(710)의 예가 미국 특허 제10,790,920호에 설명되고, 이의 개시내용은 전체가 제시된 것처럼 참조에 의해 본 명세서에 원용된다. 예를 들어, 추정된 가드너 타이밍 오류 검출기는 기술에 공지된 바와 같은 타이밍 정보를 생성하기 위해 인커밍 데이터에 적용될 수 있다. 또 다른 실시형태에서, 인커밍 샘플 스트림은 1개의 샘플만큼 지연될 수 있다. 이어서, 지연되지 않은 데이터는 지연된 데이터의 공액(공액 증식(conjugate multiplication))만큼 곱해질 수 있다. 둘 다는 장점과 단점이 있으며, 그래서 이것은 구현될 수 있는 절충안이다. 가드너 타이밍 오류 검출기에 의해 생성되는 타이밍 스파이크가 타이밍 추정치 또는 심볼 레이트 추정치와 혼합될 수 있고; 혼합 신호가 샘플링 레이트를 감소시키기 위해 격감될 수 있고; 격감된 샘플에 대해 위상 언랩 계산이 수행될 수 있고; 타이밍 추정을 업데이트하기 위해 적용될 수 있는 위상, 주파수 및 도플러 레이트 오프셋 정보를 결정하기 위해 곡선 맞춤 계산이 수행될 수도 있다.
블록(715)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나)는 위상 및 주파수 정보를 결정하기 위해 패킷에 대한 반송파 복구 오류 계산을 수행할 수 있다.
블록(720)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나)는 블록(715)에서의 계산에 기초하여 패킷에 대한 반송파 복구를 수행할 수 있다. 반송파 복구는 우주선(예를 들어, 위성(110))으로부터의 다운링크 신호(예를 들어, 다운링크 신호(160 및/또는 170))의 미지의 주파수, 도플러 레이트 및 위상 오프셋을 보상한다. 불확실성의 가장 일반적인 두 가지 원인은 우주선의 움직임과 우주선 내의 불완전한 발진기로 인한 도플러 효과이다. 프로세서(202)는 블록(715)으로부터의 위상, 주파수 및 도플러 레이트 정정을 적용하여 블록(720)의 출력에서 다운링크 신호(예를 들어, 다운링크 신호(160 및/또는 170))의 변조된 데이터에 대응하는 동기 심볼을 형성할 수 있다.
반송파 복구 오류 계산 블록(715) 및 반송파 복구 블록(720)의 예가 또한 미국 특허 제10,790,920호에 설명되고, 이의 개시내용은 전체가 제시된 것처럼 참조에 의해 본 명세서에 원용된다. 예를 들어, 인커밍 신호가 변조 유형에 기초하여 특정한 전력으로 상승될 수 있고; 혼합 신호가 격감되어 샘플링 레이트를 감소시킬 수 있고; 격감된 샘플에 대해 위상 언랩 계산을 수행할 수 있고; 반송파 복구 알고리즘을 업데이트하기 위해 적용될 수 있는 위상, 주파수 및 도플러 레이트 오프셋 정보를 결정하기 위해 곡선 맞춤 계산이 수행될 수 있고; 곡선 맞춤이 반송파 주파수 추정치를 업데이트(그리고 개선)하는 데 사용될 수 있다.
일부 구현예에서, 블록(705 및 710)은 예를 들어, 타이밍 복구 처리 블록(510)으로서 도 5에 도시된 바와 같이 단일 처리 블록으로서 함께 그룹화될 수도 있다. 유사하게, 일부 구현예에서, 블록(715 및 720)은 예를 들어, 반송파 복구 처리 블록(520)으로서 도 5에 도시된 바와 같이 단일 처리 블록으로서 함께 그룹화될 수도 있다. 일부 구현예에서, 하나 이상의 부가적인 처리 블록은 예를 들어, 도 6에 도시된 바와 같이 블록(710 및 705) 간에 실행될 수도 있다.
게다가, 타이밍 복구 오류 계산(705) 및 타이밍 복구 블록(710)은 도 4의 프로세스(315)로서 함께 그룹화될 수도 있다. 타이밍 복구가 다수의 처리 블록(315a 내지 315n)에 걸쳐 수행되는 경우에, 신호는 그룹화된 블록(예를 들어, 프로세스(315))의 실행 전에 블록(320)을 통해 결합될 수도 있고 각각의 신호에 대한 단일 스레드 작동으로서 도 4의 블록(325)에 의해 출력될 수도 있다. 블록(305, 310, 320 및 325)이 도 7에 예시되지 않지만, 처리 블록(315a 내지 315n)으로서 그룹화된 기능을 수행하기 위해 프로세스로의 입력 데이터가 수집(305)되고 분할(310)될 수도 있도록 이러한 블록이 존재할 수도 있고, 이어서 결과적으로 발생된 처리된 데이터가 다운스트림 처리를 위해 결합되고(320) 및 출력될(325) 수도 있다는 것을 이해할 것이다. 출력 신호는 이제 도 7에 도시된 바와 같이 심볼 공간에 있고, 다운스트림 기능은 결과적으로 발생된 출력 심볼에서 실행될 수도 있다. 더 많은 처리 블록이 실행될수록 더 높은 처리 속도를 달성할 수 있고 처리량이 증가할 수 있다.
블록(710)에서 샘플 공간에서 심볼 공간으로 변환한 후, 신호 심볼은 블록(715 및 720)에 의해 정정될 수도 있다. 블록(715 및 720)은 도 4의 프로세스(315)로서 함께 그룹화될 수도 있다. 따라서, 블록(710)으로부터의 심볼 출력은 반송파 복구 프로세스(315)로 다시 공급될 수도 있고 처리 블록(315a 내지 315n)에 걸쳐 실행될 수도 있고, 블록(710)은 예를 들어, 위에서 설명된 바와 같이, 블록(715)으로부터 별도의 프로세스 및/또는 기능으로서 구현된다.
또 다른 실시예로서, 블록(705 내지 720)의 각각은 단일 처리 블록(315)으로서 그룹화될 수도 있고 예를 들어, 도 5와 관련되어 설명되는 바와 같이, 도 4의 처리 블록(315a 내지 315n)에 걸쳐 실행될 수도 있다. 게다가, 각각의 블록(705 내지 720)은 기능(306)으로서 구현될 수도 있고 기능(306a 내지 306n)으로서 코어(204)에 걸쳐 실행될 수도 있다.
도 8은 도 3/도 4의 신호 처리 방법(블록(315a 내지 315n)의 각각에서 발생하는 프로세스)에 의해 구현되는 타이밍 및 반송파 복구를 위한 또 다른 방법의 실시형태의 흐름도이다. 도 8은 기능 블록의 일부를 결합하고 재배열하는 방법(700)(도 7)과 유사할 수도 있는 또 다른 방법(800)을 예시한다. 방법(700)과 마찬가지로, 방법(800)은 오프셋 파형 처리에 사용될 수 있다. 예를 들어 오프셋 파형 처리는 OQPSK(Offset quadrature phase-shift keying), MSK(minimum-shift keying), GMSK(Gaussian minimum-shift keying) 및 SOQPSK(shaped-offset quadrature phase shift)와 같은, 동위상(I) 및 직교(Q) 채널 간에 오프셋 또는 스태거를 가진 파형에 사용될 수 있다.
블록(805)에서, 프로세서(202)(예를 들어, 하나 이상의 코어(204))는 패킷에 대한 타이밍 및 반송파 복구 오류 계산을 수행할 수 있다. 타이밍 복구 오류 계산 및 반송파 복구 오류 계산은 블록(705 및 715)(도 7)에서 수행된 것과 유사하다. 그러나 방법(800)에서, 반송파 복구는 심볼의 타이밍 복구 이전에 수행된다. 방법(800)에 대한 입력은 샘플이고 출력은 수정된 동기 심볼이다.
블록(810)에서, 프로세서(202)(예를 들어, 하나 이상의 코어(204))는 블록(805)으로부터의 계산에 기초하여 반송파 복구 작동을 수행할 수 있다. 타이밍 및 반송파 복구 오류 계산 블록(810)의 실시예가 또한 미국 특허 제10,790,920호에서 설명되고, 이의 개시내용은 전체가 제시된 것처럼 참조에 의해 본 명세서에 원용된다. 예를 들어, 디지털화된 비트 스트림을 제곱하면, 주파수 영역에서 스파이크가 생성될 수 있다. 각각의 스파이크는 반송파 주파수와 심볼 레이트의 복합 추정치에서 생성된 혼합 신호에 의해 혼합될 수 있다. 혼합 신호 둘 다가 샘플링 레이트를 감소시키기 위해 격감될 수도 있고; 혼합 신호 둘 다에 대해 위상 언랩 계산이 수행될 수도 있고; 곡선 맞춤 계산이 수행될 수도 있고; 결과가 정보를 업데이트하기 위해 반송파 복구 및 타이밍 복구 알고리즘으로 전달된다.
다시 도 5를 참조하면, 각각의 블록(520a 내지 520n)에서 출력되는 각각의 입력 신호에 대한 정정된 심볼이 블록(530)에 공급된다. 블록(530)에서, 프로세서(202)(예를 들어, 하나 이상의 코어(204))는 입력 신호(이 실시예에서는 2개의 입력 신호) 간의 시간 및 위상 관계를 계산할 수도 있다. 예를 들어, 블록(530)은 정정된 심볼에 대해 FFT(Fast Fourier Transform)를 사용하여 상관기 기능을 수행할 수도 있고, 이는 동일한 연산에서 입력 신호 간의 각각의 오프셋 또는 스태거를 나타내는 시간 및 위상 정보를 둘 다를 출력할 수 있다. FFT를 사용하여 조악한 상관관계가 실행되면, 더 작은 데이터 세트에 대해 미세 상관관계가 실행되어 시간 및 위상 정렬이 변경되지 않은 것을 보장할 수 있다.
조악한 상관관계는 2개의 신호 간의 시간 불확실성을 결정하기 위해 많은 심볼에 걸쳐 2개의 신호 간의 실행 타이밍 및 위상 차를 나타낼 수도 있다. 단일 위성과 2개의 안테나가 있는 경우에 대해, 이 시간은 일반적으로 작으며(예를 들어, 마이크로초 이하) 케이블 길이와 아날로그 장비 타이밍 차에 기초하여 달라질 수도 있다. 1Msps(Msymbols/제2) 미만의 레이트에 대해, 조악한 타이밍 추정은 +/- 1 심볼만 커버해야 할 수도 있다. 심볼 레이트가 100Msps인 경우에, 조악한 타이밍 추정은 +/- 100 심볼을 커버해야 할 수도 있다. 시나리오가 안테나 핸드오버인 경우에, 예를 들어, 2개의 위성과 2개의 안테나가 있는 경우에, 2개의 신호 간의 타이밍 차는 100밀리초 이상이 될 수 있다. 1Msps의 경우, 조악한 타이밍 추정은 조악한 타이밍 추정에서 적어도 +/- 100k 심볼을 커버해야 할 수도 있다. 그리고 100Msps의 경우에, 조악한 타이밍 추정은 10M 심볼을 커버해야 할 수도 있다. 적어도 1개의 심볼에 대해 실행하기 위해 미세한 상관관계가 필요할 수도 있지만, 조악한 상관 관계에 의해 발견되면 타이밍 정렬이 손실되지 않는 것을 보장하도록 3 내지 15개에 걸쳐 실행될 수도 있다. 각각의 획득 모드에 대해, 일단 타이밍이 알려지면, 조악한 상관관계의 경우와 같이 FFT 결과의 위상을 비교하거나 또는 미세한 상관관계의 경우에 대해 적절하게 시간 정렬된 상관기의 위상을 비교함으로써 2개의 신호 간의 위상 차를 발견하는 것이 가능하다.
블록(540)에서, 블록(520)으로부터의 타이밍 정보는 블록(540) 및 프로세서(202)(예를 들어, 하나 이상의 코어(204))에 공급되고 타이밍 정보에 기초하여 입력 신호의 타이밍을 조정한다. 신호가 이미 적절하게 복조되고 정합 필터를 통과했으며 이제 단순한 심볼이기 때문에, Pre-D 결합의 경우와 같이 분수 샘플 대신 정수 수의 심볼 지연만 적용하면 되므로 시간 정렬이 간단하다. 블록(540)은 입력 신호 간의 적절한 정렬을 위해 블록(530)에서 계산된 바와 같이 입력 신호 간의 타이밍 오프셋에 기초하여 지연을 적용할 수도 있다. 즉, 예를 들어, 입력 신호 A와 입력 신호 N 간의 타이밍 오프셋에 대응하는 지연이 적용되어 각각의 신호의 심볼이 시간 영역에서 정렬되도록 한다. 예를 들어, 블록(520)이 블록(520a 내지 520n)으로부터의 심볼 스트림을 정렬하기 위한 시간 관계를 계산할 수도 있으므로 하나의 신호 체인으로부터의 각각의 심볼이 심볼 순서의 면에서 다른 심볼 체인의 심볼과 일치한다. 예를 들어, 단일 위성(예를 들어, 위성(111) 또는 플랫폼(110))과 2개의 안테나(예를 들어, 안테나(122, 132 및/또는 142))가 있는 경우에, 위성 송신기로부터의 각각의 심볼에 송신되는 모든 심볼에 대응하는 번호를 표기하는 것이 가능하다. 상관기(530)는 첫번째 심볼이 심볼 1일 것이고 100번째 심볼이 심볼 100일 것이라고 결정한다. 이어서 시간 조정 블록(540)은 신호 A의 심볼 1을 신호 N의 심볼 1에 정렬하는 것을 보장한다.
블록(530)에서 계산된 위상 오프셋 정보는 블록(540)에 공급되고, 블록(540)에서, 프로세서(202)(예를 들어, 하나 이상의 코어(204))는 신호의 위상을 정렬하기 위해 적어도 하나의 입력 신호의 위상을 회전시킨다. 블록(550)은 블록(530)으로부터의 위상 오프셋 정보에 기초하여 다른 신호(들)와 적절하게 정렬하기 위해 신호 중 하나를 회전시킴으로써 도플러 효과를 제거할 수도 있다. 이 연산은 당업계에 공지된 바와 같이 복소 곱셈을 사용하여 달성될 수 있다. 일부 경우에, 위상 변화가 +/- 90도 또는 180도인 경우에, 동위상(I) 및 직교(Q) 채널의 스와핑 및/또는 반전의 조합이 기술에 공지된 바와 같이 수행될 수도 있다. 예시적인 실시예로서, 제1 신호 A의 위상은 신호 N의 위상과 일치하도록 적절하게 조정되어야 한다. 예를 들어, QPSK의 경우에, 각각의 기호에 대해 가능한 4개의 가능한 위상이 있다. 복조기가 복조 후 이러한 4개의 위상 가능성이 어떻게 정렬되는지를 보장하지 않으므로, 신호 위상 중 하나를 다른 위상과 일치시키도록 조정해야 한다. 블록(530)은 이 조정량을 계산한다. 예를 들어, 심볼 1의 신호 A의 위상이 45도이고 심볼 1의 신호 N의 위상이 135도라고 가정한다. 블록(530)은 신호 N의 심볼 1(및 모든 다른 심볼)이 신호 N의 심볼 1과 정렬되도록 신호 N이 -90도만큼 조정되어야 한다고 결정하고 이 정보는 블록(550)으로 전달되어 이에 따라 신호의 위상을 회전시킨다.
블록(565)에서, 프로세서(202)(예를 들어, 하나 이상의 코어(204))는 각각의 입력 신호에 대한 신호 전력 및 Es/No를 추정한다. 블록(565)에서, Es/No는 여러 방식 중 임의의 하나를 사용하여 측정될 수도 있다. Es/No를 측정하기 위한 하나의 예시적인 실시예는 (C/N) × (B/fs)를 계산하는 것이고, 여기서, C/N은 반송파 대 잡음비 또는 신호 대 잡음비 중 하나이고, B는 채널 대역폭(헤르츠 단위)이고, fs는 심볼 레이트 또는 초당 심볼이다. 그러나, Es/No를 측정하기 위한 임의의 방식이 본 명세서에서 개시된 실시형태에 동등하게 적용 가능할 것임을 이해할 것이다. 또 다른 실시예에서, 블록(565)은 신호 품질, 예를 들어, 신호 대 잡음비, 전력 추정치, 수신 신호 강도 표시기(RSSI) 등을 추정할 수도 있다. 이러한 추정치는 결합을 위해 적절하게 각각의 입력 신호를 가중하기 위해 블록(570)에 공급될 수도 있다.
블록(565)으로부터의 전력 및 Es/No 추정치는 블록(530)으로부터의 신호 진폭의 차를 나타내는 진폭 정보를 따라 블록(560)에 공급될 수도 있다. 또 다른 실시예로서, 진폭 정보는 복조 프로세스(예를 들어, 블록(510 및 520))에 의해 직접적으로 적용될 수 있는데, 이러한 블록은 자동 이득 제어(automatic gain control: AGC) 루프를 포함할 수도 있기 때문이다. 어느 경우든, 블록(560)에서, 프로세서(202)(예를 들어, 하나 이상의 코어(204))는 예를 들어, 블록(565)으로부터의 제공된 추정 전력 및 Es/No에 기초하여 입력 신호의 진폭을 곱함으로써 각각의 각자의 신호의 진폭을 조정한다. 후속 결합을 위해, 신호(A 내지 N)는 각각 간의 Es/No의 차에 의해 가중된다. 예를 들어, 신호 둘 다가 동일한 Es/No를 가지면, 50/50 가중치가 적용될 수도 있고, 여기서 각각의 신호는 결합 전에 0.5만큼 스케일링된다(또는 50%만큼 가중된다). 신호 간의 Es/No 차가 3㏈인 경우에, 66/34의 가중치가 적용될 수도 있고, 여기서 결합 전에 더 높은 Es/No 신호는 0.66만큼 스케일링되고(또는 66%만큼 가중되고) 더 낮은 Es/No는 0.34만큼 스케일링된다(또는 34%만큼 가중된다).
일단 신호가 시간 및 위상 정렬되고 진폭이 위에서 제시된 바와 같이 조정되면, 블록(570)에서, 프로세서(202)(예를 들어, 하나 이상의 프로세서(204))는 블록(565)에서 계산된 Es/No 추정 및 전력 추정에 기초하여 스케일링을 적용할 수도 있다. 예를 들어, 또 다른 신호와 비교할 때 더 우수한 신호 대 잡음비를 갖는 신호에는 다른 신호보다 더 높은 가중치가 할당될 수도 있고, 이에 따라 스케일링될 수도 있다. 유사하게, 더 높은 Es/No 추정치 및/또는 전력 추정치에는 더 큰 가중치가 할당될 수도 있고 이에 따라 스케일링될 수도 있다. SIMD 기법은 다수의 신호(예를 들어, 이 실시예에서 2개의 신호)를 효율적으로 스케일링하고 결합하는데 사용될 수도 있다. 블록(570)은 모든 조정이 이루어진 후에 신호를 합산할 수도 있다.
블록(540, 550 및 560)이 특정한 순서로 예시적으로 실행되지만, 본 명세서의 실시형태가 예시된 순서에만 제한되지 않음을 이해할 것이다. 블록(540, 550 및 560)은 원하는 대로 임의의 순서로 실행될 수도 있고/있거나 병렬로 실행될 수도 있다.
도 6은 방법(600)으로서 예시적인 Post-DM 다이버시티 결합기를 예시한다. 도 6에 도시된 바와 같이, 방법(600)은 다중 안테나 피드로부터 입력 샘플을 수신하고, 입력을 함께 결합하고, 도 5의 것과 실질적으로 유사한 방식으로 결합된 신호를 출력한다.
방법(600)은 실질적으로 동일한 기능을 실행하도록 구성되지만, 도 6에 도시된 순서대로 실행되는, 방법 5의 블록과 동일한 블록을 포함한다. 예를 들어, 방법(600)은 타이밍 복구 블록(510), 반송파 복구 블록(520), 하나 이상의 상관기 블록(들)(530), 시간 조정 블록(540a), 위상 회전 블록(550), 진폭 조정 블록(560) 및 하나 이상의 결합기 블록(들)(570)을 포함한다. 방법(500)과 마찬가지로, 방법(600)은 복수의 입력 안테나 피드를 통해 수신되는 복수의 신호의 샘플에 대해 기능을 실행하기 위한 복수의 블록(510a 내지 510n), 블록(540a 내지 540n), 블록(550a 내지 550n), 블록(565a 내지 565n) 및 블록(560a 내지 560n)을 포함하고, 여기서 각각의 블록은 대응하는 신호에서 실행된다. 임의의 수의 신호가 가능하지만; 본 명세서의 실시예는 2개의 신호를 참조하여 설명될 것이다.
방법(600)이 방법(500)과 다른 점은 블록(510)에서 타이밍 복구를 수행한 후 하지만 복조기 처리 체인의 블록(520)에서 반송파 복구를 실행하기 전에 입력 신호가 결합된다는 점이다. 따라서 결합은 복조 중간에 발생한다. 예를 들어, 도 6에 도시된 바와 같이, 반송파 복구 블록(520)은 결합기 블록(570)으로부터의 결합된 신호 출력에 대해 실행된다.
도 5와 관련되어 위에서 설명된 바와 같이, 방법(600)의 복수의 블록은 각각 기능(306)을 나타낼 수도 있고 기능(306a, 306b, ... 306n)(도 3) 중 하나 이상으로서 병렬로 실행될 수도 있다. 즉, 예를 들어, 도 6의 상관기 블록(530), 도 6의 가중 결합기 블록(570) 등은 하나 이상의 기능(306a 내지 306n)으로서 병렬로 실행될 수도 있다. 유사하게, 도 6에 도시된 복수의 블록은 처리 블록(315a, 315b, ... 315n)(도 4)과 유사한 방식으로 기능을 수행하는 단일 "처리"(예를 들어, 프로세스(515 및/또는 315))로서 함께 그룹화될 수 있다. 즉, 예를 들어, 주어진 신호 처리 체인에 대해, 타이밍 복구 블록(510)이 프로세스(515)(예를 들어, 타이밍 복구 오류 계산 블록(705) 및 타이밍 복구 블록(710))로서 그룹화될 수도 있는 반면, 블록(540 내지 565)은 또 다른 프로세스(515)로서 함께 그룹화될 수도 있다. 유사하게, 도 6의 블록(570 및 520)은 추가의 또 다른 프로세스(515)로서 함께 그룹화될 수도 있다. 다양한 다른 조합이 가능하다. 게다가, 도 6의 복수의 블록은 본 개시내용 전반에 걸쳐 설명되는 바와 같은 SIMD 처리 기법을 사용하여 구현될 수도 있다.
도 5 및 도 6이 Post-D 다이버시티 결합기 방법에 대한 2개의 가능한 상위 수준 실시예를 예시하지만, 본 명세서의 실시형태가 이러한 2개의 방법에만 제한되지 않고 다른 방법도 가능하다는 것을 이해할 것이다. 즉, 본 명세서의 실시형태는 기능(306a 내지 306n)(도 3)으로서 병렬로 실행될 기능(306)으로서 다이버시티 결합기의 임의의 기능을 실행하는 방법 및/또는 처리 블록(315a 내지 315n)으로서 병렬로 실행될 프로세스(315)로서 다이버시티 결합기의 하나 이상의 기능을 그룹화하는 방법을 제공한다.
클라우드 환경에서 높은 처리량 작동을 달성하기 위해 다수의 코어에서 병렬 처리를 이용하는 범용 CPU에서 실행되는 채널 시뮬레이터:
위에서 설명된 바와 같이, 도 9는 방법(900)의 예시적인 구현예의 기능 블록도이다. 다양한 실시예에서, 방법(900)은 채널 시뮬레이션 방법의 실시예일 수도 있다. 채널 시뮬레이터는 무선 환경에서 움직이는 송신기 및/또는 수신기의 하나 이상의 상이한 왜곡 및/또는 효과를 시뮬레이션하는 데 사용된다. 예를 들어, 도 1을 참조하면, 채널 시뮬레이터의 실시형태는 수신기(예를 들어, 하나 이상의 안테나(122, 132 및 142))에 대해 환경을 통해 이동하는 위성(111) 및/또는 플랫폼(110)(예를 들어, 비행기, 헬리콥터 또는 무인 항공기(UAV) 등)에서 송신기를 시뮬레이션하는 데 사용될 수도 있다. 또 다른 실시예로서, 채널 시뮬레이터의 실시형태는 송신기(예를 들어, 안테나(122, 132 및 142) 중 하나 이상)에 대해 환경을 통해 이동하는 위성(111) 및/또는 플랫폼(110)(예를 들어, 비행기, 헬리콥터 또는 무인 항공기(UAV) 등)에서 수신기를 시뮬레이션하는 데 사용될 수도 있다. 추가의 또 다른 실시예에서, 채널 시뮬레이터의 실시형태는 위성(111) 및/또는 플랫폼(110)(예를 들어, 비행기, 헬리콥터 또는 무인 항공기(UAV) 등)의 수신기에 대해 환경을 통해 이동하는 위성(111) 및/또는 플랫폼(110)(예를 들어, 비행기, 헬리콥터 또는 무인 항공기(UAV) 등)에서 수신기를 시뮬레이션하는 데 사용될 수도 있다.
채널 시뮬레이터 방법은 불완전한 송신기, 환경 효과 또는 움직이는 차량으로부터 위에서 설명한 환경의 가능한 효과 중 적어도 하나 이상 그리고 가능한 모든 효과를 시뮬레이션한다. 시뮬레이션될 수 있는 가능한 송신기 장애는 위상 잡음, 비선형 왜곡(AM-PM), 동위상/직교(I/Q) 불균형, 불완전한 정합 필터, 타이밍 지터 등을 포함하지만 이로 제한되지 않는다. 가능한 환경 효과는 비에 의한 퇴색, 섬광, 다중 경로 등을 포함하지만 이로 제한되지 않는다. 가능한 움직임 효과는 신호의 중심 주파수 조정, 시간 지연 조정, 전력 조정을 포함하지만 이로 제한되지 않는다. 채널 시뮬레이터는 또한 AWGN(Additive White Gaussian Noise) 또는 채널이 신호에 부여할 수도 있는 임의의 다른 종류의 잡음을 추가할 수 있다.
도 9는 방법(900)으로서 예시적인 채널 시뮬레이터를 예시한다. 모든 필요한 채널 효과를 시뮬레이션하기 위해, 방법(900)은 신호에 대해 수행될 여러 작동에 대한 하나 이상의 기능 블록(910 내지 960)을 포함할 수도 있다. 예를 들어, 도 9의 예시적인 예에서, 방법(900)은 신호 왜곡 블록(910), 위상 잡음 블록(920), 중심 주파수 조정 블록(930), 타이밍 조정 블록(940), 이득 조정 블록(950) 및 부가적인 잡음 블록(960) 중 하나 이상을 포함한다. 방법(900)에 포함된 기능 블록은 시뮬레이션하고자 하는 왜곡 또는 효과에 따라 달라질 수도 있다. 방법(900)은 블록(910 내지 960) 중 하나, 하나 이상 또는 전부를 포함할 수도 있고, 일부 실시형태에서 다른 왜곡 및/또는 효과를 시뮬레이션하기 위해 부가적인 블록이 추가될 수도 있다.
위에서 설명된 바와 같이, 방법(900) 중 복수의 블록은 기능을 각각 나타낼 수도 있고 기능(306a, 306b, ... 306n)(도 3) 중 하나 이상으로서 구현될 수도 있다. 또 다른 실시예에서, 복수의 블록 중 2개 이상은 도 4의 프로세스(315)와 유사한 방식으로 기능을 수행하는 단일 "프로세스"(915)로서 함께 그룹화될 수 있다. 즉, 도 9의 복수의 블록은 프로세스(915)로서 함께 그룹화될 수도 있고 처리 블록(315a, 315b, ... 315n)(도 4) 등으로서 다수의 병렬 반복으로 실행될 수도 있다. 예를 들어, 도 9에 도시된 바와 같이, 모든 기능 블록(910 내지 960)은 단일 프로세스(915)로 그룹화되고, 그룹화된 기능은 다수의 처리 블록(315a 내지 315n)에 복제된다. 처리 블록(315a 내지 315n)의 수는 필요한 처리 속도 및 처리량을 달성하기 위해 원하는 만큼 여러 번 복제될 수도 있다. 블록(305, 310, 320 및 325)이 도 9에 예시되지 않았지만, 처리 블록(315a 내지 315n)으로서 프로세스(915)를 수행하기 위해 입력 데이터가 수집(305)되고 분할(310)될 수도 있도록 이러한 블록이 존재할 수도 있고 이어서 결과적으로 발생된 처리된 데이터가 다운스트림 처리를 위해 결합되고(320) 출력될(325) 수도 있다는 것을 이해할 것이다.
도 9가 프로세스(915)로 그룹화된 모든 기능 블록을 예시하지만, 본 명세서의 실시형태는 그렇게 제한되지 않는다. 기능 블록(910 내지 960)은 많은 상이한 방식으로 그룹화될 수도 있다. 예를 들어, 모든 기능 블록(910 내지 960)보다 적은 수(예를 들어, 2개 이상)가 프로세스(예를 들어, 프로세스(915))로서 그룹화될 수도 있다. 예시적인 실시예로서, 기능 블록(910 및 920)은 제1 프로세스(915) 및 제1 하나 이상의 프로세싱 블록(315a 내지 315n)에 걸쳐 분산된 처리로서 함께 그룹화될 수도 있고 기능 블록(930 내지 960)은 제2 프로세스(915) 및 제2 하나 이상의 프로세싱 블록(315a 내지 315n)에 걸쳐 분산된 처리로서 함께 그룹화될 수도 있다. 게다가, 블록(305, 310, 320 및 325)이 도 9에 예시되지 않았지만, 프로세스(915)의 그룹화된 기능을 수행하기 위해 (예를 들어, 처리 블록(315a 내지 315n)으로서) 입력 데이터가 수집(305)되고 분할(310)될 수도 있도록 이러한 블록이 각각의 프로세스(915) 전에 존재할 수도 있고 이어서 결과적으로 발생된 처리된 데이터가 다운스트림 처리를 위해 결합되고(320) 출력될(325) 수도 있다는 것을 이해할 것이다.
다양한 실시예에서, 도 9의 복수의 블록은 본 개시내용 전반에 걸쳐 설명된 바와 같은 SIMD 처리 기법을 사용하여 구현될 수도 있다. SIMD 기법은 증가된 처리량 및 최소화된 메모리 대역폭 요건을 제공할 수도 있다. SIMD 기법을 사용하여 실행되는 각각의 처리 블록의 기능을 증가시키면 메모리 대역폭 요건의 증가된 최소화를 제공할 수도 있다.
블록(910)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상의 코어)는 입력 신호에 대한 신호 왜곡을 시뮬레이션할 수 있다. 블록(910)은 비선형 왜곡(AM-PM), 동위상/직교(I/Q) 불균형 왜곡, 신틸레이션 왜곡, 다중 경로 왜곡 중 하나 또는 그의 시뮬레이션을 입력 신호에 부여하여 이러한 왜곡을 겪은 신호를 시뮬레이션할 수 있다. 예를 들어, 복합 유한 임펄스 응답(finite impulse response: FIR) 필터는 AM-PM 왜곡을 제외하고 위에서 언급한 왜곡을 시뮬레이션하는 데 사용될 수도 있다. FIR 필터의 예는 처리량을 개선하기 위해 SIMD 기법을 사용하여 구현될 수 있다. FIR 필터 계수는 원하는 왜곡의 시뮬레이션을 달성하도록 설정될 수 있다. AM-PM 왜곡의 경우, 예를 들어, 복잡한 비선형 수학 연산에 대한 룩업 테이블과 같은 비선형 연산이 수행될 수도 있다.
블록(920)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상의 코어)는 입력 신호에 대한 위상 잡음을 시뮬레이트션할 수 있다. 블록(920)은 위상 잡음을 시뮬레이션하기 위해 입력 신호에 위상 잡음의 시뮬레이션을 부여할 수 있다. 예를 들어, 입력 신호와 혼합되는 반송파에 유색 잡음이 추가될 수도 있다. 유색 잡음을 생성하는 하나의 방식은 잡음의 원하는 형상을 달성하기 위해 FIR 필터(블록(910)의 동일한 FIR 필터 또는 상이한 FIR 필터일 수도 있음)를 사용하여 백색 잡음을 형상화하는 것이다. 잡음은, 0.1에서 1㎐까지의 대역이 생성된 다음 보간되어 1㎐에서 10㎐까지 이어지는 또 다른 잡음 단계에 추가될 수 있도록 10 단계로 생성될 수 있다. 이 프로세스는 필요한 위상 잡음 대역폭을 커버하는 데 필요한 만큼 여러번 반복될 수 있다. 각각의 단계에서, 잡음의 생성, 필터링 및 보간은 SIMD 기법을 사용하여 달성될 수 있다. 이어서 이 유색 잡음은 반송파 신호 또는 (1,0)에서 시작하는 복소수 벡터의 위상을 조정하는 데 사용된다. 이어서 이 위상 조정된 신호 또는 벡터를 입력 신호와 곱할 수 있으므로, 입력 신호에 위상 잡음이 추가된다.
블록(930)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상의 코어)는 시간에 따라 입력 신호의 위상을 조정함으로써 반송파 조정을 수행할 수 있다. 블록(930)이 블록(920)과 유사한 방식으로 수행될 수도 있지만, 블록(930)에서 혼합 반송파의 위상은 원하는 반송파 주파수 및 위상 조정을 달성하기 위해 시간에 걸쳐 변한다. 블록(930)은 움직이는 플랫폼(예를 들어, 도 1의 플랫폼(110) 및/또는 위성(111)) 또는 더 일반적으로 도플러 효과로서 지칭되는, 송신기 또는 수신기의 움직임으로부터 반송파 주파수 변경을 시뮬레이션하기 위해 사용될 수도 있지만 이에 제한되지 않는다.
블록(940)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상의 코어)는 움직이는 플랫폼(예를 들어, 플랫폼(110) 및/또는 위성(111))의 효과를 시뮬레이션하기 위해 타이밍 조정을 수행할 수 있다. 예를 들어, 이러한 이동은 입력 신호의 길이를 시간적으로 신장시키거나 또는 증가시킬 수도 있다. 블록(940)은 조정 가능한 지연 탭을 사용하는 다상 필터를 적용할 수도 있다. 블록(940)이 도 5 및 도 6의 시간 조정 블록(540)과 유사할 수도 있지만; 블록(940)에 대한 타이밍 정보는 입력 신호를 분석한 결과 대신에 원하는 효과를 시뮬레이션하기 위해 사용자 입력에 의해 구동된다.
블록(950)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상의 코어)는 비에 의한 퇴색 또는 신호 전력에 영향을 줄 수 있는 다른 것을 시뮬레이션하기 위해 이득 조정을 수행할 수 있다. 블록(950)은 입력 신호의 진폭의 곱셈에 의해 수행될 수도 있다.
블록(960)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상의 코어)는 입력 신호에 잡음을 추가할 수 있다. 예를 들어, 블록(960)은 부가적인 가우시안 백색 잡음(또는 임의의 유형의 잡음(예를 들어, 유색 또는 레일리와 같은 다른 종류의 분포)을 시뮬레이션하고 잡음을 입력 신호에 부여할 수도 있다. 가우시안 백색 잡음을 생성하는 많은 방식이 있고 박스-뮬러 방식은 기술에 알려진 하나의 방법이다.
블록(910 내지 960)이 특정한 순서로 도시되어 있지만, 본 명세서의 실시형태가 예시된 순서로만 제한되지 않는다는 것을 이해할 것이다. 블록(910 내지 960)은 원하는 대로 임의의 순서로 실행될 수도 있고/있거나 입력 신호에 대해 병렬로 실행될 수도 있다.
클라우드 환경에서 높은 처리량 작동을 달성하기 위해 다수의 코어에서 병렬 처리를 이용하는 범용 CPU에서 실행되는 신호 변조기:
위에서 설명된 바와 같이, 도 10은 방법(1000)의 예시적인 구현예의 기능 블록도이다. 다양한 실시예에서, 방법(1000)은 신호 변조 방법의 실시예일 수도 있다. 변조기는 한 곳에서 다른 곳으로 정보를 전송하기 위해 파형을 생성하는 데 사용될 수도 있다. 예를 들어, 다운링크 신호(예를 들어, 도 1의 다운링크 신호(160 및/또는 170))는 방법(1000)에 따라 변조될 수도 있다. 예를 들어, 정보는 디지털 정보로 분해될 수 있거나 또는 AM 및 FM 라디오에서 사용되는 것과 같은 아날로그 신호일 수 있다. 디지털 신호의 생성이 본 명세서에서 실시예로서 사용되지만, 동일한 방식이 또한 아날로그 신호를 생성하기 위해 사용될 수 있다.
도 10은 방법(1000)으로서 예시적인 신호 모듈러를 예시한다. 방법(1000)은 변조 유형, 예컨대, B/Q/SQ/8/16A/32APSK/등, QAM(Quadrature-Amplitude-Modulation) 또는 임의의 유사한 디지털 변조 파형을 지원하는 PSK(Phase-Shift-Keying) 변조기 방법이다. 도 10이 하나의 예시적인 변조 방법을 예시하지만, (예를 들어, 도 3 및 도 4에 설명된 바와 같은) 신호 처리의 동일한 방식이 다른 변조 방법에 적용될 수도 있다.
방법(1000)은 도 10에 도시된 바와 같은 복수의 기능 블록을 포함한다. 예를 들어, 도 10의 예시적인 실시예에서, 방법(1000)은 프레임 빌더 블록(1010), FEC(Forward Error Correction) 블록(1020), 펄스 조정기 블록(1030), 중심 주파수 조정 블록(1040) 및 스위퍼 블록(1050) 중 하나 이상을 포함한다.
특정한 블록 및 배열이 도 10에 예시되어 있지만, 특정한 변조 방식은 상이한 블록을 필요로 할 수도 있다. 따라서, 도 10은 고수준 변조 방법을 예시하고 캐치올(catch-all) 구성은 아니다. 상이한 변조 방식을 실행하기 위해 원하는 대로 하나 이상의 부가적인 기능 블록이 방법(1000)에 추가될 수도 있다. 특정한 변조 방식이 도 10의 배열에 속하지 않는 범위 내에서, 당업자는 본 개시내용 전반에 걸쳐 다양한 실시형태와 관련되어 개시된 개념이 도 10의 변조 방법뿐만 아니라 임의의 변조 방식에 동일하게 적용됨을 이해할 것이다.
위에서 설명된 바와 같이, 방법(1000)의 복수의 블록은 기능을 각각 나타낼 수도 있고 기능(306a, 306b, ... 306n)(도 3) 중 하나 이상의 기능으로서 구현될 수도 있다. 또 다른 실시예에서, 복수의 블록 중 2개 이상은 도 4의 프로세스(315)와 유사한 방식으로 기능을 수행하는 단일 "프로세스"(1015)로서 함께 그룹화될 수 있다. 즉, 도 10의 복수의 블록은 프로세스(1015)로서 함께 그룹화될 수도 있고 처리 블록(315a, 315b, ... 315n)(도 4) 등으로서 다수의 병렬 반복으로 실행될 수도 있다. 예를 들어, 도 10에 도시된 바와 같이, 기능 블록(1010 및 1020)은 제1 프로세스(1015)로서 함께 그룹화되고, 이는 그후 제1 다수의 처리 블록(315a 내지 315n)에서 복제되고, 기능 블록(1030 내지 1050)은 제2 프로세스(315)로서 함께 그룹화되고, 이는 그후 제2 다수의 처리 블록(315a 내지 315n)에서 복제된다. 도 10이 별도의 프로세스(1015)로 그룹화되는 특정한 기능 블록을 예시하지만, 본 명세서의 실시형태는 그렇게 제한되지 않는다. 기능 블록(1010 내지 1050)은 많은 상이한 방식으로 그룹화될 수도 있다. 예를 들어, 모든 기능 블록(1010 내지 1050)은 함께 그룹화될 수도 있다.
방법(10)은 또한 예시적으로 각각의 프로세스(1015) 이전에 데이터 수집 블록(1005) 및 데이터 분할 블록(1010)을 포함한다. 데이터 수집 블록(1005)의 각각은 데이터 수집 블록(305)(도 4)과 실질적으로 유사할 수도 있고 각각의 데이터 분할 블록(1010)은 데이터 분할 블록(310)(도 4)과 실질적으로 유사할 수 있다. 따라서, 입력 데이터는 수집(1005)될 수도 있고, 여기서 프로세서(202)는 처리를 위해 데이터를 수신하고 분할(1010)될 수 있고, 여기서 프로세서(202)는 예를 들어, 도 4와 관련되어 설명되는 바와 같이, 데이터의 중첩 블록에서 데이터를 파싱할 수 있다. 게다가, 각각의 프로세스(1015) 후에, 방법(10)은 또한 예시적으로 데이터 결합 블록(1020) 및 데이터 출력 블록(1025)을 포함한다. 데이터 결합 블록(1020)의 각각은 데이터 결합 블록(320)(도 4)과 실질적으로 유사할 수도 있고 각각의 데이터 출력 블록(1025)은 데이터 출력 블록(325)(도 4)과 실질적으로 유사할 수도 있다. 따라서, 프로세스(1015)는 결합(1020)되는 데이터의 중첩 블록을 출력하고 예를 들어, 도 4와 관련되어 설명된 바와 같이 데이터를 출력(1025)한다.
다양한 실시예에서, 도 10의 복수의 블록은 본 개시내용 전반에 걸쳐 설명된 바와 같은 SIMD 처리 기법을 사용하여 구현될 수도 있다. SIMD 기법은 증가된 처리량 및 최소화된 메모리 대역폭 요건을 제공할 수도 있다. SIMD 기법을 사용하여 실행되는 각각의 처리 블록의 기능을 증가시키면 메모리 대역폭 요건의 증가된 최소화를 제공할 수도 있다.
블록(1010)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상의 코어)는 입력 신호의 인커밍 데이터를 원하는 변조 방식(예를 들어, 안테나(122, 132 및/또는 134)와 같은 수신기의 변조 방식)에 기초하는 미리 결정된 포맷으로 변환할 수 있다. 예를 들어, 특정한 변조 방식은 특정한 포맷을 요구하고 블록(1010)은 입력 신호의 데이터를 해당 포맷으로 변환한다. 변조기 방법(1000)은 예컨대, DVB-S2, DVB-S2x뿐만 아니라 리드-솔로몬 코딩(Reed-Solomon Coding), 터보 코딩(Turbo Coding), 컨볼루션 코딩(Convolutional Coding) 등을 사용하는 덜 표준화된 경우로 제한되지 않는 많은 상이한 파형 표준을 지원할 수 있다. 명료성을 위해, 파형 표준은 스트리밍 데이터와 프레임 데이터의 2개의 경우로 그룹화된다. 스트리밍 데이터 경우는 인커밍 데이터가 코딩되지 않은 코딩 또는 컨볼루션 코딩과 같이 연속적이고 끊어지지 않는 스트림인 경우이다. 프레임 데이터는 DVB-S2 또는 리드 솔로몬과 같은 프레임 또는 데이터 블록이 필요한 인커밍 데이터용이다. 블록(1010)은 인커밍 데이터를 변조 방식에 대응하는 포맷으로 변환함으로써 프레임(예를 들어, 프레임 데이터용) 또는 데이터 스트림(예를 들어, 스트리밍 데이터용)을 구축할 수 있다.
블록(1020)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상의 코어)는 DVB-S2에 대한 BCH 및 LDPC, CCSDS에 대한 LDPC 코딩, 리드-솔로몬, 터보코딩, 폴라코딩 및 컨볼루션 코딩을 포함하지만 이에 제한되지 않는 방법(1010)의 변조 방식에 대응하는 코딩을 생성한다. 블록(1020)은 변조기 방법(1000)에 대한 더 복잡한 블록 중 하나일 수도 있고 따라서 본 개시내용 전반에 걸쳐 개시된 모든 신호 처리 방법(예를 들어, 도 3 및/또는 도 4) 및 SIMD 기법으로부터 이익을 얻을 수도 있다.
블록(1030)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상의 코어)는 예를 들어, 펄스 형상 필터를 적용함으로써 심볼 데이터를 샘플로 변환한다. 블록(1030)은 임의의 펄스 형상, 예를 들어, RRC(Root-Raised-Cosine)를 생성할 수 있다. 펄스 조정기는 NCO(Numerically-Controlled-Oscillator)와 다위상 필터의 조합일 수도 있다. 블록(1030)은 또한 복잡한 블록일 수도 있고 따라서 본 개시내용 전반에 걸쳐 개시된 모든 신호 처리 방법(예를 들어, 도 3 및/또는 도 4) 및 SIMD 기법으로부터 이익을 얻을 수도 있다.
블록(1040)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상의 코어)는 복소 곱셈을 사용하여 블록(1030)으로부터의 샘플 데이터의 반송파의 중심 주파수를 변경할 수 있다. 블록(1040)에서, 프로세서(202)(예를 들어, 코어(204) 중 하나 이상의 코어)는 변조 방식에 대응하는 미리 규정된 프로파일에 기초하여 시간에 따라 위상 및 주파수를 변경할 수 있다. 일부 구현예에서, 블록(1050)은 중심 주파수가 블록(1040)을 통해 조정되는 동안 실행된다.
다른 양상
첨부된 청구범위 및 그 등가물은 이러한 형태 또는 변경을 본 개시내용의 범위 내에 있는 것으로서 포함하도록 의도된다. 도면에 예시된 다양한 컴포넌트는 예를 들어, 프로세서 또는 전용 하드웨어 상의 소프트웨어 및/또는 펌웨어로서 구현될 수 있지만 이것들로 제한되지 않는다. 또한, 위에서 개시된 특정한 예시적인 실시형태의 특징 및 속성은 부가적인 실시형태를 형성하도록 상이한 방식으로 결합될 수 있고, 이들 모두는 본 개시내용의 범위 내에 있다.
전술한 방법 설명 및 프로세스 흐름도는 단지 예시적인 실시예로서 제공되며, 다양한 실시형태의 작동이 제시된 순서로 수행되어야 한다는 것을 요구하거나 또는 암시하는 것으로 의도되지 않는다. 당업자에 의해 이해되는 바와 같이, 전술한 실시형태에서 작동 순서는 임의의 순서로 수행될 수 있다. "이후", "이어서", "다음" 등과 같은 단어는 작동 순서를 제한하는 것으로 의도되지 않고; 이 단어는 단순히 방법의 설명을 통해 독자를 안내하도록 사용된다. 게다가, 예를 들어, 단수 표현을 사용하는, 단수의 청구범위 요소에 대한 임의의 언급은 요소를 단수로 제한하는 것으로 해석되어서는 안된다.
본 명세서에 개시된 실시형태와 관련되어 설명되는 다양한 예시적인 논리 블록, 모듈 및 알고리즘 작동은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 둘 모두의 결합으로서 구현될 수 있다. 하드웨어와 소프트웨어의 이러한 호환성을 분명히 예시하기 위해서, 다양한 예시적인 컴포넌트, 블록, 모듈 및 작동이 일반적으로 이들의 기능에 관해 위에서 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지는 전체 시스템에 부여된 특정한 적용 및 설계 제한에 의존적이다. 당업자는 설명된 기능을 각각의 특정한 적용을 위해 다양한 방식으로 구현할 수 있지만, 이러한 구현 결정은 본 발명의 개념의 범위를 벗어나는 것을 유발하는 것으로서 해석되지 않아야 한다.
본 명세서에 개시된 다양한 실시형태와 관련되어 설명된 다양한 예시적인 논리, 논리 블록 및 모듈을 구현하도록 사용되는 하드웨어는 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA), 다른 프로그램 가능 논리 디바이스, 이산 게이트 또는 트랜지스터 논리, 이산 하드웨어 컴포넌트, 본 명세서에서 설명된 기능을 수행하도록 설계된 이들의 임의의 결합으로 구현될 수 있거나 또는 수행될 수 있다. 범용 프로세서가 마이크로프로세서일 수도 있지만, 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로 제어기 또는 상태 기계일 수도 있다. 프로세서는 또한 수신기 디바이스의 결합, 예를 들어, DSP와 마이크로프로세서, 복수의 마이크로프로세서, DSP 코어와 함께 하나 이상의 마이크로프로세서, 또는 임의의 다른 이러한 구성의 결합으로서 구현될 수 있다. 대안적으로, 일부 작동 또는 방법은 주어진 기능에 특정한 회로에 의해 수행될 수 있다.
하나 이상의 예시적인 실시형태에서, 설명된 기능은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 결합으로 구현될 수 있다. 소프트웨어로 구현되면, 기능은 비일시적 컴퓨터 판독 가능 저장 매체 또는 비일시적 프로세서 판독 가능 저장 매체에 하나 이상의 명령어 또는 코드로서 저장될 수 있다. 본 명세서에 개시된 방법 또는 알고리즘의 작동은 비일시적 컴퓨터 판독 가능한 또는 프로세서 판독 가능 저장 매체에 존재할 수 있는 프로세서 실행 가능 명령어로 구현될 수 있다. 비일시적 컴퓨터 판독 가능한 또는 프로세서 판독 가능 저장 매체는 컴퓨터 또는 프로세서에 의해 접근될 수 있는 임의의 저장 매체일 수 있다. 비제한적인 이러한 비일시적 컴퓨터 판독 가능 또는 프로세서 판독 가능 저장 매체는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 소거 가능한 프로그램 가능 판독 전용 메모리(EEPROM), 플래시 메모리, CD-ROM 또는 다른 광디스크 저장 디바이스, 자기 디스크 저장 디바이스 또는 다른 자기 저장 디바이스, 또는 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하도록 사용될 수 있고 컴퓨터에 의해 액세스 가능할 수 있는 임의의 다른 매체를 포함할 수 있다. 본 명세서에서 사용되는 바와 같은 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(CD), 레이저 디스크, 광디스크, 디지털 다기능 디스크(DVD), 플로피 디스크 및 블루레이 디스크를 포함하고, 디스크(disk)가 일반적으로 데이터를 자기적으로 재생하는 반면, 디스크(disc)는 레이저를 사용하여 데이터를 광학적으로 재생한다. 위의 조합은 또한 비일시적인 컴퓨터 판독 가능 및 프로세서 판독 가능한 매체의 범위 내에 포함된다. 추가적으로, 방법 또는 알고리즘의 작동은 컴퓨터 프로그램 제품에 포함될 수 있는, 비일시적인 프로세서 판독 가능 저장 매체 및/또는 컴퓨터 판독 가능 저장 매체 상의 코드 및/또는 명령어의 하나 또는 임의의 결합 또는 세트로서 존재할 수도 있다.
개시된 프로세스/흐름도에서 블록의 특정한 순서 또는 서열은 예시적인 방식의 예시임이 이해된다. 설계 선호도에 기초하여, 프로세스/흐름도에서 블록의 특정한 순서 또는 서열이 재배열될 수 있다는 것이 이해된다. 더욱이, 일부 블록은 조합될 수 있거나 또는 생략될 수 있다. 첨부된 방법 청구범위는 샘플 순서로 다양한 블록의 컴포넌트를 제시하고, 제시된 특정한 순서 또는 서열로 제한되는 것으로 의도되지 않는다.
이전의 설명은 당업자가 본 명세서에서 설명된 다양한 양상을 실시하게 하도록 제공된다. 이러한 양상에 대한 다양한 변경은 당업자에게 용이하게 명백할 것이고, 본 명세서에서 정의된 일반적인 원리는 다른 양상에 적용될 수 있다.
그러므로, 청구범위는 본 명세서에서 나타낸 양상으로 제한되는 것으로 의도되지 않지만, 단수의 컴포넌트에 대한 언급이 구체적으로 그렇게 언급되어 있지 않으면, "하나, 그리고 단지 하나"를 의미하는 것으로 의도되지 않고, 오히려 "하나 이상"을 의미하는 것으로 의도되는 청구범위 표현과 일치하는 전체 범주로 부여되어야 한다.
단어 "예시적인"은 "실시예, 예 또는 예시의 역할을 하는" 것을 의미하도록 본 명세서에서 사용된다. 본 명세서에서 "예시적인" 것으로서 설명된 임의의 양상은 반드시 다른 양상보다 바람직하거나 또는 유리한 것으로서 해석되어서는 안된다. 구체적으로 달리 언급되지 않는다면, 용어 "일부"는 하나 이상을 나타낸다.

Claims (17)

  1. 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법으로서,
    복수의 안테나 피드로부터 상기 복수의 다운링크 신호의 샘플을 수신하는 단계;
    제1 신호의 제1 샘플에서 제1 타이밍 복구 작동을 수행하는 것에 기초하여 상기 복수의 다운링크 신호 중 상기 제1 신호를 위한 제1 심볼을 생성하는 단계;
    제2 신호의 제2 샘플에서 제2 타이밍 복구 작동을 수행하는 것에 기초하여 상기 복수의 다운링크 신호 중 상기 제2 신호를 위한 제2 심볼을 생성하는 단계;
    상기 제1 심볼 및 상기 제2 심볼에서 상관기 작동을 수행하는 것에 기초하여 시간 및 위상 오프셋 정보를 생성하는 단계; 및
    (i) 상기 제1 심볼 및 상기 제2 심볼, (ii) 타이밍 및 위상 오프셋 정보에 기초하여 상기 제2 심볼과 상기 제1 심볼의 시간 및 위상을 정렬시키는 것, (iii) 대응하는 신호 품질에 기초하여 제1 데이터 패킷 및 제2 데이터 패킷의 각각에 스케일링을 적용하는 가중 결합기 작동을 수행하는 것에 기초하여 상기 제1 신호와 상기 제2 신호를 결합시키는 단계
    를 포함하되,
    상기 제1 타이밍 복구 작동, 상기 제2 타이밍 복구 작동, 상기 상관기 작동, 및 상기 결합 중 적어도 하나는 하나 이상의 프로세서의 복수의 처리 블록에서 수행되고, 상기 제1 처리 블록과 상기 제2 처리 블록은 병렬로 작동하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  2. 제1항에 있어서, 상기 복수의 처리 블록은 복수의 중앙 처리 장치(central processing unit: CPU) 코어를 포함하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  3. 제1항 또는 제2항에 있어서, 상기 하나 이상의 프로세서는 복수의 프로세서를 포함하고, 상기 복수의 처리 블록 중 제1 하나 이상의 처리 블록은 상기 복수의 프로세서 중 제1 프로세서에 포함되고, 상기 복수의 처리 블록 중 제2 하나 이상의 처리 블록은 상기 복수의 프로세서 중 제2 프로세서에 포함되는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 하나 이상의 프로세서는 상기 복수의 처리 블록 중 제1 하나 이상의 처리 블록 및 상기 복수의 처리 블록 중 제2 하나 이상의 처리 블록을 포함하는 단일 프로세서를 포함하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 제1 타이밍 복구 작동은 상기 복수의 처리 블록에서 수행되고, 상기 복수의 처리 블록은 적어도 제1 처리 블록 및 제2 처리 블록을 포함하고, 상기 제1 처리 블록은 상기 제1 샘플의 제1 부분에서 상기 제1 타이밍 복구 작동을 수행하고 상기 제2 처리 블록은 상기 제1 샘플의 제2 부분에서 상기 제1 타이밍 복구 작동을 수행하고. 상기 제1 처리 블록과 상기 제2 처리 블록은 병렬로 작동하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 복수의 처리 블록은,
    상기 제1 타이밍 복구 작동, 상기 제2 타이밍 복구 작동, 상기 상관기 작동, 및 상기 결합 중 적어도 하나를 수행하는 적어도 제1 처리 블록; 및
    상기 제1 타이밍 복구 작동, 상기 제2 타이밍 복구 작동, 상기 상관기 작동, 및 상기 결합 중 적어도 하나를 수행하는 적어도 제2 처리 블록
    을 포함하되,
    상기 제1 처리 블록과 상기 제2 처리 블록은 병렬로 작동하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 제1 심볼에서 제1 반송파 복구 작동을 수행하는 것에 기초하여 제1 정정된 심볼을 생성하는 단계; 및
    상기 제2 심볼에서 제2 반송파 복구 작동을 수행하는 것에 기초하여 제2 정정된 심볼을 생성하는 단계
    를 더 포함하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  8. 제7항에 있어서, 상기 복수의 처리 블록은 상기 제1 타이밍 복구 작동 및 상기 제1 반송파 복구 작동을 수행하고, 상기 복수의 처리 블록은 적어도,
    상기 제1 샘플의 제1 부분에서 상기 제1 타이밍 복구 작동 및 상기 제1 반송파 복구 작동을 수행하는 제1 처리 블록; 및
    상기 제1 샘플의 제2 부분에서 상기 제1 타이밍 복구 작동 및 상기 제1 반송파 복구 작동을 수행하는 제2 처리 블록
    을 포함하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  9. 제7항에 있어서, 상기 복수의 처리 블록은 상기 제1 타이밍 복구 작동 및 상기 제1 반송파 복구 작동을 수행하는 제1 하나 이상의 처리 블록 및 상기 제2 타이밍 복구 작동 및 상기 제2 반송파 복구 작동을 수행하는 제2 하나 이상의 처리 블록을 포함하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  10. 제7항에 있어서, 상기 복수의 처리 블록은 상기 제1 타이밍 복구 작동 및 상기 제1 반송파 복구 작동을 수행하는 제1 하나 이상의 처리 블록 및 상기 제2 타이밍 복구 작동 및 상기 제2 반송파 복구 작동을 수행하는 제2 하나 이상의 처리 블록을 포함하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  11. 제7항에 있어서,
    상기 제1 타이밍 복구 작동 및 상기 제1 반송파 복구 작동은 제1 정합 필터의 부분이고,
    상기 제2 타이밍 복구 작동 및 상기 제2 반송파 복구 작동은 제2 정합 필터의 부분인, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 결합된 제1 신호와 제2 신호에서 반송파 복구 작동을 수행하는 것에 기초하여 정정된 심볼을 생성하는 단계를 더 포함하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  13. 제1항에 있어서,
    상기 제1 타이밍 복구 작동, 상기 제2 타이밍 복구 작동, 상기 반송파 복구 작동은 정합 필터의 부분인, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 하나 이상의 프로세서는 하나 이상의 범용 중앙 처리 장치(CPU)인, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  15. 제1항 내지 제14항 중 어느 한 항에 있어서, 상기 하나 이상의 프로세서는 높은 처리량을 달성하기 위해 단일 명령어 다중 데이터(single instructions, multiple data: SIMD) 기법을 이용하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 방법.
  16. 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 시스템으로서,
    상기 복수의 다운링크 신호를 수신하도록 구성된 복수의 안테나; 및
    상기 복수의 안테나에 통신 가능하게 결합된 하나 이상의 프로세서로서, 복수의 처리 블록을 갖고 제1항 내지 제15항 중 어느 한 항의 방법을 수행하도록 작동 가능한, 상기 하나 이상의 프로세서
    를 포함하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 시스템.
  17. 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 장치로서,
    복수의 안테나 피드로부터 상기 복수의 다운링크 신호의 샘플을 수신하기 위한 수단;
    제1 신호의 제1 샘플에서 제1 타이밍 복구 작동을 수행하는 것에 기초하여 상기 복수의 다운링크 신호 중 상기 제1 신호를 위한 제1 심볼을 생성하기 위한 수단;
    제2 신호의 제2 샘플에서 제2 타이밍 복구 작동을 수행하는 것에 기초하여 상기 복수의 다운링크 신호 중 상기 제2 신호를 위한 제2 심볼을 생성하기 위한 수단;
    상기 제1 심볼 및 상기 제2 심볼에서 상관기 작동을 수행하는 것에 기초하여 시간 및 위상 오프셋 정보를 생성하기 위한 수단; 및
    (i) 상기 제1 심볼 및 상기 제2 심볼, (ii) 상기 시간 및 위상 오프셋 정보에 기초하여 상기 제2 심볼과 상기 제1 심볼의 타이밍 및 위상을 정렬시키는 것, (iii) 대응하는 신호 품질에 기초하여 제1 데이터 패킷 및 제2 데이터 패킷의 각각에 스케일링을 적용하는 가중 결합기 작동을 수행하는 것에 기초하여 상기 제1 신호와 상기 제2 신호를 결합시키기 위한 수단
    을 포함하되,
    상기 제1 심볼을 생성하기 위한 수단, 상기 제2 심볼을 생성하기 위한 수단, 상기 시간 및 위상 오프셋 정보를 생성하기 위한 수단, 및 상기 결합시키기 위한 수단은 하나 이상의 프로세서의 복수의 처리 블록에서 수행되고, 상기 제1 처리 블록과 상기 제2 처리 블록은 병렬로 작동하는, 통신 신호를 나타내는 복수의 다운링크 신호를 결합시키기 위한 장치.
KR1020237037969A 2021-05-24 2021-05-24 통신 신호를 나타내는 복수의 다운링크 신호의 사후 검출 결합을 위한 시스템 및 방법 KR20240009930A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/033867 WO2022250647A1 (en) 2021-05-24 2021-05-24 Systems and methods for post-detect combining of a plurality of downlink signals representative of a communication signal

Publications (1)

Publication Number Publication Date
KR20240009930A true KR20240009930A (ko) 2024-01-23

Family

ID=76641767

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237037969A KR20240009930A (ko) 2021-05-24 2021-05-24 통신 신호를 나타내는 복수의 다운링크 신호의 사후 검출 결합을 위한 시스템 및 방법

Country Status (8)

Country Link
US (1) US11863284B2 (ko)
EP (1) EP4348892A1 (ko)
JP (1) JP2024521550A (ko)
KR (1) KR20240009930A (ko)
AU (1) AU2021447893A1 (ko)
CA (1) CA3219471A1 (ko)
IL (1) IL308837A (ko)
WO (1) WO2022250647A1 (ko)

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5233626A (en) 1992-05-11 1993-08-03 Space Systems/Loral Inc. Repeater diversity spread spectrum communication system
EP0700116A3 (en) 1994-08-29 1998-01-07 Atr Optical And Radio Communications Research Laboratories Apparatus and method for controlling array antenna comprising a plurality of antenna elements with improved incoming beam tracking
US6542480B1 (en) 1996-11-05 2003-04-01 Worldspace, Inc. Satellite payload processing system using polyphase demultiplexing, quadrature phase shift keying demodulation and rate alignment
US6781968B1 (en) 1997-09-08 2004-08-24 Marc Arnold Wireless communication system, apparatus and method using an atmospheric platform having a wideband trunkline
US6111910A (en) * 1997-12-11 2000-08-29 Nortel Networks Corporation Maximal correlation symbol estimation demodulator
US6226323B1 (en) 1998-11-03 2001-05-01 Broadcom Corporation Technique for minimizing decision feedback equalizer wordlength in the presence of a DC component
US6842495B1 (en) 1998-11-03 2005-01-11 Broadcom Corporation Dual mode QAM/VSB receiver
US6630964B2 (en) 2000-12-28 2003-10-07 Koninklijke Philips Electronics N.V. Multi-standard channel decoder for real-time digital broadcast reception
US7151807B2 (en) 2001-04-27 2006-12-19 The Directv Group, Inc. Fast acquisition of timing and carrier frequency from received signal
JP2003152817A (ja) 2001-11-14 2003-05-23 Mitsubishi Electric Corp 受信機及びその搬送波再生方法
JP3852574B2 (ja) 2001-12-04 2006-11-29 三菱電機株式会社 信号復調装置及び信号復調方法
US20030219085A1 (en) 2001-12-18 2003-11-27 Endres Thomas J. Self-initializing decision feedback equalizer with automatic gain control
US7106784B2 (en) * 2002-01-25 2006-09-12 Sasken Communication Technologies Limited Universal rake receiver
US10644916B1 (en) 2002-05-14 2020-05-05 Genghiscomm Holdings, LLC Spreading and precoding in OFDM
US7580482B2 (en) 2003-02-19 2009-08-25 Endres Thomas J Joint, adaptive control of equalization, synchronization, and gain in a digital communications receiver
EP1680686A1 (en) 2003-09-02 2006-07-19 Sirf Technology, Inc. Signal processing system for satellite positioning signals
US7366089B2 (en) * 2003-10-08 2008-04-29 Atheros Communications, Inc. Apparatus and method of multiple antenna receiver combining of high data rate wideband packetized wireless communication signals
EP1704724A1 (en) 2004-01-07 2006-09-27 Koninklijke Philips Electronics N.V. Jitter introduction in a data transmission system
US11552737B1 (en) * 2004-08-02 2023-01-10 Genghiscomm Holdings, LLC Cooperative MIMO
GB0418133D0 (en) 2004-08-13 2004-09-15 Ttp Communications Ltd Sample acquisition timing adjustment
KR101019481B1 (ko) 2004-08-16 2011-03-07 엘지전자 주식회사 타이밍 복구 장치 및 방법
CN101053189B (zh) * 2005-05-16 2012-05-23 三菱电机株式会社 解调装置、接收装置以及解调方法
US7512198B2 (en) 2005-06-24 2009-03-31 The Boeing Company Efficient diversity combining for wideband downlink
US7587016B2 (en) * 2005-07-20 2009-09-08 Broadcom Corporation MIMO timing recovery
US7532676B2 (en) 2005-10-20 2009-05-12 Trellis Phase Communications, Lp Single sideband and quadrature multiplexed continuous phase modulation
KR101035218B1 (ko) 2006-04-13 2011-05-18 퀄컴 인코포레이티드 Mimo ofdm 에 있어서의 클럭 정정을 위한 방법 및 장치
US7817736B2 (en) 2007-06-29 2010-10-19 Texas Instruments Incorporated Correcting for carrier frequency offset in multi-carrier communication systems
WO2009154278A1 (ja) * 2008-06-20 2009-12-23 日本電信電話株式会社 受信装置、通信システム、および、受信方法
EP2313886B1 (en) 2008-08-11 2019-02-27 Nokia Technologies Oy Multichannel audio coder and decoder
JP5199484B2 (ja) * 2008-12-09 2013-05-15 テレフオンアクチーボラゲット エル エム エリクソン(パブル) マルチブランチ受信機のためのシンボルタイミング回復技術
US8363700B2 (en) * 2009-07-01 2013-01-29 Harris Corporation Rake receiver for spread spectrum chaotic communications systems
EP2417739B1 (en) 2009-07-03 2018-03-21 Huawei Technologies Co. Ltd. Adaptive filter
US20110026579A1 (en) 2009-07-30 2011-02-03 Legend Silicon Corp. novel equalizer for single carrier terrestrial dtv receiver
EP2360883B1 (en) * 2010-02-16 2013-04-10 Telefonaktiebolaget L M Ericsson (PUBL) Detecting a transmitted OFDM signal in a receiver having at least two receiver branches
US8345725B2 (en) * 2010-03-11 2013-01-01 Harris Corporation Hidden Markov Model detection for spread spectrum waveforms
US8594172B2 (en) 2010-12-21 2013-11-26 Lsi Corporation Adaptation of baseline wander correction loop gain settings
EP2523494B1 (en) 2011-05-11 2014-01-29 Prisma Engineering S.r.l. Mobile terminal simulator for a wireless telecommunications network and method to simulate a mobile terminal
US8682638B2 (en) 2011-06-30 2014-03-25 Octoscope, Inc. Channel emulator system and method
US20130177115A1 (en) 2011-07-05 2013-07-11 Qualcomm Incorporated Systems and methods for addressing doppler effect in wireless communications systems
US8467363B2 (en) 2011-08-17 2013-06-18 CBF Networks, Inc. Intelligent backhaul radio and antenna system
US8831546B2 (en) * 2011-11-07 2014-09-09 Ibiquity Digital Corporation MRC antenna diversity for FM IBOC digital signals
US9178683B2 (en) 2012-05-23 2015-11-03 Hughes Network Systems, Llc Method and apparatus for parallel demodulation of high symbol rate data streams in a communications system
US20140219374A1 (en) 2013-02-01 2014-08-07 Samsung Electronics Co., Ltd Efficient multiply-accumulate processor for software defined radio
US9130644B2 (en) 2013-03-15 2015-09-08 Emc Satcom Technologies, Llc Power booster in an MEO setting
CN104124987B (zh) * 2013-04-28 2016-06-08 国际商业机器公司 用于并行处理数据的方法和装置
CN109889318A (zh) 2013-11-26 2019-06-14 普鲁斯恩公司 通信方法、通信***和计算机可读介质
US9577936B2 (en) 2014-02-27 2017-02-21 Kratos Integral Holdings, Llc Packetized radio frequency transport system
US9270390B2 (en) 2014-03-28 2016-02-23 Olympus Corporation Frequency and phase offset compensation of modulated signals with symbol timing recovery
US10715302B2 (en) 2015-10-14 2020-07-14 Wilson Electronics, Llc Channelization for signal boosters
US9979462B2 (en) 2016-06-03 2018-05-22 Lockheed Martin Corporation Resilient virtual ground receivers
US10326526B2 (en) 2016-09-08 2019-06-18 Nxgen Partners Ip, Llc Method for muxing orthogonal modes using modal correlation matrices
US10177952B1 (en) 2017-06-22 2019-01-08 Fast Fit Technologies, Llc Distributed processing software based modem
US10541852B2 (en) 2017-11-23 2020-01-21 Nxp Usa, Inc. Preamble detection mechanism for reception of asynchronous packets
EP3537679B1 (en) 2018-03-09 2021-02-24 Nokia Technologies Oy Multi-window fast convolution processing
US10594535B2 (en) 2018-05-29 2020-03-17 Hughes Network Systems, LLC. System and method for extracting satellite to ground link quality using satellite telemetry signal and low complexity receiver
FR3082970B1 (fr) 2018-06-21 2020-05-29 Zodiac Data Systems Procede de demodulation d'un signal sur porteuse a l'aide de plusieurs demodulateurs numeriques
US10790920B2 (en) 2018-12-21 2020-09-29 Kratos Integral Holdings, Llc System and method for processing signals using feed forward carrier and timing recovery

Also Published As

Publication number Publication date
JP2024521550A (ja) 2024-06-03
IL308837A (en) 2024-01-01
EP4348892A1 (en) 2024-04-10
CA3219471A1 (en) 2022-12-01
US20220385353A1 (en) 2022-12-01
AU2021447893A1 (en) 2023-09-28
US11863284B2 (en) 2024-01-02
WO2022250647A1 (en) 2022-12-01

Similar Documents

Publication Publication Date Title
JP7469312B2 (ja) フィードフォワードキャリアおよびタイミングリカバリを使用して信号を処理するためのシステムおよび方法
KR20240010711A (ko) 통신 신호를 나타내는 복수의 다운링크 신호의 신호 변조를 위한 시스템 및 방법
US20240146500A1 (en) Method and apparatus for reconfigurable clock data recovery in fading environments
KR20240009930A (ko) 통신 신호를 나타내는 복수의 다운링크 신호의 사후 검출 결합을 위한 시스템 및 방법
KR20240011678A (ko) 통신 신호를 나타내는 신호의 채널 시뮬레이션을 위한 시스템 및 방법
US20230021682A1 (en) System and method for combining a plurality of downlink signals representative of a communication signal
US11817901B2 (en) Transmitting and receiving data using a satellite communications network
US20230188142A1 (en) Systems and methods for processing variable coding and modulation (vcm) based communication signals using feedforward carrier and timing recovery
AU2021477859A1 (en) Systems and methods for processing variable coding and modulation (vcm) based communication signals using feedforward carrier and timing recovery