KR100980090B1 - 범용 신호처리 프로세서를 이용한 재구성 가능한 길쌈부호화 방법과 비터비 복호화 방법 및 그 장치 - Google Patents

범용 신호처리 프로세서를 이용한 재구성 가능한 길쌈부호화 방법과 비터비 복호화 방법 및 그 장치 Download PDF

Info

Publication number
KR100980090B1
KR100980090B1 KR1020080057968A KR20080057968A KR100980090B1 KR 100980090 B1 KR100980090 B1 KR 100980090B1 KR 1020080057968 A KR1020080057968 A KR 1020080057968A KR 20080057968 A KR20080057968 A KR 20080057968A KR 100980090 B1 KR100980090 B1 KR 100980090B1
Authority
KR
South Korea
Prior art keywords
state
decoding
data
encoder
metric
Prior art date
Application number
KR1020080057968A
Other languages
English (en)
Other versions
KR20090123737A (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 KR20090123737A publication Critical patent/KR20090123737A/ko
Application granted granted Critical
Publication of KR100980090B1 publication Critical patent/KR100980090B1/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • H03M13/235Encoding of convolutional codes, e.g. methods or arrangements for parallel or block-wise encoding
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6511Support of multiple decoding rules, e.g. combined MAP and Viterbi decoding

Abstract

본 발명은 범용 신호처리 프로세서를 이용한 재구성 가능한 길쌈 부호화 방법과 비터비 복호화 방법 및 그 장치에 관한 것으로서, 길쌈부호화 방법은 생성다항식 행렬로부터 길쌈부호화기를 생성하는 단계와, 부호화 대상 입력 데이터열에 대해 길쌈부호화기에 의해 길쌈 부호화를 수행하는 단계와, 입력 데이터열에 대한 상기 길쌈 부호화가 완료되면 길쌈 부호화기의 상태를 최종 상태 값으로 저장하는 단계를 포함하고, 비터비 복호화 방법은 생성다항식 행렬, 복호깊이, 복호 길이를 이용하여 비터비 복호기를 참조테이블 기반으로 구성하는 단계와, 수신 데이터를 이용하여 비터비 복호를 수행하는 단계를 포함한다. 이러한 길쌈 부호화와 비터비 복호화 방법 및 그 장치에 의하면, 소프트웨어적으로 채널부호를 용이하게 변경할 수 있어 실효전송효율을 증대시킬 수 있는 효과가 있다. 또한, 부호화기 및 복호기를 생성다항식과 복호에 필요한 최소 파라미터인 복호깊이와 복호 길이에 의해 자율적으로 생성하기 때문에, 임의의 모든 길쌈부호에 대하여 대응이 가능하여 매우 유연하게 사용할 수 있는 장점이 있다.
길쌈 부호화기, 비터비 복호기, 상태천이 테이블, 범용 프로세서,

Description

범용 신호처리 프로세서를 이용한 재구성 가능한 길쌈 부호화 방법과 비터비 복호화 방법 및 그 장치{Method and Apparatus for Re-configurable Convolutional Encoding and Decoding with General-purpose Signal Processor}
본 발명은 길쌈 부호화 방법과 비터비 복호화 방법 및 그 장치에 관한 것으로서, 범용 프로세서를 이용하여 재구성 가능한 길쌈 부호화와 비터비 복호화 방법 및 그 장치에 관한 것이다.
통신장치는 송신기에서부터 수신기까지 정보데이터를 정확하게 전달하는 것을 목적으로 한다. 송신기에서는 정보데이터를 약속된 신호로 변경하여 전송하고, 수신기에서는 이 신호를 수신하여 정보데이터를 복원한다. 이때, 송신기에서 보낸 신호는 채널을 통해 수신기에 도달한다. 채널을 통과하면서 신호는 채널에서 더해지는 잡음을 비롯하여 여러 가지 원인에 의해 왜곡이 발생하고, 이러한 왜곡에 의해 수신기에서 정보데이터 복원이 제대로 되지 않고 오류가 발생할 수 있다. 이러한 채널에서 발생하는 오류를 줄이기 위한 방법의 하나로 통신 시스템에서 적용하는 기술 중 하나가 채널부호를 사용하는 것이다. 채널부호의 많은 종류 중 하나가 길쌈부호이다. 길쌈부호를 복호하는 최적의 방법은 비터비 알고리즘을 사용하는 것 이다.
일반적으로, 길쌈부호를 채널부호로 채택하고 있는 통신 시스템들에서는 미리 고정적으로 정해진 채널부호를 사용하는 전용 부호화기에 의해 입력 정보를 채널 부호로 변환하고, 부호화된 수신 신호는 전용 복호기를 사용하여 채널에서 발생할 수 있는 오류를 정정하면서 전송정보를 복호 한다. 즉, 지정된 채널 부호를 위한 전용 부호화기 및 복호기를 사용한다. 그러나, 최근에 들어서는 신호처리용 범용프로세서의 성능이 높아져 이전에는 전용 에이직(ASIC)을 사용해야만 했던 복잡한 신호처리 알고리즘도 점차 범용프로세서를 이용하여 소프트웨어적으로 구현이 가능하게 되었다. 또한, 통신방식에 있어서도 채널의 상태에 따라 전송효율 및 전력소모를 줄일 수 있는 방법인 적응변조방식의 적용 및 구현에 노력을 기울이고 있으며, 이를 구현하기 위한 방법 중 하나인 재구성 가능한 통신장치에 대한 연구가 활발히 진행 중에 있다.
무선통신 시스템은 일반적으로 전원에 직접연결하지 않고, 배터리로부터 전원을 공급받는다. 또한, 한번 배터리를 교체하면 오래동안 사용이 가능하여야 한다. 이를 위해 시스템에서 소비하는 전력을 가능한한 줄여야 한다. 소비전력을 줄이는 방법 중 하나가 채널의 통신환경에 따라 채널부호율을 변경하여 전송하는 데이터 처리량을 높이는 방법이다. 길쌈부호를 이용하여 가변 채널부호율을 제공하는 방법은 두 가지가 있다. 첫 번째 방법은 낮은 부호율을 갖는 채널부호를 모부호로 사용하고, 부호화된 부호열에서 일정한 규칙에 따라 일부를 제거하여 전송하는 천공 길쌈부호 방법이고, 두 번째 방법은 부호율에 따라 최적의 복호성능을 갖는 길쌈부호를 각각 정하여 사용하는 방법이다. 천공 길쌈부호는 부호율에 따라 가능한 천공행렬 중에서 해당 길쌈부호를 모부호로 사용하는 경우, 최대의 복호성능을 갖는 천공행렬을 해당 부호율의 천공행렬로 사용하고 있다. 이 방법은 동일한 채널 부호화기 및 복호화기를 사용하면서도 다양한 부호율을 제공할 수 있어 통신 시스템의 구현 복잡도를 줄일 수 있는 장점이 있으나, 각각의 부호율에서 최적화된 길쌈부호를 사용하는 것에 비해서는 복호성능이 떨어지는 단점이 있다. 두 번째 방법은 각각의 부호율에 대하여 최적화된 부호를 사용하므로 복호성능이 우수하다는 장점이 있으나, 이를 구현할 때 각각의 부호에 대한 부호화기와 복호기를 병렬로 구현하여야 하기 때문에 시스템의 복잡도를 증가시키는 문제점이 있다.
한편, 수중에서 무선으로 정보를 전달할 수 있는 유일한 매체인 초음파를 이용하여 정보를 전달하는 무선통신 장치는 수중에 포설되기 때문에 통신장치 외부로부터 전원을 공급받기기 매우 어려워 일반적으로 배터리로 구동된다. 또한, 시스템 설치에 많은 비용이 들어가기 때문에 한번 포설된 시스템은 장시간 사용이 가능하도록 소비전력을 최소화하여야 한다. 전력소비를 줄이기 위하여 사용할 수 있는 방법 중 하나가 전송의 효율을 높이는 것이다. 전송의 효율을 증대시키기 위해 채널의 상태에 따라 가변적으로 채널부호의 부호율을 조절하는 방법이 사용된다. 즉, 채널의 상태가 좋은 경우에는 높은 부호율을 갖는 부호를 사용하고, 채널 상태가 나쁜 경우에는 낮은 부호율을 사용하여 정보를 전송하는 방법이다. 이를 위해, 가변적으로 변하는 부호화기와 복호기가 요구된다.
본 발명은 상기와 같은 문제점을 개선하기 위하여 창안된 것으로서, 부호화기와 복호기를 소프트웨어적으로 재구성 가능하고 데이터 처리 효율을 높일 수 있는 길쌈 부호화 방법과 비터비 복호화 방법 및 그 장치를 제공하는데 그 목적이 있다.
상기의 목적을 달성하기 위하여 본 발명에 따른 길쌈 부호화 방법은 가. 생성다항식 행렬로부터 길쌈부호화기를 생성하는 단계와; 나. 부호화 대상 입력 데이터열에 대해 상기 길쌈부호화기에 의해 길쌈 부호화를 수행하는 단계와; 다. 상기 입력 데이터열에 대한 상기 길쌈 부호화가 완료되면 상기 길쌈 부호화기의 상태를 최종 상태 값으로 저장하는 단계;를 포함한다.
바람직하게는 상기 가단계는 가-1. 상기 생성다항식 행렬을 이진수로 변환하고, 변환된 이진수의 최상위 비트에 해당하는 첫 번째 자리가 다항식의 상수항 계수가 되며, 최하위 비트에 해당하는 마지막 자리가 최고차 항의 계수가 되게 처리하는 단계와; 가-2. 상기 이진수로 변환된 각각의 생성다항식으로부터 같은 행에 있는 생성다항식들 중에서 가장 큰 메모리수를 그 행에서 필요한 메모리수(Mi )로 나타내고, 모든 행에 대하여 필요한 메모리수{Mi , i=1,...,N}를 계산하는 단계와; 가-3. i번째 상기 입력 데이터 열에 대해 확보해야하는 메모리 수(Ci)를 Ci= ceil[(Mi)/(K*8)]*K 바이트 식에 의해 계산하고, 상기 Ci 크기인 연결벡터(Pij, j=1,...,M)를 생성다항식에 따라 N개를 확보하여 0으로 초기화한 후, (i,j)번째 생성다항식의 이진수 변환 결과를 이용하여 상수항 계수가 최하위 비트에 위치하도록 하고, 상수항 계수부터 최고차 항으로의 계수 순서로 최하위 비트 위치부터 최상위 비트 쪽으로 위치하도록 상기 연결벡터(Pij)를 설정하고, 부호화를 하기 위해 i번째 메모리의 데이터와 상기 연결벡터(Pij, j=1,...,M)를 비트단위로 논리곱(AND) 연산을 수행하고, 논리곱 연산 결과를 비트단위로 GF(2) 덧셈을 수행하여 덧셈결과인 Aij, j=1,...,M을 얻는 단계와; 가-4. 모든 입력데이터 열에 대하여 계산한 {Aij, i=1,...,N, j=1,...,M} 중, {Aij, i=1,...,N}를 GF(2) 덧셈의 입력으로 하여 계산한 결과를 해당부호어의 j번째 부호로 결정하도록 길쌈부호화기를 구성하는 단계를 포함하고,
상기 ceil(x)는 x보다 작지 않은 최소정수를 계산하는 연산이고, 상기 N은 한 번에 처리하는 입력 데이터 비트 수이며, 상기 M은 한 번의 부호화에 의해 생성되는 부호어의 비트수이며, 상기 K는 데이터 처리단위이다.
본 발명의 일 측면에 따르면, 상기 나 단계는 나-1. 상기 입력 데이터열을 병렬 데이터로 변환하는 과정을 거쳐 순환적으로 N개의 데이터열로 변환하는 단계와; 나-2. 상기 입력데이터열이 입력되는 i번째 메모리의 내용은 한 비트씩 쉬프트 시키고, 최하위비트 위치에 i번째 입력데이터열의 새로운 비트를 입력하여 부호화된 결과를 얻는 단계와; 나-3. 상기 나-1 및 나-2 과정을 입력 데이터열이 끝날 때 까지 반복하는 단계;를 포함한다.
또한, 상기의 목적을 달성하기 위하여 본 발명에 따른 복호화 방법은 생성다항식 행렬과 복호 깊이와 복호길이를 포함한 파라미터를 이용하여 생성다항식 행렬을 이진수로 변환하고, 필요한 메모리 공간을 계산하여 부호화기를 구성하는 제1단계와; 상기 부호화기에 의한 비터비 복호를 위한 상태천이 테이블과 가지 신호조합 테이블 및 결정 데이터 테이블을 구성하는 제2단계와; 상기 제2단계에서 작성한 테이블을 이용하여 가지메트릭 계산기, ACS 연산기 및 전송 정보 결정기를 포함하는 복호기를 구축하는 제3단계;를 포함한다.
바람직하게는 상기 제2단계는 N*M 생성다항식 행렬로부터 생성한 상기 부호화기의 각 행에 실제 필요한 메모리 크기(Mi, i=1,...,N)를 이용하여 정보데이터가 입력되는 각 행의 최하위 비트를 제외하고 첫 번째 행의 메모리부터 순서대로 번호를 지정하여
Figure 112008044018841-pat00001
까지 지정하는 단계와; 상기 상태천이 테이블을 2Tx2N 크기로 만든 후, 상기 상태천이 테이블의 i행에는 T비트를 하나의 변수로 보아 T비트의 값이 i일 때, 현재 상태가 될 수 있는 직전 상태들이 2N개가 나열되도록 하는 단계와; 상기 가지신호조합 테이블을 2Tx2N 크기로 만든 후, 상기 가지신호조합 테이블에 상기 상태천이 테이블의 (i,j) 요소가 가리키는 상태에서 i의 상태로 천이할 때 해당하는 부호어를 (i,j) 요소에 기록하는 단계와; 상기 결정데이터 테이블을 2T 크기로 만든 후, 상기 결정데이터 테이블에 상기 상태천이 테이블의 i행의 요소들이 가리키는 상태에서 i의 상태로 천이할 때 해당하는 공통의 입력데이터를 i번째 요소로 기록하는 단계;를 거친다.
또한, 상기 복호기 구성을 위하여 2M개의 가지 메트릭을 보관할 공간을 만들고, 2T개의 상태 정보를 보관할 공간을 한 셋으로 하여 두 셋의 제1 및 제2 일차 상태정보 보관공간을 만들되, 상기 각 일차 상태 정보 보관 공간은 상태 메트릭값을 저장하는 제1서브 공간, 조상 상태를 보관하는 제2서브공간, 일차로 복호되는 정보를 보관하기 위한 제3서브공간으로 구성되며, 2T개의 상태는 일차상태정보의 상기 제2 서브공간과 상기 제3서브공간을 보관하기 위해 두개의 서브공간을 갖는 이차상태정보저장공간을 구성하며, 각 상태별로 상기 이차상태저장공간에 저장하는 일차상태정보의 개수는 복호깊이와 복호길이를 더한값을 상기 일차상태정보저장공간의 상기 제3서브공간의 복호정보길이로 나눈값 이상의 최소정수가 되도록 하여, 상기 가지메트릭 계산기, 상기 ACS 연산기 및 상태 메트릭 계산기, 상기 전송 정보결정기를 구성하는 것이 바람직하다.
상기 ACS연산기에 의한 연산은 상태천이 테이블의 i번째 행의 직전 상태의 상태메트릭과 천이에 따른 가지신호를 상기 가지신호조합 테이블에서 참조하여 해당 가지 메트릭을 더한 경로 메트릭값들을 비교하여 최소가 되는 값을 현재 상태 i의 상태메트릭 값으로 저장하고, 최소 경로 메트릭에 따른 직전 상태의 조상 상태를 상태 i의 조상 상태로 저장하고, 직전 상태의 일차 복호 정보를 N비트 쉬프트 시키고, 쉬프트 시키고 남은 자리에 i번째 결정데이터 N비트를 넣어 한 상태에 대 해 수행하고, 상기 과정을 모든 상태에 대해 반복하여 한 트렐리스에 대한 복호를 수행하며,
비터비 복호를 반복하다 일차 복호 정보 공간만큼 복호를 수행하였을 경우, 각 상태의 일차 복호 정보를 선입선출 구조를 갖는 이차 복호 정보 보관 공간으로 옮기고, 각 상태의 조상상태를 이차 조상상태로 옮기고, 현재 일차 상태 정보공간의 조상상태를 자기 상태로 설정한 후 비터비 복호과정을 반복한다.
본 발명의 일 측면에 따르면, 상기 전송정보 결정기에 의한 정보복호는 상기 이차 상태정보 저장 공간에 쌓인 복호 정보의 트렐리스 수가 복호 깊이와 한 번에 결정하는 복호 데이터의 길이의 합 이상이 되면 하나의 상태를 선택하고, 선택한 상태에서 출발하여 이차 조상 상태를 따라 복호 깊이만큼 조상 상태를 추적한 후, 복호 깊이 이상의 조상상태 추적시 해당 상태추적에 대응하는 이차 복호 정보보관 공간의 내용을 복호데이터 큐에 넣고, 조상 상태 추적을 한 번에 결정하는 복호 길이가 될 때까지 반복하며, 조상상태 추적이 완료 후 복호데이터 큐에 일차 복호 정보 공간 단위로 쌓여 있는 복호데이터를 역순으로 읽어내도록 된다.
본 발명에 따른 길쌈 부호화와 비터비 복호화 방법 및 그 장치에 의하면, 소프트웨어적으로 채널부호를 용이하게 변경할 수 있어 실효전송효율을 증대시킬 수 있는 효과가 있다. 또한, 부호화기 및 복호기를 생성다항식과 복호에 필요한 최소 파라미터인 복호깊이와 정보복호 길이에 의해 자율적으로 생성하기 때문에, 임의의 모든 길쌈부호에 대하여 대응이 가능하여 매우 유연하게 사용할 수 있는 장점이 있 다. 또한, GF(2)연산기를 테이블화 하고, 복호시의 전송정보 결정에서 상태정보 보관공간을 두 개로 분리하는 방법에 의해 연산의 효율성이 증대된다.
이하, 첨부된 도면을 참조하면서 본 발명의 바람직한 실시 예에 따른 길쌈 부호화와 비터비 복호화 방법 및 그 장치를 더욱 상세하게 설명한다.
먼저 길쌈부호화 과정은 길쌈부호화기를 생성하고 나서, 길쌈부호화기에 의해 입력 데이터열에 대해 길쌈 부호화를 수행한 후, 입력 데이터열에 대한 길쌈 부호화가 완료되면 길쌈 부호화기의 상태를 최종 상태 값으로 저장한다.
여기서, 길쌈 부호는 생성다항식, 상태천이도, 트렐리스도 등으로 정의할 수 있으며, 세 가지 정의방법 모두 동일한 길쌈부호를 나타내고, 서로 변환이 가능하다. 이하의 설명에서는 생성다항식 행렬을 이용하여 길쌈부호를 정의하는 방법을 사용하지만 앞에서 언급한 바와 같이 다른 정의방법을 사용하여도 관계없다.
생성다항식 행렬은 입력 데이터열로부터 길쌈부호를 생성하는 부호화기에 필요한 메모리 길이, 한 번에 처리하는 입력 데이터 비트수, 동시에 출력하는 부호화 비트 수 등의 정보 및 입력 데이터와 출력 부호화 비트 사이의 관계를 정의한다.
먼저, 길쌈부호화기를 생성하는 길쌈 부호화 장치를 설명한다.
도 1은 본 발명에 따른 길쌈 부호화 장치를 나타내 보인 블록도이다.
도 1을 참조하면, 길쌈 부호 장치는 이진화부(10), 필요메모리수 산출부(20) 및 부호화기 구성부(30)를 구비한다.
이진화부(10)는 생성다항식 행렬을 이진수로 변환하고, 필요 메모리수 산출 부(20)는 필요한 메모리수를 산출하고, 부호화기 구성부(30)는 부호화기를 구성한다.
이를 더욱 상세하게 설명하면, 생성다항식 행렬은 N*M 크기를 가질 수 있는데, N은 한 번에 처리하는 입력 데이터 비트 수이며, M은 한 번의 부호화에 의해 동시에 생성되는 부호화 비트 수이다.
생성다항식 행렬의 (i,j) 번째 다항식은 부호화기의 i번째 입력 데이터 열이 j번째 길쌈 부호 결정을 위한 이진 가산기로의 입력 여부를 나타내며 8진수로 표기한다고 가정한다. 여기서, 입력다항식 형식을 8진수로 하여 설명하지만, 입력다항식에 대해서는 다른 진수의 입력형식도 가능하며, 최종적으로 이진수로 변환되기만 하면 된다.
(i,j)번째 생성다항식이 (7)8 (8진수로 7)인 경우, 이는 이진수로 변환하면 (111)2 가 되고, 이를 다항식으로 표시하면,
Figure 112008044018841-pat00002
로 나타낼 수 있다.
즉, 이진수의 최상위 비트에 해당하는 첫 번째 자리가 다항식의 상수항의 계수, 두 번째 자리가 일차항의 계수, 그리고 마지막 자리가 이차항의 계수가 된다. 각각의 생성다항식을 정의할 때, 가장 긴 메모리 공간을 필요로 하는 즉, 가장 큰 차수를 갖는 생성다항식을 기준으로 정의한다. 본 발명에서는 이진수의 0이 아닌 최상위 비트가 다항식의 상수항의 계수가 되는 것으로 가정하지만, 반대로 이진수의 제일 마지막 자리가 상수항의 계수가 되게 정의하여도 본 발명의 내용을 적용할 수 있다. 물론, 이때에는 동일한 부호기 구성이 가능하도록 다항식의 이진수 배열 을 반대로 나열하여 정의하면 된다.
필요 메모리수 산출부(20)는 이진화부(10)에 의해 이진수로 변환된 각각의 생성다항식으로부터 같은 행에 있는 생성다항식들 중에서 가장 큰 메모리수를 모든 행에 대하여 산출한다.
여기서, 각 생성다항식의 계수는 최대 메모리를 필요로 하는 생성 다항식의 차수를 기준으로 정의된 것으로 가정한다. 이진수로 변환된 생성다항식에서 최상위 비트부터 검사하여 0이 아닌 비트가 최초로 나타나는 비트 자리 A와, 최하위 비트로부터 검사하여 0이 아닌 비트가 최초로 나타나는 비트 자리 B를 구한다. 이 경우 필요한 메모리수는 A-B+1에 해당하는 비트이다. 같은 행에 있는 생성다항식들 중에서 가장 큰 메모리수를 그 행에서 필요한 메모리수 Mi 로 나타내고, 모든 행에 대하여 {Mi , i=1,...,N}를 구한다.
부호화기 구성부(30)는 i번째 입력 데이터 열에 대해 확보해야하는 메모리 수(Ci)를 산출하고, Ci 크기인 연결벡터를 생성다항식에 따라 생성하며, 연결백터(Pij, j=1,...,M)와 논리곱(AND) 연산기 및 GF(2)연산기에 의해 부호화할 수 있는 길쌈부호화기를 구성한다.
즉, 부호화기 구성부(30)는 앞에서 구한 {Mi , i=1,...,N}와 생성다항식 행렬을 이용하여 부호화기를 구성한다. 범용 프로세서에서는 데이터 처리단위(K byte라 정의)로 연산을 수행하기 때문에 i번째 입력 데이터 열에 대해 확보해야하는 메모리 수는 Ci= ceil[(Mi)/(K*8)]*K 바이트이다. 여기서, ceil(x)는 x보다 작지 않 은 최소정수를 계산하는 연산이다. Ci 크기인 연결벡터를 생성다항식에 따라 M개, {Pij, j=1,...,M}, 생성한다. Pij는 0으로 초기화한 후, (i,j)번째 생성다항식의 이진수 변환 결과를 이용하여 상수항 계수가 최하위 비트(LSB; Least significant bit)에 오도록 하고, 상수항 계수부터 최고차항의 계수 순서로 LSB 위치부터 최상위비트(MSB; Most significant bit) 쪽으로 위치시킨다. Pij를 0으로 초기화 함으로써 생성다항식에서 정의하는 필요 메모리보다 크게 할당한 메모리 공간에 저장된 데이터가 부호화에 영향을 미치는 것을 제거한다. 부호화된 결과를 얻기 위해, i번째 메모리의 데이터와 연결백터, Pij, j=1,...,M, 를 비트단위로 AND 연산을 수행하고, 그 결과를 비트단위로 GF(2)(Galois field) 덧셈을 수행하고, 그 결과를 {Aij, j=1,...,M}라 하고, 모든 행에 대하여 GF(2) 덧셈을 수행한 결과 {Aij, i=1,...,N, j=1,...,M} 중, {Aij, i=1,...,N}를 GF(2) 덧셈을 수행한 결과를 해당부호어의 j번째 부호어가 되도록 부호화기를 구성한다. 메모리의 내용은 부호화기의 운용방법에 따라 0으로 초기화 할 수도 있으며, 저장된 최종상태값을 메모리의 내용으로 사용할 수도 있다.
부호화시 입력되는 데이터열을 직렬-병렬(S/P;Serial-to-Parallel)과정을 거쳐 순환적으로 M개의 데이터열로 변환한다. i번째 메모리의 내용은 한 비트씩 쉬프트(shift)시키고, LSB위치에 i번째 데이터열의 새로운 비트를 입력하여 부호화된 결과를 얻으며, 이와 같은 과정을 데이터열이 끝날 때까지 반복한다. 부호화가 완료되었을 때, 메모리의 내용을 최종 상태값으로 저장한다.
일 예로서, 생성다항식 행렬이 G=[7,5]이고, 데이터 처리단위가 1 바이 트(byte)인 경우, 첫 번째 단계에서 78을 (111)2로, 58을 (101)2로 변환하고, 두 번째 단계에서 필요한 메모리 공간이 M={3,3}임을 계산한다. 세 번째 단계에서 C={1,1} 바이트(byte)임을 계산하고, 부호화기를 도 2과 같이 구성한다.
도 2에서, 참조부호 41은 입력 데이터열이 입력되는 메모리이고, 43 및 53은 AND 연산기, 45 및 55는 생성다항식 행렬에 대해 이진값으로 변환된 계수값이 기록된 메모리이고, 47 및 57은 AND 연산결과값이 출력되는 버스이고, 49 및 59는 GF(2) 연산기이다.
도시된 예에서는 생성다항식의 계수를 연결벡터에 저장한 후 입력데이터열과 비트단위로 AND연산하고, 그 결과를 GF(2) 덧셈기(49)(59)의 입력으로 사용한다. GF(2)덧셈의 결과가 A1j이고, 본 실시예에서 N=1인 경우이므로 A1j가 부호화된 최종결과가 된다.
한편, 긴 입력 데이터열을 길쌈부호화 하는 경우, 일정단위 길이 즉 블록단위로 부호화를 수행할 수 있다. 이때, 먼저 생성다항식 행렬을 이용하여 앞에서 기술한 바에 따라 부호화기를 생성하고, 메모리값을 0으로 초기화한다. 첫 번째 블록의 데이터를 길쌈부호화기의 입력으로 넣으면, 생성다항식에 따라 입력데이터를 직-병렬(S/P)화 과정에 의해 병렬화하고, 병렬화된 입력데이터를 이용하여 부호화를 수행한다. 입력데이터의 부호화를 마친 후 메모리의 내용을 보관한다. 두 번째 데이터 블록부터는 직전 데이터 블록에 대해 부호화를 마친 후 보관해 두었던 메모리 내용으로 부호화기의 메모리를 설정한 후, 첫 번째 데이터 블록에 대해 부호화를 하는 방법과 동일한 방법으로 부호화를 수행한다. 위와 같은 과정을 반복하여 긴 입력 데이터열에 대한 길쌈부호화를 수행한다.
채널상태의 변화나 여러 가지 이유로 인하여 채널부호를 변경하여야하는 경우에는 새로운 채널 부호의 생성다항식을 입력으로 받아 부호화기 생성의 첫 번째 단계부터 다시 밟아 채널 부호를 새로 생성하여 사용하고, 그렇지 않은 경우에는 생성된 부호화기 구조를 계속 사용한다. 이때, 새로 생성된 부호화기의 메모리는 0으로 초기화 한다.
본 발명의 부호화기에서 사용하는 GF(2) 덧셈기(49)(59)는 생성다항식에서 필요로 하는 입력 비트보다 많은 입력비트에 대한 덧셈을 수행하여야 하므로 연산의 복잡도가 높이질 수 있고, 이에 대한 대안으로서, B비트 크기의 입력 조합에 따른 GF(2) 덧셈결과를 미리 계산하여 테이블에 저장하고, GF(2) 덧셈기의 입력비트를 B 비트 단위로 나누어 순차적으로 테이블을 참조하여 비트 입력에 따른 일차 결과값을 얻는 방법을 적용할 수 있다. 순차적으로 얻은 일차 결과값은 다시 GF(2) 덧셈기의 입력이 되므로, 일차 결과값을 B비트 단위로 나누어 테이블을 참조하여 이차 결과값을 얻는다. 이와 같은 과정을 최종 결과값이 나올 때까지 반복한다. 이때, 테이블의 크기는 2B byte 가 필요하므로 B의 크기에 따라 지수적으로 테이블 크기가 증가하나 B의 증가에 의해 GF(2) 덧셈을 나누어 수행하는 횟수가 감소하는 관계가 있어 B를 적당히 조절하여야 한다. 범용 신호처리 프로세서를 이용하여 구현할 때는 4bit의 배수로 정하는 것이 연산의 효율을 높일 수 있는 방법이다.
도 3에는 이러한 방식에 의해 3차(61)(62)(63)에 걸쳐 GF(2) 연산기(65)에 의해 연산을 수행하는 예를 보였다. 도 3에서 각 차수의 마지막 B비트 GF(2) 덧셈기(65)의 입력은 1비트부터 B비트까지 가능하다. 1비트인 경우는 GF(2) 덧셈기(65)를 사용하지 않고 다음 차수의 GF(2) 덧셈기(65)의 입력으로 사용하면 된다. 도 3에서는 통일성을 유지하기 위해 1비트의 경우도 GF(2) 덧셈기(65)를 통과하는 것으로 나타내었다.
한편, 이러한 방법에 의해 생성되어 전송되는 길쌈 채널부호를 복호하기 위한 최적 복호기로는 비터비 복호기가 사용된다.
비터비 복호기는 비터비 알고리즘이라고 널리 알려진 방법을 사용하는데 이는 가지메트릭 계산, ACS (Add-Compare-Select)연산 및 상태 메트릭 갱신, 전송 정보 결정의 과정을 반복적으로 수행한다.
비터비 복호기를 수행할 때 길쌈 부호의 상태천이와 상태천이에 따른 부호어를 이용하는데 상태 천이와 상태천이에 따른 부호어는 길쌈부호마다 달라 하드웨어로 구현하는 경우는 물론이고 범용프로세서를 사용하여 소프트웨어로 구현하는 경우에도 각각의 복호기를 독립적으로 구현한다. 그러나 본 발명에서는 생성다항식 행렬에 따라 능동적으로 비터비 복호기를 구성하여 복호하는 방법을 적용한다.
본 발명에서 적용하는 비터비 복호기는 세 단계에 걸쳐 비터비 복호기를 구성한다. 첫 번째 단계는 생성다항식 행렬을 해석하여 부호화기를 구성하는 단계이고, 두 번째 단계는 비터비 복호를 위한 상태천이 테이블과 가지 신호조합 테이블 및 결정 데이터 테이블을 구성하는 단계이고, 세 번째 단계는 비터비 복호기를 구 성하는 단계이다.
이러한 과정을 수행하는 비터비 복호장치가 도 4에 도시되어 있다.
도 4를 참조하면, 비터비 복호장치는 부호화기 구성부(110), 테이블 생성부(120), 복호기 구성부(130)를 구비한다.
부호화기 구성부(110)는 생성다항식 행렬을 이용하여 생성다항식 행렬을 이진수로 변환하고, 필요한 메모리 공간을 계산하여 부호화기를 구성한다.
테이블 생성부(120)는 부호화기에 의한 비터비 복호를 위한 상태천이 테이블과 가지 신호조합 테이블 및 결정 데이터 테이블을 구성한다.
복호기 구성부(130)는 테이블 생성부에 의해 작성된 테이블을 이용하여 가지메트릭 계산기, ACS 연산기 및 전송 정보 결정기를 포함하는 복호기를 구축한다.
이러한 복호 장치에 의한 복호기 구성 및 이로부터의 복호과정을 도 5 내지 도 9를 함께 참조하면서 이하에서 더욱 상세하게 설명한다.
먼저, 부호화기 구성부(110)는 생성다항식 행렬 해석을 위하여 앞에서 기술한 길쌈부호화기 생성단계와 동일한 과정을 거쳐 길쌈부호화기를 구성한다. 즉, 8진수로 입력하는 생성다항식 행렬을 이진수로 변환하고, 필요 메모리 공간을 계산하고, 부호화기를 구성한다.
다음으로, 각 행에 실제 필요한 메모리 크기인 {Mi, i=1,...,N}를 이용하여 첫 번째 행의 메모리부터 순서대로 번호를 지정한다. 이때, 정보테이터가 입력되는 각 행의 LSB 비트는 번호를 지정하지 않는다. 일 예로서, 첫 번째 열에서는 LSB 비트를 제외하고 1부터 M1-1까지 지정되고, 두 번째 열에서도 LSB를 제외하고 M1부터 M1+M2-2 까지 지정된다. 나머지 열에 대해서도 마찬가지로 지정하면 (
Figure 112008044018841-pat00003
) 까지 지정된다. 위와 같은 경우 길쌈부호의 상태를 나타내기 위해 T비트가 필요하고, 이때 상태수(SN)는 2T개가 된다. 또한, 부호화기에서 한번에 처리되는 입력비트수가 N비트이므로 입력 데이터가 가질 수 있는 비트조합은 2N 가지이다. 상태천이 테이블(173)을 2Tx2N 크기로 만든다. 상태천이 테이블(173)의 i행에는 T비트를 하나의 변수로 보아 T비트의 값(현재 상태값)이 i일 때, 현재 상태가 될 수 있는 직전 상태들이 2N개가 나열된다. 즉, 현재상태로 천이하는 모든 상태들이 나열된다. 가지신호조합 테이블(174)도 2Tx2N 크기로 만든다. 가지신호조합 테이블(174)에는 상태천이 테이블의 (i,j) 요소가 가리키는 상태에서 i의 상태로 천이할 때 해당하는 부호어를 (i,j) 요소에 기록한다. 결정데이터 테이블(178)은 2T 크기로 만든다. 결정데이터 테이블(178)에는 상태천이 테이블(173)의 (i,j)요소가 가리키는 상태에서 i의 상태로 천이할 때 해당하는 입력데이터를 i번째 요소로 기록한다. 세 테이블의 내용은 앞에서 생성한 길쌈부호화기를 이용하여 기록한다.
다음 단계에서는 비터비 복호기 구성을 위하여 2M개의 가지 메트릭을 보관할 공간을 만들고, 또한, 2T개의 상태 정보를 보관할 공간을 한 셋으로 하여 두 셋의 일차 상태 정보 보관공간(181)(182)을 만든다. 일차 상태 정보 보관 공간은 상태 메트릭값을 저장하는 제1서브공간, 조상 상태를 보관하는 제2서브공간, 일차로 복호되는 정보를 보관하기 위한 제3서브공간으로 구성된다. 또한, 2T개의 상태는 일차상태정보의 제2 서브공간과 제3서브공간을 보관하기 위해 두개의 서브공간을 갖는 이차상태정보저장공간(187)을 구성한다. 이차상태정보저장공간(187)은 일차상태정보의 제2서브공간에 저장되어 있는 조상상태를 보관하는 공간(187a)과 일차상태정보의 제3서브공간에 저장되어 있는 복호정보를 보관하는 공간(187b)으로 구성된다. 각 상태(State)별로 이차상태저장공간(187)에 저장하는 일차상태정보의 갯 수는 복호깊이와 복호길이를 더한값을 일차상태정보저장공간의 제3서브공간의 복호정보길이 (즉, 일차상태정보저장공간에서 복호하는 데이터 길이)를 나눈값 이상의 최소정수가 되도록 한다.
이와 같은 정보저장 공간을 확보하여 도 5에 도시된 바와 같은 가지메트릭 계산기(140), ACS 연산기(150) 및 전송 정보결정기(160)로 이루어진 비터비 복호기를 구성한다.
구성된 비터비 복호기는 다음과 같은 순서를 거쳐 복호를 수행한다. 먼저, 한 셋의 상태정보 보관 공간의 내용을 상태 메트릭 값은 0으로 설정하고, 자신의 상태값으로 조상 상태 보관 공간을 초기화하고, 일차 복호정보는 0으로 설정한다. 만일 부호화기의 초기 상태를 알고 있는 경우(일반적으로 상태 0)에는 알고 있는 초기 상태의 상태 메트릭 값은 0으로 설정하고, 알고 있는 초기상태 이외의 상태에 대한 상태 메트릭값은 0이 아닌 매우 큰 수를 설정한다. 초기화된 한 셋의 상태정 보 보관 공간을 A라 하고, 나머지 한 셋의 상태정보 보관 공간을 B라 한다. 첫 번째 신호복호시 정보 공간 A는 이전 상태 정보로 사용되고, 정보공간 B는 현재 상태 정보로 사용되며, 두 번째 신호복호시는 정보 공간 A, B의 역할이 바뀐다. 세 번째에는 다시 정보공간 A가 이전 상태정보로 사용되고, B는 현재상태정보로 사용된다. 이와 같은 과정을 반복한다.
가지메트릭 계산기(140)에서는 복조기에서 수신된 신호가 비터비 복호기에 입력되면, 복호기는 M개의 비트에 해당하는 수신 신호와 0부터 (2M-1)까지의 신호 조합과의 가지 메트릭을 계산하여 순서대로 2M개의 가지 메트릭 테이블에 저장한다. 가지 메트릭은 유클리디안 거리, 해밍 거리 등이 사용되며 거리가 가까울수록 0에 가까운 값을 갖고 거리가 멀수록 큰 양수를 갖는다고 가정한다. 유클리디안 및 해밍거리의 변형 또한 사용가능하며, 변형된 형태의 가지메트릭은 양수 및 음수를 가질 수도 있다. 가지메트릭 계산기(140)의 구조를 도 6을 참조하여 살펴보면 다음과 같다. M비트 버퍼(141)에서는 길쌈부호기의 한 트렐리스(Trellis)에 해당하는 M비트에 해당하는 복조신호가 들어올 때까지 신호를 보관하고 있다가, M비트에 해당하는 복조신호가 들어오면 스위치(143)에 의해 이를 가지메트릭 계산부(147)에 입력으로 보낸다. 가지메트릭 계산부(147)에서는 M비트에 해당하는 복조신호와 M비트 신호에 의해 조합가능한 모든 신호의 심볼조합을 M비트 심볼조합 테이블(145)로부터 받아 각각에 대한 가지메트릭을 계산하고, 그 결과를 가지메트릭 테이블(149)에 저장한다.
ACS연산기(150)에서는 상태천이 테이블의 i번째 행의 직전 상태의 상태메트릭과 천이에 따른 가지신호를 가지신호조합 테이블에서 참조하여 해당 가지 메트릭을 더한 경로 메트릭값들을 비교하여 최소가 되는 경로메트릭값을 현재 상태 i의 상태메트릭 값으로 저장하고, 최소 경로 메트릭에 따른 직전 상태의 조상 상태를 상태 i의 조상 상태로 저장하고, 직전 상태의 일차 복호 정보를 N비트 쉬프트 시키고, 쉬프트 시키고 남은 자리에 i번째 결정데이터 N비트를 넣는다. 이와 같은 과정을 모든 상태에 대해 반복한다. 모든 상태에 대해 완료하면 한 트렐리스에 대한 복호가 완료된다.
트렐리스에 대한 복호를 반복하다 일차 복호 정보 공간만큼 복호를 수행하였을 경우, 각 상태의 일차 복호 정보를 선입선출(FIFO)구조를 갖는 이차 복호 정보 보관 공간으로 옮기고, 각 상태의 조상상태를 이차 조상상태로 옮기고, 현재 상태 정보공간의 조상상태를 자기 상태로 재설정한다. 재설정한 후 앞의 과정을 반복한다.
ACS계산기의 구조가 도 7에 도시되어 있다.
상태카운터(172)는 0부터 2T-1까지 순차적으로 증가하고, 2T-1에서 0으로 바뀌며, 가지카운터(171)는 0부터 2N-1까지 순차적으로 증가하고, 2N-1에서 0으로 바뀐다. 가지카운터(171)가 0으로 바뀔 때, 상태카운터(172) 값이 1증가한다. 도면에서 한 셋의 일차 상태 정보를 보관하는 제1일차 상태정보 저장부는 일차상태정보 저장공간 A(181)로 표기되어 있고, 또 한 셋의 일차 상태 정보를 보관하는 제2일 차 상태정보 저장부는 일차상태정보 저장공간 B(182)로 표기되어 있다.
첫 번째 트렐리스(Trellis)에 대한 복호는 다음과 같이 수행된다. 상태 카운터(172)와 가지카운터(171)가 0으로 초기화 한다. SW1(191)과 SW2(192)는 일차상태정보 저장공간 A(181)에 연결되도록 하며, SW3(193)과 SW5(194)는 SW1(191)과 반대의 일차상태정보 저장공간B(182)에 연결되도록 한다. SW7(197)은 상태천이 테이블(173)에 연결되도록 한다. 위와 같이 설정하면, 트렐리스상의 조상상태는 일차 상태 정보저장공간 A(181)가 되고, 현재상태는 일차 상태 정보저장공간 B(182)가 된다. 조상상태에 해당하는 일차상태정보 저장공간 A(181)의 상태메트릭값은 0으로 초기화하고, 조상상태보관 공간은 자기 자신의 상태값으로 설정하여 초기화하고, 일차복호정보 보관 공간은 0으로 초기화 한다. 만일 부호화기의 초기상태를 알고 있는 경우에는, 알고 있는 초기상태를 제외한 상태메트릭 값을 매우 큰 값으로 초기화 한다. 가지카운터(171)를 0부터 2N-1까지 증가시킨다. 가지카운터(171)값을 증가시킴에 따라 상태천이 테이블(173)과 가지신호 조합테이블(174)의 행의 내용을 순차적으로 참조한다. 상태천이테이블(173)에서 참조한 이전상태를 이용하여 일차상태정보 저장공간에 저장된 이전상태의 상태메트릭을 얻는다. 가지신호조합테이블(174)에서 이전 상태에서 현재상태로 천이할 때 생성되는 가지신호를 얻고, 이를 이용하여 가지메트릭 테이블(149)을 참조하여 가지 메트릭을 얻는다. 이와 같은 과정을 거쳐 얻은 이전 상태메트릭과 가지메트릭을 상태메트릭 계산기(175)에서 더하여 해당천이의 경로메트릭을 계산한다. 비교/선택기(176)에서는 계산한 경로 메트 릭과 상태정보 임시저장공간(177)에 보관된 경로메트릭을 비교하여 작은 값을 갖는 값을 선택한다. 선택한 값이 상태정보 임시저장공간(177)의 값이면 상태정보 임시저장공간(177)의 내용에 변화가 없으며, 상태메트릭계산기(175)로부터 입력받은 경로메트릭이 더 작을 경우에는, 경로 메트릭과 해당 천이의 이전 상태를 상태정보 임시저장공간(177)에 보관한다. 가지카운터(171)의 값이 (2N-1)이 될 때까지 앞의 과정을 반복한다. 가지카운터(171) 값이 (2N-1)일 때, SW4(194)를 연결하여 비교/선택기(176)의 출력인 경로메트릭은 일차상태정보 저장공한 B(182)에 상태카운터(172)가 지정하는 현재 상태의 상태메트릭으로 저장하고, 해당 경로에 의한 이전상태의 조상상태를 현재상태의 조상상태로 저장하고, 해당 경로에 의한 이전상태의 일차결정데이터를 결정데이터추가부(179)를 거쳐 그 결과를 현재상태의 일차결정데이터로 저장한다.
결정데이터 추가부(179)에서는 비교/선택기(176)에서 결정된 이전상태의 일차결정데이터를 N비트 (한 트렐리스에서 결정하는 데이터 길이) 만큼 쉬프트 시킨 후, 결정데이터 테이블(178)로부터 상태카운터(172)가 지정하는 상태의 결정데이터를 읽어 일차 결정데이터에 N비트 추가한다. 이의 과정이 도 8에 있다. 그림에서 1번 블록은 N비트의 MSB부로 결정데이터 추가부(179)에서 쉬프트 연산에 의해 일차결정데이터에서 제거되는 값이고, 2번 블록은 일차결정데이터 중에서 보존되는 부분이고, 3번 블록은 결정데이터 테이블(178)에서 참조한 값으로 일차결정데이터의 LSB쪽에 추가되는 값이다.
이후에는 상태카운터(172)값을 하나 증가시키고, 상대정보 임시저장공간(177)을 초기화하고, 가지카운터(171)를 0으로 초기화한 후 앞의 과정을 가지카운터(171)가 (2N-1)이 될 때까지 반복하여 한 상태에 대한 ACS연산를 수행한다. 이와같은 과정을 상태카운터(172)가 (2T-1)까지 반복하여 한 트렐리스에 대한 복호연산을 수행한다. 한 트렐리스에 대한 복호연산이 완료되면 트렐리스 카운터(185)를 1증가시킨다.
두 번째 트렐리스에 대해서 복호는 다음과 같은 순서로 수행한다. 다음 M비트에 해당하는 복조심볼을 이용하여 가지메트릭 계산기(140)에서 가지메트릭 테이블(149)을 갱신한다. SW1(191)과 SW2(192)는 일차상태정보 저장공간 B(182)에 연결되도록 하며, SW3(183)과 SW5(185)는 일차상태정보 저장공간A(181)에 연결되도록 한다. 상태카운터(172)와 가지카운터(171)를 0으로 설정한다. 위와 같이 설정하면, 첫 번째 트렐리스 복호와는 반대로, 트렐리스상의 조상상태는 일차 상태 정보저장공간 B(182)가 되고, 현재상태는 일차 상태 정보저장공간 A(181)가 된다. 두 번째 트렐리스복호부터는 일차상태정보저장공간의 초기화를 수행하지 않고, 가지카운터(171)와 상태카운터(172)를 증가시키면서 동일한 연산과정을 거쳐 복호를 수행한다. 세 번째 트렐리스 복호에는 다시 SW1(191)과 SW2(192)는 일차상태정보 저장공간 A(181)에 연결되도록 하며, SW3(193)과 SW5(195)는 일차상태정보 저장공간B(182)에 연결되도록 한 후, 복호를 수행한다. 이와 같은 과정을 계속 반복하여 복호를 수행한다.
한 트렐리스에 대한 복호 완료 후, 일차결정데이터의 길이만큼 데이터 결정이 완료되었으면, SW7(197)을 상태카운터(172)로 연결하고, SW6(196)을 연결하고, SW1(191)과 SW2(192)를 트렐리스에 대한 복호 완료시점에서 현재상태를 나타내는 일차정보저장공간 쪽으로 연결한 후, 상태카운터(172) 값을 0부터 (2T-1)까지 증가시키면서 일차상태정보저장공간에 저장된 결정데이터와 조상상태를 이차상태정보 저장공간(187)으로 옮긴다. 이차 상태정보 저장공간(187)으로 옮긴 후, 일차 상태정보저장공간의 각 상태의 조상상태를 자기자신의 상태로 재설정한다. 결정데이터 보관공간은 0으로 초기화할 수도 있고, 결정데이터 추가부(179)에서 쉬프트 연산에 의해 제거될 수도 있으므로 초기화를 수행하지 않아도 무방하다. 상태메트릭값은 일차상태정보저장공간을 이차상태정보저장공간(187)으로 옮김과 동기를 맞추어 정규화를 수행할 수 있고, 따로 정해진 주기에 따라 정규화를 수행할 수도 있다. 일반적인 상태메트릭 정규화는 가장 작은 상태메트릭을 찾아 그 값을 모든 상태메트릭에서 공통으로 빼주어 상태메트릭이 발산하는 것을 방지한다. 본 발명에서는 상태메트릭 정규화시 가장 작은 상태메트릭을 찾는 대신 첫 번째 상태메트릭값을 모든 상태메트릭에서 공통으로 빼주어 정규화를 하는 방법을 사용한다. 상태정보를 이동시킨 후, SW7(197)은 상태천이테이블(173)쪽으로 연결하고, SW6(196)은 연결을 해지하고, SW1(191)과 SW2(192)는 연결상태를 복원한다. SW1(191)과 SW2(192)의 연결을 복원하는 것은 앞에서 설명한 한 트렐리스에 대한 복호의 과정을 동일하게 수행하기 위한 것이다. SW1(191)과 SW2(192)의 연결복원을 생략하는 경우에는 다음 트렐리스 복호 시작시 SW1(191)과 SW2(192)의 연결변경을 생략함으로써 정상적인 복호과정을 수행할 수 있다.
전송정보 결정기(160)에 의한 정보복호에서는 이차 상태정보 저장 공간(187)에 쌓인 복호 정보의 트렐리스 수가 복호 깊이와 한 번에 결정하는 복호 데이터의 길이의 합 이상이 되면 다음과 같이 복호를 수행한다. 즉, 트렐리스 카운터(185)의 값을 참조하여 복호를 수행한다. 임의로 하나의 상태를 선택하고, 선택한 상태에서 출발하여 이차 조상 상태를 따라 복호깊이만큼 조상 상태를 추적한 후, 복호깊이 이상의 조상상태 추적시 해상 상태에 대응하는 이차 복호 정보보관 공간의 내용을 복호데이터 큐에 넣고, 조상 상태 추적을 한 번에 결정하는 복호 길이가 될 때까지 반복한다. 조상상태 추적이 완료 후 복호데이터 큐에 일차 복호 정보 공간 단위로 쌓여 있는 복호데이터를 역순으로 읽어내어 복호를 수행한다.
조상상태 추적의 시작시 선택하는 상태는 상태메트릭 값이 가장 적은 값을 갖는 상태를 선택할 수도 있으나, 임의의 상태를 선택하여도 복호 깊이가 충분히 길다면 복호성능은 변화가 없다. 이는 조상 상태 추적을 수행하면 일정 수 이상의 트렐리스를 지나면, 출발 상태에 관계없이 하나의 생존경로로 합쳐지게 되기 때문이다. 본 발명에서는 0번 상태를 복호추적의 시작 상태로 사용한다.
전송 데이터를 복호하기 위하여 이차상태정보공간(187)에 쌓여있는 조상상태와 결정데이터를 이용한다. 이차상태정보저장공간(187)은 도 9에 도시된 바와 같이 크게 일차상태정보저장공간(181)(182)의 결정데이터와 조상상태를 저장하는 공간으로 구성되며, 저장공간을 참조하기 위해 사용하는 주소를 생성하는 주소생성 기(188)로 구성된다. 이차상태정보 저장공간(187)은 선입선출구조를 갖는다. 정보복호기(190)에서 입력받은 트렐리스 카운터의 값에서 미리정해진 복호 깊이를 뺀 후, 결과 값이 미리정해진 한번 정보복호로 결정하는 전송데이터 길이의 배수가 될 때마다 한번 정보복호로 결정하는 전송데이터 길이만큼의 전송 데이터를 결정한다. 즉, 가장 최근에 입력받은 0번 상태의 조상상태값을 초기값으로 설정하고, 조상상태값이 지정하는 조상상태의 조상상태값을 새로운 조상상태값으로 갱신한다. 이와 같은 과정을 복호깊이에 해당하는 만큼 반복하여 상태추적을 수행한다. 상태추적완료 후, 조상상태값이 지정하는 상태와 함께 저장된 결정데이터를 복호큐에 넣는다. 조상상태값이 지정하는 상태를 새로운 조상상태값으로 갱신하고, 갱신된 조상상태값이 지정하는 상태와 함께 저장된 결정데이터를 복호큐에 넣는다. 이와 같은 과정을 한번에 결정하는 전송데이터길이에 해당하는 만큼 반복한다. 반복후 복호큐에 쌓인 복호데이터를 역순으로 읽어내어 복호데이터를 결정한다.
한편, 수신 데이터의 길이가 너무 길어 이를 한 번에 처리하지 못하는 경우에는 이를 블록단위로 나누어 비터비 복호기에 순차적으로 입력하여 송신 정보를 복호하도록 한다. 이때, 첫 번째 블록의 입력 전에 생성다항식을 이용하여 비터비 복호기를 구성하고, 앞에서 기술한 바와 같이 초기화를 수행한다. 첫 번째 블록을 입력으로 하여 복호를 수행한 후 비터비 복호기의 모든 정보보관 공간 및 조상상태 보관 공간을 보존하고, 두 번째 수신 데이터 블록을 입력하여 복호를 수행한다. 이와 같은 과정을 마지막 블록까지 수행한다. 마지막 수신 데이터 블록을 복호할 때, 만일 부호 생성기의 마지막 상태가 미리 정해져 있다면 정해진 상태에서 조상상태 추적을 시작하고, 그렇지 않은 경우에는 상태메트릭을 비교하여 가장 작은 값을 갖는 상태에서 조상상태 추적을 시작한다. 이때 앞 수신 블록들과는 다르게 조상상태 추적을 시작하는 단계부터 정보데이터 복원을 시작한다. 즉, 조상상태 추적을 시작하는 상태의 정보보관 공간의 내용부터 추적하는 차례로 복호데이터큐에 쌓는다. 추적을 마친 후, 데이터큐에 쌓인 데이터를 역순으로 읽어 데이터 복원을 수행한다.
도 1은 본 발명에 따른 길쌈 부호화 장치를 나타내 보인 블록도이고,
도 2는 도 1의 길쌈 부호화 장치에 의해 생성된 길쌈부호화기의 일 예를 나타내 보인 도면이고,
도 3은 도 2의 길쌈 부호화기에 의한 GF(2)의 연산 방식의 일 예를 나타내 보인 도면이고,
도 4는 본 발명에 따른 비터비 복호화 장치를 나타내 보인 블록도이고,
도 5는 도 4의 비터비 복호화 장치에 의해 생성된 복호기를 나타내 보인 블록도이고,
도 6은 도 5의 가지메트릭 계산기의 상세 블록도이고,
도 7은 도 5의 ACS연산기의 구조를 나타내 보인 블록도이고,
도 8은 도 7의 결정데이터 추가부에 의한 데이터 처리과정을 설명하기 위한 도면이고,
도 9는 도 5의 전송정보 결정기에 의한 복호과정을 설명하기 위한 블록도이다.

Claims (16)

  1. 삭제
  2. 가. 생성다항식 행렬로부터 길쌈부호화기를 생성하는 단계와;
    나. 부호화 대상 입력 데이터열에 대해 상기 길쌈부호화기에 의해 길쌈 부호화를 수행하는 단계와;
    다. 상기 입력 데이터열에 대한 상기 길쌈 부호화가 완료되면 상기 길쌈 부호화기의 상태를 최종 상태 값으로 저장하는 단계;를 포함하고,
    상기 가단계는
    가-1. N*M 생성다항식 행렬을 이진수로 변환하고, 변환된 이진수의 최상위 비트에 해당하는 첫 번째 자리가 다항식의 상수항 계수가 되며, 최하위 비트에 해당하는 마지막 자리가 최고차 항의 계수가 되게 처리하는 단계와;
    가-2. 상기 이진수로 변환된 각각의 생성다항식으로부터 같은 행에 있는 생성다항식들 중에서 가장 큰 메모리수를 그 행에서 필요한 메모리수(Mi )로 나타내고, 모든 행에 대하여 필요한 메모리수{Mi , i=1,...,N}를 계산하는 단계와;
    가-3. i번째 상기 입력 데이터 열에 대해 확보해야하는 메모리 수(Ci)를 Ci= ceil[(Mi)/(K*8)]*K 바이트 식에 의해 계산하고, 상기 Ci 크기인 연결벡터(Pij, j=1,...,M)를 생성다항식에 따라 M개를 확보하여 0으로 초기화한 후, (i,j)번째 생성다항식의 이진수 변환 결과를 이용하여 상수항 계수가 최하위 비트에 위치하도록 하고, 상수항 계수부터 최고차 항으로의 계수 순서로 최하위 비트 위치부터 최상위 비트 쪽으로 위치하도록 상기 연결벡터(Pij)를 설정하고, 부호화를 하기 위해 i번째 메모리의 데이터와 상기 연결벡터(Pij, j=1,...,M)를 비트단위로 논리곱(AND) 연산을 수행하고, 논리곱 연산 결과를 비트단위로 GF(2) 덧셈을 수행하여 덧셈결과인 Aij, j=1,...,M을 얻는 단계와;
    가-4. 모든 입력데이터 열에 대하여 계산한 {Aij, i=1,...,N, j=1,...,M} 중, {Aij, i=1,...,N}를 GF(2) 덧셈의 입력으로 하여 계산한 결과를 해당부호어의 j번째 부호로 결정하도록 길쌈부호화기를 구성하는 단계를 포함하고,
    상기 ceil(x)는 x보다 작지 않은 최소정수를 계산하는 연산이고,
    상기 N은 한 번에 처리하는 입력 데이터 비트 수이며,
    상기 M은 한 번의 부호화에 의해 생성되는 부호어의 비트수이며,
    상기 K는 데이터 처리단위인 것을 특징으로 하는 길쌈 부호화 방법.
  3. 가. 생성다항식 행렬로부터 길쌈부호화기를 생성하는 단계와;
    나. 부호화 대상 입력 데이터열에 대해 상기 길쌈부호화기에 의해 길쌈 부호화를 수행하는 단계와;
    다. 상기 입력 데이터열에 대한 상기 길쌈 부호화가 완료되면 상기 길쌈 부호화기의 상태를 최종 상태 값으로 저장하는 단계;를 포함하고,
    상기 나 단계는
    나-1. 상기 입력 데이터열을 병렬 데이터로 변환하는 과정을 거쳐 순환적으로 N개의 데이터열로 변환하는 단계와;
    나-2. 상기 입력데이터열이 입력되는 i번째 메모리의 내용은 한 비트씩 쉬프트 시키고, 최하위비트 위치에 i번째 입력데이터열의 새로운 비트를 입력하여 부호화된 결과를 얻는 단계와;
    나-3. 상기 나-1 및 나-2 과정을 입력 데이터열이 끝날 때까지 반복하는 단계;를 포함하는 것을 특징으로 하는 길쌈 부호화 방법.
  4. 가. 생성다항식 행렬로부터 길쌈부호화기를 생성하는 단계와;
    나. 부호화 대상 입력 데이터열에 대해 상기 길쌈부호화기에 의해 길쌈 부호화를 수행하는 단계와;
    다. 상기 입력 데이터열에 대한 상기 길쌈 부호화가 완료되면 상기 길쌈 부호화기의 상태를 최종 상태 값으로 저장하는 단계;를 포함하고,
    상기 나 단계는
    상기 입력 데이터열을 일정 단위 길이의 블록으로 나누는 블록화 단계와;
    상기 블록 단위로 부호화 하는 단계;를 포함하고,
    첫 번째 상기 블록의 데이터에 대해 상기 길쌈부호화기에 의해 처리시, 상기 생성다항식에 따라 입력데이터를 병렬화하고, 병렬화된 입력데이터를 이용하여 부호화를 수행하고, 입력데이터의 부호화를 마친 후 메모리의 내용을 보관하며, 두 번째 데이터 블록부터는 직전 데이터 블록에 대해 부호화를 마친 후 보관해 두었던 메모리 내용으로 상기 길쌈부호화기의 메모리를 설정한 후, 첫 번째 데이터 블록에 대해 부호화를 하는 방법과 동일한 방법으로 부호화를 수행하는 것을 특징으로 하는 길쌈 부호화 방법.
  5. 삭제
  6. 생성다항식 행렬과 복호 깊이 및 복호길이를 포함한 파라미터를 이용하여 생성다항식 행렬을 이진수로 변환하고, 필요한 메모리 공간을 계산하여 부호화기를 구성하는 제1단계와;
    상기 부호화기에 의한 비터비 복호를 위한 상태천이 테이블과 가지 신호조합 테이블 및 결정 데이터 테이블을 구성하는 제2단계와;
    상기 제2단계에서 작성한 테이블을 이용하여 가지메트릭 계산기, ACS 연산기 및 전송 정보 결정기를 포함하는 복호기를 구축하는 제3단계;를 포함하고,
    상기 제2단계는
    N*M 생성다항식 행렬로부터 생성한 상기 부호화기의 각 행에 실제 필요한 메모리 크기(Mi, i=1,...,N)를 이용하여 정보데이터가 입력되는 각 행의 최하위 비트를 제외하고 첫 번째 행의 메모리부터 순서대로 번호를 지정하여
    Figure 112010014398493-pat00004
    까지 지정하는 단계와;
    상기 상태천이 테이블을 2Tx2N 크기로 만든 후, 상기 상태천이 테이블의 i행에는 T비트를 하나의 변수로 보아 T비트의 값이 i일 때, 현재 상태가 될 수 있는 직전 상태들이 2N개가 나열되도록 하는 단계와;
    상기 가지신호조합 테이블을 2Tx2N 크기로 만든 후, 상기 가지신호조합 테이블에 상기 상태천이 테이블의 i행의 요소들이 가리키는 상태에서 i의 상태로 천이할 때 해당하는 부호어를 (i,j) 요소에 기록하는 단계와;
    상기 결정데이터 테이블을 2T 크기로 만든 후, 상기 결정데이터 테이블에 상기 상태천이 테이블의 (i,j)요소가 가리키는 상태에서 i의 상태로 천이할 때 해당하는 입력데이터를 i번째 요소로 기록하는 단계;를 거치는 것을 특징으로 하는 비터비 복호 방법.
  7. 생성다항식 행렬과 복호 깊이 및 복호길이를 포함한 파라미터를 이용하여 생성다항식 행렬을 이진수로 변환하고, 필요한 메모리 공간을 계산하여 부호화기를 구성하는 제1단계와;
    상기 부호화기에 의한 비터비 복호를 위한 상태천이 테이블과 가지 신호조합 테이블 및 결정 데이터 테이블을 구성하는 제2단계와;
    상기 제2단계에서 작성한 테이블을 이용하여 가지메트릭 계산기, ACS 연산기 및 전송 정보 결정기를 포함하는 복호기를 구축하는 제3단계;를 포함하고,
    상기 복호기 구성을 위하여 2M개의 브랜치 메트릭을 보관할 공간을 만들고, 2T개의 상태 정보를 보관할 공간을 한 셋으로 하여 두 셋의 일차 상태정보 보관공간을 만들되, 상기 각 일차 상태 정보 보관 공간은 상태 메트릭값을 저장하는 제1서브 공간, 조상 상태를 보관하는 제2서브공간, 일차로 복호되는 정보를 보관하기 위한 제3서브공간으로 구성되며, 2T개의 상태는 일차상태정보의 상기 제2 서브공간과 상기 제3서브공간을 보관하기 위해 두개의 서브공간을 갖는 이차상태정보저장공간을 구성하며, 각 상태별로 상기 이차상태저장공간에 저장하는 일차상태정보의 개수는 복호깊이와 복호길이를 더한값을 상기 일차상태정보저장공간의 상기 제3서브공간의 복호정보길이로 나눈값 이상의 최소정수가 되도록 하여, 상기 가지메트릭 계산기, 상기 ACS 연산기 및 상태 메트릭 계산기, 상기 전송 정보결정기를 구성하는 것을 특징으로 하는 비터비 복호 방법.
  8. 제7항에 있어서, 선택된 한 셋의 일차 상태정보 보관 공간A의 내용을 상태 메트릭 값은 0으로 설정하고, 자신의 상태값으로 조상 상태 보관 공간을 초기화하고, 일차 복호정보는 0으로 설정하되, 부호화기의 초기 상태를 알고 있는 경우에는 알고 있는 초기 상태의 상태 메트릭 값은 0으로 설정하고, 알고 있는 초기상태 이외의 상태에 대한 상태 메트릭값은 0이 아닌 선택된 수를 설정하며, 초기화 된 한 셋의 일차 상태정보 보관 공간A와 나머지 한 셋의 일차 상태정보 보관 공간B에 대해서, 첫 번째 신호 복호시 초기화된 일차 상태정보 보관공간A는 이전 상태 정보로 사용되고, 나머지 일차 상태정보 보관공간B는 현재 상태 정보로 사용되며, 두 번째 신호복호시는 일차 상태정보 보관공간A와 일차 상태정보 보관공간B의 상태정보 보관의 역할이 바뀌며 세 번째에는 다시 일차 상태정보 보관공간A가 이전 상태정보로 사용되고, 상기 일차 상태정보 보관공간B는 현재상태정보로 사용되는 과정을 반복하여 상기 상태 메트릭을 계산하는 것을 특징으로 하는 비터비 복화화 방법.
  9. 생성다항식 행렬과 복호 깊이 및 복호길이를 포함한 파라미터를 이용하여 생성다항식 행렬을 이진수로 변환하고, 필요한 메모리 공간을 계산하여 부호화기를 구성하는 제1단계와;
    상기 부호화기에 의한 비터비 복호를 위한 상태천이 테이블과 가지 신호조합 테이블 및 결정 데이터 테이블을 구성하는 제2단계와;
    상기 제2단계에서 작성한 테이블을 이용하여 가지메트릭 계산기, ACS 연산기 및 전송 정보 결정기를 포함하는 복호기를 구축하는 제3단계;를 포함하고,
    상기 가지메트릭 계산기에 의한 가지메트릭 계산은
    상기 복호기에 수신된 신호가 입력되면, M개의 비트에 해당하는 수신 신호와 0부터 (2M-1)까지의 신호 조합과의 가지 메트릭을 계산하여 순서대로 2M개의 가지 메트릭 테이블에 저장 처리하는 것을 특징으로 하는 비터비 복호화 방법.
  10. 생성다항식 행렬과 복호 깊이 및 복호길이를 포함한 파라미터를 이용하여 생성다항식 행렬을 이진수로 변환하고, 필요한 메모리 공간을 계산하여 부호화기를 구성하는 제1단계와;
    상기 부호화기에 의한 비터비 복호를 위한 상태천이 테이블과 가지 신호조합 테이블 및 결정 데이터 테이블을 구성하는 제2단계와;
    상기 제2단계에서 작성한 테이블을 이용하여 가지메트릭 계산기, ACS 연산기 및 전송 정보 결정기를 포함하는 복호기를 구축하는 제3단계;를 포함하고,
    상기 ACS연산기에 의한 연산은
    상태천이 테이블의 i번째 행의 직전 상태의 상태메트릭과 천이에 따른 가지신호를 상기 가지신호조합 테이블에서 참조하여 해당 가지 메트릭을 더한 경로메트릭값들을 비교하여 최소가 되는 값을 현재 상태 i의 상태메트릭 값으로 저장하고, 최소 경로 메트릭에 따른 직전 상태의 조상 상태를 상태 i의 조상 상태로 저장하고, 직전 상태의 일차 복호 정보를 N비트 쉬프트 시키고, 쉬프트 시키고 남은 자리에 i번째 결정데이터 N비트를 넣어 한 상태에 대해 수행하는 과정을 모든 상태에 대해 반복하여 한 트렐리스에 대한 복호를 수행하며,
    비터비 복호를 반복하다 일차 복호 정보 공간만큼 복호를 수행하였을 경우, 각 상태의 일차 복호 정보를 선입선출 구조를 갖는 이차 복호 정보 보관 공간으로 옮기고, 각 상태의 조상상태를 이차 조상상태로 옮기고, 현재 상태 정보공간의 조상상태를 자기 상태로 초기화한 후 비터비 복호과정을 반복하도록 된 것을 특징으로 하는 비터비 복호화 방법.
  11. 제7항에 있어서, 상기 전송정보 결정기에 의한 정보복호는
    상기 이차 상태정보 저장 공간에 쌓인 복호 정보의 트렐리스 수가 복호 깊이와 한 번에 결정하는 복호 데이터의 길이의 합 이상이 되면 하나의 상태를 선택하고, 선택한 상태에서 출발하여 이차 조상 상태를 따라 복호 깊이만큼 조상 상태를 추적한 후, 복호 깊이 이상의 조상상태 추적시 해당 상태 추적에 대응하는 이차 복호 정보보관 공간의 내용을 복호데이터 큐에 넣고, 조상 상태 추적을 한 번에 결정하는 복호 길이가 될 때까지 반복하며,
    조상상태 추적이 완료 후 복호데이터 큐에 일차 복호 정보 공간 단위로 쌓여 있는 복호데이터를 역순으로 읽어내도록 된 것을 특징으로 하는 비터비 복화화 방법.
  12. 제7항에 있어서, 수신 데이터의 길이가 길면 블록단위로 나누어 복호기에 순차적으로 입력하여 송신 정보를 복호하도록 하되, 첫 번째 블록의 입력 전에 생성다항식을 이용하여 비터비 복호기를 구성하고, 초기화를 수행하며, 첫 번째 블록을 입력으로 하여 복호를 수행한 후 비터비 복호기의 모든 정보보관 공간 및 조상상태 보관 공간을 보존하고, 두 번째 수신 데이터 블록을 입력하여 복호를 수행하는 과정을 마지막 블록까지 수행하며, 마지막 수신 데이터 블록을 복호할 때, 부호 생성기의 마지막 상태가 미리 정해져 있다면 정해진 상태에서 조상상태 추적을 시작하고, 부호 생성기의 마지막 상태가 미리 정해져 있지 않은 경우에는 상태메트릭을 비교하여 가장 작은 값을 갖는 상태에서 조상상태 추적을 시작하되, 조상상태 추적을 시작하는 단계부터 정보데이터 복원을 시작하여 조상상태 추적을 시작하는 상태의 정보보관 공간의 내용부터 추적하는 차례로 복호데이터큐에 쌓고, 추적을 마친 후, 데이터큐에 쌓인 데이터를 역순으로 읽어 데이터 복원을 수행하도록 된 것을 특징으로 하는 비터비 복호화 방법.
  13. 길쌈부호 장치에 있어서,
    N*M생성다항식 행렬을 이진수로 변환하고, 변환된 이진수의 최상위 비트에 해당하는 첫 번째 자리가 다항식의 상수항 계수가 되며, 최하위 비트에 해당하는 마지막 자리가 최고차 항의 계수가 되게 처리하는 이진화부와;
    상기 이진화부에 의해 이진수로 변환된 각각의 생성다항식으로부터 같은 행에 있는 생성다항식들 중에서 가장 큰 메모리수를 그 행에서 필요한 메모리수(Mi )로 나타내고, 모든 행에 대하여 필요한 메모리수{Mi , i=1,...,N}를 계산하는 필요 메모리수 산출부와;
    i번째 입력 데이터 열에 대해 확보해야하는 메모리 수(Ci)를 Ci= ceil[(Mi)/(K*8)]*K 바이트 식에 의해 계산하고, 상기 Ci 크기인 연결벡터(Pij, j=1,...,M)를 생성다항식에 따라 M개를 확보하여 0으로 초기화한 후, (i,j)번째 생성다항식의 이진수 변환 결과를 이용하여 상수항 계수가 최하위 비트에 위치하도록 하고, 상수항 계수부터 최고차 항으로의 계수 순서로 최하위 비트 위치부터 최상위 비트 쪽으로 위치하도록 상기 연결벡터(Pij)를 설정하고, 부호화를 하기 위해 i번째 메모리의 데이터와 상기 연결벡터(Pij, j=1,...,N)를 비트단위로 논리곱(AND) 연산을 수행하고, 논리곱 연산 결과를 비트단위로 GF(2) 덧셈을 수행한 결과를 Aij라 하고, GF(2) 덧셈 결과중 {Aij, i=1,...,M}을 다시 GF(2) 덧셈을 수행하여 해당부호어의 j번째 부호어를 결정하도록 길쌈부호화기를 구성하는 부호화기 구성부;를 구비하며,
    상기 ceil(x)는 x보다 작지 않은 최소정수를 계산하는 연산이고,
    상기 N은 한 번에 처리하는 입력 데이터 비트 수이며,
    상기 M은 한 번의 부호화에 의해 생성되는 부호어의 비트수이며,
    상기 K는 데이터 처리단위인 것을 특징으로 하는 길쌈 부호 장치.
  14. 삭제
  15. 삭제
  16. 생성다항식 행렬과 복호 깊이 및 복호길이를 포함한 파라미터를 이용하여 생성다항식 행렬을 이진수로 변환하고, 필요한 메모리 공간을 계산하여 부호화기를 구성하는 부호화기 구성부와;
    상기 부호화기에 의한 비터비 복호를 위한 상태천이 테이블과 가지 신호조합 테이블 및 결정 데이터 테이블을 구성하는 테이블 생성부와;
    상기 테이블 생성부에 의해 작성된 테이블을 이용하여 가지메트릭 계산기, ACS 연산기 및 전송 정보 결정기를 포함하는 복호기를 구축하는 복호기 구성부;를 포함하고,
    상기 ACS연산기는
    0부터 2N-1까지 순차적으로 증가하고, 2N-1에서 0으로 바뀌는 가지 카운터와;
    상기 가지카운터가 0으로 바뀔 때마다 값이 1증가하며, 0부터 2T-1까지 순차적으로 증가하는 상태카운터와;
    상기 상태카운터가 0으로 바뀔 때마다 값이 1증가하는 트렐리스 카운터와;
    일차 상태 정보를 이전상태와 현재상태에 대해 교번적으로 보관하여 이용하기 위한 제1 및 제2 일차 상태정보 저장부와;
    이차 상태 정보를 보관하는 이차 상태정보 저장부와;
    상기 가지카운터의 값의 증가에 따라 상기 상태천이 테이블과 상기 가지신호 조합테이블의 행의 내용을 순차적으로 참조하고, 상기 상태천이 테이블에서 참조한 이전상태를 이용하여 상기 제1 및 제2 일차 상태 정보 저장부 중 이전상태로 설정된 어느 하나의 일차 상태 정보 저장부에 저장된 이전상태의 상태 메트릭을 구하고, 상기 가지신호 조합테이블에서 이전 상태에서 현재상태로 천이할 때 생성되는 가지신호를 이용하여 가지메트릭 테이블을 참조하여 얻은 가지메트릭을 상기 이전 상태의 상태 메트릭에 더하여 해당 천이의 경로메트릭을 계산하는 상태메트릭 계산기와;
    상기 상태메트릭 계산기에 의해 산출된 경로메트릭과 상태정보 임시저장공간에 이전에 보관된 경로메트릭을 비교하여 작은 값을 갖는 값을 선택하여 해당 경로 메트릭과 해당 경로에 따른 이전상태를 상기 상태정보 임시저장공간에 보관하는 비교/선택기와;
    상기 가지카운터 값이 2N-1일 때 마다 상기 비교/선택기에서 출력되는 경로메트릭을 상태카운터가 지정하는 현재 상태의 상태메트릭으로 저장하고, 해당 경로에 따른 이전상태의 조상상태를 현재 상태의 조상상태로 저장하고, 이전상태의 일차결정데이터를 한 트렐리스에서 결정하는 데이터 길이(N) 만큼 쉬프트 시킨 후, 상기 결정데이터 테이블로부터 읽어 상기 일차결정데이터에 N비트 추가하여 현재 상태의 일차결정데이터에 저장하는 결정데이터 추가부;를 구비하고,
    상기 상태카운터를 2T-1까지 증가시켜 한 트렐리스에 대한 복호연산을 완료시키면서 복호연산을 수행하고, 상기 복호연산에 의해 상기 일차 상태 정보 저장부의 복호저장공간만큼 복호가 수행되면 상기 일차 상태 정보 저장부에 저장된 데이터가 상기 이차 상태 정보 저장부에 옮겨지도록 처리하고, 상기 이차 상태 정보 저장부에 저장된 정보를 이용하여 복호를 수행하는 것을 특징으로 하는 비터비 복호 장치.
KR1020080057968A 2008-05-28 2008-06-19 범용 신호처리 프로세서를 이용한 재구성 가능한 길쌈부호화 방법과 비터비 복호화 방법 및 그 장치 KR100980090B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20080049866 2008-05-28
KR1020080049866 2008-05-28

Publications (2)

Publication Number Publication Date
KR20090123737A KR20090123737A (ko) 2009-12-02
KR100980090B1 true KR100980090B1 (ko) 2010-09-03

Family

ID=41685936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080057968A KR100980090B1 (ko) 2008-05-28 2008-06-19 범용 신호처리 프로세서를 이용한 재구성 가능한 길쌈부호화 방법과 비터비 복호화 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR100980090B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0144846B1 (ko) * 1992-12-29 1998-08-17 윤종용 콘벌루션부호화기 및 복호화방법
US20020135502A1 (en) * 2001-03-26 2002-09-26 Guangming Lu Method and apparatus for convolution encoding and viterbi decoding of data that utilize a configurable processor to configure a plurality of re-configurable processing elements

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0144846B1 (ko) * 1992-12-29 1998-08-17 윤종용 콘벌루션부호화기 및 복호화방법
US20020135502A1 (en) * 2001-03-26 2002-09-26 Guangming Lu Method and apparatus for convolution encoding and viterbi decoding of data that utilize a configurable processor to configure a plurality of re-configurable processing elements

Also Published As

Publication number Publication date
KR20090123737A (ko) 2009-12-02

Similar Documents

Publication Publication Date Title
KR100958234B1 (ko) 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들
US5537444A (en) Extended list output and soft symbol output viterbi algorithms
US7676734B2 (en) Decoding apparatus and method and information processing apparatus and method
JP4389373B2 (ja) 2元巡回符号を反復型復号するための復号器
US20070266303A1 (en) Viterbi decoding apparatus and techniques
KR100276780B1 (ko) 신호 전송 시스템
US20090132897A1 (en) Reduced State Soft Output Processing
JP2001036417A (ja) 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体
JPH07221655A (ja) 通信システムおよび情報処理方法
JPH1070471A (ja) 大きな制約長を持つ場合に有効なソフト判定ビテルビ復号
KR101212856B1 (ko) 통신 시스템에서 데이터를 복호하는 방법 및 장치
JP4864535B2 (ja) 送受信装置及び送受信方法
CN111049527B (zh) 一种图像编码解码方法
JP2008544639A (ja) 復号方法と装置
JP2005294898A (ja) ビタビ復号方法、復号化装置、移動局無線装置、基地局無線装置および移動通信システム
WO2007021057A1 (en) Viterbi decoder and method thereof
KR100980090B1 (ko) 범용 신호처리 프로세서를 이용한 재구성 가능한 길쌈부호화 방법과 비터비 복호화 방법 및 그 장치
JP5523064B2 (ja) 復号装置及び方法
RU2608872C1 (ru) Способ кодирования и декодирования блокового кода с использованием алгоритма Витерби
JP2024507299A (ja) バイナリデータを送信する方法及びデバイス
CN105721104A (zh) 一种维特比译码实现方法
KR101267756B1 (ko) 가변 부호화율 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치
WO2024084554A1 (ja) 推定装置、設計支援装置、推定方法、設計支援方法及びコンピュータープログラム
WO2023105685A1 (ja) 符号化回路、復号回路、符号化方法、復号方法及びコンピュータプログラム
US20240080045A1 (en) Coding circuit, decoding circuit, coding method, decoding method and computer program

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140703

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150709

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180702

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190625

Year of fee payment: 10