KR100633484B1 - 래딕스-4 병렬 비터비 디코딩 장치 및 그 방법 - Google Patents

래딕스-4 병렬 비터비 디코딩 장치 및 그 방법 Download PDF

Info

Publication number
KR100633484B1
KR100633484B1 KR1020050049665A KR20050049665A KR100633484B1 KR 100633484 B1 KR100633484 B1 KR 100633484B1 KR 1020050049665 A KR1020050049665 A KR 1020050049665A KR 20050049665 A KR20050049665 A KR 20050049665A KR 100633484 B1 KR100633484 B1 KR 100633484B1
Authority
KR
South Korea
Prior art keywords
path
value
survival
unit
radix
Prior art date
Application number
KR1020050049665A
Other languages
English (en)
Other versions
KR20060073417A (ko
Inventor
최은영
전태현
이석규
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20060073417A publication Critical patent/KR20060073417A/ko
Application granted granted Critical
Publication of KR100633484B1 publication Critical patent/KR100633484B1/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
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • 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/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
    • 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/6561Parallelized implementations
    • 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/6575Implementations based on combinatorial logic, e.g. Boolean circuits

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 고속 비터비 디코딩 장치 및 방법에 관한 것이다.
이를 위하여 본 발명은 Radix-4 구조를 기반으로 하는 복수의 비터비 디코더를 두고, 가지값 연산 시에 채널 상태 정보를 바탕으로 가중치를 부여하고, 상기 복수의 비터비 디코더에서 각각 복호된 데이터를 통합하는 통합부를 둔다. 또한 경로값을 생성하는 과정에서 모듈로 방식을 사용하였으며, 역추적 과정에서 다수의 생존경로 저장부 및 다수의 읽기 제어부를 두었다.
이로써 같은 동작 속도를 가진 하드웨어로 데이터 처리 속도를 고속으로 할 수 있으며, 채널 상태 정보가 반영되어 복호 성능을 향상시킬 수 있다. 또한 정규화 과정이 생략되어 하드웨어 복잡도를 줄이고, 출력 지연을 감소시킬 수 있다. 그리고 다수의 생존경로 저장부 및 다수의 읽기 제어부를 통해 연속적인 데이터 복호가 가능하다.
Radix-4, 병렬, 비터비, 디코더

Description

래딕스-4 병렬 비터비 디코딩 장치 및 그 방법{PARALLEL VITERBI DECODING APPARATUS AND METHOD WITH RADIX-4 STRUCTURE}
도 1a는 종래의 비터비 디코더를 가진 무선 통신 시스템의 수신부의 구성을 도시한 개략도이다.
도 1b는 종래의 비터비 디코더의 내부 구성을 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 무선 통신 시스템의 수신부의 구성을 도시한 개략도이다.
도 3은 본 발명의 실시예에 따른 비터비 디코더의 구성을 도시한 개략도이다.
도 4는 본 발명의 실시예에 따른 가지값 계산부의 구성을 도시한 블록도이다.
도 5는 본 발명의 실시예에 따른 가지값 계산부의 구현 예이다.
도 6은 본 발명의 실시예에 따른 덧셈/비교/선택 연산부의 구성을 도시한 블록도이다.
도 7은 본 발명의 실시예에 따른 역추적부의 구성을 도시한 블록도이다.
도 8은 본 발명의 실시예에 따른 역추적부의 동작을 도시한 도면이다.
도 9는 본 발명의 실시예에 따른 Radix-4 비터비 복호 방법을 도시한 플로 차트다.
본 발명은 비터비 디코딩 장치 및 방법에 관한 것이다.
더욱 상세하게, 본 발명은 고속의 데이터 처리를 위한 비터비 디코더를 구현하기 위해서 래딕스-4(Radix-4) 구조를 기반으로 하고 비터비 디코더를 병렬로 배치한 비터비 디코딩 장치 및 디코딩 방법에 관한 것이다.
비터비 디코더(Viterbi decorder)는 길쌈부호화기에서 부호화된 정보를 복호하기 위한 것이다.
도 1a는 종래의 비터비 디코더를 가진 무선 통신 시스템의 수신부의 구성을 도시한 개략도이다.
종래의 비터비 디코더를 가진 무선 통신 시스템의 수신부는 안테나(10), RF부/모뎀부(20), 역천공부(depuncturing 부)(30), 비터비 디코더(40)을 포함한다.
상기 RF부/모뎀부(20)는 상기 안테나(10)로 수신된 신호를 증폭하고, 변조하여 이진 데이터를 생성한다. 상기 이진 데이터는 경판정(Hard Decision) 또는 연판정(Soft Decision)된 데이터이다.
길쌈부호화기를 가진 송신부에서는 천공부를 두어 데이터 전송률을 높이기 위하여 부호화된 이진 데이터에서 일정한 규칙 상의 위치의 비트를 삭제할 수도 있다. 이 경우 상기 역천공부(30)는 상기 RF부/모뎀부(20)에서 생성된 이진 데이터를 입력받아 송신단에서 데이터율을 높이기 위해 제거된 위치에 더미 비트를 삽입한다. 송신부에 천공부가 없는 경우 수신부에도 상기 역천공부(30)는 불필요하다.
상기 비터비 디코더(40)는 상기 역천공부(30)로부터 데이터를 입력받아 최종 복호데이터를 생성한다.
도 1b는 종래의 비터비 디코더의 내부 구성을 도시한 블록도이다.
비터비 디코더(40)는 가지값 계산부(41), 덧셈/비교/선택 연산부(42), 역추적부(43), 재정렬부(44)를 포함한다.
비터비 디코더(40)는 데이터율에 따라 상기 역천공부(30)로부터 데이터를 입력받는다.
상기 가지값 계산부(41)는 상기 역천공부(30)로부터 입력받은 입력값과 송신단의 트랠리스(Trellis) 상의 부호화 비트(Branch Coded Word, BCW)와의 차이로 모든 가지에 대해 가지값을 계산한다.
상기 덧셈/비교/선택 연산부(42)는 상기 가지값 계산부(41)에서 계산된 가지값과 이전 상태의 경로값을 더하여 각 가지로부터의 경로값을 계산하고, 상기 각 가지로부터의 경로값을 비교하여 최소의 경로값을 갖는 생존경로를 선택하여 이를 메모리에 저장한다.
상기 역추적부(43)는 일정한 메모리에 생존 경로가 쌓이면 역추적 길이를 만족시키게 되고 이 정보만큼 역추적하고 복호를 수행하여 최종 데이터를 생성한다.
이러한 구조를 가진 비터비 디코더의 경우 새로운 경로값을 생성하는 과정에서 이전 상태의 가지값과 경로값을 더하게 되고, 선택된 경로값은 하드웨어 구현시 유한한 비트를 사용하여 저장하므로 오버플로우(overflow)가 발생하게 된다. 따라서 이러한 오버플로우를 방지하기 위하여 최소값으로 모든 상태의 경로값을 빼거나 모든 상태의 경로값을 정규화하는 과정이 필요하게 된다. 이 과정에서 데이터 처리 속도의 지연이 발생하게 되어 출력 지연이 발생하고 하드웨어가 복잡하게 된다.
또한, 역추적 과정에서, 메모리의 읽기 및 쓰기의 속도에 차이가 나고 역추적과 복호가 동시에 이루어지지 못함으로서, 많은 메모리가 요구되고 출력 지연이 발생하게 되므로 지연 없는 출력을 위한 메모리 구조의 설계 및 제어가 중요하게 된다.
한편, 차세대 무선랜 시스템 등 최근의 무선 데이터 환경에서는 고속의 데이터 전송률을 요구하는데, 비터비 디코더의 동작 속도를 빠르게 하는 것은 하드웨어를 복잡하게 하는 등의 어려움이 있다.
본 발명이 이루고자 하는 기술적 과제는 하드웨어 복잡도를 줄이면서 동작 속도를 향상시킨 비터비 디코더를 제공하는 것이다.
상기한 바와 같은 목적을 실현하기 위한 본 발명에 따른 Radix-4 병렬 비터비 디코딩 장치는, 채널 상태 정보를 계산하는 채널 상태 정보 계산부, 상기 채널 상태 정보 계산부로부터의 채널 상태 정보에 따라 가지값 연산 시 가중치를 부여하는 적어도 하나의 Radix-4 비터비 디코더, 각각의 Radix-4 비터비 디코더로부터 출력된 복호데이터를 이용하여 최종 복호데이터를 생성하는 통합부를 포함한다.
상기 Radix-4 비터비 디코더는, 비터비 디코더에 입력되는 입력 정보와 0 및 1의 대표값과의 XOR 연산을 통해 Euclidean 거리를 계산하는 XOR 연산부, 상기 채널 상태 정보 계산부에서 계산된 채널 상태 정보를 바탕으로 상기 XOR 연산부에서 얻은 결과에 가중치를 부여하는 채널 상태 정보 적용부, 상기 채널 상태 정보 적용부에서의 결과를 이용하여 상태천이 과정에서 발생하는 모든 가지값을 계산하는 가지값 덧셈부를 포함할 수도 있다.
상기한 바와 같은 목적을 실현하기 위한 본 발명에 따른 Radix-4 비터비 복호 방법은, 비터비 디코더의 입력 정보와 0 및 1의 대표값과의 거리를 계산하는 단계, 상기 계산된 거리값에 채널 상태 정보에 따라 가중치를 부여하는 단계, 상기 가중치가 부여된 값들을 조합하여 XOR 덧셈을 수행하여 상태천이 과정에서 발생하는 모든 가지값을 계산하는 단계, 이전 상태의 경로값과 상태천이 과정에서 발생하는 가지값을 더하여 트랠리스 상의 모든 경로에 대한 경로값을 생성하는 단계, 상기 생성된 경로값들을 서로 비교하여 가장 작은 값을 선택하고 생존 경로를 획득하는 단계, 상기 획득된 생존경로를 메모리에 저장하는 단계, 상기 생존 경로의 개수가 역추적 길이를 만족하게 되면 역추적을 하여 데이터를 복호하는 단계, 비터비 디코더가 둘 이상인 경우 각각의 비터비 디코더에서 복호된 데이터를 통합하는 단계를 포함한다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기 에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 2는 본 발명의 실시예에 따른 무선 통신 시스템의 수신부의 구성을 도시한 개략도이다.
본 발명의 실시예에 따른 무선 통신 시스템의 수신부는 다수의 안테나(100, 100a, ..., 100n), 다수의 RF부/모뎀부(200, 200a, ..., 200n), 다수의 역천공부(300, 300a, ..., 300n), 다수의 Radix-4 비터비 디코더(400, 400a, ..., 400n), 채널 상태 정보 계산부(500), 통합부(600)를 포함한다.
상기 RF부/모뎀부(200, 200a, ..., 200n)는 상기 다수의 안테나(100, 100a, ..., 100n)로 수신된 RF 신호를 각각 증폭 및 복조하여 이진 데이터를 생성한다.
상기 역천공부(300, 300a, ..., 300n)는 상기 다수의 RF부/모뎀부(200, 200a, ..., 200n)에서 각각 이진 데이터를 입력받아 송신단에서 데이터율을 높이기 위해 제거된 위치에 더미 비트를 삽입한다. 송신단에 천공부가 없는 경우 상기 역천공부(300, 300a, ..., 300n)는 불필요하다.
상기 채널 상태 정보 계산부(500)는 채널 상태 정보를 생성한다. 보통 채널 상태 정보는 파일롯 채널 등을 이용하여 얻을 수 있다.
상기 다수의 Radix-4 비터비 디코더(400, 400a, ..., 400n)는 상기 다수의 역천공부(300, 300a, ..., 300n)로부터 각각 이진 데이터를 입력받아 상기 채널 상태 정보를 반영하여 Radix-4 비터비 알고리즘에 따라 복호 데이터를 생성한다.
상기 통합부(600)는 상기 다수의 Radix-4 비터비 디코더(400, 400a, ..., 400n)로 나뉘어 각각 복호된 데이터를 통합하여 최종 복호 데이터(700)을 생성한다.
Radix-4 비터비 디코더는 Radix-2 비터비 디코더에 비해 2배 빠르므로, 도 2에서와 같이 n개의 Radix-4 비터비 디코더를 병렬로 구성하게 되면 n*2 배 빠르게 된다.
다만, 속도를 늘리기 위해 비터비 디코더의 수를 늘릴수록 비터비 디코더의 하드웨어 면적도 넓어지게 되므로 무한정 늘릴 수는 없다.
차세대 무선랜 시스템에서는 200Mbps 이상의 전송속도를 요구하므로 이를 만족시키기 위한 비터비 디코더의 동작속도는 수신 40MHz 샘플에서
Figure 112005030704777-pat00001
클럭이 필요하고, 보통 n은 최소 3이므로 320MHz가 되어야한다. 따라서 2개의 Radix-4 비터비 디코더를 병렬로 구성하면, 200Mbps의 비터비 디코더 장치는 80MHz에서 구현가능하게 된다.
도 3은 본 발명의 실시예에 따른 비터비 디코더의 구성을 도시한 개략도이다.
통상의 비터비 디코더와 같이 본 발명의 실시예에 따른 비터비 디코더는 가지값 계산부(410), 덧셈/비교/선택 연산부(420), 역추적부(430), 재정렬부(440)를 포함한다.
상기 가지값 계산부(410)는 상기 채널 상태 정보 계산부(500)로부터의 채널 상태 정보를 반영하여 상태천이 과정에서 발생하는 모든 가지값을 계산한다.
상기 덧셈/비교/선택 연산부(420)는 현재 상태의 가지값과 이전 상태의 경로값을 더하여 트랠리스 상의 모든 경로에 대한 경로값을 생성하고, 상기 경로값들을 서로 비교하여 가작 작은 값을 선택하여 생존 경로를 획득한다.
상기 역추적부(430)는 상기 덧셈/비교/선택 연산부(420)에서 선택된 생존경로를 통해 역추적 과정으로 데이터를 복호하게 된다.
상기 재정렬부(440)는 상기 역추적부(430)에 의해 출력 순서가 뒤바뀌어 복호된 데이터열을 다시 정렬하게 된다. 보통 재정렬부는 LIFO(Last Input First Output)로 구성 가능하다.
도 4는 본 발명의 실시예에 따른 가지값 계산부의 구성을 도시한 블록도이다.
본 발명의 실시예에 따른 가지값 계산부는 XOR 연산부(411), 채널 상태 정보 적용부(412), 가지값 덧셈부(413), 가지값 저장부(414)를 포함한다.
상기 XOR 연산부(411)는 비터비 디코더에 입력되는 입력 정보와 0 및 1의 대표값과의 XOR 연산을 통해 Euclidean 거리를 계산한다.
상기 채널 상태 정보 적용부(412)는 상기 채널 상태 정보 계산부(500)에서 계산된 채널 상태 정보를 바탕으로 상기 XOR 연산부(411)에서 얻은 결과에 가중치를 부여한다. 채널 상태가 좋은 경우 상기 XOR 연산부(411)에서 얻은 결과에 가중치를 크게 부여하고, 채널 상태가 좋지 못한 경우는 가중치를 적게 두어 가지값 연산 시 채널 상태를 반영하게 되는 것이다. 채널 상태에 대한 가중치를 부여함으로써 복호 성능을 향상시킬 수 있다.
상기 가지값 덧셈부(413)는 상기 채널 상태 정보 적용부(412)에서의 결과를 이용하여 상태천이 과정에서 발생하는 모든 가지값을 계산한다.
상기 가지값 저장부(414)에는 상기 가지값 덧셈부(413)에서 계산된 가지값이 저장된다.
도 5는 본 발명의 실시예에 따른 가지값 계산부의 구현 예이다.
도 5는 데이터율이 1/2인 비터비 디코더의 가지값 계산부의 구현 예를 도시하였다. 또한 도 5에서는 XOR 연산부(411), 채널 상태 정보 적용부(412), 가지값 덧셈부(413)만을 도시하였다.
데이터(g0, g1, g2, g3)는 비터비 디코더의 입력 데이터이다. 가지값 계산시 채널 상태 정보를 반영하기 위하여 데이터(g0, g1, g2, g3)는 연판정된 데이터이도록 하는 것이 바람직하다.
0의 대표값 및 1의 대표값은 3비트 연판정의 경우에 있어서 보통 각각 011 및 100으로 두거나 그 반대로 둘 수 있다.
채널 상태 정보(CSI 0, CSI 1, CSI 2, CSI 3)은 상기 채널 상태 정보 계산부(500)에서 생성된 것으로 각각 데이터(g0, g1, g2, g3) 수신시의 채널 상태 정보이다.
상기 채널 상태 정보 적용부(412)에서의 결과값(C0, C1, C2, C3)는 각각 비터비 디코더의 입력 데이터(g0, g1, g2, g3)와 0의 대표값과의 XOR 연산을 수행하여 구한 값이다. 마찬가지로, 상기 채널 상태 정보 적용부(412)에서의 결과값(/C0, /C1, /C2, /C3)는 각각 비터비 디코더의 입력 데이터(g0, g1, g2, g3)와 1의 대표 값과의 XOR 연산을 수행하여 구한 값이다.
가지값 덧셈부(413)에서는 상기 채널 상태 정보 적용부(412)에서의 결과를 이용하여 상태천이 과정에서 발생하는 모든 가지값을 계산하게 된다. Radix-4 비터비 디코더의 경우 상태천이 과정에서 발생하는 가지값은 16가지가 나오게 되는데, 이 가지값은 상기 채널 상태 정보 적용부(412)에서의 결과값(C0, C1, C2, C3, /C0, /C1, /C2, /C3)을 조합하여 덧셈을 통해 구할 수 있다.
예를 들어, 가지값(BM0000)은 트랠리스 상의 부호화 비트가 (low, low, low, low)인 경우의 가지값을 의미한다. 또, 가지값(BM0001)은 트랠리스 상의 부호화 비트가 (low, low, low, high)인 경우의 가지값을 의미한다.
도 6은 본 발명의 실시예에 따른 덧셈/비교/선택 연산부의 구성을 도시한 블록도이다.
본 발명의 실시예에 따른 덧셈/비교/선택 연산부(420)는 경로값 덧셈부(421), 모듈로 비교부(422), 경로값 선택부(423), 경로값 저장부(424)를 포함한다.
상기 경로값 덧셈부(421)는 이전 상태의 경로값과 상기 상태천이 과정에서 발생하는 모든 가지값 중 하나를 2의 보수 방식으로 더하여 트랠리스 상의 모든 경로에 대한 경로값을 생성한다. 이때 상기 이전 상태의 경로값은 상기 경로값 저장부(424)로부터 얻어진다.
상기 모듈로 비교부(422)는 상기 경로값 덧셈부(421)에서의 경로값들을 2의 보수 방식의 뺄셈을 통하여 비교한다.
상기 경로값 선택부(423)는 상기 모듈로 비교부(422)에서의 결과로 새로운 생존경로를 선택하고 새로운 경로값을 생성한다.
상기 경로값 저장부(424)에는 상기 경로값 선택부(423)에서 생성된 새로운 경로값이 저장된다.
통상의 비터비 디코더에서는 새로운 경로값을 생성하는 과정에서 이전 상태의 경로값과 가지값을 더하게 되고, 선택된 경로값은 하드웨어 구현시 유한한 비트를 사용하여 저장하므로 오버플로우(overflow)가 발생하게 된다. 따라서 이러한 오버플로우를 방지하기 위하여 최소값으로 모든 상태의 경로값을 빼거나 모든 상태의 경로값을 정규화하는 과정이 상기 경로값 저장부(424) 이전에 필요하게 된다. 이 과정에서 데이터 처리 속도의 지연이 발생하게 되어 출력 지연이 발생하고 하드웨어가 복잡하게 된다.
그러나 본 발명에서는 모듈로(modulo) 방식을 사용하여 경로값은 정규화 과정 없이 계속 누적되어 사용될 수 있다.
상기 경로값 덧셈부(421)와 상기 모듈로 비교부(422)에서 2의 보수 방식을 사용하여 누적되는 경로값은 최소값을 선택하는 과정에서 일정한 크기를 넘지 않는 범위에서 변하기 때문에 정규화 과정이 없어도 오버플로우는 발생하지 않게 된다.
도 7은 본 발명의 실시예에 따른 역추적부의 구성을 도시한 블록도이다.
본 발명의 실시예에 따른 역추적부(430)는 생존경로 쓰기 제어부(431), 둘 이상의 생존경로 저장부(432a, 432b, ..., 432n), 둘 이상의 생존경로 읽기 제어부(433a, 433b, ..., 433n), 역추적 및 복호화 수행부(434), 역추적 제어부(435)를 포함한다.
상기 둘 이상의 생존경로 저장부(432a, 432b, ..., 432n)에는 상기 경로값 선택부(423)로부터의 생존경로가 저장된다.
상기 생존경로 쓰기 제어부(431)는 상기 경로값 선택부(423)로부터의 생존경로를 상기 둘 이상의 생존경로 저장부(432a, 432b, ..., 432n) 중 한 곳에 저장시킨다.
상기 둘 이상의 생존경로 읽기 제어부(433a, 433b, ..., 433n)는 상기 둘 이상의 생존경로 저장부(432a, 432b, ..., 432n)에 대응하여 읽기 동작을 수행한다.
상기 역추적 및 복호화 수행부(434)는 역추적 가능한 수의 생존경로가 쌓이면 상기 둘 이상의 생존경로 읽기 제어부(433a, 433b, ..., 433n)를 통한 생존경로를 기초로 역추적 및 복호화를 수행한다.
상기 역추적 제어부(435)는 상기 둘 이상의 생존경로 저장부(432a, 432b, ..., 432n)와 상기 생존경로 쓰기 제어부(431), 상기 둘 이상의 생존경로 읽기 제어부(433a, 433b, ..., 433n), 상기 역추적 및 복호화 수행부(434)를 제어한다. 상기 역추적 제어부(435)는 상기 둘 이상의 생존경로 저장부(432a, 432b, ..., 432n) 중에서 생존경로를 기록할 생존경로 저장부를 결정하고, 역추적을 수행할 생존경로 저장부를 결정하고, 복호를 수행할 생존경로 저장부를 결정한다. 이로써 생존경로 저장부의 읽고 쓰는 동작의 충돌을 막고 역추적 및 복호가 원활하게 이루어진다.
상기 생존경로 저장부는 메모리로 구현하는 것이 용이한데, 메모리는 특성상 동시에 쓰고 읽는 것이 힘들다. 따라서 본 발명에서는 둘 이상의 생존 경로 저장부를 두어 생존경로가 기록되는 중에도 다른 생존 경로 저장부에서는 값을 읽어 들어 역추적 혹은 복호화를 진행할 수 있도록 하였다. 이로써 데이터의 출력 지연을 줄이고, 연속적으로 데이터가 복호되게 된다.
도 8은 본 발명의 실시예에 따른 역추적부의 동작을 도시한 도면이다.
도 8에 도시된 실시예에서는 6개의 생존경로 저장부를 사용하였다.
동작 상태(WR)는 생존경로를 기록 중인 상태를 의미한다. 동작상태(DC)는 복호화가 진행 중인 상태를 의미한다. 동작 상태(TB)는 역추적이 진행 중인 상태를 의미한다. 동작 상태(IDLE)는 생존경로 저장부가 휴지 상태에 있음을 의미한다.
도 8에 도시된 바와 같이, 본 발명의 실시예에 따르면 일정 시간 동안 하나의 생존경로 저장부에는 생존경로가 기록되고, 같은 시간 동안 다른 생존 경로 저장부에서는 역추적이 진행되고, 같은 시간 동안 또 다른 생존 경로 저장부에서는 복호화가 진행된다. 이로써 생존경로 저장부에 생존경로를 기록하는 중에도 역추적 및 복호화가 진행되어 데이터가 출력될 수 있는 것이다.
도 9는 본 발명의 실시예에 따른 Radix-4 비터비 복호 방법을 도시한 플로 차트다.
본 발명의 실시예에 따른 Radix-4 비터비 복호를 수행하기 위해서 우선 비터비 디코더의 입력 정보와 0 및 1의 대표값과의 거리를 계산하고(S100), 계산된 값에 채널 상태 정보에 따라 가중치를 부여한다(S110).
그리고, 가중치가 부여된 값들을 조합하여 XOR 덧셈을 수행하여 상태천이 과정에서 발생하는 모든 가지값을 계산한다(S120).
그 후, 이전 상태의 경로값과 상기 상태천이 과정에서 발생하는 가지값을 더 하여 트랠리스 상의 모든 경로에 대한 경로값을 생성하고(S130), 생성된 경로값들을 서로 비교하여 가장 작은 값을 선택하고 생존 경로를 획득하고(S140), 획득된 생존경로를 메모리에 저장한다(S150). 이때, 이전 상태의 경로값과 상기 상태천이 과정에서 발생하는 가지값을 2의 보수 방식으로 더하여 트랠리스 상의 모든 경로에 대한 경로값을 생성하고, 생성된 경로값들을 서로 2의 보수 방식으로 뺄셈을 수행하여 비교하여 가장 작은 값을 선택하고 생존 경로를 획득할 수도 있다.
상기 생존 경로의 개수가 역추적 길이를 만족하게 되면 역추적을 하여 데이터를 복호하고(170), 비터비 디코더가 다수인 경우 각각의 비터비 디코더에서 복호된 데이터를 통합하여(S190), 최종 복호 데이터를 출력하게 된다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
본 발명에 따르면, Radix-4 구조를 기반으로 하는 비터비 디코더를 병렬로 사용하여 같은 동작 속도를 가진 하드웨어로 데이터 처리 속도를 고속으로 할 수 있으며, 채널 상태 정보가 반영되어 복호 성능을 향상시킬 수 있는 효과가 있다.
또한 정규화 과정이 생략되어 하드웨어 복잡도를 줄이고, 출력 지연을 감소시킬 수 있는 효과가 있다.
그리고, 다수의 생존경로 저장부 및 다수의 읽기 제어부를 통해 연속적인 데 이터 복호가 가능하다.

Claims (7)

  1. 채널 상태 정보를 계산하는 채널 상태 정보 계산부;
    상기 채널 상태 정보 계산부로부터의 채널 상태 정보에 따라 가지값 연산 시 가중치를 부여하는 적어도 하나의 Radix-4 비터비 디코더;
    각각의 Radix-4 비터비 디코더로부터 출력된 복호데이터를 이용하여 최종 복호데이터를 생성하는 통합부를 포함하는 Radix-4 병렬 비터비 디코딩 장치.
  2. 제 1 항에 있어서,
    상기 Radix-4 비터비 디코더는,
    비터비 디코더에 입력되는 입력 정보와 0 및 1의 대표값과의 XOR 연산을 통해 Euclidean 거리를 계산하는 XOR 연산부;
    상기 채널 상태 정보 계산부에서 계산된 채널 상태 정보를 바탕으로 상기 XOR 연산부에서 얻은 결과에 가중치를 부여하는 채널 상태 정보 적용부;
    상기 채널 상태 정보 적용부에서의 결과를 이용하여 상태천이 과정에서 발생하는 모든 가지값을 계산하는 가지값 덧셈부를 포함하는 Radix-4 병렬 비터비 디코딩 장치.
  3. 제 2 항에 있어서,
    상기 Radix-4 비터비 디코더는,
    상기 가지값 덧셈부에서 계산된 가지값을 저장하는 가지값 저장부를 더 포함하는 Radix-4 병렬 비터비 디코딩 장치.
  4. 제 2 항 또는 제 3 항 중 어느 한 항에 있어서,
    상기 Radix-4 비터비 디코더는,
    이전 상태의 경로값과 상기 상태천이 과정에서 발생하는 모든 가지값 중 하나를 2의 보수 방식으로 더하여 트랠리스 상의 모든 경로에 대한 경로값을 생성하는 경로값 덧셈부;
    상기 경로값 덧셈부에서의 경로값들을 2의 보수 방식의 뺄셈을 통하여 비교하는 모듈로 비교부;
    상기 모듈로 비교부에서의 결과로 새로운 생존경로를 선택하고 새로운 경로값을 생성하는 경로값 선택부;
    상기 경로값 선택부에서 생성된 경로값이 저장되는 경로값 저장부를 더 포함하고,
    상기 경로값 덧셈부에서 상기 이전 상태의 경로값은 상기 경로값 저장부로부터 얻어지는 Radix-4 병렬 비터비 디코딩 장치.
  5. 제 4 항에 있어서,
    상기 Radix-4 비터비 디코더는,
    상기 경로값 선택부로부터의 생존경로가 저장되는 둘 이상의 생존경로 저장 부;
    상기 경로값 선택부로부터의 생존경로를 상기 둘 이상의 생존경로 저장부 중 한 곳에 저장시키는 생존경로 쓰기 제어부;
    상기 둘 이상의 생존경로 저장부에 대응하여 읽기 동작을 수행하는 둘 이상의 생존경로 읽기 제어부;
    역추적 가능한 수의 생존경로가 쌓이면 상기 둘 이상의 생존경로 읽기 제어부를 통한 생존경로를 기초로 역추적 및 복호화를 수행하는 역추적 및 복호화 수행부;
    상기 둘 이상의 생존경로 저장부와 상기 생존경로 쓰기 제어부, 상기 둘 이상의 생존경로 읽기 제어부, 상기 역추적 및 복호화 수행부를 제어하는 역추적 제어부를 더 포함하는 Radix-4 병렬 비터비 디코딩 장치.
  6. Radix-4 비터비 복호 방법에 있어서,
    (a) 비터비 디코더의 입력 정보와 0 및 1의 대표값과의 거리를 계산하는 단계;
    (b) 상기 (a) 단계에서 계산된 값에 채널 상태 정보에 따라 가중치를 부여하는 단계;
    (c) 상기 (b) 단계에서 가중치가 부여된 값들을 조합하여 XOR 덧셈을 수행하여 상태천이 과정에서 발생하는 모든 가지값을 계산하는 단계;
    (d) 이전 상태의 경로값과 상기 (c) 단계에서의 가지값을 더하여 트랠리스 상의 모든 경로에 대한 경로값을 생성하는 단계;
    (e) 상기 (d) 단계에서 생성된 경로값들을 서로 비교하여 가장 작은 값을 선택하고 생존 경로를 획득하는 단계;
    (f) 상기 (e) 단계에서 획득된 생존경로를 메모리에 저장하는 단계;
    (g) 상기 생존 경로의 개수가 역추적 길이를 만족하게 되면 역추적을 하여 데이터를 복호하는 단계;
    (h) 비터비 디코더가 둘 이상인 경우 각각의 비터비 디코더에서 복호된 데이터를 통합하는 단계를 포함하는 Radix-4 비터비 복호 방법.
  7. 제 6 항에 있어서,
    상기 (d) 단계는,
    이전 상태의 경로값과 상기 (c) 단계에서의 가지값을 2의 보수 방식으로 더하여 트랠리스 상의 모든 경로에 대한 경로값을 생성하고,
    상기 (e) 단계는,
    상기 (d) 단계에서 생성된 경로값들을 서로 2의 보수 방식으로 뺄셈을 수행하여 비교하여 가장 작은 값을 선택하고 생존 경로를 획득하는 Radix-4 비터비 복호 방법.
KR1020050049665A 2004-12-23 2005-06-10 래딕스-4 병렬 비터비 디코딩 장치 및 그 방법 KR100633484B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020040111067 2004-12-23
KR20040111067 2004-12-23

Publications (2)

Publication Number Publication Date
KR20060073417A KR20060073417A (ko) 2006-06-28
KR100633484B1 true KR100633484B1 (ko) 2006-10-13

Family

ID=37166498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050049665A KR100633484B1 (ko) 2004-12-23 2005-06-10 래딕스-4 병렬 비터비 디코딩 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100633484B1 (ko)

Also Published As

Publication number Publication date
KR20060073417A (ko) 2006-06-28

Similar Documents

Publication Publication Date Title
US6148431A (en) Add compare select circuit and method implementing a viterbi algorithm
US7765459B2 (en) Viterbi decoder and viterbi decoding method
US20070266303A1 (en) Viterbi decoding apparatus and techniques
JP2006508577A5 (ko)
US7263652B2 (en) Maximum likelihood detector and/or decoder
JPH07202957A (ja) デジタル信号プロセッサ
US8055986B2 (en) Viterbi decoder and method thereof
KR100437697B1 (ko) 다수준 격자부호변조방식의 복호 방법 및 장치
KR20030036845A (ko) 트렐리스에 기초한 채널 부호화를 위한 복호기
US7822138B2 (en) Calculating apparatus and method for use in a maximum likelihood detector and/or decoder
US7046747B2 (en) Viterbi decoder and decoding method using rescaled branch metrics in add-compare-select operations
KR100633484B1 (ko) 래딕스-4 병렬 비터비 디코딩 장치 및 그 방법
US20080112514A1 (en) Method and system for performing Viterbi decoding using a reduced trellis memory
US20070168846A1 (en) Data decoding apparatus and method in a communication system
US9948427B2 (en) High speed add-compare-select for Viterbi decoder
US7103831B1 (en) Burst reliability and error locator for trellis codes
KR0157121B1 (ko) 비터비 디코더의 경로 메트릭 계산회로
JP2010206570A (ja) 復号装置、復号方法
KR100726171B1 (ko) 비터비 복호 장치 및 방법
US7127666B2 (en) Device and method to carry out a viterbi-algorithm
KR100726170B1 (ko) 비터비 복호 장치 및 방법
US8099658B2 (en) Reduced complexity Viterbi decoder
JPH10209882A (ja) ビタビ復号方法
KR100335146B1 (ko) 비터비 디코더의 트레이스 백 장치
KR0169777B1 (ko) 고속 비터비 복호기의 구현을 위한 정규화 방법 및 장치

Legal Events

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

Payment date: 20101001

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee