KR102302560B1 - 조인트 비터비 검출 및 복호 장치 및 그 방법 - Google Patents

조인트 비터비 검출 및 복호 장치 및 그 방법 Download PDF

Info

Publication number
KR102302560B1
KR102302560B1 KR1020190116849A KR20190116849A KR102302560B1 KR 102302560 B1 KR102302560 B1 KR 102302560B1 KR 1020190116849 A KR1020190116849 A KR 1020190116849A KR 20190116849 A KR20190116849 A KR 20190116849A KR 102302560 B1 KR102302560 B1 KR 102302560B1
Authority
KR
South Korea
Prior art keywords
spi
branch
current stage
state
value
Prior art date
Application number
KR1020190116849A
Other languages
English (en)
Other versions
KR20210034909A (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 한국항공대학교산학협력단
Priority to KR1020190116849A priority Critical patent/KR102302560B1/ko
Publication of KR20210034909A publication Critical patent/KR20210034909A/ko
Application granted granted Critical
Publication of KR102302560B1 publication Critical patent/KR102302560B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0054Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 조인트 비터비 검출 및 복호 장치 및 그 방법을 개시한다. 즉, 본 발명은 GMSK에 의해서 유발된 심벌 간의 간섭 정보가 반영된 브랜치 메트릭을 사용하여 하나의 비터비 디코더만을 통해 검출과 디코딩을 수행함으로써, 2개의 비터비 디코더를 사용하여 검출과 디코딩을 수행하는 방식 대비 성능 저하가 없으면서도 복잡도를 줄일 수 있다.

Description

조인트 비터비 검출 및 복호 장치 및 그 방법{Apparatus for joint Viterbi detection and decoding and method thereof}
본 발명은 조인트 비터비 검출 및 복호 장치 및 그 방법에 관한 것으로서, 특히 GMSK에 의해서 유발된 심벌 간의 간섭 정보가 반영된 브랜치 메트릭(branch metric)을 사용하여 하나의 비터비 디코더만을 통해 검출과 디코딩을 수행하는 조인트 비터비 검출 및 복호 장치 및 그 방법에 관한 것이다.
BLE(Bluetooth Low Energy) 5.0은 적은 파워 소모와 장거리(long-range)를 지원하기 때문에 다양한 IoT(Internet Of Things)를 위한 떠오르는 무선 통신기술이다. 이러한 특징을 구현하기 위해 가우시안 주파수 쉬프트 키잉(GMSK: Gaussian minimum-shift keying)와 콘볼루셔널 인코더(convolutional encoder)가 결합된 LE-Coded가 BLE 5.0에 적용되었다. GMSK가 적용된 가우시안-세이프된 신호(Gaussian-shaped signal)는 스펙트럼 효율을 향상시키면서 포락선이 일정하게 유지되는 특성에 의하여 전송단에서 저전력 비선형 앰프를 사용할 수 있게 한다. 이런 특성으로 인하여 전체적으로 전력 소비가 감소할 수 있다. 또한, GMSK 신호에 콘볼루셔널 코드(convolutional code)를 사용한다면 수신단의 민감도(sensitivity)를 증가시킬 수 있기 때문에 커버리지(coverage)가 크게 향상된다.
그러나 GSMK는 연속된 여러 심벌에 걸쳐서 ISI(Inter-Symbol Interference)를 유발하는 특성이 있기 때문에 최적의 검출을 위한 방법은 최대 우도 시퀀스 추정(maximum likelihood sequence estimation: MLSE)가 적용된 비터비 알고리즘을 사용하는 것이다. 또한, 비터비 알고리즘은 주로 콘볼루션 코드를 디코딩하는데 많이 적용되는 방식이므로, 검출(detection)과 디코딩(decoding)을 할 때, 각각 비터비 방식을 적용하게 되면 최적을 성능을 낼 수가 있다.
그러므로 BLE 5.0에서는 두 개의 비터비 프로세서를 사용하는 것이 필요하다.
하지만, 두 개의 비터비를 사용하는 경우에는 레이턴시(latency)와 하드웨어 복잡도가 증가한다.
한국공개특허 제10-2015-0114369호 [제목: 가우시안 주파수 쉬프트 키잉 변조 방식을 지원하는 통신 시스템에서 신호를 수신하는 장치 및 방법]
본 발명의 목적은 GMSK에 의해서 유발된 심벌 간의 간섭 정보가 반영된 브랜치 메트릭(branch metric)을 사용하여 하나의 비터비 디코더만을 통해 검출과 디코딩을 수행하는 조인트 비터비 검출 및 복호 장치 및 그 방법을 제공하는 데 있다.
본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 장치는 연속으로 수신된 두 신호의 위상 차이를 산출하는 위상차 검출부; 및 이전 스테이지에서 계산된 SPI(Survivor Path Index)를 제공받기 위해서 SPI를 참조할 상태(state)를 확인하고, 상기 상태를 기준으로 이전 스테이지에서의 SPI 값을 확인하고, 상기 이전 스테이지에서의 SPI 값을 근거로 현재 스테이지에서 필요한 SPI의 인덱스를 생성하고, 미리 설정된 BMU 시퀀스 테이블을 근거로 현재 스테이지에서의 SPI의 인덱스에 대응하는 BM값을 참조해서 브랜치 메트릭을 계산하고, 상기 계산된 현재 스테이지에서의 브랜치 메트릭을 근거로 유클리드 거리가 최소가 되는 브랜치를 선택하고, 상기 선택된 유클리드 거리가 최소가 되는 브랜치에 따라 현재 스테이지에서의 SPI를 설정하고, 상기 설정된 현재 스테이지에서의 SPI 값을 저장하는 비터비 디코더를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 현재 스테이지에서 필요한 SPI의 인덱스는, 상기 비터비 디코더에서 브랜치 메트릭을 계산하기 위해 사용되는 변수가 저장된 주소를 나타낼 수 있다.
본 발명과 관련된 일 예로서 상기 BM값은, 코드워드에 대해 서로 다른 4가지 타입의 노이즈가 없는 연속으로 수신된 두 신호의 위상 차이일 수 있다.
본 발명과 관련된 일 예로서 상기 비터비 디코더는, 상부 브랜치 및 하부 브랜치 중에서 상부 브랜치가 선택될 때, 현재 스테이지에서의 SPI를 미리 설정된 제 1 값으로 설정할 수 있다.
본 발명과 관련된 일 예로서 상기 비터비 디코더는, 상부 브랜치 및 하부 브랜치 중에서 하부 브랜치가 선택될 때, 현재 스테이지에서의 SPI를 미리 설정된 제 2 값으로 설정할 수 있다.
본 발명과 관련된 일 예로서 상기 비터비 디코더는, 현재 스테이지에서의 전체 상태에 대해서 반복 수행하여 각 상태별로 현재 스테이지에서의 SPI 값을 저장할 수 있다.
본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 방법은 위상차 검출부에 의해, 연속으로 수신된 두 신호의 위상 차이를 산출하는 단계; 비터비 디코더에 의해, 이전 스테이지에서 계산된 SPI를 제공받기 위해서 SPI를 참조할 상태를 확인하는 단계; 상기 비터비 디코더에 의해, 상기 상태를 기준으로 이전 스테이지에서의 SPI 값을 확인하는 단계; 상기 비터비 디코더에 의해, 상기 이전 스테이지에서의 SPI 값을 근거로 현재 스테이지에서 필요한 SPI의 인덱스를 생성하는 단계; 상기 비터비 디코더에 의해, 미리 설정된 BMU 시퀀스 테이블을 근거로 현재 스테이지에서의 SPI의 인덱스에 대응하는 BM값을 참조해서 브랜치 메트릭을 계산하는 단계; 상기 비터비 디코더에 의해, 상기 계산된 현재 스테이지에서의 브랜치 메트릭을 근거로 유클리드 거리가 최소가 되는 브랜치를 선택하는 단계; 상기 비터비 디코더에 의해, 상기 선택된 유클리드 거리가 최소가 되는 브랜치에 따라 현재 스테이지에서의 SPI를 설정하는 단계; 및 상기 비터비 디코더에 의해, 상기 설정된 현재 스테이지에서의 SPI 값을 저장하는 단계를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 현재 스테이지에서의 SPI를 설정하는 단계는, 상부 브랜치 및 하부 브랜치 중에서 상부 브랜치가 선택될 때, 현재 스테이지에서의 SPI를 미리 설정된 제 1 값으로 설정하는 과정; 및 상기 ACSU에 의해, 상부 브랜치 및 하부 브랜치 중에서 하부 브랜치가 선택될 때, 현재 스테이지에서의 SPI를 미리 설정된 제 2 값으로 설정하는 과정을 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 비터비 디코더에 의해, 현재 스테이지에서의 전체 상태에 대해서 상기 SPI를 참조할 상태를 확인하는 단계, 상기 이전 스테이지에서의 SPI 값을 확인하는 단계, 상기 현재 스테이지에서 필요한 SPI의 인덱스를 생성하는 단계, 상기 브랜치 메트릭을 계산하는 단계, 상기 유클리드 거리가 최소가 되는 브랜치를 선택하는 단계, 상기 현재 스테이지에서의 SPI를 설정하는 단계 및 상기 설정된 현재 스테이지에서의 SPI 값을 저장하는 단계를 반복 수행하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 장치는 연속으로 수신된 두 신호의 위상 차이를 산출하는 위상차 검출부; SMU로부터 제공받은 상태를 기준으로 상기 상태와 관련한 이전 스테이지에서의 SPI 값을 확인하는 TBU(Trace Back Unit); 상기 이전 스테이지에서 계산된 SPI를 제공받기 위해서 SPI를 참조할 상태를 상기 TBU에 제공하고, 상기 TBU에 확인된 상기 상태와 관련한 이전 스테이지에서의 SPI 값을 근거로 상기 상태와 관련한 현재 스테이지에서 필요한 SPI의 인덱스를 생성하는 SMU(State Management Unit); 미리 설정된 BMU 시퀀스 테이블 중에서 상기 SMU에서 생성된 상기 상태와 관련한 현재 스테이지에서 필요한 SPI의 인덱스에 대응하는 BM값을 참조해서 브랜치 메트릭을 계산하는 BMU(Branch Metric Unit); 및 상기 계산된 현재 스테이지에서의 복수의 브랜치 메트릭 중에서 유클리드 거리가 최소가 되는 브랜치를 선택하고, 상기 선택된 유클리드 거리가 최소가 되는 브랜치에 따라 현재 스테이지에서의 SPI를 설정하는 ACSU(Add Compare and Select Unit)를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 ACSU는, 상부 브랜치 및 하부 브랜치 중에서 상부 브랜치가 선택될 때, 현재 스테이지에서의 SPI를 미리 설정된 제 1 값으로 설정할 수 있다.
본 발명과 관련된 일 예로서 상기 ACSU는, 상부 브랜치 및 하부 브랜치 중에서 하부 브랜치가 선택될 때, 현재 스테이지에서의 SPI를 미리 설정된 제 2 값으로 설정할 수 있다.
본 발명과 관련된 일 예로서 상기 TBU는, 상기 ACSU에 의해 설정된 상기 상태와 관련한 현재 스테이지에서의 SPI 값을 저장할 수 있다.
본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 방법은 SMU에 의해, 이전 스테이지에서 계산된 SPI를 제공받기 위해서 SPI를 참조할 상태를 TBU에 제공하는 단계; 상기 TBU에 의해, 상기 SMU로부터 제공받은 상태를 기준으로 상기 상태와 관련한 이전 스테이지에서의 SPI 값을 확인하는 단계; 상기 SMU에 의해, 상기 TBU에 확인된 상기 상태와 관련한 이전 스테이지에서의 SPI 값을 근거로 상기 상태와 관련한 현재 스테이지에서 필요한 SPI의 인덱스를 생성하는 단계; BMU에 의해, 미리 설정된 BMU 시퀀스 테이블 중에서 상기 SMU에서 생성된 상기 상태와 관련한 현재 스테이지에서 필요한 SPI의 인덱스에 대응하는 BM값을 참조해서 브랜치 메트릭을 계산하는 단계; ACSU에 의해, 상기 계산된 현재 스테이지에서의 복수의 브랜치 메트릭 중에서 유클리드 거리가 최소가 되는 브랜치를 선택하는 단계; 상기 ACSU에 의해, 상부 브랜치 및 하부 브랜치 중에서 상부 브랜치가 선택될 때, 현재 스테이지에서의 SPI를 미리 설정된 제 1 값으로 설정하는 단계; 상기 ACSU에 의해, 상부 브랜치 및 하부 브랜치 중에서 하부 브랜치가 선택될 때, 현재 스테이지에서의 SPI를 미리 설정된 제 2 값으로 설정하는 단계; 및 상기 TBU에 의해, 상기 ACSU에 의해 설정된 상기 상태와 관련한 현재 스테이지에서의 SPI 값을 저장하는 단계를 포함할 수 있다.
본 발명과 관련된 일 예로서 현재 스테이지에서의 전체 상태에 대해서 상기 SPI를 참조할 상태를 확인하는 단계, 상기 이전 스테이지에서의 SPI 값을 확인하는 단계, 상기 현재 스테이지에서 필요한 SPI의 인덱스를 생성하는 단계, 상기 브랜치 메트릭을 계산하는 단계, 상기 유클리드 거리가 최소가 되는 브랜치를 선택하는 단계, 상기 현재 스테이지에서의 SPI를 설정하는 단계 및 상기 설정된 현재 스테이지에서의 SPI 값을 저장하는 단계를 반복 수행하는 단계를 더 포함할 수 있다.
본 발명은 GMSK에 의해서 유발된 심벌 간의 간섭 정보가 반영된 브랜치 메트릭을 사용하여 하나의 비터비 디코더만을 통해 검출과 디코딩을 수행함으로써, 2개의 비터비 디코더를 사용하여 검출과 디코딩을 수행하는 방식 대비 성능 저하가 없으면서도 복잡도를 줄일 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 장치의 구성을 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 BLE 5.0의 Low-Energy Coded mode 시스템 모델의 예를 나타낸 도이다.
도 3은 본 발명의 실시예에 따른 궤적 다이어그램(trajectory diagram)을 나타낸 도이다.
도 4는 본 발명의 실시예에 따른 코드워드 '00'에 대하여 서로 다른 4가지 타입의 위상 차이를 나타낸 도이다.
도 5는 본 발명의 실시예에 따른 비터비 디코더의 구성을 나타낸 블록도이다.
도 6은 본 발명의 실시예에 따른 n번째 스테이지에서 상태 S0에 대한 이전의 코드워드를 찾는 과정을 나타낸 도이다.
도 7은 본 발명의 실시예에 따른 다양한 MNS 조건에서의 성능 평가를 나타낸 도이다.
도 8은 본 발명의 실시예에 따른 다양한 CWL 조건에서의 성능 평가를 나타낸 도이다.
도 9는 본 발명의 실시예에 따른 메모리 사용량을 나타낸 도이다.
도 10은 본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 방법을 나타낸 흐름도이다.
도 11은 본 발명의 실시예에 따른 브랜치 메트릭의 예를 나타낸 도이다.
도 12는 본 발명의 실시예에 따른 유클리드 거리가 최소가 되는 브랜치를 선택하는 예를 나타낸 도이다.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
도 1은 본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 장치(10)의 구성을 나타낸 블록도이다.
도 1에 도시한 바와 같이, 조인트 비터비 검출 및 복호 장치(10)는 위상차 검출부(100) 및 비터비 디코더(200)로 구성된다. 도 1에 도시된 조인트 비터비 검출 및 복호 장치(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 조인트 비터비 검출 및 복호 장치(10)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 조인트 비터비 검출 및 복호 장치(10)가 구현될 수도 있다.
상기 위상차 검출부(differential phase detector)(100)는 수신부(미도시)를 통해 연속으로 수신된 두 신호의 위상 차이(또는 위상차)를 산출(또는 생성)한다.
즉, 도 2에 도시된 바와 같이, 상기 수신부는 GMSK 모듈레이터를 통해 방사된 신호(x(t))가 표적에 반사되어 잡음 신호(n(t))와 결합된 수신 신호(r(t))를 수신한다.
이때, 시간 인덱스 t에서 전송된 GMSK 신호인 상기 x(t)는 복소수 형태로 다음의 [수학식 1]과 같이 나타낸다.
Figure 112019097066530-pat00001
여기서, 상기
Figure 112019097066530-pat00002
는 코드워드(codeword)를 나타내고, 상기
Figure 112019097066530-pat00003
는 코드 레이트(code rate) 1/2인 콘볼루셔널 인코더(convolutional encoder)의 i번째 경로(i={0,1})에서의 j번째 코드 비트(coded bit)를 나타내고, 상기
Figure 112019097066530-pat00004
는 GMSK 신호의 위상(phase)으로 다음의 [수학식 2]와 같이 나타낸다.
Figure 112019097066530-pat00005
여기서, 상기 q(t)는 GMSK의 펄스-세이핑(pulse-shaping) 함수로, 다음의 [수학식 3]과 같이 나타낸다.
Figure 112019097066530-pat00006
여기서, 상기 g(t)는 GMSK의 주파수 펄스로, 다음의 [수학식 4]와 같이 나타낸다.
Figure 112019097066530-pat00007
여기서, 상기 Q(t)는 가우시안 Q 함수(Gaussian Q-function)를 나타내고, 상기 BT는 3dB bandwidth-time product를 나타낸다.
또한, 상기 수신 신호(r(t))는 다음의 [수학식 5]로 나타낸다.
Figure 112019097066530-pat00008
여기서, 상기 n(t)는 부가 백색 가우스 잡음(Additive White Gaussian Noise: AWGN)을 나타낸다.
또한, 상기 위상차 검출부(100)는 상기 수신되는 수신 신호(r(t))에 대해서 연속으로 수신되는 두 신호의 위상 차이(
Figure 112019097066530-pat00009
)를 다음의 [수학식 6]에 의해 산출한다.
Figure 112019097066530-pat00010
여기서, 상기 arg(·)는 두 복소 신호(또는 복합 신호, complex signal)의 위상 차이를 나타내며, 노이즈가 없을 때의 상기 두 신호의 위상 차이(
Figure 112019097066530-pat00011
)를
Figure 112019097066530-pat00012
로 표기(또는 정의)하며, 도 3은 상기
Figure 112019097066530-pat00013
의 궤적 다이어그램(trajectory diagram)을 나타낸다.
상기 GMSK가 ISI를 발생시키므로, 코드워드 하나에 서로 다른 4가지의 위상 차이가 존재할 수 있다.
도 4는 코드워드 '00'에 대하여 서로 다른 4가지 타입의
Figure 112019097066530-pat00014
을 나타낸다.
ISI가 없는 경우에서는 상기 도 4의 a 하나의 형태만 존재한다.
그러나 ISI가 발생하는 환경에서는 이전 심벌의 영향을 받게되므로 이전 코드워드가 어떤 모습인가에 따라서 현재의 코드워드 모양이 달라진다.
또한, 상기 도 4의 b의 경우, 시작 위상이 '1' 근처에서 시작하기 때문에 이전의 코드워드는 '1'로 끝이나는 '01' 또는 '11'로 유추를 할 수 있다.
또한, 콘볼루셔널 코딩이된 GMSK 신호에 대한 검출(detection)과 디코딩(decoding)을 동시에 하기 위해서는 ISI 정보와 코드 정보가 모두 필요하며, 상기 도 4에 나타나는 4가지 타입의 위상 차이 시퀀스(phase difference sequence)는 ISI 정보를 포함하고 있기 때문에 이를 이용해서 검출과 디코딩을 동시에 수행할 수 있다.
또한, 상기 위상차 검출부(100)는 두 심벌동안 상기 산출된(또는 생성된) 연속으로 수신된 두 신호의 위상 차이를 임시 저장한(또는 버퍼링한) 후, 임시 저장한 상기 산출된 연속으로 수신된 두 신호의 위상 차이를 비터비 디코더(200)로 전달(또는 제공)한다.
도 5에 도시한 바와 같이, 비터비 디코더(200)는 SMU(210), TBU(220), BMU(230) 및 ACSU(240)로 구성된다. 도 5에 도시된 비터비 디코더(200)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 5에 도시된 구성 요소보다 많은 구성 요소에 의해 비터비 디코더(200)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 비터비 디코더(200)가 구현될 수도 있다.
상기 SMU(State Management Unit)(210)는 이전 스테이지에서 계산된 SPI(Survivor Path Index)를 제공받기(또는 확인하기) 위해서 SPI를 참조할 상태(state)를 확인한다. 여기서, 상기 SPI는 해당 스테이지에서 어느 브랜치(branch)가 선택되었는지를 나타내는 정보이다.
즉, 상기 SMU(210)는 현재 스테이지(예를 들어 n-th stage)에서 상태 SX(X: 0 ~ 7)의 SPI를 결정하기 위해서 이전 스테이지(예를 들어 n-1th stage)에서 계산된 2개의 SPI 값을 확인해야 하며, 상기 이전 스테이지에서 계산된 SPI를 제공받기 위해서 SPI를 참조할 상태를 상기 TBU(220)에 제공한다(또는 알려준다/전달한다).
또한, 상기 SMU(210)는 앞서 제공된 상기 이전 스테이지에서 계산된 SPI를 제공받기 위해서 SPI를 참조할 상태에 응답하여 상기 TBU(220)로부터 전달되는 상기 이전 스테이지에서의 SPI 값을 수신한다.
또한, 상기 SMU(210)는 상기 이전 스테이지에서의 SPI 값을 근거로 현재 스테이지에서 필요한 SPI의 인덱스(index)를 생성한다.
즉, 상기 SMU(210)는 상기 TBU(220)로부터 전달되는 해당 상태와 관련한 이전 스테이지에서의 SPI 값을 근거로 현재 스테이지에서 필요한 SPI의 인덱스(또는 해당 상태와 관련한 현재 스테이지에서 필요한 SPI의 인덱스)를 생성한다. 여기서, 상기 SPI의 인덱스(또는 새로운 인덱스)는 상태 천이와 SPI 값을 가지고 브랜치 메트릭 계산을 수행할 때 적용되는 변수(
Figure 112019097066530-pat00015
)를 찾기 위해 사용되며, 상기 비터비 디코더(200)에 포함된 BMU(230)에서 브랜치 메트릭을 계산하기 위해 사용되는 변수(
Figure 112019097066530-pat00016
)가 저장된 주소(address)를 나타낸다.
또한, 상기 SMU(210)는 상기 생성된 현재 스테이지에서 필요한 SPI의 인덱스를 상기 BMU(230)에 전달(또는 제공)한다.
상기 TBU(Trace Back Unit)(220)는 상기 SMU(210)로부터 전달되는 SPI를 참조할 상태를 수신한다.
또한, 상기 TBU(220)는 상기 상태를 기준으로 이전 스테이지에서의 SPI 값을 확인한다.
즉, 상기 TBU(220)는 상기 SMU(210)로부터 제공받은 상태를 기준으로 상기 이전 스테이지에서의 SPI 값(또는 해당 상태와 관련한 이전 스테이지에서의 SPI 값)을 확인한다.
또한, 상기 TBU(220)는 상기 확인된 해당 상태와 관련한 이전 스테이지에서의 SPI 값을 상기 SMU(210)에 전달(또는 제공)한다.
또한, 상기 TBU(220)는 상기 ACSU(240)로부터 전달되는 현재 스테이지에서의 SPI 값(또는 상태와 관련한 현재 스테이지에서의 SPI 값)을 수신한다.
또한, 상기 TBU(220)는 상기 수신된 현재 스테이지에서의 SPI 값을 저장한다.
상기 BMU(Branch Metric Unit)(230)는 다음의 [표 1]에 나타낸 미리 설정된(또는 저장된) BMU 시퀀스 테이블을 저장(또는 관리)한다.
address BM value
0
Figure 112019097066530-pat00017
1
Figure 112019097066530-pat00018
2
Figure 112019097066530-pat00019
3
Figure 112019097066530-pat00020
4
Figure 112019097066530-pat00021
5
Figure 112019097066530-pat00022
6
Figure 112019097066530-pat00023
7
Figure 112019097066530-pat00024
또한, 상기 BMU(230)는 상기 [표 1]에 나타낸 미리 설정된(또는 저장된) BMU 시퀀스 테이블을 근거로 현재 스테이지에서의 SPI의 인덱스(또는 SPI의 주소)에 대응하는 BM값을 참조해서(또는 이용해서) 브랜치 메트릭을 계산(또는 산출)한다.
즉, 상기 BMU(230)는 상기 BMU 시퀀스 테이블 중에서 상기 SMU(210)로부터 전달되는 현재 스테이지에서 필요한 SPI의 인덱스에 대응하는 BM값을 참조해서 다음의 [수학식 7] 내지 [수학식 10]에 해당하는 BM00, BM10, BM01 및 BM11을 각각 계산한다. 여기서, 상기 BM값은 코드워드(예를 들어 00)에 대해 서로 다른 4가지 타입의 노이즈가 없는 연속으로 수신된 두 신호의 위상 차이일 수 있다.
Figure 112019097066530-pat00025
Figure 112019097066530-pat00026
Figure 112019097066530-pat00027
Figure 112019097066530-pat00028
또한, 상기 BMU(230)는 상기 계산된 현재 스테이지에서의 브랜치 메트릭(또는 해당 상태와 관련한 현재 스테이지에서의 브랜치 메트릭)(예를 들어 BM00, BM10, BM01 및 BM11)을 상기 ACSU(240)로 전달(또는 제공)한다.
상기 ACSU(Add Compare and Select Unit)(240)는 상기 위상차 검출부(100)로부터 전달되는 연속으로 수신된 두 신호의 위상 차이를 저장(또는 관리)한다.
또한, 상기 ACSU(240)는 상기 계산된 현재 스테이지에서의 브랜치 메트릭을 근거로 유클리드 거리(Euclidean distance)가 최소가 되는 브랜치(또는 해당 상태와 관련한 유클리드 거리가 최소가 되는 브랜치)를 선택(또는 결정)한다.
즉, 상기 ACSU(240)는 상기 BMU(230)에서 계산된 현재 스테이지에서의 복수의 브랜치 메트릭 중에서 유클리드 거리가 최소가 되는 브랜치를 선택한다. 이때, 상기 ACSU(240)는 상부 브랜치 및 하부 브랜치 중에서 상부(upper)(또는 상부 브랜치)가 선택되면 현재 스테이지에서의 SPI를 '0'으로 설정하고, 상기 상부 브랜치 및 하부 브랜치 중에서 하부(lower)(또는 하부 브랜치)가 선택되면 현재 스테이지에서의 SPI를 '1'로 설정한다.
상기 브랜치 메트릭을 계산할 때 가장 간단한 방법은 모든 경우에 대해서 유클리드 거리를 계산한 후, 가장 작은 유클리드 거리를 해당 브랜치 메트릭으로 선택하는 것이다.
하지만, 모든 경우(case)에 대해서 유클리드 거리를 계산하는 것은 복잡도를 증가시키는 단점이 있다.
따라서, 본 발명의 실시예에 따른 상기 비터비 디코더(200)에서는 이전에 수신된 코드워드로부터 현재 수신된 코드워드의 위상 차이 시퀀스(phase difference sequence)를 추정하여, 단 한 번의 유클리드 거리 계산으로 브랜치 메트릭을 계산한다.
이에 따라, 상기 비터비 디코더(200)는 도 4에 도시된 4가지 타입을 모두 사용하지 않고 2가지 타입 즉, k={0, 1}만을 가지고 유클리드 거리 연산을 수행한다.
이는 k={0, 1}의 시작 위상과 모양이 k={2, 3}과 매우 유사하고, k={0, 1}만을 사용해서 성능 저하가 발생하지 않기 때문이다.
이와 같이, 이전에 수신된 코드워드는 현재 수신된 코드워드
Figure 112019097066530-pat00029
의 초기 위상 시작점과 위상 전체 모양에 영향을 주게 된다. 이에 따라, 비터비 알고리즘에서 생존 경로(survivor path)를 추적(trace)함으로써, 이전 코드워드를 유추할 수 있기 때문에, 가장 작은 유클리드 거리를 나타내는
Figure 112019097066530-pat00030
를 찾을 수 있으며, 이렇게 함으로써 단 한 번의 유클리드 거리 계산으로 브랜치 메트릭을 계산할 수 있다.
도 6은 n번째 스테이지(stage)에서 상태 S0에 대한 이전의 코드워드를 찾는 과정을 나타낸다.
먼저, n-1번째 상태의 연산 결과를 참조하여, 브랜치 메트릭 계산에 필요한 정보를 가져온다. 이때, 상기 SMU(210)에는 n-1번째 스테이지에서 ACS(Add Compare Select 연산) 과정을 통해서 생존 경로가 결정된 정보가 저장된 상태이다. 여기에 저장된 정보는 어느 브랜치(branch)가 선택되었는지를 나타내는 SPI이다.
또한, 상기 도 6에 도시된 바와 같이, n-1번째 스테이지 S0는 n-2번째 상태 S0 또는 상태 S1 둘 중의 하나를 선택한다. SPI=0인 경우에는 상부 브랜치(upper branch)가 선택된 것이고, SPI=1인 경우에는 하부 브랜치(lower branch)가 선택된 것이다.
또한, 상기 도 6의 경우, n번째 상태 S0에서는 S0→S0→S0 경로와 S3→S1→S0 경로의 두 가지를 비교한다. n-1번째의 SPI를 확인한 후 이것을 그대로 인덱스 k로 사용하여 브랜치 메트릭 계산에 사용되는
Figure 112019097066530-pat00031
에 바로 적용하게 되면 한 번의 연산으로 유클리드 거리 계산을 할 수 있다.
또한, 유사한 방식으로 BM11도 연산할 수 있다.
또한, 상기 ACSU(240)는 상기 선택된(또는 결정된/설정된) SPI 값을 저장하기 위해서, 상기 선택된 해당 상태와 관련한 유클리드 거리가 최소가 되는 브랜치에 대응하는 현재 스테이지에서의 SPI 값(또는 상태와 관련한 현재 스테이지에서의 SPI 값)을 상기 TBU(220)에 전달(또는 제공)한다.
또한, 상기 비터비 디코더(200)는 앞선 SPI를 참조할 상태를 확인하는 과정, 상기 상태를 기준으로 이전 스테이지에서의 SPI 값을 확인하는 과정, 상기 이전 스테이지에서의 SPI 값을 근거로 현재 스테이지에서 필요한 SPI의 인덱스를 생성하는 과정, 상기 미리 설정된 BMU 시퀀스 테이블을 근거로 현재 스테이지에서의 SPI의 인덱스에 대응하는 BM값을 참조해서 브랜치 메트릭을 계산하는 과정, 상기 계산된 현재 스테이지에서의 브랜치 메트릭을 근거로 유클리드 거리가 최소가 되는 브랜치를 선택하는 과정 및 상기 선택된 SPI 값을 저장하는 과정을 현재 스테이지에서 남은 상태(예를 들어 전체 S0 ~ S7 중에서 남은 S1 ~ S7)에 대해서 반복 수행한다.
이와 같이, 채널 정보가 있으면 인코딩된 신호의 코드워드를 찾아내는 검출 과정을 수행하고, 찾아진 코드워드를 이용해서 전송된 메시지를 복원하는 디코딩 과정을 수행할 수 있다.
특히, ISI 채널은 비터비 알고리즘으로 복원 가능한 격자(trellis) 구조로 표현할 수 있다.
또한, 송신단의 인코더가 콘볼루셔널 코드 또는 LDPC(Low-Density Parity-Check)와 같은 블록 코드(block code)를 사용한다면, 이들의 관계는 격자 구조로 표현이 가능하므로, 상기 조인트 비터비 검출 및 복호 장치(10)는 비터비 알고리즘을 이용하여 복원할 수 있다.
이와 같이, 본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 장치(10)는 ISI 정보를 브랜치 메트릭 계산에 반영함으로써, 기존의 비터비 알고리즘과 같이 각각의 상태에서 하나의 생존 경로만 남도록 구성하여, 낮은 복잡도로 구현하며, 캐리어 복원없이 이전에 수신된 심벌을 이용하여 수신된 비트를 추정하는 넌-코히어런트(non-coherent) 방식을 사용할 수 있다.
또한, 이와 같이, 비터비 디코더 포워드(Viterbi decoder forward) 과정에서 디코딩된 결과를 상기 SMU(210)에 저장하게 되고, 이로 인해서 상기 SMU(210)는 생존 경로 정보를 갖는다.
또한, 상기 조인트 비터비 검출 및 복호 장치(10)는 상기 비터비 디코더 포워드 연산이 끝나면, 상기 SMU(210)에 저장된 생존 경로 정보를 이용하여 역추적(trace back)을 하면서 이전에 수신된 신호를 유추한다.
또한, 상기 조인트 비터비 검출 및 복호 장치(10)는 유추된 신호는 브랜치 메트릭을 선택하는 인덱스로 사용된다.
이미 상기 SMU(210)에 저장된 정보를 이용하여 현재 브랜치 메트릭을 계산하고자 할 때, 상기 조인트 비터비 검출 및 복호 장치(10)는 가장 적합한 위상 궤적(phase trajectory)이 어떤 것인지를 유추해서 한 번의 유클리드 거리 연산만으로 브랜치 메트릭 값을 구할 수 있다.
또한, 상기 조인트 비터비 검출 및 복호 장치(10)는 상기 인덱스가 구해지면, 해당 인덱스 값을 상기 BMU(230)에 전달하여 미리 계산된 브랜치 메트릭 시퀀스 테이블에서 계산하고자 하는 위상 궤적을 선택하여 계산을 진행한다. 여기서, 상기 브랜치 메트릭 시퀀스 테이블은 모든 경우에 대한 브랜치 메트릭을 미리 가지고 있다.
본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 장치(10)는 Rate 1/2, 8 state인 콘볼루셔녈 코드(convolutional code)를 사용하였다.
또한, 스테이지마다 8개의 상태(state)가 존재하고, n-1th 스테이지 상태에서 n-th 스테이지 상태로 천이될 때는, 비율(rate)이 1/2이므로 2개의 비트(bit)가 사용된다. 만약 비율이 1/r이고 상태가 K개이면 스테이지마다 k개의 상태가 존재하고, n-1th stage state에서 n-th stage state로 천이될 때의 코드워드 비트수는 r개가 된다.
본 발명의 실시예에서는 BLE를 가정하고 설명하지만, 이에 한정되는 것은 아니며, r과 K의 변수로 표현할 수 있다.
본 발명의 실시예에 따른 예시에서 다항식(polynomial)은 다음과 같은 2개의 다항식을 사용하고, 넌-코히어런트 방식을 적용하여 MSN(maximum number of survivor path)와 CWL(code word length)을 변화시켜가면서 시뮬레이션을 통해 성능 비교를 수행하였다.
Figure 112019097066530-pat00032
Figure 112019097066530-pat00033
도 7에 도시된 바와 같이, 종래 기술인 Joint detection, demodulation and decoding(JDDD)는 2개의 비터비 프로세서를 사용하는 성능과 동일한 결과를 내기 위해서 MNS가 8보다 커야함을 확인할 수 있다.
그러나 본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 장치(10)는 하나의 생존 경로만을 이용해서 메모리 사이즈가 감소함에도 최적을 성능을 낼 수 있다.
도 8은 다양한 CWL 조건에서의 성능 평가를 나타낸다.
상기 도 8에 도시된 바와 같이, CWL이 512보다 큰 경우에 본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 장치(10)와 동일한 성능을 낼 수 있음을 확인할 수 있다.
도 9는 사용된 메모리 사용량을 나타낸다.
상기 도 9에 도시된 바와 같이, 상기 종래 기술인 JDDD에서 사용된 메모리 크기는 MNS-CWL로 나타내고, 본 발명의 실시예에 따른 메모리 크기는 NSNTB로 나타낸다. 여기서, 상기 NS는 인코더 격자(encoder trellis)의 상태 개수를 나타내고, 상기 NTB는 트레이스백 깊이(traceback depth)를 나타내며, 각각 8과 28을 사용하였다.
또한, 상기 도 9에 도시된 바와 같이, 본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 장치(10)는 메모리 사이즈가 CWL에 무관하게 244 비트로 고정되지만, 상기 종래 기술인 JDDD에서의 메모리 사이즈는 MNS와 CWL에 비례해서 증가함을 확인할 수 있다.
이와 같이, GMSK에 의해서 유발된 심벌 간의 간섭 정보가 반영된 브랜치 메트릭을 사용하여 하나의 비터비 디코더만을 통해 검출과 디코딩을 수행할 수 있다.
이하에서는, 본 발명에 따른 조인트 비터비 검출 및 복호 방법을 도 1 내지 도 12를 참조하여 상세히 설명한다.
도 10은 본 발명의 실시예에 따른 조인트 비터비 검출 및 복호 방법을 나타낸 흐름도이다.
먼저, 위상차 검출부(100)는 수신부(미도시)를 통해 연속으로 수신된 두 신호의 위상 차이(또는 위상차)를 산출(또는 생성)한다.
즉, 상기 수신부는 GMSK 모듈레이터를 통해 방사된 신호(x(t))가 표적에 반사되어 잡음 신호(n(t))와 결합된 수신 신호(r(t))를 수신한다.
또한, 상기 위상차 검출부(100)는 상기 수신되는 수신 신호(r(t))에 대해서 연속으로 수신되는 두 신호의 위상 차이(
Figure 112019097066530-pat00034
)를 앞선 [수학식 6]에 의해 산출한다.
또한, 상기 위상차 검출부(100)는 두 심벌동안 상기 산출된(또는 생성된) 연속으로 수신된 두 신호의 위상 차이를 임시 저장한(또는 버퍼링한) 후, 임시 저장한 상기 산출된 연속으로 수신된 두 신호의 위상 차이를 비터비 디코더(200)로 전달(또는 제공)한다.
일 예로, 상기 위상차 검출부(100)는 상기 수신부를 통해 연속으로 수신되는 제 1 수신 신호 및 제 2 수신 신호의 위상 차이인 제 1 위상차를 산출한다.
또한, 상기 위상차 검출부(100)는 상기 산출된 제 1 위상차를 상기 비터비 디코더(200)에 포함된 ACSU(240)로 전달한다(S1010).
이후, 상기 비터비 디코더(200)는 이전 스테이지에서 계산된 SPI(Survivor Path Index)를 제공받기(또는 확인하기) 위해서 SPI를 참조할 상태(state)를 확인한다. 여기서, 상기 SPI는 해당 스테이지에서 어느 브랜치(branch)가 선택되었는지를 나타내는 정보이다.
즉, 상기 비터비 디코더(200)에 포함된 SMU(State Management Unit)(210)는 현재 스테이지(예를 들어 n-th stage)에서 상태 SX(X: 0 ~ 7)의 SPI를 결정하기 위해서 이전 스테이지(예를 들어 n-1th stage)에서 계산된 2개의 SPI 값을 확인해야 하며, 상기 이전 스테이지에서 계산된 SPI를 제공받기 위해서 SPI를 참조할 상태를 상기 비터비 디코더(200)에 포함된 TBU(Trace Back Unit)(220)에 제공한다(또는 알려준다/전달한다).
일 예로, 상기 SMU(210)는 제 11 스테이지에서 제 1 상태(예를 들어 S0)의 SPI를 결정하기 위해서, 앞선 스테이지인 제 10 스테이지에서 계산된 2개의 SPI 값을 확인하도록 상기 제 1 상태(예를 들어 S0)를 상기 TBU(220)에 제공한다(S1020).
이후, 상기 비터비 디코더(200)는 상기 상태를 기준으로 이전 스테이지에서의 SPI 값을 확인한다.
즉, 상기 TBU(220)는 상기 SMU(210)로부터 제공받은 상태를 기준으로 상기 이전 스테이지에서의 SPI 값(또는 해당 상태와 관련한 이전 스테이지에서의 SPI 값)을 확인한다.
또한, 상기 TBU(220)는 상기 확인된 해당 상태와 관련한 이전 스테이지에서의 SPI 값을 상기 SMU(210)에 전달(또는 제공)한다.
일 예로, 상기 TBU(220)는 상기 SMU(210)로부터 제공되는 제 1 상태(예를 들어 S0)를 수신한다.
또한, 도 11에 도시된 바와 같이, 상기 TBU(220)는 미리 저장된 브랜치 메트릭 중에서 상기 제 1 상태(예를 들어 S0)를 기준으로 이전 스테이지인 제 10 스테이지에서의 SPI 값(예를 들어 S0 및 S1)을 확인하고, 상기 확인된 제 10 스테이지에서의 SPI 값(예를 들어 S0 및 S1)을 상기 SMU(210)에 전달한다(S1030).
이후, 상기 비터비 디코더(200)는 상기 이전 스테이지에서의 SPI 값을 근거로 현재 스테이지에서 필요한 SPI의 인덱스(index)를 생성한다.
즉, 상기 SMU(210)는 상기 TBU(220)로부터 전달되는 해당 상태와 관련한 이전 스테이지에서의 SPI 값을 근거로 현재 스테이지에서 필요한 SPI의 인덱스(또는 해당 상태와 관련한 현재 스테이지에서 필요한 SPI의 인덱스)를 생성한다. 여기서, 상기 SPI의 인덱스(또는 새로운 인덱스)는 상태 천이와 SPI 값을 가지고 브랜치 메트릭 계산을 수행할 때 적용되는 변수(
Figure 112019097066530-pat00035
)를 찾기 위해 사용되며, 상기 비터비 디코더(200)에 포함된 BMU(230)에서 브랜치 메트릭을 계산하기 위해 사용되는 변수(
Figure 112019097066530-pat00036
)가 저장된 주소(address)를 나타낸다.
또한, 상기 SMU(210)는 상기 생성된 현재 스테이지에서 필요한 SPI의 인덱스를 상기 BMU(230)에 전달(또는 제공)한다.
일 예로, 상기 SMU(210)는 상기 TBU(220)로부터 전달되는 상기 제 10 스테이지에서의 SPI 값(예를 들어 S0 및 S1)을 근거로 현재 스테이지인 제 11 스테이지에서의 SPI의 인덱스를 생성한다.
또한, 상기 SMU(210)는 상기 생성된 제 11 스테이지에서의 SPI의 인덱스를 상기 BMU(230)에 전달한다(S1040).
이후, 상기 비터비 디코더(200)는 앞선 [표 1]에 나타낸 미리 설정된(또는 저장된) BMU 시퀀스 테이블을 근거로 현재 스테이지에서의 SPI의 인덱스(또는 SPI의 주소)에 대응하는 BM값을 참조해서(또는 이용해서) 브랜치 메트릭을 계산(또는 산출)한다.
즉, 상기 BMU(230)는 상기 BMU 시퀀스 테이블 중에서 상기 SMU(210)로부터 전달되는 현재 스테이지에서 필요한 SPI의 인덱스에 대응하는 BM값을 참조해서 앞선 [수학식 7] 내지 [수학식 10]에 해당하는 BM00, BM10, BM01 및 BM11을 각각 계산한다. 여기서, 상기 BM값은 코드워드(예를 들어 00)에 대해 서로 다른 4가지 타입의 노이즈가 없는 연속으로 수신된 두 신호의 위상 차이일 수 있다.
또한, 상기 BMU(230)는 상기 계산된 현재 스테이지에서의 브랜치 메트릭(또는 해당 상태와 관련한 현재 스테이지에서의 브랜치 메트릭)(예를 들어 BM00, BM10, BM01 및 BM11)을 상기 ACSU(240)로 전달(또는 제공)한다.
일 예로, 상기 BMU(230)는 상기 BMU 시퀀스 테이블 중에서 상기 SMU(210)로부터 전달되는 제 11 스테이지에서의 SPI의 인덱스에 대응하는 BM값을 참조해서 앞선 [수학식 7] 내지 [수학식 10]에 해당하는 제 1 BM00, 제 1 BM10, 제 1 BM01 및 제 1 BM11을 각각 계산하고, 상기 계산된 제 1 BM00, 제 1 BM10, 제 1 BM01 및 제 1 BM11을 상기 ACSU(240)로 전달한다(S1050).
이후, 상기 비터비 디코더(200)는 상기 계산된 현재 스테이지에서의 브랜치 메트릭을 근거로 유클리드 거리가 최소가 되는 브랜치(또는 해당 상태와 관련한 유클리드 거리가 최소가 되는 브랜치)를 선택(또는 결정)한다.
즉, 상기 ACSU(240)는 상기 BMU(230)에서 계산된 현재 스테이지에서의 복수의 브랜치 메트릭 중에서 유클리드 거리가 최소가 되는 브랜치를 선택한다. 이때, 상기 ACSU(240)는 상부 브랜치 및 하부 브랜치 중에서 상부(upper)(또는 상부 브랜치)가 선택되면 현재 스테이지에서의 SPI를 '0'으로 설정하고, 상기 상부 브랜치 및 하부 브랜치 중에서 하부(lower)(또는 하부 브랜치)가 선택되면 현재 스테이지에서의 SPI를 '1'로 설정한다.
일 예로, 도 12에 도시된 바와 같이, 상기 ACSU(240)는 상기 BMU(230)에서 계산된 현재 스테이지에서의 제 1 BM00 및 제 1 BM11 중에서 유클리드 거리가 최소가 되는 브랜치(예를 들어 S0에 대해 SPI=1)를 선택하고, 상기 선택된 브랜치에 따라 현재 스테이지에서의 상태 S0에 대해 SPI를 '1'로 설정한다(S1060).
이후, 상기 비터비 디코더(200)는 상기 선택된(또는 결정된/설정된) SPI 값을 저장한다.
즉, 상기 ACSU(240)는 상기 선택된 해당 상태와 관련한 유클리드 거리가 최소가 되는 브랜치에 대응하는 현재 스테이지에서의 SPI 값(또는 해당 상태와 관련한 현재 스테이지에서의 SPI 값)을 상기 TBU(220)에 전달(또는 제공)한다.
또한, 상기 TBU(220)는 상기 ACSU(240)로부터 전달되는 현재 스테이지에서의 SPI 값을 저장한다.
일 예로, 상기 ACSU(240)는 상기 선택된 현재 스테이지에서의 SPI 값(예를 들어 S0에 대해 SPI=1)을 상기 TBU(220)에 전달한다.
또한, 상기 TBU(220)는 상기 ACSU(240)로부터 전달되는 현재 스테이지에서의 SPI 값(예를 들어 S0에 대해 SPI=1)을 저장한다(S1070).
이후, 상기 비터비 디코더(200)는 앞선 SPI를 참조할 상태를 확인하는 과정, 상기 상태를 기준으로 이전 스테이지에서의 SPI 값을 확인하는 과정, 상기 이전 스테이지에서의 SPI 값을 근거로 현재 스테이지에서 필요한 SPI의 인덱스를 생성하는 과정, 상기 미리 설정된 BMU 시퀀스 테이블을 근거로 현재 스테이지에서의 SPI의 인덱스에 대응하는 BM값을 참조해서 브랜치 메트릭을 계산하는 과정, 상기 계산된 현재 스테이지에서의 브랜치 메트릭을 근거로 유클리드 거리가 최소가 되는 브랜치를 선택하는 과정 및 상기 선택된 SPI 값을 저장하는 과정(예를 들어 S1020 단계 내지 S1070 단계)을 현재 스테이지에서 남은 상태(예를 들어 전체 S0 ~ S7 중에서 남은 S1 ~ S7)에 대해서 반복 수행한다.
일 예로, 상기 비터비 디코더(200)는 S1, S2, S3, S4, S5, S6 및 S7에 대해서 앞선 S1020 단계 내지 S1070 단계를 반복 수행하여, 현재 스테이지에서의 SPI 값(예를 들어 S1에 대한 SPI 값, S2에 대한 SPI 값, S3에 대한 SPI 값, S4에 대한 SPI 값, S5에 대한 SPI값, S6에 대한 SPI 값 및 S7에 대한 SPI 값)을 각각 선택(또는 결정)하여, 상기 TBU(220)에 저장한다(S1080).
본 발명의 실시예는 앞서 설명된 바와 같이, GMSK에 의해서 유발된 심벌 간의 간섭 정보가 반영된 브랜치 메트릭을 사용하여 하나의 비터비 디코더만을 통해 검출과 디코딩을 수행하여, 2개의 비터비 디코더를 사용하여 검출과 디코딩을 수행하는 방식 대비 성능 저하가 없으면서도 복잡도를 줄일 수 있다.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 조인트 비터비 검출 및 복호 장치 100: 위상차 검출부
200: 비터비 디코더 210: SMU
220: TBU 230: BMU
240: ACSU

Claims (22)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 연속으로 수신된 두 신호의 위상 차이를 산출하는 위상차 검출부;
    SMU(State Management Unit)로부터 제공받은 상태를 기준으로 상기 상태와 관련한 이전 스테이지에서의 SPI 값을 확인하는 TBU(Trace Back Unit);
    상기 이전 스테이지에서 계산된 SPI(Survivor Path Index) 값을 제공받기 위해서 SPI 값을 참조할 상태를 상기 TBU에 제공하고, 상기 TBU에 의해 확인된 상기 상태와 관련한 이전 스테이지에서의 SPI 값을 근거로 상기 상태와 관련한 현재 스테이지에서 필요한 SPI값을 생성하는 SMU(State Management Unit);
    미리 설정된 복수의 주소 및 BM값을 포함하는 BMU 시퀀스 테이블에서 상기 SMU에서 생성된 상기 상태와 관련한 현재 스테이지에서 필요한 SPI 값에 대응하는 BM(Branch Metric)값을 참조해서 현재 스테이지의 브랜치 메트릭을 계산하는 BMU(Branch Metric Unit); 및
    상기 위상차 검출부로부터 상기 위상 차이를 수신하여 저장함으로써, 상기 BMU가 브랜치 메트릭을 계산하는데 변수로 이용하도록 하고, 상기 계산된 현재 스테이지에서의 복수의 브랜치 메트릭 중에서 유클리드 거리가 최소가 되는 브랜치를 선택하고, 상기 선택된 유클리드 거리가 최소가 되는 브랜치에 따라 현재 스테이지에서의 SPI 값을 설정하는 ACSU(Add Compare and Select Unit)
    를 포함하는 조인트 비터비 검출 및 복호 장치.
  13. 제 12 항에 있어서,
    상기 ACSU는,
    상부 브랜치 및 하부 브랜치 중에서 상부 브랜치가 선택될 때, 현재 스테이지에서의 SPI 값을 미리 설정된 제 1 값으로 설정하는 것을 특징으로 하는 조인트 비터비 검출 및 복호 장치.
  14. 제 12 항에 있어서,
    상기 ACSU는,
    상부 브랜치 및 하부 브랜치 중에서 하부 브랜치가 선택될 때, 현재 스테이지에서의 SPI 값을 미리 설정된 제 2 값으로 설정하는 것을 특징으로 하는 조인트 비터비 검출 및 복호 장치.
  15. 제 12 항에 있어서,
    상기 TBU는,
    상기 ACSU에 의해 설정된 상기 상태와 관련한 현재 스테이지에서의 SPI 값을 저장하는 것을 특징으로 하는 조인트 비터비 검출 및 복호 장치.
  16. 제 12 항에 있어서,
    상기 상태와 관련한 현재 스테이지에서 필요한 SPI 값은,
    상기 BMU에서 브랜치 메트릭을 계산하기 위해 사용되는 변수가 저장된 주소를 나타내는 것을 특징으로 하는 조인트 비터비 검출 및 복호 장치.
  17. 제 12 항에 있어서,
    상기 BM값은,
    인코딩된 신호의 코드워드에 대해 서로 다른 4가지 타입의 노이즈가 없는 연속으로 수신된 두 신호의 위상 차이인 것을 특징으로 하는 조인트 비터비 검출 및 복호 장치.
  18. 제 12 항에 있어서,
    상기 조인트 비터비 검출 및 복호 장치는,
    현재 스테이지에서의 전체 상태에 대해서 상기 SPI 값을 참조할 상태를 확인하고, 이전 스테이지에서의 SPI 값을 확인하고, 현재 스테이지에서 필요한 SPI 값을 생성하고, 상기 브랜치 메트릭을 계산하고, 상기 유클리드 거리가 최소가 되는 브랜치를 선택하고, 현재 스테이지에서의 SPI 값을 설정하고, 설정된 현재 스테이지에서의 SPI 값의 저장을 반복 수행하여 각 상태별로 현재 스테이지에서의 SPI 값을 저장하는 것을 특징으로 하는 조인트 비터비 검출 및 복호 장치.
  19. ACSU(Add Compare and Select Unit)에 의해, 위상차 검출부로부터 연속으로 수신된 두 신호의 위상 차이를 수신하여 저장하는 단계;
    SMU(State Management Unit)에 의해, 이전 스테이지에서 계산된 SPI(Survivor Path Index) 값을 제공받기 위해서 SPI 값을 참조할 상태를 TBU(Trace Back Unit)에 제공하는 단계;
    상기 TBU에 의해, 상기 SMU로부터 제공받은 상태를 기준으로 상기 상태와 관련한 이전 스테이지에서의 SPI 값을 확인하는 단계;
    상기 SMU에 의해, 상기 TBU에 확인된 상기 상태와 관련한 이전 스테이지에서의 SPI 값을 근거로 상기 상태와 관련한 현재 스테이지에서 필요한 SPI 값을 생성하는 단계;
    BMU에 의해, 미리 설정된 복수의 주소 및 BM(Branch Metric)값을 포함하는 BMU 시퀀스 테이블에서 상기 SMU에서 생성된 상기 상태와 관련한 현재 스테이지에서 필요한 SPI 값에 대응하는 BM값을 참조 및 상기 ACSU에 저장된 위상 차이를 변수로 이용해서 브랜치 메트릭을 계산하는 단계;
    ACSU에 의해, 상기 계산된 현재 스테이지에서의 복수의 브랜치 메트릭 중에서 유클리드 거리가 최소가 되는 브랜치를 선택하는 단계;
    상기 ACSU에 의해, 상부 브랜치 및 하부 브랜치 중에서 상부 브랜치가 선택될 때, 현재 스테이지에서의 SPI 값을 미리 설정된 제 1 값으로 설정하는 단계;
    상기 ACSU에 의해, 상부 브랜치 및 하부 브랜치 중에서 하부 브랜치가 선택될 때, 현재 스테이지에서의 SPI 값을 미리 설정된 제 2 값으로 설정하는 단계; 및
    상기 TBU에 의해, 상기 ACSU에 의해 설정된 상기 상태와 관련한 현재 스테이지에서의 SPI 값을 저장하는 단계를 포함하는 조인트 비터비 검출 및 복호 방법.
  20. 제 19 항에 있어서,
    상기 상태와 관련한 현재 스테이지에서 필요한 SPI 값은,
    상기 BMU에서 브랜치 메트릭을 계산하기 위해 사용되는 변수가 저장된 주소를 나타내는 것을 특징으로 하는 조인트 비터비 검출 및 복호 방법.
  21. 제 19 항에 있어서,
    상기 BM값은,
    인코딩된 신호의 코드워드에 대해 서로 다른 4가지 타입의 노이즈가 없는 연속으로 수신된 두 신호의 위상 차이인 것을 특징으로 하는 조인트 비터비 검출 및 복호 방법.
  22. 제 19 항에 있어서,
    현재 스테이지에서의 전체 상태에 대해서 상기 SPI 값을 참조할 상태를 확인하는 단계, 상기 이전 스테이지에서의 SPI 값을 확인하는 단계, 상기 현재 스테이지에서 필요한 SPI 값을 생성하는 단계, 상기 브랜치 메트릭을 계산하는 단계, 상기 유클리드 거리가 최소가 되는 브랜치를 선택하는 단계, 상기 현재 스테이지에서의 SPI 값을 설정하는 단계 및 상기 설정된 현재 스테이지에서의 SPI 값을 저장하는 단계를 반복 수행하는 단계를 더 포함하는 것을 특징으로 하는 조인트 비터비 검출 및 복호 방법.
KR1020190116849A 2019-09-23 2019-09-23 조인트 비터비 검출 및 복호 장치 및 그 방법 KR102302560B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190116849A KR102302560B1 (ko) 2019-09-23 2019-09-23 조인트 비터비 검출 및 복호 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190116849A KR102302560B1 (ko) 2019-09-23 2019-09-23 조인트 비터비 검출 및 복호 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20210034909A KR20210034909A (ko) 2021-03-31
KR102302560B1 true KR102302560B1 (ko) 2021-09-15

Family

ID=75238104

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190116849A KR102302560B1 (ko) 2019-09-23 2019-09-23 조인트 비터비 검출 및 복호 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR102302560B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100928296B1 (ko) 2007-10-25 2009-11-25 한양대학교 산학협력단 차분적 이원 직교 첩 확산 스펙트럼 신호의 수신 장치 및그 방법
KR101134806B1 (ko) 2005-01-19 2012-04-13 엘지전자 주식회사 부호 복호 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102254433B1 (ko) 2014-04-01 2021-05-24 삼성전자주식회사 가우시안 주파수 쉬프트 키잉 변조 방식을 지원하는 통신 시스템에서 신호를 수신하는 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101134806B1 (ko) 2005-01-19 2012-04-13 엘지전자 주식회사 부호 복호 방법
KR100928296B1 (ko) 2007-10-25 2009-11-25 한양대학교 산학협력단 차분적 이원 직교 첩 확산 스펙트럼 신호의 수신 장치 및그 방법

Also Published As

Publication number Publication date
KR20210034909A (ko) 2021-03-31

Similar Documents

Publication Publication Date Title
KR100566084B1 (ko) 콘벌루션 인코딩된 코드워드를 디코딩하기 위한 소프트 결정 출력 디코더
US6484285B1 (en) Tailbiting decoder and method
KR20010023315A (ko) 연결 코드에서 순환 중복 검사를 선택하는 장치 및 방법
KR20000067966A (ko) 비동일 에러 보호를 갖는 통신 신호를 검출하는 방법 및 장치
US8190980B2 (en) Trellis-based decoder using states of reduced uncertainty
US20080092025A1 (en) Method and System for Improving Decoding Efficiency in Wireless Receivers
Dhaliwal et al. Performance analysis of convolutional code over different code rates and constraint length in wireless communication
JP2005033705A (ja) 復号装置および復号方法
US8843811B2 (en) Apparatus and method for decoding in communication system
US9419656B2 (en) Decoder and method for decoding an encoded sequence of bits
WO2006073732A2 (en) Track buffer in a parallel decoder
CN108134612B (zh) 纠正同步与替代错误的级联码的迭代译码方法
CN111654291B (zh) 一种基于比特翻转的极化码快速串行抵消列表译码算法
JP2005294898A (ja) ビタビ復号方法、復号化装置、移動局無線装置、基地局無線装置および移動通信システム
KR102302560B1 (ko) 조인트 비터비 검출 및 복호 장치 및 그 방법
CN108471341B (zh) 一种卷积编解码的方法
Lou Viterbi decoder design for the IS-95 CDMA forward link
Gaudio et al. Approximate ML decoding of short convolutional codes over phase noise channels
JPH07254861A (ja) ヴィタビ復号方法及び畳み込み符号化伝送方法
KR102338852B1 (ko) 무선 통신 시스템에서 신호를 복호하기 위한 장치 및 방법
JP2005167513A (ja) 復号装置及び復号方法
WO2006073697A2 (en) Parallel decoder for ultrawide bandwidth receiver
JP4116554B2 (ja) 無線通信のためのターボ復号方法および装置
WO2006073731A2 (en) Decision voting in a parallel decoder
Abubeker et al. Maximum likelihood DE coding of convolutional codes using viterbi algorithm with improved error correction capability

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant