KR100726171B1 - 비터비 복호 장치 및 방법 - Google Patents

비터비 복호 장치 및 방법 Download PDF

Info

Publication number
KR100726171B1
KR100726171B1 KR1020050097676A KR20050097676A KR100726171B1 KR 100726171 B1 KR100726171 B1 KR 100726171B1 KR 1020050097676 A KR1020050097676 A KR 1020050097676A KR 20050097676 A KR20050097676 A KR 20050097676A KR 100726171 B1 KR100726171 B1 KR 100726171B1
Authority
KR
South Korea
Prior art keywords
value
path
unit
bit string
branch
Prior art date
Application number
KR1020050097676A
Other languages
English (en)
Other versions
KR20070035912A (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 US11/529,412 priority Critical patent/US7765459B2/en
Publication of KR20070035912A publication Critical patent/KR20070035912A/ko
Application granted granted Critical
Publication of KR100726171B1 publication Critical patent/KR100726171B1/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/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3916Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding for block codes using a trellis or lattice
    • 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
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6511Support of multiple decoding rules, e.g. combined MAP and Viterbi decoding
    • 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
    • H04L1/0053Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables specially adapted for power saving

Landscapes

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

Abstract

레지스터 교환(Register Exchange) 방식의 비터비 복호 장치 및 방법이 개시된다.
비터비 복호 장치는 채널로부터 길쌈 부호 방식의 부호화 비트열을 수신하고, 부호화 단위로 부호화 비트열에 부호화 비트열의 일부 또는 전부를 1회 이상 순환적으로 추가한 확장된 부호화 비트열을 생성한 다음, 이 확장된 부호화 비트열로 레지스터 교환 방식의 비터비 복호를 수행하여 복호 데이터를 생성한다. 그리고, 비터비 복호 장치는 복호 데이터에서 부호화 단위에 해당하는 수 만큼의 말단 비트열을 선택하고, 말단 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성한다.
이로써, 비터비 복호 장치는 간단한 구조를 가지고, 제로 테일 길쌈 부호의 부호화 비트열 및 테일 바이팅 길쌈 부호의 부호화 비트열 모두 복호할 수 있으며, 전력 소모를 줄일 수 있다.
비터비, 디코더, 레지스터 교환, 길쌈부호

Description

비터비 복호 장치 및 방법{APPARATUS AND METHOD FOR VITERBI DECODING}
도 1은 IEEE802.16 국제 규격에 따른 구속장이 7(K=7)일 때의 길쌈 부호화기의 구조를 도시한 도면이다.
도 2는 제로 테일 길쌈 부호 방식의 부호화기의 부호화 단위 패킷을 도시한 도면이다.
도 3은 제로 테일 길쌈 부호 방식의 부호화기의 초기 상태를 도시한 도면이다.
도 4는 제로 테일 길쌈 부호 방식의 부호화기의 종료 상태를 도시한 도면이다.
도 5는 테일 바이팅 길쌈 부호 방식의 부호화기의 부호화 단위 패킷을 도시한 도면이다.
도 6은 테일 바이팅 길쌈 부호 방식의 부호화기의 초기 상태를 도시한 도면이다.
도 7은 테일 바이팅 길쌈 부호 방식의 부호화기의 종료 상태를 도시한 도면이다.
도 8은 길쌈 부호화에 따른 트렐리스도의 한 예를 도시한 도면이다.
도 9는 레지스터 교환 방식에 따른 비터비 복호 과정의 한 예를 트렐리스 상 에 도시한 도면이다.
도 10은 종래의 수정된 레지스터 교환 방식을 도시한 도면이다.
도 11는 본 발명의 실시예에 따른 비터비 복호 장치를 도시한 도면이다.
도 12는 본 발명의 실시예에 따른 비터비 복호 장치에서 비터비 복호부(300)를 상세하게 도시한 블록도이다.
도 13은 본 발명의 실시예에 따른 가지값 계산부(310)를 도시한 도면이다.
도 14는 본 발명의 실시예에 따른 정규화 인자 생성부(340)를 도시한 블록도이다.
도 15는 본 발명의 실시예에 따른 ACS 연산부(320)를 도시한 블록도이다.
도 16은 본 발명의 실시예에 따른 비터비 복호 방법을 도시한 흐름도이다.
본 발명은 비터비 복호 장치 및 방법에 관한 것이다. 특히 본 발명은 레지스터 교환(Register Exchange) 방식의 비터비 복호 장치 및 방법에 관한 것이다.
많은 디지털 통신 표준은 순방향 오류 정정(Forward Error Correction, FEC)을 위해 길쌈 부호화를 채택하고 있다. 길쌈 부호화로 부호화된 정보 비트열은 수신단에서 비터비 디코더에 의해 복호된다.
도 1은 IEEE802.16 국제 규격에 따른 구속장이 7(K=7)일 때의 길쌈 부호화기의 구조를 도시한 도면이다.
도 1에 도시된 바와 같이 IEEE802.16 국제 규격에 따른 구속장이 7(K=7)일 때의 길쌈 부호화기는 2개의 XOR 연산기(11, 12) 및 6개의 딜레이부(21~26)를 포함한다. 길쌈 부호화기는 매 클럭마다 정보 비트열 중 한 비트가 제1 딜레이부(21)를 통해 입력되고, 2개의 XOR 연산기(11, 12)를 통해 2개의 부호화된 심볼을 생성한다. 길쌈 부호에는 제로 테일 길쌈 부호(Zero-Tail Convolution Codes)와 테일 바이팅 길쌈 부호(Tail-Biting Convolution Codes)가 있다.
이하에서는 도 2 내지 도 4를 참고하여 제로 테일 길쌈 부호 방식에 대하여 설명한다.
도 2는 제로 테일 길쌈 부호 방식의 부호화기의 부호화 단위 패킷을 도시한 도면이다.
도 2에 도시된 바와 같이 제로 테일 길쌈 부호 방식의 부호화기의 부호화 단위 패킷은 구속장보다 1 작은 개수(K-1 비트)의 0 비트열(제로 테일열)을 정보 비트열에 추가된 형태이다. 따라서 정보 비트열의 크기가 L 비트라면 제로 테일 길쌈 부호 방식의 부호화기의 부호화 단위 패킷의 크기는 L+K-1 비트가 된다. 예를 들어, 구속장(K)의 크기는 7이면 부호화 단위 패킷의 크기는 L+6 비트가 된다.
도 3은 제로 테일 길쌈 부호 방식의 부호화기의 초기 상태를 도시한 도면이다. 도 3에 도시된 바와 같이 제로 테일 길쌈 부호 방식의 부호화기의 초기 상태는 모든 딜레이부가 0 값을 가지는 0 상태이다. 따라서 제로 테일 길쌈 부호 방식의 비터비 복호기는 복호 과정을 0 상태에서 시작할 수 있다.
도 4는 제로 테일 길쌈 부호 방식의 부호화기의 종료 상태를 도시한 도면이 다. 도 4에 도시된 바와 같이 제로 테일 길쌈 부호 방식의 부호화기의 종료 상태는 모든 딜레이부가 0 값을 가지는 0 상태이다. 부호화 단위 패킷의 마지막 K-1개의 0 값이 길쌈 부호화기에 입력되기 때문에 길쌈 부호화기의 종료 상태는 0 상태가 된다. 따라서 제로 테일 길쌈 부호 방식의 비터비 복호기는 역추적 과정을 0 상태에서 시작할 수 있다.
제로 테일 길쌈 부호 방식은 0 값을 가지는 부가적인 제로 테일열을 사용함으로써 정보 비트열의 마지막 부분에 오류가 있더라도 오류 정정이 용이한 장점이 있다. 또한 길쌈 부호화기의 시작 상태 및 종료 상태가 모두 0 상태에서 시작하므로 비터비 복호기는 복호 과정 및 역추적 과정을 0 상태에서 시작할 수 있고, 따라서 비터비 복호기의 구조가 단순해 질 수 있다. 그러나 제로 테일 길쌈 부호 방식은 부가적인 제로 테일열로 인해 전송 효율이 나빠지는 단점이 있다. 이러한 단점을 해결하기 위한 길쌈 부호 방식이 테일 바이팅 길쌈 부호 방식이다.
이하에서는 도 5 내지 도 7를 참고하여 테일 바이팅 길쌈 부호 방식에 대해 설명한다.
도 5는 테일 바이팅 길쌈 부호 방식의 부호화기의 부호화 단위 패킷을 도시한 도면이다. 도 5에 도시된 바와 같이 테일 바이팅 길쌈 부호 방식의 부호화기의 부호화 단위 패킷에는 부가 데이터가 없다. 따라서 테일 바이팅 길쌈 부호 방식은 제로 테일 길쌈 부호 방식에 비해 전송 효율이 좋다.
도 6은 테일 바이팅 길쌈 부호 방식의 부호화기의 초기 상태를 도시한 도면이다. 도 6에 도시된 바와 같이 테일 바이팅 길쌈 부호 방식의 부호화기의 초기 상태는 부호화 단위 패킷의 마지막 6 비트로 결정된다. 테일 바이팅 길쌈 부호 방식의 부호화기의 부호화 단위 패킷의 마지막 6 비트는 0이 아니므로, 테일 바이팅 길쌈 부호 방식의 부호화기의 초기 상태는 0 상태가 아니다. 테일 바이팅 길쌈 부호 방식의 부호화기는 초기상태를 부호화 단위 패킷의 마지막 6 비트로 하기 위하여 부호화 전에 부호화 단위 패킷의 마지막 6비트를 우선적으로 입력받는다. 이때 테일 바이팅 길쌈 부호 방식의 부호화기는 부호화된 출력 비트를 생성하지 않는다. 그 후 테일 바이팅 길쌈 부호 방식의 부호화기는 정보 비트열을 순서대로 입력받고 부호화된 출력 비트를 생성한다.
도 7은 테일 바이팅 길쌈 부호 방식의 부호화기의 종료 상태를 도시한 도면이다. 도 7에 도시된 바와 같이 테일 바이팅 길쌈 부호 방식의 종료 상태는 제로 테일 길쌈 부호 방식과는 달리 부가적인 0 비트열이 없으므로 정보 비트열의 마지막 6비트로 결정된다. 따라서 테일 바이팅 길쌈 부호 방식의 부호화기의 초기 상태와 종료 상태는 동일하다.
테일 바이팅 길쌈 부호 방식의 부호화기의 시작 상태 및 종료 상태는 부호화 단위 패킷의 마지막 6비트로 결정되므로 0 상태가 아니다. 따라서 테일 바이팅 길쌈 부호 방식의 비터비 디코더는 초기 상태를 결정하기 어려운 문제가 있고 이에 따라 비터비 디코더의 구조가 복잡해지는 문제가 있다.
비터비 복호 장치는 최종 복호 비트열을 얻는 방식에 따라 역추적(Trace Back) 방식과 레지스터 교환(Register Exchange) 방식으로 나눌 수 있다.
역추적 방식을 따르는 비터비 복호 장치는 크게 포워드 복호(Forward Decording) 과정과 역추적 과정을 수행한다. 포워드 복호 과정에서 비터비 복호 장치는 수신한 입력 비트열로부터 트렐리시 상의 각 가지에 해당하는 가지값(Branch Metric, BM)을 구하고, 이 가지값으로부터 다음 상태에 이르는 경로에 해당하는 경로값(Path Metric, PM)을 구한 다음, 구한 경로값을 통해 생존 경로를 선택한다. 역추적 과정에서 비터비 복호 장치는 선택한 생존 경로를 역추적하여 최종 복호 비트열을 추출한다. 다음은 도 8을 참고하여 역추적 방식을 따르는 비터비 복호 방법을 설명한다.
도 8은 길쌈 부호화에 따른 트렐리스도의 한 예를 도시한 도면이다.
도 8에 도시된 바와 같이 비터비 복호 장치는 경로값을 통해 생존 경로(31)를 선택하였고, 이후 비터비 복호 장치는 선택한 생존 경로(31)를 역추적하여 최종 복호 비트열을 추출하게 된다. 이때 경로값이 계속적으로 증가하지 않는 것은 경로값에 대해 정규화를 수행하였기 때문이다.
레지스터 교환 방식을 따르는 비터비 복호 장치는 각 상태에 대응하는 레지스터를 가지고 있다. 레지스터 교환 방식을 따르는 비터비 복호 장치는 가지값 및 경로값 연산을 수행하여 경로를 선택하고, 선택한 경로상의 이전 상태에 해당하는 레지스터에 새로운 경로 선택 정보를 추가하여 현재의 각 상태에 대응하는 레지스터를 갱신한다. 각 상태에 대응하는 레지스터에는 각 상태에 이르는 경로에 해당하는 복호 비트열을 저장하고 있게 되므로, 비터비 복호 장치는 부호화 단위 패킷의 길이만큼의 복호를 수행한 후 최적의 상태에 해당하는 레지스터가 포함하는 비트열을 최종 복호 비트열로 출력하게 된다. 이때 최적의 상태는 가장 작은 경로값을 가 지는 상태를 의미한다. 다음은 도 9를 참고하여 레지스터 교환 방식에 따른 비터비 복호 방법을 설명한다.
도 9는 레지스터 교환 방식에 따른 비터비 복호 과정의 한 예를 트렐리스 상에 도시한 도면이다.
도 9에 도시된 바와 같이 레지스터 교환 방식에 따른 비터비 복호 장치는 각 상태에 대응하는 레지스터를 포함하고 있고, 복호가 진행됨에 따라 각 상태에 해당하는 레지스터에 복호 정보를 1개씩 추가하고, 각 상태에 해당하는 레지스터는 생존 경로에 따라 서로 교환된다.
레지스터 교환 방식에 따른 비터비 복호 방법은 역추적 과정이 불필요하므로 역추적 방식보다 복호 시간이 단축되는 장점이 있다. 특히 제로 테일 길쌈 부호 방식에 따르는 비터비 복호 장치는 레지스터 교환 방식에 따를 경우 역추적 방식보다 복호 시간이 1/2로 감소한다. 테일 바이팅 길쌈 부호 방식에 따르는 비터비 복호 장치는 복호의 초기 상태를 알 수 없으므로 이를 찾는 과정이 추가되어야 하지만 레지스터 교환 방식에 따를 경우 역추적 방식보다 복호 시간이 단축될 수 있다.
그러나 일반적으로 레지스터 교환 방식의 복호 성능은 포워드 복호 과정에 의존하므로 역추적 방식보다 비트 오류율(Bit Error Rate, BER)의 성능이 열하된다. 만일, 정보 비트 시퀀스의 앞부분에 채널 왜곡에 의한 비트 오류가 발생하였을 경우 복호 신뢰도는 낮아진다. 특히, 테일 바이팅 길쌈 부호 방식에 따르는 비터비 복호 장치의 경우 초기 상태를 정확히 파악할 수 없으므로 복호 신뢰도는 더욱 낮다.
또한 레지스터 교환 방식의 비터비 디코더는 상태의 개수만큼의 레지스터를 포함하고 있고, 각 레지스터의 값들은 경로 선택 결과에 따라 빈번하게 교환되기 때문에 전력 소모가 크다. 더구나 레지스터의 크기는 부호화 단위 패킷의 길이에 따라 증가하므로 부호화 단위 패킷의 길이가 길수록 전력 소모가 더욱 커진다.
이러한 문제점을 일부 해결하기 위한 방법이 수정된 레지스터 교환 방식(Modified Register Exchange)이다. 수정된 레지스터 교환 방식은 각 레지스터가 저장하는 값 자체를 교환하지 않고 상태값에 해당하는 포인터를 교환하여 레지스터를 교환하는 방식이다. 수정된 레지스터 교환 방식에 따른 비터비 복호 장치는 상대적으로 적은 수의 비트를 교환하므로 전력 소모가 감소할 수 있다. 수학식 1은 구속장(Constraints, K)가 7인 경우 레지스터 값이 천이 발생 횟수이다.
{64(state)*1(bit) + 64(state)*6(bit)} = 448번
구속장(Constraints, K)가 7인 경우, 상태(state)의 개수는 총 64개이고, 따라서 각 레지스터 값의 천이 발생 횟수는 64회이다. 그리고, 포인터의 주소는 6비트가 되므로 포인터 교환에 따른 레지스터 값의 천이 발생 횟수는 64*6회가 된다.
그러나 기존에 발표된 수정된 레지스터 교환 방식에 따르면 부호화 단위 패킷의 길이가 커짐에 따른 고려가 없어서 부호화 단위 패킷의 길이가 커질 경우 많은 단위 레지스터가 필요하게 된다. 예를 들어 구속장이 7이고, 부호화 단위 패킷의 길이가 480비트인 경우 필요한 단위 레지스터는 총 480*64=30,720비트이다. 이는 집적회로 구현에 매우 부담이 되는 양이다.
다음은 수정된 레지스터 교환 방식의 추가적인 문제점을 도 10을 참고하여 설명한다.
도 10은 종래의 수정된 레지스터 교환 방식을 도시한 도면이다.
도 10에 도시된 바와 같이 수정된 레지스터 교환 방식의 비터비 디코더는 하나의 레지스터가 2개의 경로에 대해 선택되는 경우 해당 레지스터의 값이 사용되지 않는 레지스터에 복사된다. 이때 복사 대상이 되는 레지스터는 복사 이전에 복사하려는 값과는 대부분 다른 값을 가지고 있으므로 레지스터 값의 천이 발생 횟수는 증가하게 된다. 이는 곧 전력 소모의 증가로 나타난다. 예를 들어, 레지스터(21)는 2개의 경로에 대해서 선택 되므로 그 값은 경로 선택이 제외되어 소멸된 레지스터인 레지스터(23)에 복사되어 저장된다. 이때 레지스터(23)은 복사 이전에 복사하려는 값과는 대부분 다른 값을 가지게 있게 된다. 따라서 수정된 레지스터 교환 방식의 레지스터 천이 발생 횟수는 수학식 2와 같이 증가한다.
{(Info_len * D) + 64(state)*1(bit) + 64(state)*6(bit)} >> 448번
수학식 2에서와 같이 수정된 레지스터 교환 방식의 레지스터 천이 발생 횟수는 부호화 단위 패킷의 길이 Info_len에 대해 발생 빈도수 D 만큼의 곱한 횟수가 추가되어야 한다. 이때 발생 빈도수 D는 하나의 레지스터가 2개의 경로에 대해 선택되는 발생 빈도이다. 예를 들어, 부호화 단위 패킷의 길이가 480비트이고, D=10일 경우 천이 발생 횟수는 4800회가 추가되는데, 이는 본래의 448번에 비해 매우 큰 값이다.
본 발명이 이루고자 하는 기술적 과제는 구조가 간단하고 전력 소모가 적으며 요구되는 레지스터의 수가 적은 레지스터 교환 방식의 비터비 복호 장치 및 방법을 제공하는 것이다.
본 발명의 특징에 따른 비터비 복호 장치는 채널로부터 길쌈 부호 방식의 부호화 비트열을 수신하는 수신 버퍼부; 상기 수신 버퍼부로부터 부호화 단위에 해당되는 부호화 비트열을 입력받아 상기 부호화 비트열에 상기 부호화 비트열의 일부 또는 전부를 1회 이상 순환적으로 추가한 확장된 부호화 비트열을 생성하는 수신 비트열 확장부; 상기 확장된 부호화 비트열을 입력받아 레지스터 교환 방식의 비터비 복호를 수행하여 복호 데이터를 출력하는 비터비 복호부; 상기 복호 데이터에서 상기 부호화 단위에 해당하는 수의 말단 비트열을 선택하여 출력하는 말단 비트열 선택부; 및 상기 말단 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성하는 재정렬부를 포함한다.
이때 상기 비터비 복호부는, 상기 확장된 부호화 비트열과 송신단 길쌈 부호화기의 트렐리스 상의 부호화 비트와의 차이로 모든 가지에 대해 가지값을 계산하는 가지값 계산부; 상기 트렐리스 상에서 선택되는 경로에 대한 경로값을 저장하는 경로값 저장부; 상기 송신단 길쌈 부호화기의 상태의 개수에 해당하는 수의 교환 레지스터를 포함하는 교환 레지스터 블록부; 상기 경로값 저장부로부터의 이전 상태의 경로값과 상기 가지값 계산부로부터의 가지값을 더하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산하고, 현재 상태에 이르는 각 가지로부터의 경로값의 비교 결과를 상기 교환 레지스터 블록부의 현재 상태에 해당하는 교환 레지스터에 저장하고, 상기 비교 결과에 따라 선택되는 경로의 경로값을 상기 경로값 저장부에 저장하는 ACS 연산부; 상기 경로값 저장부에 저장된 경로값 중 최소의 경로값에 해당하는 상태인 최적 상태를 추출하는 최적 상태 판단부; 및 상기 교환 레지스터 블록부가 포함하는 교환 레지스터 중에서 상기 최적 상태에 해당하는 교환 레지스터에 저장된 값을 상기 말단 비트열 선택부에 출력하는 출력 레지스터 선택부를 포함할 수 있다.
본 발명의 특징에 따른 비터비 복호 방법은 채널로부터 길쌈 부호 방식의 부호화 비트열을 수신하는 단계; 상기 부호화 비트열을 부호화 단위로 입력받아 상기 부호화 비트열에 상기 부호화 비트열의 일부 또는 전부를 1회 이상 순환적으로 추가한 확장된 부호화 비트열을 생성하는 단계; 상기 확장된 부호화 비트열을 입력받아 레지스터 교환 방식의 비터비 복호를 수행하여 복호 데이터를 출력하는 단계; 상기 복호 데이터에서 상기 부호화 단위에 해당하는 수의 말단 비트열을 선택하여 출력하는 단계; 및 상기 말단 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성하는 단계를 포함한다.
이때, 상기 비터비 복호를 수행하여 복호 데이터를 출력하는 단계는, 상기 확장된 부호화 비트열과 송신단 길쌈 부호화기의 트렐리스 상의 부호화 비트와의 차이로 모든 가지에 대해 가지값을 계산하는 단계; 상기 가지값과 이전 상태의 경로값을 더하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산하고 현재 상태 에 이르는 각 가지로부터의 경로값의 비교 결과를 현재 상태에 해당하는 교환 레지스터에 저장하는 단계; 상기 경로값 중 최소의 경로값에 해당하는 상태인 최적 상태를 추출하는 단계; 및 상기 최적 상태에 해당하는 교환 레지스터에 저장된 값을 출력하는 단계를 포함할 수 있다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하에서는 본 발명의 실시예를 설명하기 위하여 송신측이 IEEE802.16 국제 규격에 따른 구속장이 7(K=7)일 때의 길쌈 부호화기를 사용하지만 다양한 길쌈 부호화기를 사용할 수 있음은 당업자에게 자명하다.
그리고 길쌈 부호화기의 부호화 단위의 크기를 L이라고 한다. 이때, 길쌈 부호화기의 부호율이 k/n이라고 하면 길쌈 부호화기의 부호화된 출력 비트열의 크기는 L*n/k(이하에서 M이라고도 함)이 된다. 예를 들어 길쌈 부호화기가 IEEE802.16 국제 규격에 따른 구속장이 7(K=7)일 때의 길쌈 부호화기라고 할 때 이 길쌈 부호 화기의 부호화된 출력 비트열의 크기는 2L 개가 된다. 이하 본 발명의 실시예의 설명에서는 부호화된 출력 비트열의 크기를 L*n/k라고 두겠다.
다음은 본 발명의 실시예에 따른 비터비 복호 장치에 대해 도 11 내지 도 15를 참고하여 상세하게 설명한다.
도 11는 본 발명의 실시예에 따른 비터비 복호 장치를 도시한 도면이다.
도 11에 도시된 바와 같이 본 발명의 실시예에 따른 비터비 복호 장치는 수신 버퍼부(100), 수신 비트열 확장부(200), 비터비 복호부(300), 말단 비트열 선택부(400), 재정렬부(500), 출력 버퍼부(600)를 포함한다.
수신 버퍼부(100)는 채널로부터 길쌈 부호 방식에 따른 부호화 비트열을 수신한다. 이때 부호화 비트열은 제로 테일 길쌈 부호 방식에 따른 부호화 비트열일 수도 있고, 테일 바이팅 길쌈 부호 방식의 부호화 비트열일 수도 있다.
수신 비트열 확장부(200)는 수신 버퍼부(100)로부터 길쌈 부호화기의 부호화 단위(L 개)에 해당하는 부호화 비트열(L*n/k 개)를 입력받는다. 그리고 수신 비트열 확장부(200)는 입력받은 부호화 비트열을 바탕으로 확장된 부호화 비트열을 생성한다. 확장된 부호화 비트열은 수신 버퍼부로부터 입력받은 부호화 단위에 부호화 비트열에 이 부호화 비트열의 일부 또는 전부를 1회 이상 순환적으로 추가한 비트열이다. 여기서 '순환적'이라는 용어는 비트열(b[0], b[1], ..., b[n])에 비트열을 추가하는 경우 b[n] 비트 다음에 b[0] 비트를 추가하고 이후는 자연수의 순서대로 추가하는 것을 의미한다. 예를 들어 도 11에 도시된 바와 같이 본 발명의 실시예에 따른 확장된 부호화 비트열은 수신 비트열 확장부(200)가 우선 부호화 비트열 을 1회 출력하고 이후 부호화 비트열의 앞 절반을 추가로 출력하는 신호이다. 이처럼 수신 비트열 확장부(200)가 부호화 비트열을 확장하여 출력하는 이유는 부호화 비트열이 테일 바이팅 길쌈 부호 방식으로 부호화된 비트열인 경우 포워딩 복호의 시작 상태를 알 수 없으므로 이 시작 상태를 찾기 위함이다. 즉, 본 발명의 실시예에 따른 비터비 복호 장치는 확장된 부호화 비트열의 앞 부분의 비트열(r[1], r[2], …, r[1/2*L*n/k])의 포워딩 복호를 통해 포워딩 복호의 정상적인 시작 상태를 얻는다. 따라서 본 발명의 실시를 위해서 확장된 부호화 비트열은 반드시 부호화 비트열에 부호화 비트열의 앞 절반이 추가된 형태일 필요는 없고, 포워딩 복호의 정상적인 시작 상태를 얻을 수 있는 만큼의 비트열이 추가되는 형태일 수 있다. 예를 들어 확장된 부호화 비트열은 부호화 비트열이 2회 또는 3회 반복되는 형태일 수도 있고, 부호화 비트열이 2회 반복되고 1/3회가 추가로 반복되는 형태일 수 있다.
비터비 복호부(300)는 확장된 부호화 비트열을 비터비 복호 방식에 따라 복호한다. 비터비 복호부(300)는 총 3/2*L*n/k 개의 부호화 비트열을 입력받으므로 3/2*L 개의 확장된 복호 데이터를 출력한다. 비터비 복호부(300)는 Radix-2 방식 또는 Radix-4 방식 등의 다양한 비터비 복호 방식을 사용할 수 있다.
말단 비트열 선택부(400)는 비터비 복호부(300)가 생성한 3/2*L 개의 확장된 복호 데이터 중에서 마지막 L 개인 말단 비트열(x[L/2+1], ..., x[L], x[L+1], ..., x[3/2*L]) 만을 선택하여 출력한다. 말단 비트열 선택부(400)는 확장된 복호 데이터 중에서 앞부분의 비트열을 버리는데, 그 이유는 그 앞부분의 비트열은 포워 딩 복호의 정상적인 시작 상태를 얻기 위한 것이었으므로 많은 오류를 포함하고 있기 때문이다.
재정렬부(500)는 말단 비트열 선택부(400)에서 선택된 말단 비트열을 재정렬하여 최종 복호 데이터를 출력한다. 즉 재정렬부(500)는 말단 비트열의 뒷 절반의 비트열(x[L+1], ..., d[3/2*L])을 먼저 출력하고, 말단 비트열의 앞 절반의 비트열(x[L/2+1], ..., x[L])을 출력한다. 말단 비트열의 뒷 절반의 비트열(x[L+1], ..., d[3/2*L])은 최종 복호 데이터의 앞 절반(d[1], ..., d[L/2])이 된다. 재정렬부는(500)는 앞에서 설명한 다양한 확장된 부호화 비트열에 따라 다르게 구성되는데, 이는 본 발명이 속하는 기술분야의 전문가라면 쉽게 도출할 수 있는 내용이므로 다양한 경우에 대한 설명은 생략한다.
출력 버퍼부(600)는 최종 복호 데이터를 버퍼에 저장하고 있다가 필요에 따라 8비트 또는 16비트 등으로 출력한다.
도 12는 본 발명의 실시예에 따른 비터비 복호 장치에서 비터비 복호부(300)를 상세하게 도시한 블록도이다.
도 12에 도시된 바와 같이 비터비 복호부(300)는 가지값 계산부(310), ACS(Add Compare Select) 연산부(320), 경로값 저장부(330), 정규화 인자 생성부(340), 교환 레지스터 블록부(350), 최적 상태 판단부(360), 출력 레지스터 선택부(370)를 포함한다.
가지값 계산부(310)는 수신 비트열 확장부(200)로부터 입력받은 확장된 부호화 비트열과 송신단 길쌈 부호화기의 트렐리스(Trellis) 상의 부호화 비트(Branch Coded Word, 이하 BCW)와의 차이로 모든 가지에 대해 가지값을 계산한다.
ACS 연산부(320)는 가지값 계산부(310)에서 계산된 가지값과 이전 상태의 경로값을 더하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산하고 계산한 경로값을 경로값 저장부(330)에 저장한다. 그리고 ACS 연산부(320)는 각 가지로부터 현재 상태에 이르는 경로값을 비교하여 그 비교 결과를 교환 레지스터 블록부(350)에 저장한다. 한편 이때의 이전 상태의 경로값은 정규화된 경로값일 수 있다. 이는 후술하도록 한다.
경로값 저장부(330)는 ACS 연산부(320)에서 계산된 경로값이 저장되는 공간이다.
정규화 인자 생성부(340)는 경로값이 무한정 증가하는 것을 막기 위한 정규화 인자를 생성한다. 본 발명의 실시예에서 정규화 인자는 경로값 저장부(330)에 저장된 경로값 중 최소값을 의미한다. 즉, 다수의 경로값은 그 중 최소의 값으로 계속해서 감산되어 무한정 증가되지 않는다.
교환 레지스터 블록부(350)는 비터비 복호부(300)의 상태에 대응하는 수의 교환 레지스터(351)를 포함한다. 교환 레지스터(351)는 비터비 복호부(300)의 특정 상태에 대응되고, 1비트를 저장할 수 있는 단위 레지스터로 구성되며, 본 발명의 실시예에서는 FIFO(First In First Out) 방식의 시프트 레지스터(shift register)이다. 본 발명의 실시예에서 각 교환 레지스터(351)는 부호화 단위의 크기에 관계없이 48비트(단위 레지스터를 48개 가지고 있음)를 가지고, 비터비 복호부(300)는 이 48비트의 복호가 완성되면 이를 출력한다. 비터비 복호부(300)는 부호화 단위의 크기에 관계없이 48비트 단위로 부호화 비트열을 나누어 처리하는데 이는 교환되는 비트수를 줄여 전력 소모를 줄이는 효과를 가지며, 부호화 단위의 크기인 L만큼에 해당하는 레지스터를 가질 필요가 없으므로 집적 회로의 구현이 용이하게 된다. 여기서 48비트는 본 발명의 다양한 실시예에 따라 다르게 변형이 가능하다.
최적 상태 판단부(360)는 경로값 저장부(330)에 저장된 경로값 중에서 최소인 경로값에 해당하는 상태를 출력한다.
출력 레지스터 선택부(370)는 최적 상태 판단부(360)에서 판단된 상태에 해당하는 레지스터를 선택하여 이 레지스터에 저장된 값을 말단 비트열 선택부(400)에 출력한다.
도 13은 본 발명의 실시예에 따른 가지값 계산부(310)를 도시한 도면이다.
가지값 계산부(310)를 설명하기 위해서 본 발명의 실시예에 따른 비터비 복호부(300)는 Radix-2의 구조를 가지고 4비트 연판정된 이진 데이터를 사용한다고 가정한다. Radix-2 비터비 디코더에서는 4 개의 가지값이 생성된다.
도 13에 도시된 바와 같이 본 발명의 실시예에 따른 가지값 계산부(310)는 거리 계산부(311), 가지값 덧셈부(312), 가지값 저장부(313)를 포함한다.
거리 계산부(311)는 비터비 복호부(300)의 입력값과 0 및 1의 대표값과의 거리값을 계산한다. 본 발명의 실시예에서 0의 대표값은 7이고, 1의 대표값은 -8이다.
가지값 덧셈부(312)는 거리 계산부(311)에서 생성된 거리값을 통해 상태 천이 과정에서 발생하는 모든 가지값을 생성한다. 본 발명의 실시예에 따른 비터비 복호부(300)는 Radix-2의 구조를 가지므로 가지값 덧셈부(312)는 4개의 가지값(BM_00, BM_01, BM_10, BM_11)을 생성한다. 각 가지값은 거리 계산부(311)에서 계산된 4비트의 거리값 2개를 더하여 얻어지므로 5비트로 표시된다.
가지값 저장부(313)는 가지값 덧셈부(312)에서 생성된 4개의 가지값을 저장한다. 이후 가지값 저장부(313)에 저정되어 있는 가지값은 경로값을 계산하는데 사용된다.
다음은 도 14 및 도 15를 참고하여 ACS 연산부(320)에 대해 상세히 설명하다.
우선 도 14를 참고하여 정규화 인자 생성부(340)를 설명한다.
도 14는 본 발명의 실시예에 따른 정규화 인자 생성부(340)를 도시한 블록도이다.
도 14에 도시된 바와 같이 정규화 인자 생성부(340)는 최소 경로값 추출부(341) 및 정규화 인자 저장부(342)를 포함한다.
최소 경로값 추출부(341)는 이전 상태 경로값 중 최소의 경로값인 정규화 인자(norm)를 추출한다. 그리고 정규화 인자 저장부(342)는 추출된 정규화 인자(norm)를 저장한다.
본 발명의 실시예에 따른 최소 경로값 추출부(341)는 다수의 경로값 비교선택부(341a)를 통해서 이전 상태의 경로값 중 최소값을 추출하는데, 이 경로값 비교선택부(341a)는 비교부(341a1) 및 선택부(341a2)를 포함한다.
비교부(341a1)는 이전 상태 경로값 2개를 입력받아 뺄셈을 수행하고 뺄셈의 결과값 중 가장 상위 비트를 출력한다. 이전 상태 경로값 2개를 PM0, PM1이라고 하고 비교부(341a1)의 수행 결과를 R0(=PM0-PM1)이라고 할 때, R0의 가장 상위 비트가 0이면 이는 PM0>PM1을 의미하고, R0의 가장 상위 비트가 1이면 이는 PM0<PM1을 의미한다. 선택부(341a2)는 5-비트 2-입력 멀티플렉서(5-Bit 2-Input Multiplexer)로 구현되고, 비교부(341a1)에서 생성된 1비트 정보를 통해 출력할 값을 선택한다. 이로써 본 발명의 실시예에 따른 경로값 비교선택부(341a)는 PM0와 PM1 중 작은 값을 출력한다.
한편 최소 경로값 추출부(341)는 이전 상태의 경로값을 2개씩 쌍으로 묶어 모두 비교하여 작은 값을 찾고, 찾은 작은 값들을 2개씩 묶어 다시 작은 값을 찾아 나간다. 이로써 최소 경로값 추출부(341)는 최소의 경로값인 정규화 인자(norm)를 찾는다. 찾아낸 정규화 인자(norm)는 정규화 인자 저장부(342)에 저장된다.
다음은 도 15를 참고하여 본 발명의 실시예에 따른 ACS 연산부(320)를 설명한다.
도 15는 본 발명의 실시예에 따른 ACS 연산부(320)를 도시한 블록도이다.
본 발명의 실시예에 따른 송신단은 구속장(K)이 7인 길쌈 부호화기를 사용하므로 길쌈 부호화기의 상태는 총 64개이다. 따라서 ACS 연산부(320)는 64개의 연산 블록(도면 부호 없음)을 통해 64개의 경로값 및 생존 경로를 생성한다.
도 15에 도시된 바와 같이 ACS 연산부(320)의 각 블록은 2개의 정규화부(321, 323), 2개의 경로값 덧셈부(322, 324), 경로값 비교부(325), 경로값 선택부(326), 경로값 클리핑부(327)를 포함한다.
ACS 연산부(320)의 각 연산 블록은 현재 상태(도 15에 나타난 연산 블록에서 0 상태)에 이를 수 있는 이전 상태(도 15에 나타난 연산 블록에서 0 상태 및 1 상태)의 경로값 2개(도 15에 나타난 연산 블록에서 PM[0], PM[1])를 입력받고 최종적으로 현재 상태로 이르는 경로값 중 최소의 경로값을 선택한다. 그리고 ACS 연산부(320)의 각 블록은 최소의 경로값을 가지는 생존 경로(도 15에서 acs[0])를 생성한다.
2개의 정규화부(321, 323)는 현재 상태(0 상태)에 이를 수 있는 이전 상태(0 상태 및 1 상태)의 경로값 2개(PM[0], PM[1])에서 정규화 인자 생성부(340)로부터의 정규화 인자(norm)을 뺀다. 이로써 송신단 길쌈 부호화기의 트렐리스(Trellis)를 진행에 나감에 따른 경로값이 일정 비트 수(본 발명의 실시예에서는 6비트)내로 유지될 수 있다.
2개의 경로값 덧셈부(322, 324)는 이전 상태의 경로값(PM[0], PM[1])에 이전 상태에서 현재 상태로 이르는 가지의 가지값(도 15에서 BM_00, BM_11)을 더하여 각 가지로부터 현재 상태로 이르는 경로값을 생성한다.
경로값 비교부(325)는 경로값 덧셈부(322, 324)에서 생성된 각 가지로부터 현재 상태로 이르는 경로값을 입력받아 뺄셈을 수행하고 그 상위 1 비트를 출력한다. 경로값 비교부(325)가 출력하는 1 비트는 각 가지로부터 현재 상태로 이르는 경로값 2개의 크기를 비교한 결과를 지시하는 정보이고, 또한 생존 경로를 지시하는 정보이다. 경로값 비교부(325)가 출력하는 1 비트는 교환 레지스터 블록부(350)의 현재 상태에 해당하는 교환 레지스터(351)에 저장된다.
한편 경로값 선택부(326)는 경로값 비교부(325)가 출력하는 1 비트를 입력받아 각 가지로부터 현재 상태로 이르는 경로값 중 작은 값을 선택하여 출력한다.
경로값 클리핑부(327)는 경로값 선택부(326)에서 선택된 경로값을 6 비트로 유지하기 위하여 입력받은 경로값이 1000000(2) 보다 크거나 같으면 그 값을 111111(2)로 클리핑하여 출력한다. 이로써 갱신되는 경로값은 6 비트로 유지될 수 있다.
경로값 선택부(326)에서 선택되고 경로값 클리핑부(327)에서 클리핑되어 출력된 경로값은 다음 상태의 경로값을 생성하는데 다시 사용되기 위해 경로값 저장부(330)에 저장된다.
다음은 본 발명의 실시예에 따른 비터비 복호 방법을 도 16을 참고하여 상세히 설명한다.
도 16은 본 발명의 실시예에 따른 비터비 복호 방법을 도시한 흐름도이다.
우선 수신 버퍼부(100)는 채널로부터 길쌈 부호 방식의 부호화 비트열을 수신한다(S100).
다음 수신 비트열 확장부(200)는 수신 버퍼부로부터 부호화 단위로 입력받은 부호화 비트열에 부호화 비트열의 일부 또는 전부를 1회 이상 순환적으로 추가한 확장된 부호화 비트열을 생성한다(S200).
그 후, 비터비 복호부(300)는 확장된 부호화 비트열을 입력받아 레지스터 교환 방식의 비터비 복호를 수행하여 복호 데이터를 출력한다(S300). 이때 비터비 복 호부(300)는 확장된 부호화 비트열과 송신단 길쌈 부호화기의 트렐리스 상의 부호화 비트와의 차이로 모든 가지에 대해 가지값을 계산하고, 계산된 가지값과 이전 상태의 경로값을 더하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산하고, 현재 상태에 이르는 각 가지로부터의 경로값의 비교 결과를 현재 상태에 해당하는 교환 레지스터(351)에 저장한다. 그리고 비터비 복호부(300)는 경로값 중 최소의 경로값에 해당하는 상태인 최적 상태를 추출하여 이 최적 상태에 해당하는 교환 레지스터에 저장된 값을 복호 데이터로 출력하게 된다.
그리고, 말단 비트열 선택부(400)는 복호 데이터에서 부호화 단위에 해당하는 수 만큼의 말단 비트열을 선택하여 출력한다(S400).
그리고 나서, 재정렬부(500)는 말단 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성한다(S500). 이때 최족 복호 데이터는 출력 버퍼부(600)에 저장된다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
본 발명에 따른 비터비 복호 장치는 제로 테일 길쌈 부호의 부호화 비트열 및 테일 바이팅 길쌈 부호의 부호화 비트열 모두 복호될 수 있다.
또한 본 발명에 따르면 구조가 간단한 비터비 복호 장치를 구현할 수 있다.
또한 본 발명에 따르면 교환 레지스터의 크기를 부호화 단위보다 작게 할 수 있으므로 비터비 복호 장치가 필요로 하는 레지스터의 크기를 크게 줄일 수 있어 집적 회로로의 구현이 용이하고, 레지스터 값의 교환에 따른 전력 소모를 크게 줄일 수 있다.
특히 본 발명에 따른 비터비 복호 장치의 BER 성능은 종래의 수정된 레지스터 교환 방식의 BER 성능보다 0.5dB 이상 개선되는 효과가 있다.

Claims (15)

  1. 채널로부터 길쌈 부호 방식의 부호화 비트열을 수신하는 수신 버퍼부;
    상기 수신 버퍼부로부터 부호화 단위에 해당되는 부호화 비트열을 입력받아 상기 부호화 비트열에 상기 부호화 비트열의 일부 또는 전부를 1회 이상 순환적으로 추가한 확장된 부호화 비트열을 생성하는 수신 비트열 확장부;
    상기 확장된 부호화 비트열을 입력받아 레지스터 교환 방식의 비터비 복호를 수행하여 복호 데이터를 출력하는 비터비 복호부;
    상기 복호 데이터에서 상기 부호화 단위에 해당하는 개수의 말단 비트열을 선택하여 출력하는 말단 비트열 선택부; 및
    상기 말단 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성하는 재정렬부를 포함하는 비터비 복호 장치.
  2. 제1항에 있어서,
    상기 비터비 복호부는,
    상기 확장된 부호화 비트열과 0 및 1의 대표값과의 거리값을 통해 상태 천이 과정에서 발생하는 모든 가지에 대해 가지값을 계산하는 가지값 계산부;
    상기 트렐리스 상에서 선택되는 경로에 대한 경로값을 저장하는 경로값 저장부;
    상기 송신단 길쌈 부호화기의 상태의 개수에 해당하는 수의 교환 레지스터를 포함하는 교환 레지스터 블록부;
    상기 경로값 저장부로부터의 이전 상태의 경로값과 상기 가지값 계산부로부터의 가지값을 더하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산하고, 현재 상태에 이르는 각 가지로부터의 경로값의 비교 결과를 상기 교환 레지스터 블록부의 현재 상태에 해당하는 교환 레지스터에 저장하고, 상기 비교 결과에 따라 선택되는 경로의 경로값을 상기 경로값 저장부에 저장하는 ACS 연산부;
    상기 경로값 저장부에 저장된 경로값 중 최소의 경로값에 해당하는 상태인 최적 상태를 추출하는 최적 상태 판단부; 및
    상기 교환 레지스터 블록부가 포함하는 교환 레지스터 중에서 상기 최적 상태에 해당하는 교환 레지스터에 저장된 값을 상기 말단 비트열 선택부에 출력하는 출력 레지스터 선택부를 포함하는 비터비 복호 장치.
  3. 제2항에 있어서,
    상기 교환 레지스터는 상기 부호화 단위보다 적은 수의 단위 레지스터를 포함하고,
    상기 출력 레지스터 선택부는 상기 교환 레지스터가 포함하는 단위 레지스터 수 만큼의 복호가 완료될 때마다 상기 최적 상태에 해당하는 교환 레지스터에 저장된 값을 출력하는 비터비 복호 장치.
  4. 제2항에 있어서,
    상기 비터비 복호부는 트랠리스를 진행해 나감에 따라 누적되는 경로값의 오버플로우를 막는 정규화 인자를 생성하는 정규화 인자 생성부를 더 포함하고,
    상기 ACS 연산부는 상기 정규화 인자를 통해 이전 상태의 경로값을 정규화하는 비터비 복호 장치.
  5. 제4항에 있어서,
    상기 정규화 인자 생성부는 이전 상태의 경로값 중에 최소의 경로값으로 정규화 인자를 생성하고,
    상기 ACS 연산부는 이전 상태의 경로값에서 상기 정규화 인자를 감산하는 비터비 복호 장치.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 ACS 연산부는 현재 상태에 이르는 각 가지로부터의 경로값이 상기 경로값 저장부의 메모리 공간보다 큰 경우 상기 메모리 공간이 수용가능한 최대치로 상기 경로값을 변경하는 비터비 복호 장치.
  7. 제2항에 있어서,
    상기 가지값 계산부는,
    상기 수신 비트열 확장부로부터 입력받은 부호화 비트열과 0 및 1의 대표값과의 거리값을 계산하는 거리 계산부;
    상기 거리 계산부에서 계산된 거리값을 통해 상태 천이 과정에서 발생하는 모든 가지값을 생성하는 가지값 덧셈부를 포함하는 비터비 복호 장치.
  8. 제7항에 있어서,
    상기 가지값 계산부는,
    상기 가지값 덧셈부에서 생성된 가지값을 저장하는 가지값 저장부를 더 포함하는 비터비 복호 장치.
  9. a) 채널로부터 길쌈 부호 방식의 부호화 비트열을 수신하는 단계;
    b) 상기 부호화 비트열을 부호화 단위로 입력받아 상기 부호화 비트열에 상기 부호화 비트열의 일부 또는 전부를 1회 이상 순환적으로 추가한 확장된 부호화 비트열을 생성하는 단계;
    c) 상기 확장된 부호화 비트열을 입력받아 레지스터 교환 방식의 비터비 복호를 수행하여 복호 데이터를 출력하는 단계;
    d) 상기 복호 데이터에서 상기 부호화 단위에 해당하는 개수의 말단 비트열을 선택하여 출력하는 단계; 및
    e) 상기 말단 비트열의 순서를 재정렬하여 최종 복호 데이터를 생성하는 단계를 포함하는 비터비 복호 방법.
  10. 제9항에 있어서,
    상기 c) 단계는,
    상기 확장된 부호화 비트열과 0 및 1의 대표값과의 거리값을 통해 상태 천이 과정에서 발생하는 모든 가지에 대해 가지값을 계산하는 단계;
    상기 가지값과 이전 상태의 경로값을 더하여 현재 상태에 이르는 각 가지로부터의 경로값을 계산하고 현재 상태에 이르는 각 가지로부터의 경로값의 비교 결과를 현재 상태에 해당하는 교환 레지스터에 저장하는 단계;
    상기 경로값 중 최소의 경로값에 해당하는 상태인 최적 상태를 추출하는 단계; 및
    상기 최적 상태에 해당하는 교환 레지스터에 저장된 값을 출력하는 단계를 포함하는 비터비 복호 방법.
  11. 제10항에 있어서,
    상기 교환 레지스터는 상기 부호화 단위보다 적은 수의 단위 레지스터를 포함하고,
    상기 교환 레지스터에 저장된 값을 출력하는 단계는 상기 교환 레지스터가 포함하는 단위 레지스터 수 만큼의 복호가 완료될 때마다 상기 최적 상태에 해당하는 교환 레지스터에 저장된 값을 출력하는 비터비 복호 방법.
  12. 제10항에 있어서,
    상기 c) 단계는
    트랠리스를 진행해 나감에 따라 누적되는 경로값의 오버플로우를 막는 정규화 인자를 생성하는 단계;
    상기 정규화 인자를 통해 이전 상태의 경로값을 정규화하는 단계를 더 포함하는 비터비 복호 방법.
  13. 제12항에 있어서,
    상기 정규화 인자는 이전 상태의 경로값 중에 최소의 경로값이고,
    상기 정규화하는 단계는 이전 상태의 경로값에서 상기 정규화 인자를 감산하는 비터비 복호 방법.
  14. 제10항에 있어서,
    상기 c) 단계는 현재 상태에 이르는 각 가지로부터의 경로값이 상기 경로값을 저장하는 메모리 공간보다 큰 경우 상기 메모리 공간이 수용가능한 최대치로 상기 경로값을 변경하는 단계를 더 포함하는 비터비 복호 방법.
  15. 삭제
