KR100549870B1 - 테일-바이팅 기법에서 마지막 상태를 찾는 방법 및 이를이용한 터보 부호기 - Google Patents

테일-바이팅 기법에서 마지막 상태를 찾는 방법 및 이를이용한 터보 부호기 Download PDF

Info

Publication number
KR100549870B1
KR100549870B1 KR1020040053309A KR20040053309A KR100549870B1 KR 100549870 B1 KR100549870 B1 KR 100549870B1 KR 1020040053309 A KR1020040053309 A KR 1020040053309A KR 20040053309 A KR20040053309 A KR 20040053309A KR 100549870 B1 KR100549870 B1 KR 100549870B1
Authority
KR
South Korea
Prior art keywords
matrix
state
input
modulo
adder
Prior art date
Application number
KR1020040053309A
Other languages
English (en)
Other versions
KR20060004259A (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 KR1020040053309A priority Critical patent/KR100549870B1/ko
Priority to US11/178,892 priority patent/US7392462B2/en
Publication of KR20060004259A publication Critical patent/KR20060004259A/ko
Application granted granted Critical
Publication of KR100549870B1 publication Critical patent/KR100549870B1/ko

Links

Images

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/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • 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
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2996Tail biting

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)
  • Error Detection And Correction (AREA)

Abstract

테일 바이팅 기법에서, 병렬 연산을 통하여 영 상태에서 인코딩을 시작한 터보 부호기의 마지막 상태를 찾아낼 수 있는 방법 및 이를 이용한 터보 부호기의 마지막 상태 계산장치가 개시되어 있다. 테일 바이팅 기법에서 마지막 상태를 찾아내는 방법은 모듈로-2 덧셈연산하는 단계, 덧셈연산된 결과를 상태행렬의 거듭제곱 및 입력행렬과 곱셈연산하는 단계, 및 곱셈연산 결과들을 덧셈연산하는 단계를 포함한다. 모듈로-2 덧셈연산하는 단계는 일정 주기로 반복되는 상태행렬의 거듭제곱 값 중 같은 값을 가지는 상태행렬의 거듭제곱과 곱해질 부호화 입력들을 모듈로-2 덧셈연산한다. 터보 부호기의 마지막 상태 계산장치는 입력덧셈부, 및 행렬연산부를 포함한다. 행렬연산부는 입력덧셈부의 출력결과를 상태행렬의 거듭제곱 및 입력행렬과 곱셈연산하고 그 결과들을 모듈로-2 덧셈연산하여 마지막 상태를 찾아낸다. 따라서 빠른 속도, 낮은 전력으로 테일 바이팅 기법에서 영상태에 대한 터보 부호기의 마지막 상태를 찾아낼 수 있다.

Description

테일-바이팅 기법에서 마지막 상태를 찾는 방법 및 이를 이용한 터보 부호기{METHOD FOR FINDING A LAST STATE IN TAIL-BITING AND TURBO ENCODER USING THE SAME}
도 1은 종래 기술에 따른 터보 부호기의 블록도.
도 2는 종래 기술에 따른 체계적 순환 길쌈 부호기의 블록도.
도 3은 종래 기술에 따른 터보 부호화 방법의 상태도.
도 4는 본 발명의 실시예에 사용되는 터보 부호기의 체계적 순환 길쌈 부호기의 블록도.
도 5는 본 발명의 실시예에 따른 터보 부호기의 마지막 상태 계산장치의 블록도.
도 6은 상태행렬의 거듭제곱 및 입력행렬과의 곱을 정리한 도표.
도 7은 다른 실시예에 따른 도 5에 도시된 비트 덧셈부의 블록도.
도 8은 본 발명의 효과를 종래기술과 비교하기 위한 도표.
*도면의 주요부분에 대한 부호의 설명*
510 : 입력 덧셈부
511, 513 : 비트 덧셈부
520 : 행렬 연산부
본 발명은 터보 부호기에 관한 것으로, 특히 테일 바이팅 기법을 이용하여 부호화하는 터보 부호기에 관한 것이다.
터보 부호는 복잡도에 비해 오류 정정 능력이 강력하고 다른 블록 크기나 부호율(code rate)에 대해 융통성이 크기 때문에 최근의 몇 년 동안 큰 관심을 받아왔다. 터보 부호는 길쌈 부호(convolutional code)의 일종으로 터보 부호기는 도 1에 도시된 바와 같이 2개의 체계적 순환 길쌈(recursive systematic convolutional; RSC)부호기 및 인터리버(interleaver)로 구성된다. 또한 통상의 터보 부호기는 한 개의 체계적 비트(systematic bit)를 가지나 전송률을 높이기 위해 도 2에 도시된 바와 같이 두 개의 체계적 비트(systematic bit)를 사용한 터보 부호를 사용하기도 한다. 두 개의 체계적 비트(systematic bit)를 사용하면 한 번의 클록 사이클에 두 개의 입력 비트를 부호화 할 수 있다.
길쌈 부호(convolutional code)의 특성상 터보 부호기는 원칙적으로 거의 무한한 입력 시퀀스를 부호화할 수 있음은 명확하다. 영상태(터보 부호기의 모든 레지스터 값이 논리 '0'인 상태)의 일정시점부터 부호화를 시작하면 연속적으로 계속해서 부호화를 할 수 있는 것이다. 그러나 실제적인 제한(동기화, 채널 특성 등)에 의하여 거의 모든 통신 시스템이 블록 단위의 입력에 대한 부호화를 수행하며, 따라서 터보 복호기에서는 제한된 길이를 가지는 단위 블록을 찾아낼 수 있는 방법이 필요하다. 일반적으로 터보 복호기에서 단위 블록을 찾아내기 위해서 도 3에 도시된 바와 같이 영상태에서 시작한 터보 부호기의 부호화 종료시의 상태를 영상태로 돌리는 방법이 사용되었다. 이를 위해서는 데이터 비트 외에 테일 비트(tail bit)를 부호에 첨가하여야만 하였으므로 전송률의 손실이 발생하고 특별히 부호 길이가 짧은 경우에는 심각한 문제가 되어왔다.
테일-바이팅(tail-biting)기법은 터보 부호의 성능저하 없이 전송률의 손실을 없앨 수 있도록 한다. 테일 바이팅 기법에 의하면 부호기의 초기 상태와 마지막 상태가 영상태(all-zero state)일 필요가 없다. 테일-바이팅 기법의 기본 개념은 터보 부호기의 부호화 초기 상태와 마지막 상태가 같은 상태가 되도록 하는 것이다. 이와 같이 터보 부호기의 초기 상태와 마지막 상태가 같게 되도록 터보 부호화를 하면, 터보 복호기 측에서 마지막 데이터를 앞에 붙이고, 앞의 데이터를 뒤에 붙여서 정방향, 역방향에서 초기 상태 및 마지막 상태를 찾아낼 수 있다. 따라서 결국 초기 상태와 마지막 상태가 같게 되도록 터보 부호화를 수행하면 테일 비트를 첨가할 필요가 없어서 전송률을 높일 수 있다.
테일 바이팅 기법에 따른 터보 부호화는 다음과 같은 단계에 따라 진행된다.
<단계1> 영상태에서 부호화를 시작하였을 경우 터보 부호기의 마지막 상태를 찾아낸다. 이 단계는 영상태를 초기 상태로 하여 터보 부호화를 함으로써 수행될 수 있다.
<단계2> 찾아낸 마지막 상태에 따라, 부호화될 입력에 대하여 초기 상태와 마지막 상태가 같은 부호화 상태를 찾아낸다. 통상의 경우 이 단계는 룩업 테이블(lookup-table)에서 찾는 방식으로 진행된다. 즉, 영상태에서 부호화를 시작하였을 경우 터보 부호기의 마지막 상태 각각에 대한 초기 상태와 마지막 상태가 같은 상태를 미리 룩업 테이블에 저장하여 놓고 이를 이용하게 되는 것이다.
<단계3> 찾아낸 부호화 상태를 초기 상태로 하여 터보 부호화를 수행한다.
이상 살펴본 각각의 단계에서 <단계1> 및 <단계3>은 동일한 하드웨어에 의하여 수행될 수 있으며 <단계2>는 영상태에서 부호화를 시작하였을 경우에 대한 마지막 상태 각각에 대응하는 부호화 상태를 저장하여 놓은 룩업 테이블(lookup-table)을 이용하여 수행된다.
그러나 종래 기술에 따른 테일 바이팅 기법은 부호화 시간이 길어진다는 문제점이 있었다. 비록, <단계1> 이 터보 부호기의 하드웨어를 그대로 사용할 수 있기는 하지만 결국 <단계1> 및 <단계3>에서 두 번의 부호화를 수행하는 결과가 되어 특히 블록 크기가 큰 터보 부호에 대해서는 심각한 문제가 되었다.
상기 문제점을 해결하기 위한 본 발명의 목적은 적은 전력으로 빠르게 테일 바이팅 기법에서 마지막 상태를 찾아낼 수 있는 방법을 제공하는 것이다.
본 발명의 다른 목적은 적은 전력으로 빠르게 터보 부호화를 할 수 있는 테일 바이팅 부호화 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 적은 전력으로 빠르게 테일 바이팅 기법에서 마지막 상태를 찾아낼 수 있는 터보 부호기의 마지막 상태 계산장치를 제공하는 것이다.
상술한 본 발명의 목적을 달성하기 위한 테일 바이팅 기법에서 마지막 상태를 찾는 방법은 부호화 입력들을 모듈로-2 덧셈연산 하는 단계, 덧셈연산된 결과를 상태행렬의 거듭제곱 및 입력행렬과 곱셈연산 하는 단계, 및 곱셈연산 결과들을 덧셈연산하는 단계를 포함한다.
또한, 상술한 본 발명의 다른 목적을 달성하기 위한 터보 부호기의 테일 바이팅 부호화 방법은 부호화 입력들을 모듈로-2 덧셈연산하는 단계, 덧셈연산된 결과를 상태행렬의 거듭제곱 및 입력행렬과 곱셈연산하는 단계, 곱셈연산된 결과들을 덧셈연산하여 영상태에서 부호화를 시작한 터보 부호기의 마지막 상태를 찾는 단계, 상기 마지막 상태를 이용하여 부호화 상태를 찾아내는 단계, 및 부호화 상태를 이용하여 부호화를 수행하는 단계를 포함한다.
또한 상술한 본 발명의 또 다른 목적을 달성하기 위한 터보 부호기의 마지막 상태 계산장치는 일정 주기로 반복되는 상태행렬의 거듭제곱 중 같은 값을 가지는 상태행렬의 거듭제곱과 곱해질 입력들을 모듈로-2 덧셈연산하는 입력덧셈부, 입력덧셈부의 출력결과를 상태행렬의 거듭제곱 및 입력행렬과 곱셈연산하고 그 결과들을 모듈로-2 덧셈연산하여 테일 바이팅 기법에서 마지막 상태를 찾는 행렬연산부를 포함한다.
이러한 테일 바이팅 기법 및 터보 부호기의 마지막 상태 계산장치에 따르면, 적은 전력으로 빠르게 터보 부호기의 테일 바이팅 기법에서 영상태에 대한 부호기의 마지막 상태를 찾아낼 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다.
도 4는 본 발명의 실시예에 사용되는 터보 부호기의 체계적 순환 길쌈(recursive systematic convolutional; RSC) 부호기의 블록도이다. 도 4에 도시된 체계적 순환 길쌈 부호기는 종래기술에 의한 것으로 도 4를 참조하면, 본 발명의 일실시예에 사용되는 체계적 순환 길쌈 부호기는 2개의 부호화 입력 비트를 받아 3개의 출력 비트를 출력하는 것을 알 수 있다. 이는 전송률을 높이기 위한 것으로 광대역 무선 통신(broad band wireless access; IEEE802.16)이나, 고속 이동 인터넷(high speed portable internet; HPI)에서 사용되고 있다.
도 4에 도시된 체계적 순환 길쌈 부호기의 부호화 입력을 다음의 수학식 1과 같이 표시한다.
Figure 112004030329173-pat00001
또한, 도 4에 도시된 체계적 순환 길쌈 부호기의 상태 및 출력을 다음의 수학식 2 및 수학식 3과 같이 표시할 수 있다.
Figure 112004030329173-pat00002
Figure 112004030329173-pat00003
여기서 행렬 A는 상태 행렬(state matrix)이고, 행렬 B는 입력 행렬이다. 수학식 2의 식을 초기상태 S0 및 입력만으로 표시한 식으로 고쳐보면 수학식 4와 같이 됨을 알 수 있다.
Figure 112004030329173-pat00004
수학식 4를 살펴보면 우변의 첫 번째 계산은 초기 상태 성분이고, 두 번째 계산은 입력에만 관계된 영상태 성분이다. 테일 바이팅 기법에 있어서 초기 상태와 마지막 상태가 같은 부호화 상태를 찾는 것이 필요하므로 sN = s0인 부호화 상태 s 0를 계산하기 위해 수학식 4를 수학식 5와 같이 변형할 수 있다.
Figure 112004030329173-pat00005
수학식 5를 계산하여 s0를 구하면 이 s0를 초기상태로 놓고 부호화를 수행하여 테일 바이팅 기법에 의한 터보 부호화를 할 수 있다. 그런데 수학식 5의 우변은 수학식 4에서 s0가 0인 상태 즉 영상태에서 시작하여 단위 블록의 입력에 대한 부호화 수행 후의 상태를 나타낸다. 결국 종래 기술에 있어서는 수학식 5의 우변을 도 4에 도시된 체계적 순환 길쌈 부호기에 의해 단위 블록의 입력에 대한 부호화를 수 행함으로서 구하였으나 본 발명에서는 병렬 연산을 통하여 빠르고 전력 소비를 적게 하면서 수학식 5의 우변을 구하고자 하는 것이다.
이제 어떤 방법으로 빠르고 전력 소비가 적게 수학식 5의 우변을 구할 수 있는지를 살펴본다. 수학식 6은 도 4에 도시된 체계적 순환 길쌈 부호기의 상태 행렬 및 입력 행렬을 나타낸다. 상태 행렬 및 입력 행렬은 체계적 순환 길쌈 부호기의 고유한 특징을 나타내는 것으로 도 4에 도시된 체계적 순환 길쌈 부호기의 경우에 플립플롭이 3개 이고 부호화 입력이 두 비트씩 들어오므로 상태 행렬은 3 ×3행렬이고, 입력 행렬은 3 ×2행렬이다.
Figure 112004030329173-pat00006
통상의 경우에 상태 행렬 A의 거듭제곱은 단위 행렬(identical metrix)이 된다. 따라서 상태 행렬의 거듭제곱은 일정한 주기를 가지고 반복되게 되며 이를 수학식 7과 같이 표현할 수 있다.
Figure 112004030329173-pat00007
Figure 112004030329173-pat00008
이와 같은 상태 행렬의 특성을 이용하면 수학식 5의 우변을 병렬적으로 계산 하여 빠르게 계산할 수 있다. 수학식 5의 우변을 수학식 8과 같이 만들 수 있다.
Figure 112004030329173-pat00009
수학식 8의 우변을 살펴보면 상태행렬 A의 거듭제곱이 주기 7로 반복되므로 같은 상태행렬의 거듭제곱별로 부호화 입력들을 모아서 더한 후 7번의 행렬곱셈연산을 하고 7개의 행렬곱셈 연산 결과들을 모듈로-2 덧셈하여 수학식 5의 우변인, 영상태에서 시작한 터보 부호기의 마지막 상태를 구할 수 있다.
도 5는 본 발명의 실시예에 따른 터보 부호기의 마지막 상태 계산장치의 블록도이다. 도 5를 참조하면 본 발명의 실시예에 따른 터보 부호기의 마지막 상태 계산장치는 입력덧셈부(510) 및 행렬 연산부(520)로 구성된다. 본 실시예는 2비트 부호화 입력들이 16비트 메모리에 미리 저장되어 있다고 가정하며 따라서 메모리로부터 한 번에 8개(16비트)의 부호화 입력들이 출력되는 것으로 본다. 입력덧셈부(510)는 주기 7로 반복되는 상태행렬 A의 거듭제곱 중 동일한 값을 가지는 상태행렬 A의 거듭제곱과 곱해질 부호화 입력들을 모듈로-2 덧셈연산하는 기능 을 수행한다. 입력덧셈부(510)는 2개의 비트 덧셈부(511, 513)를 포함한다. 비트 덧셈부(511, 513)는 각각 동일한 값을 가지는 상태행렬 A의 거듭제곱과 곱해질 부호화 입력의 첫 번째 및 두 번째 비트를 모듈로-2 덧셈연산한다. 각각의 비트 덧셈부는 동일한 구성으로 되어 있으며, 부호화 입력의 비트수에 따라 그 수가 결정된다. 비트 덧셈부(511, 513)는 각각 7개의 모듈로-2 덧셈기 및 7개의 플립플롭을 포함한다.
이하 도 5에 도시된 입력덧셈부(510)의 동작을 살펴본다. 먼저 16비트 메모리로부터 8개의 부호화 입력이 출력된다. 부호화 입력들은 수학식 9와 같은 순서로 저장되며 도 5에 도시된 바와 같이 각각의 비트 덧셈부(511, 513)는 각각 짝수비트의 메모리 데이터 및 홀수비트의 메모리 데이터를 입력받게 된다. 수학식 9의 우변에서의 m0 내지 m15는 16비트 메모리의 비트번호를 의미한다.
Figure 112004030329173-pat00010
결국 도 5를 참조하면 왼쪽의 비트 덧셈부(511)는 8개의 부호화 입력의 첫 번째 비트들을 입력받고, 오른쪽의 비트 덧셈부(513)는 두 번째 비트들을 입력받는다. 이하 왼쪽의 비트 덧셈부(511)를 중심으로 설명한다.
왼쪽의 비트 덧셈부(511)는 매 클럭마다 부호화 입력의 첫 번째 비트 8개씩을 입력받아서 매 7번째 부호화 입력들의 첫 번째 비트를 더하는 기능을 한다. 즉, 수학식 10 내지 16과 같은 연산을 수행하는 것이다.
Figure 112004030329173-pat00011
Figure 112004030329173-pat00012
Figure 112004030329173-pat00013
Figure 112004030329173-pat00014
Figure 112004030329173-pat00015
Figure 112004030329173-pat00016
Figure 112004030329173-pat00017
이하 도 5에 도시된 왼쪽의 비트 덧셈부(511)가 어떻게 수학식 10의 연산을 수행하는지를 살펴본다. 먼저 첫 번째 클럭에서 비트 덧셈부(511)에는 첫 번째부터 여덟 번째까지의 부호화 입력의 첫 번째 비트(u0 0~ u7 0)가 입력된다. 비트 덧셈부(511)의 맨 왼쪽 모듈로-2 덧셈기에는 u0 0(m0)과 u7 0(m14)이 입력된다. 따라서 맨 왼쪽의 플립플롭에는 u0 0+u7 0이 저장되게 된다. 이후 두 번째 클럭에서 비트 덧셈부(511)에는 아홉 번째부터 열 여섯 번째까지의 부호화 입력의 첫 번째 비트(u8 0~ u15 0)가 입력된다. 비트 덧셈부(511)의 맨 오른쪽 모듈로-2 덧셈기에는 u14 0(m12)과 비트 덧셈부(511)의 맨 왼쪽 플립플롭의 출력인 u0 0+u7 0이 입력된다. 따라서, 비트 덧셈부(511)의 맨 오른쪽 플립플롭에는 u0 0+u7 0+u14 0이 저장된다. 이후 세 번째 클럭에서 비트 덧셈부(511)에는 열 일곱 번째부터 스물 네 번째까지의 부호화 입력의 첫 번째 비트(u16 0~ u23 0)가 입력된다. 비트 덧셈부(511)의 오른쪽에서 두 번째 모듈로-2 덧셈기에는 u21 0(m10)과 비트 덧셈부(511)의 맨 오른쪽 플립플롭의 출력인 u0 0+u7 0+u14 0이 입력된다. 따라서, 비트 덧셈부(511)의 오른쪽에서 두 번째 플립플롭에는 u0 0+u7 0+u14 0+u21 0이 저장된다. 도 5에 도시된 비트 덧셈부(511)는 부호화 입력의 개수에 따라 이후 매 클럭마다 상기와 같은 연산을 반복하여 결국 수학식 10의 연 산을 수행하게 된다. 또한 수학식 11내지 16의 연산도 수학식 10의 경우에 대하여 상술한 방법으로 설명될 수 있음은 자명하다.
오른쪽의 비트 덧셈부(513)는 매 클럭마다 부호화 입력의 두 번째 비트 8개씩을 입력받아서 매 7번째 부호화 입력들의 두 번째 비트를 더하는 기능을 한다. 즉, 수학식 17 내지 23과 같은 연산을 수행하는 것이다.
Figure 112004030329173-pat00018
Figure 112004030329173-pat00019
Figure 112004030329173-pat00020
Figure 112004030329173-pat00021
Figure 112004030329173-pat00022
Figure 112004030329173-pat00023
Figure 112004030329173-pat00024
오른쪽의 비트 덧셈부(513)도 상술한 왼쪽의 비트 덧셈부(511)와 동일한 구조로써 동일한 방법으로 동작하여 상기 수학식 17내지 23의 연산을 수행한다.
이상 설명한 바와 같이 입력덧셈부(510) 내의 두 개의 비트 덧셈부(511, 513)는 각각 수학식 5의 우변에서 같은 값을 가지는 상태행렬의 거듭제곱과 곱해질 부호화 입력들의 첫 번째 비트와 두 번째 비트를 모듈로-2 덧셈연산하는 기능을 수행하게 된다. 입력덧셈부(510)는 모든 부호화 입력이 모듈로-2 덧셈연산될 때까지 동작하게 된다. 결과적으로 모든 부호화 입력에 대해 모듈로-2 덧셈연산이 종료되고 나면 왼쪽의 비트 덧셈부(511)의 7개의 플립플롭에는 상기 수학식 10 내지 16의 연산결과가 저장되어 있고, 오른쪽의 비트 덧셈부(513)의 7개의 플립플롭에는 상기 수학식 17 내지 23의 연산결과가 저장되어 있게 된다. 즉, 왼쪽의 비트 덧셈부(511)에는 각각의 부호화 입력의 첫 번째 비트에 대한 연산결과가, 오른쪽의 비트 덧셈부(513)에는 각각의 부호화 입력의 두 번째 비트에 대한 연산결과가 저장되어 있게 되는 것이다. 이 때 각각의 비트 덧셈부(511, 513)내의 모듈로-2 덧셈기 및 플립플롭이 각각 7개인 것은 본 실시예의 상태행렬 A의 거듭제곱이 주기 7로 반복되기 때문이다. 주목하여야 할 것으로 각각의 비트 덧셈부(511, 513)에는 각각 수학식 10 내지 23의 결과가 저장되게 되나, 부호화 입력의 개수에 따라 그 저장되는 위치가 바뀌게 된다. 이는 각각의 비트 덧셈부(511, 513) 내에서 매 클럭마다 연산결과가 왼쪽의 플립플롭으로 이동하기 때문이다. 그러나, 연산결과의 배열순서가 뒤바뀌는 것은 아니기 때문에 쉬프트 레지스터를 통하여 연산결과를 쉬프트하면 부호화 입력들의 연산결과를 순서대로 정렬할 수 있다. 이러한 기능은 행렬연산부(520)에서 수행되며 이후 설명한다.
이하 도 5에 도시된 행렬 연산부(520)에 대하여 설명한다. 행렬 연산부(520)는 입력 덧셈부(510)의 출력결과를 입력받아서 상태행렬 A의 거듭제곱 및 입력행렬 B와 곱셈연산하고, 그 결과를 모듈로-2 덧셈연산하여 영상태에서 부호화를 시작한 터보 부호기의 마지막 상태를 계산한다. 본 실시예에서 행렬 연산부(520)는 2개의 쉬프트 레지스터, 3개의 8입력 모듈로-2 덧셈기 및 3개의 플립플롭으로 구성된다. 두 개의 쉬프트 레지스터는 각각 두 개의 비트 덧셈부(511, 513)의 출력 7비트를 입력받는다. 또한 각각의 쉬프트 레지스터는 인에이블 신호(enable) 및 3비트 쉬프트 신호(shift)를 입력받는다. 인에이블 신호(enable)는 쉬프트 레지스터가 쉬프트 동작을 시작하라는 신호이고, 3비트 쉬프트 신호(shift)는 몇 비트 만큼 쉬프트할 것인지를 결정하는 입력이다. 쉬프트 동작은 왼쪽 또는 오른쪽으로 할 수 있으며 본 실시예에서는 오른쪽으로 로테이셔널 쉬프트(rotational shift)하는 것을 기준으로 설명한다. 이하 행렬 연산부(520)내의 두 개의 쉬프트 레지스터의 동작에 대해서 살펴본다.
입력 덧셈부(510)의 덧셈 연산결과 각각의 비트 덧셈부(511, 513)내의 7개의 플립플롭들에는 같은 값을 가지는 상태행렬의 거듭제곱과 곱해질 부호화 입력들을 모듈로-2 덧셈연산한 결과가 저장되어 있다. 그러나 상기 설명한 바와 같이 입력 덧셈부(510)의 연산과정에서 부호화 입력의 개수에 따라 연산결과가 저장되는 플립플롭의 위치가 바뀌게 된다. 행렬 연산부(520)내의 두 개의 쉬프트 레지스터는 각각 입력 덧셈부(510)의 연산결과의 저장위치를 쉬프트하여 상태행렬 A가 곱해지는 연산결과가 맨 오른쪽에 오도록 정렬한다. 예를 들어 30개의 2비트 부호화 입력이 4번의 클럭에 걸쳐서 메모리로부터 입력되는 경우라면 u0 0+u7 0+u 14 0+u21 0+u28 0의 연산결과가 왼쪽의 비트 덧셈부(511)의 왼쪽에서 5번째(오른쪽에서 3번째) 플립플롭에 저장되게 된다.(4번째 클럭에서 부호화 입력이 들어있지 않은 메모리 비트는 논리 '0'으로 가정한다.) 또한 u1 0+u8 0+u15 0+u 22 0+u29 0의 연산결과는 왼쪽의 비트 덧셈부(511)의 왼쪽에서 6번째(오른쪽에서 2번째) 플립플롭에 저장되고 다른 연산결과들도 같은 방식으로 저장되게 된다. 상기와 같이 부호화 입력이 30개인 경우 수학식 8은 다음과 같이 다시 쓸 수 있다.
Figure 112004030329173-pat00025
상태행렬 A와 곱해질 연산결과들인 u0 0+u7 0+u14 0+u21 0+u28 0 및 u0 1+u7 1+u14 1+u21 1+u28 1이 쉬프트 레지스터의 가장 오른쪽으로 출력되도록 하기 위해서 행렬 연산부(520)의 쉬프트 레지스터들은 오른쪽으로 2비트의 로테이셔널 쉬프트(rotational shift) 동작을 할 필요가 있다. 따라서 이러한 경우 쉬프트 레지스터가 덧셈 연산부의 연산결과를 오른쪽으로 2비트만큼 로테이셔널 쉬프트(rotational shift) 시켜서 첫 번째 부호화 입력이 들어있는 연산결과부터 차례로 정렬할 수 있다. 이와 같은 동작은 행렬 연산부(520)의 2개의 쉬프트 레지스터에 입력되는 인에이블 신호(enable)를 활성화하고, 3비트 쉬프트 신호(shift)에 논리 "010"을 인가하여 수행될 수 있다. 본 실시예에서 쉬프트 신호(shift)가 3비트인 이유는 상태행렬 A가 7을 주기로 반복되어 비트 덧셈부(511, 513)의 출력이 각각 7비트이기 때문에 최대 6비트만큼의 쉬프트가 가능하도록 하여야 하기 때문이다.
이하 다른 예로 부호화 입력이 8개, 16개, 24개, 32개 와 같이 8의 배수개만큼 들어오는 경우를 살펴본다. 먼저 입력이 8개인 경우에 한 번의 클럭으로 모든 입력이 도 5에 도시된 입력 덧셈부(510)로 들어오게 된다. 상태행렬 A와 곱해지는 연산결과는 수학식 8에서 N=8인 경우이므로 u6 T이고 이는 각각의 비트 덧셈부(511, 513)의 맨 오른쪽 플립플롭에 저장되어 있으므로 행렬 연산부(520)의 쉬프트 레지스터가 로테이셔널 쉬프트를 수행할 필요가 없다. 또한 입력이 16개인 경우에 두 번의 클럭으로 모든 입력이 도 5에 도시된 입력 덧셈부(510)로 들어오게 된다. 상태행렬 A와 곱해지는 연산결과는 수학식 8에서 N=16인 경우이므로 u0 T+u7 T+u14 T이고 이는 각각의 비트 덧셈부(511, 513)의 맨 오른쪽 플립플롭에 저장되어 있으므로 행렬 연산부(520)의 쉬프트 레지스터가 로테이셔널 쉬프트를 수행할 필요가 없다. 또한 입력이 24개인 경우에 세 번의 클럭으로 모든 입력이 도 5에 도시된 입력 덧셈부(510)로 들어오게 된다. 상태행렬 A와 곱해지는 연산결과는 수학식 8에서 N=24인 경우이므로 u1 T+u8 T+u15 T+u22 T이고 이는 각각의 비트 덧셈부(511, 513)의 맨 오른쪽 플립플롭에 저장되어 있으므로 행렬 연산부(520)의 쉬프트 레지스터가 로테이셔널 쉬프트를 수행할 필요가 없다. 또한 입력이 32개인 경우에 네 번의 클럭으로 모든 입력이 도 5에 도시된 입력 덧셈부(510)로 들어오게 된다. 상태행렬 A와 곱해지는 연 산결과는 수학식 8에서 N=32인 경우이므로 u2 T+u9 T+u16 T+u23 T+u30 T이고 이는 각각의 비트 덧셈부(511, 513)의 맨 오른쪽 플립플롭에 저장되어 있으므로 행렬 연산부(520)의 쉬프트 레지스터가 로테이셔널 쉬프트를 수행할 필요가 없다.
이상 살펴본 바와 같이 부호화 입력이 8의 배수개인 경우에는 쉬프트 레지스터가 로테이셔널 쉬프트를 수행할 필요가 없다. 이는 8개의 입력이 더 들어올때마다 7로 나눈 나머지가 하나 늘어나게 되고, 한 클럭의 입력을 더 받게되어 도 5에 도시된 각각의 비트 덧셈부(511, 513)의 플립플롭 데이터가 한 비트 옆으로 이동하여 두 결과가 상쇄되기 때문이다.
이하 행렬 연산부(520)에서 쉬프트 레지스터로부터 출력되는 연산 결과들을 상태행렬 A의 거듭제곱 및 입력행렬 B와 곱셈연산하는 동작에 대해서 살펴본다. 도 6은 수학식 6 및 수학식 7에 표시된 상태행렬의 거듭제곱 및 입력행렬과의 곱을 정리한 도표이다. 도 6에서 r0 내지 r13은 도 5에 도시된 바와 같이 행렬 연산부(520)내의 쉬프트 레지스터의 출력신호를 나타낸다. 도 5에 도시된 행렬 연산부(520)의 쉬프트 레지스터의 출력신호는 상태행렬 A와 곱해질 입력덧셈부의 연산결과들(r0, r1)이 맨 오른쪽으로 가고 그 왼쪽에 A2과 곱해질 입력덧셈부의 연산결과들이(r2, r3) 또 그 왼쪽에 A3과 곱해질 입력덧셈부의 연산결과들(r4, r5)이 출력되도록 정렬되어 있으므로 도 6의 표와 같이 정리될 수 있다. 따라서 결국 수학식 8의 계산결과인 영상태에서 부호화를 시작하였을 경우 터보 부호기의 마지막 상 태는 도 6에 도시된 표의 하단의 결과와 같다는 것을 알 수 있다. 따라서 도 5에 도시된 행렬 연산부(520)의 구조와 같이 모듈로-2 덧셈 연산을 하여 영상태에서 부호화를 시작한 터보 부호기의 마지막 상태를 계산할 수 있다.
도 7은 32비트 메모리를 사용하는 경우의 실시예에 따른 비트 덧셈부의 블록도이다. 도 7을 참조하면, 32비트 메모리를 사용하는 경우에 비트 덧셈부는 도 5에 도시된 16비트 메모리를 사용하는 경우의 비트 덧셈부(511, 513)가 8비트 입력을 받는 것과는 달리 16비트의 입력을 받는다. 이 16비트는 16개의 부호화 입력의 첫 번째 비트 또는 두 번째 비트에 해당한다. 도 7에 도시된 비트 덧셈부는 도 5에 도시된 비트 덧셈부(511, 513)와 같이 7개의 모듈로-2 덧셈기 및 7개의 플립플롭을 포함한다. 다만, 도 7에 도시된 비트 덧셈부는 입력되는 16개의 비트중 매 7번째마다의 입력이 모듈로-2 연산되도록 구성되어 있고, 각 플립플롭의 출력결과가 두 칸 왼쪽의 모듈로-2 덧셈기에 입력되도록 구성되어 있다. 이와같이 도 5에 도시된 비트 덧셈부(511, 513)와는 달리 도 7에 도시된 비트 덧셈부 플립플롭의 출력결과를 두 칸 왼쪽의 모듈로-2 덧셈기에 입력되도록 하는 것은 매 클럭마다 16개의 부호화 입력이 들어오게 되기 때문이다. 16은 7로 나눈 나머지가 2이기 때문에 결과적으로 플립플롭의 출력결과가 두 칸 왼쪽의 모듈로-2 덧셈기에 입력되도록 하여야 매 7번째 부호화 입력이 덧셈연산되도록 할 수 있는 것이다. 이는 8개씩의 부호화 입력이 들어오는 경우에 8을 7로 나눈 나머지가 1이어서 도 5에 도시된 비트 덧셈부(511, 513)의 플립플롭들이 한 칸 왼쪽의 모듈로-2 덧셈기에 입력되도록 되어있는 것과 대비된다. 도 7에 도시된 비트 덧셈부 2 개를 각각 도 5에 도시된 비트 덧셈부(511, 513)대신 사용하게 되면 32비트 메모리를 이용하여 터보 부호기의 마지막 상태 계산장치를 구성할 수 있다.
도 7에 도시된 비트 덧셈부를 사용하여 터보 부호기의 마지막 상태 계산장치를 구성할 경우에도 행렬 연산부의 구조는 변경할 필요가 없으며, 이 경우에 행렬 연산부의 로테이셔널 쉬프트 동작은 도 5에 도시된 실시예의 경우와는 달라지게 된다. 예를 들어 16개의 부호화 입력이 들어올 경우 도 5에 도시된 실시예의 경우에는 쉬프트 동작을 할 필요가 없었으나, 도 7에 도시된 비트 덧셈부를 사용하여 터보 부호기의 마지막 상태 계산장치를 구성할 경우에는 왼쪽으로 한칸의 로테이셔널 쉬프트를 수행하여야 한다. 또 32개의 부호화 입력이 들어올 경우를 생각해보면 두 번의 클럭으로 모든 입력이 도 7에 도시된 비트 덧셈부로 들어오게 된다. 상태행렬 A와 곱해지는 연산결과는 수학식 8에서 N=32인 경우이므로 u2 T+u9 T +u16 T+u23 T+u30 T이고 이는 도 7에 도시된 비트 덧셈부의 맨 왼쪽 플립플롭에 저장되어 있으므로 도 5에 도시된 행렬 연산부(520)의 쉬프트 레지스터가 왼쪽으로 1칸의 로테이셔널 쉬프트를 수행할 필요가 있다. 또한 부호화 입력이 48개인 경우에 세 번의 클럭으로 모든 입력이 도 7에 도시된 비트 덧셈부로 들어오게 된다. 상태행렬 A와 곱해지는 연산결과는 수학식 8에서 N=48인 경우이므로 u4 T+u11 T+u18 T+u25 T+u32 T+u39 T+u 46 T이고 이는 도 7에 도시된 비트 덧셈부의 맨 왼쪽 플립플롭에 저장되어 있으므로 도 5에 도시된 행렬 연산부(520)의 쉬프트 레지스터가 왼쪽으로 1칸의 로테이셔널 쉬프트를 수행할 필요가 있다. 결과적으로 도 7에 도시된 비트 덧셈부를 사용하여 터보 부호기의 마지막 상태 계산장치를 구성할 경우 16의 배수개 만큼의 부호화 입력이 들어오면 도 5에 도시된 행렬 연산부(520)의 쉬프트 레지스터가 왼쪽으로 1칸의 로테이셔널 쉬프트를 수행하여야 한다. 16의 배수개 만큼의 부호화 입력이 더 들어와도 쉬프트 레지스터의 쉬프트 수가 변하지 않는 이유는 더 들어온 16개의 부호화 입력에 대해 16을 7로 나눈 나머지인 2와, 도 7에 도시된 플립플롭의 출력이 두 칸 옆의 모듈로-2 덧셈기로 들어가도록 되어있는 구조의 효과가 서로 상쇄되기 때문이다.
이상 살펴본 바와 같이 수학식 8을 도 5 및 도 7의 하드웨어를 이용하면 병렬적으로 연산을 수행하여 빠른 속도로 결과를 얻을 수 있다. 도 5 및 도 7에 도시된 하드웨어는 터보 부호기의 마지막 상태를 찾는 경우 뿐만 아니라 일반적인 행렬 연산에도 적용될 수 있다. 즉, 제1 행렬의 거듭제곱 및 제2 행렬(제2 행렬은 행렬의 수열)이 곱셈된 급수를 구한다고 생각할 때 제1 행렬의 거듭제곱이 수학식 6 및 수학식 7에 표시된 상태행렬 A의 거듭제곱과 같이 일정한 주기로 반복된다면 도 5 및 도 7에 도시된 것과 유사하게 하드웨어를 구성하여 급수를 계산할 수 있음은 해당 기술분야의 숙련된 당업자라면 용이하게 이해할 수 있을 것이다.
도 8은 본 발명의 효과를 종래기술과 비교하기 위한 도표이다. 도 8에 따르면 종래기술에 의하여 테일 바이팅 기법에서 마지막 상태를 찾는 경우는 도 4에 도시된 체계적 순환 길쌈(recursive systematic convolutional; RSC) 부호기의 하드웨어를 그대로 사용하게 되므로 그 게이트수가 37개 정도로 구현가능함을 알 수 있다. 그러나 이러한 종래기술에 의할 경우에 매 클럭마다 부호화 입력이 하나씩 들 어가게 되므로 매 클럭마다 한 개씩의 입력을 처리하게 되어 동작시간이 길어지게 되는 것을 알 수 있으며 매 클럭마다 모든 하드웨어가 동작하여야 하므로 37개의 게이트가 모두 활성화되어 1000개의 입력에 대한 연산을 수행하였을 경우 37000번의 활성화가 있게 된다. 이에 반하여 본 발명의 실시예에서 설명된 16비트 메모리를 사용하는 터보 부호기의 마지막 상태 계산 장치는 입력 덧셈부에 148개의 게이트가, 행렬 연산부에 193개의 게이트가 사용된다. 따라서 총 게이트수가 341개 정도로 종래기술의 경우에 비하여 9.2배의 게이트 수가 필요한 것을 알 수 있다. 그러나, 본 발명의 실시예에서 설명된 16비트 메모리를 사용하는 터보 부호기의 마지막 상태 계산 장치는 한꺼번에 8개의 입력에 대한 연산을 수행할 수 있어 매 클럭마다 8개의 입력을 처리할 수 있어 종래기술에 비하여 8배나 빠르게 연산을 수행할 수 있다. 또한 본 발명의 실시예에서 설명된 16비트 메모리를 사용하는 터보 부호기의 마지막 상태 계산 장치는 행렬 연산부가 마지막 상태 계산과정에서 단 한번만 활성화되므로 총 18693번 정도의 활성화가 있게 되어 종래기술에 비하여 0.51배 정도로 전력을 절감할 수 있다. 또한 32비트 메모리를 사용하여 본 발명의 방법으로 마지막 상태를 계산하게 되면 총 373개의 게이트 수로 종래기술에 비하여 16배정도 빠르고 0.31배정도의 전력을 소비하면서 영상태에서 부호화를 시작한 터보 부호기의 마지막 상태를 구할 수 있다.
도 5 및 도 7에 도시된 실시예에서는 메모리가 16비트 및 32비트인 경우에 대하여 설명하였으나, 메모리가 64비트 혹은 그 이상인 경우에도 본 발명의 방법으로 영상태에서 부호화를 시작한 터보 부호기의 마지막 상태를 구할 수 있음은 자명 하다. 64비트 혹은 그 이상의 비트의 메모리를 사용하는 경우에도 도 5에 도시된 바와 같이 2 개의 비트 덧셈부를 구성할 수 있으며 이 경우 모듈로-2 덧셈기 및 플립플롭의 개수는 동일하나 그 연결관계만이 달라지게 된다. 또한 64비트 혹은 그 이상의 메모리를 사용하는 경우에도 행렬 연산부는 16비트 메모리의 경우와 동일한 하드웨어로 구현할 수 있다. 나아가, 부호화 입력이 2비트 이상인 경우에는 그 수에 맞추어 비트 덧셈부를 구비함으로서 용이하게 본 발명의 기술사상을 구현할 수 있을 것이다.
실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
상술한 바와 같이, 본 발명에 따른 테일 바이팅 기법에서 마지막 상태를 찾는 방법 및 터보 부호기의 마지막 상태 계산장치는 상태행렬의 거듭제곱의 반복되는 특성을 이용하여 동일한 상태행렬의 거듭제곱값과 더해지는 모든 부호화 입력을 더한 후 그 결과를 상태행렬의 거듭제곱 및 입력행렬과 곱셈연산함으로서 적은 전력을 소모하면서 빠르게 영상태에서 부호화를 시작한 터보 부호기의 마지막 상태를 찾을 수 있다. 특히, 큰 블록 단위로 부호화를 하는 터보 부호의 경우에 본 발명에 따른 테일 바이팅 기법에서 마지막 상태를 찾는 방법 및 터보 부호기의 마지막 상태 계산장치를 이용하면 터보 부호화에 걸리는 시간을 획기적으로 단축할 수 있고 소비되는 전력을 크게 절감할 수 있다.

Claims (24)

  1. 상태행렬 A의 거듭제곱이 주기 K로 반복(AK = I; I는 단위행렬)되는 것을 이용하여 하기 수학식 1의 방법으로 영 상태에서 부호화를 시작한 터보 부호기의 마지막 상태를 찾는 단계;
    상기 마지막 상태를 이용하여 초기 상태 및 마지막 상태가 같은 부호화 상태를 찾아내는 단계; 및
    상기 부호화 상태를 이용하여 터보 부호화를 수행하는 단계를 포함하는 것을 특징으로 하는 터보 부호기의 테일 바이팅 부호화 방법.
    [수학식 1]
    Figure 112004030329173-pat00026
    (A: 상태행렬, B: 입력행렬, ui: i번째 부호화 입력, N: 부호화 입력의 개수
    K: AK = I인 자연수; I는 단위행렬)
  2. 주기 T로 반복되는 상태행렬의 거듭제곱 중 같은 값을 가지는 상태행렬의 거듭제곱과 곱해질 부호화 입력들을 모듈로-2 덧셈연산하는 단계;
    상기 상태행렬의 거듭제곱, 입력행렬 및 상기 모듈로-2 덧셈연산 결과를 곱셈연산하는 단계; 및
    상기 곱셈연산 결과들을 덧셈연산하는 단계를 포함하는 것을 특징으로 하는 터보 부호기의 테일 바이팅 기법에서 마지막 상태를 찾는 방법.
  3. 주기 T로 반복되는 상태행렬의 거듭제곱 중 같은 값을 가지는 상태행렬의 거듭제곱과 곱해질 부호화 입력들을 모듈로-2 덧셈연산하는 단계;
    상기 상태행렬의 거듭제곱, 입력행렬 및 상기 모듈로-2 덧셈연산 결과를 곱셈연산하는 단계;
    상기 곱셈연산 결과들을 덧셈연산하여 영 상태에서 부호화를 시작한 터보 부호기의 마지막 상태를 찾는 단계;
    상기 마지막 상태를 이용하여 초기 상태 및 마지막 상태가 같은 부호화 상태를 찾아내는 단계; 및
    상기 부호화 상태를 이용하여 터보 부호화를 수행하는 단계를 포함하는 것을 특징으로 하는 터보 부호기의 테일 바이팅 부호화 방법.
  4. 주기 T로 반복되는 상태행렬의 거듭제곱 중 같은 값을 가지는 상태행렬의 거 듭제곱과 곱해질 부호화 입력들을 모듈로-2 덧셈연산하는 입력덧셈부;
    상기 상태행렬의 거듭제곱, 입력행렬 및 상기 입력덧셈부의 출력결과를 곱셈연산하고 그 결과들을 모듈로-2 덧셈연산하여 영상태에서 부호화를 시작한 터보 부호기의 마지막 상태를 찾는 행렬연산부를 포함하는 것을 특징으로 하는 터보 부호기의 마지막 상태 계산장치.
  5. 제 4 항에 있어서 상기 입력덧셈부는 상기 부호화 입력의 비트수만큼의 비트 덧셈부를 포함하는 것을 특징으로 하는 터보 부호기의 마지막 상태 계산장치.
  6. 제 5 항에 있어서 상기 비트 덧셈부는 1 이상의 모듈로-2 덧셈기 및 1 이상의 플립플롭을 포함하는 것을 특징으로 하는 터보 부호기의 마지막 상태 계산장치.
  7. 제 6 항에 있어서 상기 모듈로-2 덧셈기 및 상기 플립플롭은 각각 상기 T개인 것을 특징으로 하는 터보 부호기의 마지막 상태 계산장치.
  8. 제 7 항에 있어서 상기 T개의 모듈로-2 덧셈기는 각각 메모리로부터 1개 이상의 입력을 받고, 상기 T개의 플립플롭중 하나로부터 1개의 입력을 받는 것을 특징으로 하는 터보 부호기의 마지막 상태 계산장치.
  9. 제 4 항에 있어서 상기 행렬연산부는
    상기 입력덧셈부의 덧셈연산 결과를 순서대로 정렬하는 1개 이상의 쉬프트 레지스터; 및
    상태행렬의 거듭제곱과 입력행렬을 곱셈연산한 결과에 따라 상기 쉬프트 레지스터의 출력결과를 모듈로-2 덧셈연산하여 상기 마지막 상태를 계산하는 1개 이상의 모듈로-2 덧셈기를 포함하는 것을 특징으로 하는 터보 부호기의 마지막 상태 계산장치.
  10. 제 9 항에 있어서 상기 쉬프트 레지스터는 상기 T개의 비트 입력을 받아서 이를 로테이셔널 쉬프트 시킨 후 상기 T개의 비트 출력을 내보내는 것을 특징으로 하는 터보 부호기의 마지막 상태 계산장치.
  11. 제 9 항에 있어서 상기 모듈로-2 덧셈기는 상태행렬의 행의 수만큼의 개수인 것을 특징으로 하는 터보 부호기의 마지막 상태 계산장치.
  12. 제 9 항에 있어서 상기 쉬프트 레지스터는 상기 부호화 입력의 비트수만큼의 개수인 것을 특징으로 하는 터보 부호기의 마지막 상태 계산장치.
  13. 제 9 항 또는 제 10 항에 있어서 상기 쉬프트 레지스터는 부호화되는 코드의 길이에 따라 쉬프트 수를 조절할 수 있는 것을 특징으로 하는 터보 부호기의 마지막 상태 계산장치.
  14. 제 13 항에 있어서 상기 쉬프트 레지스터는 최대 상기 T에서 1을 뺀 수만큼 쉬프트 시킬 수 있는 것을 특징으로 하는 터보 부호기의 마지막 상태 계산장치.
  15. 주기 T로 반복되는 제1 행렬의 거듭제곱 중 같은 값을 가지는 제1 행렬의 거듭제곱과 곱해질 제2 행렬들을 모듈로-2 덧셈연산하는 입력덧셈부; 및
    상기 제1 행렬의 거듭제곱을 상기 입력 덧셈부의 출력결과와 곱셈연산하고 그 결과들을 모듈로-2 덧셈연산하여 상기 제1 행렬의 거듭제곱들 및 상기 제2 행렬들의 곱셈들의 급수를 계산하는 행렬연산부를 포함하는 것을 특징으로 하는 행렬 곱셈 급수 계산장치.
  16. 제 15 항에 있어서 상기 입력덧셈부는 상기 제2 행렬의 행의 수만큼의 비트 덧셈부를 포함하는 것을 특징으로 하는 행렬 곱셈 급수계산장치.
  17. 제 16 항에 있어서 상기 비트 덧셈부는 1 이상의 모듈로-2 덧셈기 및 1 이상의 플립플롭을 포함하는 것을 특징으로 하는 행렬 곱셈 급수계산장치.
  18. 제 17 항에 있어서 상기 모듈로-2 덧셈기 및 상기 플립플롭은 상기 T개인 것을 특징으로 하는 행렬 곱셈 급수계산장치.
  19. 제 18 항에 있어서 상기 T개의 모듈로-2 덧셈기는 각각 메모리로부터 1개 이상의 입력을 받고, 상기 T개의 플립플롭중 하나로부터 1개의 입력을 받는 것을 특징으로 하는 행렬 곱셈 급수계산장치.
  20. 제 15 항에 있어서 상기 행렬연산부는
    상기 입력덧셈부의 덧셈연산 결과를 순서대로 정렬하는 1개 이상의 쉬프트 레지스터; 및
    상기 제1 행렬의 거듭제곱들에 따라 상기 쉬프트 레지스터의 출력결과를 모듈로-2 덧셈하여 상기 제1행렬의 거듭제곱들 및 상기 제2행렬들의 곱셈들의 급수를 계산하는 1개 이상의 모듈로-2 덧셈기를 포함하는 것을 특징으로 하는 행렬 곱셈 급수계산장치.
  21. 제 20 항에 있어서 상기 쉬프트 레지스터는 상기 T개의 비트 입력을 받아서 이를 로테이셔널 쉬프트 시킨 후 상기 T개의 비트 출력을 내보내는 것을 특징으로 하는 행렬 곱셈 급수계산장치.
  22. 제 20 항에 있어서 상기 쉬프트 레지스터는 상기 제2 행렬의 행의 수만큼의 개수이고 상기 모듈로-2 덧셈기는 상기 제1 행렬의 행의 수만큼의 개수인 것을 특징으로 하는 행렬 곱셈 급수계산장치.
  23. 제 21 항에 있어서 상기 쉬프트 레지스터는 더해지는 상기 제1행렬의 거듭제곱 및 상기 제2행렬들의 곱셈들의 개수에 따라 쉬프트 수를 조절할 수 있는 것을 특징으로 하는 행렬 곱셈 급수계산장치.
  24. 제 23 항에 있어서 상기 쉬프트 레지스터는 최대 상기 T에서 1을 뺀 수만큼 쉬프트 시킬 수 있는 것을 특징으로 하는 행렬 곱셈 급수계산장치.
KR1020040053309A 2004-07-09 2004-07-09 테일-바이팅 기법에서 마지막 상태를 찾는 방법 및 이를이용한 터보 부호기 KR100549870B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040053309A KR100549870B1 (ko) 2004-07-09 2004-07-09 테일-바이팅 기법에서 마지막 상태를 찾는 방법 및 이를이용한 터보 부호기
US11/178,892 US7392462B2 (en) 2004-07-09 2005-07-11 Method of finding a last state in tail-biting for turbo encoder and apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040053309A KR100549870B1 (ko) 2004-07-09 2004-07-09 테일-바이팅 기법에서 마지막 상태를 찾는 방법 및 이를이용한 터보 부호기

Publications (2)

Publication Number Publication Date
KR20060004259A KR20060004259A (ko) 2006-01-12
KR100549870B1 true KR100549870B1 (ko) 2006-02-06

Family

ID=35542730

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040053309A KR100549870B1 (ko) 2004-07-09 2004-07-09 테일-바이팅 기법에서 마지막 상태를 찾는 방법 및 이를이용한 터보 부호기

Country Status (2)

Country Link
US (1) US7392462B2 (ko)
KR (1) KR100549870B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080092018A1 (en) * 2006-09-28 2008-04-17 Broadcom Corporation, A California Corporation Tail-biting turbo code for arbitrary number of information bits
US8250448B1 (en) * 2008-03-26 2012-08-21 Xilinx, Inc. Method of and apparatus for implementing a decoder
CN101834618B (zh) * 2009-03-13 2013-03-20 富士通株式会社 Turbo解码方法和Turbo解码器
US8924829B2 (en) * 2009-08-31 2014-12-30 Freescale Semiconductor, Inc. Device and method for turbo-encoding a block of data

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881073A (en) * 1996-09-20 1999-03-09 Ericsson Inc. Convolutional decoding with the ending state decided by CRC bits placed inside multiple coding bursts
US6460161B1 (en) * 1998-06-01 2002-10-01 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Processing of state histories in Viterbi decoding
KR20000008151A (ko) 1998-07-10 2000-02-07 정선종 터보 부호기 및 복호기의 꼬리비트 첨가방법
WO2000013323A1 (en) * 1998-08-27 2000-03-09 Hughes Electronics Corporation Method for a general turbo code trellis termination
JP2002271209A (ja) 2001-03-13 2002-09-20 Matsushita Electric Ind Co Ltd ターボ符号器およびターボ復号器
KR100811376B1 (ko) 2001-08-25 2008-03-07 엘지전자 주식회사 통신시스템에서의 부호화 및 복호화 방법