KR1020050097676A 2005-09-28 2005-10-17 비터비 복호 장치 및 방법 KR100726171B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/529,412 US7765459B2 (en) 2005-09-28 2006-09-28 Viterbi decoder and viterbi decoding method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20050090358 2005-09-28
KR1020050090358 2005-09-28

Publications (2)

Publication Number Publication Date
KR20070035912A KR20070035912A (ko) 2007-04-02
KR100726171B1 true KR100726171B1 (ko) 2007-06-11

Family

ID=38158351

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050097676A KR100726171B1 (ko) 2005-09-28 2005-10-17 비터비 복호 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100726171B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120134549A (ko) 2011-06-02 2012-12-12 삼성전자주식회사 Simd 프로세서를 이용한 병렬 연산 처리 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09139678A (ja) * 1995-11-16 1997-05-27 Sony Corp 最尤復号化器および情報再生装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09139678A (ja) * 1995-11-16 1997-05-27 Sony Corp 最尤復号化器および情報再生装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
미국특허 제5802115호
미국특허 제6877132호
일본공개특허 평09-139678호

Also Published As

Publication number Publication date
KR20070035912A (ko) 2007-04-02

Similar Documents

Publication Publication Date Title
US7765459B2 (en) Viterbi decoder and viterbi decoding method
KR100580160B1 (ko) 변형된 역추적 방식의 2단 연출력 비터비 알고리즘 복호화기
JP3677257B2 (ja) 畳込み復号装置
US20070266303A1 (en) Viterbi decoding apparatus and techniques
JPH07273813A (ja) ソフトシンボルの生成方法と装置
EP1135877A1 (en) Component decoder and method thereof in mobile communication system
KR100346529B1 (ko) 디지탈신호프로세서
EP2339757B1 (en) Power-reduced preliminary decoded bits in viterbi decoder
US8904266B2 (en) Multi-standard viterbi processor
US8055986B2 (en) Viterbi decoder and method thereof
US8009773B1 (en) Low complexity implementation of a Viterbi decoder with near optimal performance
US20070113161A1 (en) Cascaded radix architecture for high-speed viterbi decoder
EP3996285A1 (en) Parallel backtracking in viterbi decoder
KR100390416B1 (ko) 터보 디코딩 방법
KR101212856B1 (ko) 통신 시스템에서 데이터를 복호하는 방법 및 장치
KR100726171B1 (ko) 비터비 복호 장치 및 방법
US7225393B2 (en) Viterbi decoder and Viterbi decoding method
KR100726170B1 (ko) 비터비 복호 장치 및 방법
JP2010206570A (ja) 復号装置、復号方法
US20050138535A1 (en) Method and system for branch metric calculation in a viterbi decoder
KR101134806B1 (ko) 부호 복호 방법
Arun et al. Design and VLSI implementation of a Low Probability of Error Viterbi decoder
El-Dib et al. Memoryless viterbi decoder
Ahmed et al. Viterbi algorithm performance analysis for different constraint length
Chandel et al. Viterbi decoder plain sailing design for TCM decoders

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130520

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140519

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150519

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160519

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170519

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180517

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 13