Also Published As

Publication number Publication date
US20060010362A1 (en) 2006-01-12
KR20060004259A (ko) 2006-01-12
US7392462B2 (en) 2008-06-24

Similar Documents

Publication Publication Date Title
US4286256A (en) Method and means for arithmetic coding utilizing a reduced number of operations
KR101211433B1 (ko) 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법
US8078933B2 (en) Decoder for low-density parity-check convolutional codes
EP1624582A2 (en) Apparatus and method for channel coding in mobile communication system
US7895417B2 (en) Select-and-insert instruction within data processing systems
JP3274668B2 (ja) 演算処理装置及び演算処理方法
US6275538B1 (en) Technique for finding a starting state for a convolutional feedback encoder
KR100549870B1 (ko) 테일-바이팅 기법에서 마지막 상태를 찾는 방법 및 이를이용한 터보 부호기
US6751773B2 (en) Coding apparatus capable of high speed operation
JP2000353965A (ja) インターリービング方法、インターリービング装置、ターボ符号化方法及びターボ符号化装置
KR20040044589A (ko) 다수결 논리를 이용한 rm 부호의 연판정 복호 방법 및그 장치
US6272188B1 (en) Single-cycle accelerator for extremun state search
US7318184B2 (en) Mobile telephone, apparatus, method, and program for calculating an interleave parameter
KR100913467B1 (ko) 병렬 순환 중복 검사 코드 발생 시스템 및 방법
US6138134A (en) Computational method and apparatus for finite field multiplication
US6910177B2 (en) Viterbi decoder using restructured trellis
CN1937412A (zh) 里德所罗门解码器的关键方程与错误值求解优化电路
US6138133A (en) Circuit for calculating the inverse of an arbitrary element of a finite field
CN111162800A (zh) 并行卷积编码方法及编码器
US6647530B1 (en) Apparatus and method for viterbi decoding
US6704901B1 (en) Runtime programmable Reed-Solomon decoder
KR100392370B1 (ko) 유한체내에서 다단 구조의 역수 계산 장치
KR970003979B1 (ko) 갈로이스 필드상의 승산기
WO2004030226A1 (en) Method of calculating an intra-row permutation pattern for an interleaver
RU2149442C1 (ru) Устройство для умножения по модулю семь

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: 20130102

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20191226

Year of fee payment: 15