KR100893053B1 - 길쌈 부호화 및 복호화를 위한 프레임 구성 및 에러 검출방법 - Google Patents

길쌈 부호화 및 복호화를 위한 프레임 구성 및 에러 검출방법 Download PDF

Info

Publication number
KR100893053B1
KR100893053B1 KR1020010066360A KR20010066360A KR100893053B1 KR 100893053 B1 KR100893053 B1 KR 100893053B1 KR 1020010066360 A KR1020010066360 A KR 1020010066360A KR 20010066360 A KR20010066360 A KR 20010066360A KR 100893053 B1 KR100893053 B1 KR 100893053B1
Authority
KR
South Korea
Prior art keywords
value
error
crc
hard decision
metric
Prior art date
Application number
KR1020010066360A
Other languages
English (en)
Other versions
KR20030034681A (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 KR1020010066360A priority Critical patent/KR100893053B1/ko
Publication of KR20030034681A publication Critical patent/KR20030034681A/ko
Application granted granted Critical
Publication of KR100893053B1 publication Critical patent/KR100893053B1/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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0084Formats for payload data

Abstract

본 발명은 통신 시스템에서 에러 검출이 필요한 데이터를 전송로를 통해 송수신하는 경우, 데이터의 부호화(coding)및 복호화(decoding) 방법에 관한 것이다.
본 발명은 통신시스템에서의 부호화 프레임은 길쌈 부호의 tail 비트를 제거하고 에러 검출 부호를 첨가하는 것을 제시하는 동시에, 이 프레임에 대한 복호화 및 에러 검출 방법을 기술 한다.
특히, 복호화 및 에러처리 방법은, 길쌈 부호기의 각 상태값을 구하는 제 1단계와; 상기의 각 상태값에 대한 판정값을 구하는 제 2단계와; 상기의 판정값을 일정한 크기로 분류한 값을 구하는 제 3단계와; 상기 분류한 값에 대해 에러가 있는지 체크하는 제 4단계를; 포함하는 것을 특징으로 한다.

Description

길쌈 부호화 및 복호화를 위한 프레임 구성 및 에러 검출방법 {The frame format and the error-detection method with convolutional codes}
도 1은 쉬프트레지스터를 포함하고 있는 콘볼루션코드의 부호화기(encoder)
도 2는 초기상태와 최종상태가 모두 0인 일반적인 경우의 trellis diagram
도 3은 일반정보에 CRC비트와 테일비트가 포함된 경우의 프레임 구조
도 4는 상기 도 3처럼 테일비트가 있는경우의 복호방법을 나타낸 흐름도
도 5는 8비트 크기를 가지는 CRC 부호기의 하나의 예
도 6은 본 발명에서 적용되는 테일비트가 없는 프레임 구조
도 7은 테일비트가 없는 경우의 trellis diagram
도 8은 상기 도 6의 테일비트가 없는 프레임에 대한 복호 방법을 나타내는 흐름도
도 9는 상기 도 6의 테일비트가 없는 프레임에 대한 복호 방법을 나타내는 흐름도
도 10은 전송 비트가 4비트인 경우 도 6을 구성하기 위한 최적 8-bit CRC 부호기
본 발명은 통신 시스템에서 에러 검출이 필요한 데이터를 전송로를 통해 송수신하는 경우, CRC 부호화기와 데이터의 부호화(coding)및 복호화(decoding)를 위한 프레임 구성 및 에러검출 방법 관한 것으로, 특히 길쌈부호화(convolution coding)에 의한 부호화 및 복호화 방법에서, 데이터 전송 과정에서 발생하는 오류를 검출하기 위하여 순환 2진 부호를 사용하는 방식인 CRC(Cyclic Redundancy Check)비트를 테일(tail)비트로 사용하여 프레임을 구성하는 방안 및 이 프레임의 복호화 방법에 관한 것이다.
더욱 상세하게는 본 발명은, 전송할 일반정보와 에러를 검출하기 위한 CRC비트(정보)를 길쌈부호기를 통해 부호화된 프레임을 전송하는 경우, 길쌈부호로 부호화 되는 정보에 일반적으로 복호 과정을 위하여 첨가되는 tail 비트를 제거하여 CRC가 tail bit 역할을 하도록 하는 방식을 제안한다.
또한, 이 프레임 구성을 사용하여 전송하는 경우에 비터비 복호기를 사용하여 복호 및 에러 검출하는 방법에 관한것으로,다음과 같은 과정을 수행한다.
먼저, 길쌈부호기 인코더의 쉬프트레지스터들의 각 상태값에서 최소 path metric를 가지는 코드워드인 Wn 을 구한후, 상기 codeword인 Wn 에 대해 경판정(Hard Decision)을 수행하여 Hn 을 구하여 path metric의 크기에 따라 작은 것부터 나열되도록 분류(sorting) 작업을 수행한다.
분류 작업이 끝나면, path metric이 가장 작은 codeword의 출력값에 대한 CRC check를 수행한다. 만약 CRC check를 수행하여 오류가 없다고 판정되면 해당 codeword에 대한 경판정값을 최종 출력값으로 설정한다.
그러나, 만약 해당 코드워드에 대한 CRC check를 하여 오류로 판정되면 다음 path-metric 크기를 가지는 codeword의 출력값에 대하여 CRC 과정을 수행하여, 오류가 없다고 판정되면 해당 codeword에 대한 경판정값을 최종 출력값으로 설정한다.
한편, 다음 codeword도 오류로 판단되면, CRC check 과정을 통과하는 codeword가 발견될 때 까지 순차적으로 나머지 코드워드에 대해 CRC check 과정을 반복 수행하여, CRC과정을 통과시는 해당 코드워드를 최종출력값으로 설정하나, 모든 코드워드에 대해 CRC과정을 하여도 CRC과정을 통과하는 코드워드가 없을시는 해당 수신프레임을 에러처리하는 방법에 관한 것이다.
상기에서 경판정(Hard decision)이란, 복호기의 최종상태가 0상태로 되는 codeword들이 여러개가 생기게 될때, 상기 codeword들이 입력값에 대하여 얼마나 가까운지를 계산하여 최소가 되는 것이 입력에 대하여 가장 알맞은 codeword가 되며, 상기 입력값에 대하여 상기 codeword들이 얼마나 거리를 두는지를 계산한 것을 path metric이라고 표시 한다. 따라서 최소 path-metric을 가지는 codeword를 구하면 이에 해당하는 source값을 -1 또는 1로 나타내는것을 말한다.
한편, 연판정이란 실수값을 말하게 되는데 이는 codeword의 path-metric값은 될 수가 있지만 판정되는 값들 각각이 서로 다른 연판정 값을 가질 수 없으므로 연판정이나 경판정이나 실제로 source에 대한 decision은 같은 이치를 가지게 된다.길쌈부호에서 흔히 이야기되는 연판정과 경판정은 received signal을 비터비 복호기에 입력하는 것을 실수값으로 입력하느냐 아니면, -1 또는 1값을 입력하냐를 나타내는 것이다.
본 발명에서 언급하고 있는 상태값, 초기상태 및 최종상태에 대해 설명한다.
상태(state)값이란 결국은 부호기 인코더의 쉬프트레지스터안에 들어있는 각각의 값들을 한 비트씩 하여서 읽은 값에 해당된다.
즉, 쉬프트레지스터가 현재 010110의 값을 갖고 있다면 현재 상태는 010110이고, 이때 초기상태는 이러한 쉬프트레지스터값의 제일 처음상태를 나타내고, 최종상태란 한 프레임의 끝에서의 쉬프트레지스터의 마지막 상태를 의미한다.
따라서, 상태(state)값이란 인코더의 쉬프트레지스터들의 값을 의미하므로 초기상태가 00000에서 시작하고자 한다면 제일 처음의 쉬프트레지스터를 시작할 때 쉬프트레지스터가 00000의 값을 갖도록 해야 되며, 또한 만일 초기상태를 010010로 하고 싶다면 제일 처음의 쉬프트레지스터를 010010로 맞추면 된다.
일반적으로 초기상태의 가장 간단한 방식은 종래의 방법대로 모두 0 을 쓰는 방법이 있으며, 만약에 여러 초기상태를 쓴다면 수학적으로는 2쉬프트레지스터갯수 만큼의
초기상태가 가능하다.
또한 최종상태란 마지막 인코딩단계에서의 쉬프트레지스터값을 의미하는데, 최종상태를 맞추어 주기 위해서는 강제적으로 값을 집어 넣을 수 없으므로 프레임 끝에 tail bits를 넣어서 결국은 최종상태가 tail bits의 값으로 되도록 한다.
따라서 최종상태도 초기상태의 경우와 마찬가지로, 최종상태를 예를들어 001100으로 하고 싶다면 프레임의 제일 끝에 붙이는 tail bits를 001100으로 하면 된다.
이하 종래기술에 대해 설명한다.
먼저 본 발명 및 종래발명과 관련된 내용들을 설명한다.
1. 일반적으로 길쌈부호화 이전의 프레임은 CRC비트와 길쌈 부호의 복호화 시 필요한 테일(Tail)비트를 포함한다.
따라서 길쌈 부호를 사용하는 전송량이 적은 프레임에 대해서는 에러 검출을 위한 CRC(cyclic redundancy code)비트와, tail비트(전송되는 일반정보 뒤에 보내는 제어정보)에 할당되는 에너지량이 전체 에너지량의 많은 부분을 차지하게 되어 전송하고자 하는 비트들의 에너지 손실을 가져는 특징을 지닌다.
상기 CRC비트에 대해 좀 더 설명한다.
CRC 비트는 일종의 부호화 기술의 한 가지로써, 오류 정정이 아닌 오류 검출을 위해 고안된 기술이다. 일반적으로 수신측에서는 수신후 복호된 프레임 내에 정보 오류 유무를 알기 힘들기 때문에, 전송측에서는 채널 부호화 이전에 CRC 비트를 생성하여 전달함으로써 수신측에서 전달된 정보의 오류 측정을 할 수 있도록 한다.
2. 부호화 방법에 대해 설명한다.
일반적으로 통신시스템에서 정보(데이터)가 전송로를 통해 전송도중 발생하는 에러등을 보정하기 위한 코딩방식인 길쌈부호화기(convolution coder)는, 입력되는 정보를 저장및 이동하는 쉬프트 레지스터(shift register)가 구성되어 있으며, 입력단쪽으로 데이터가 입력되고 상기 입력된 데이터는 클럭에 의해서 하나씩 쉬프트 레지스터를 옮겨가고, 입력되는 데이터와 각각의 쉬프트 레지스트의 출력을 이용하여 각 데이터를 합하여 출력데이터를 만들어 하나의 데이터가 입력될때 두개의 출력단자에서 두개의 비트가 출력된다.
또한 일반적으로 인코딩시는 State diagram, Tree Diagram, Trellis Diagram이 이용되고, 디코딩(복호)시는 Maximum Likelihood decoding, viterbi 알고리즘이 주로 사용된다.
이하 종래 길쌈부호화의 구성 및 동작에 대해 설명한다.
종래 사용되고 있는 길쌈부호(convolutional code)는 한 프레임단위로 부호화(encoding)와 복호화(decoding)가 이루어진다.
도 1에서 보는바와 같이, 부호화기(encoder)는 shift register로 구성되어 있다. 이때 shift register의 초기값(initial state)은 보통 모두 0(all zero)으로 맞추어 놓으며, shift register의 끝나는 상태를 일정하게 하기위하여 프레임의 끝에 특정한 비트열들을 넣게 된다.
위와 같이 프레임의 끝에 넣는 특정한 비트열들을 tail bits라고 하며, convolutional code에서는 보통 모두 0(all zero)을 넣기만 하면 자동적으로 shift register가 0인 상태가 된다.
그러나 상기와 같은 방법을 사용하게 되면 tail bits에 해당하는 부분만큼은 정보를 전송하지 못하게 되어서 데이터 전송률 측면에서 낭비가 있게 된다.
상기에서 설명한바와 같이, 도 1의 콘볼루션코드의 부호화기(encoder)는 쉬프트 레지스터(SR)(Shift Register)를 포함하고 있다.
또한 codeword의 상태는 trellis diagram으로 나타낼 수 있으며, 도 2는 초기상태와 최종상태가 모두 0인 일반적인 경우의 trellis diagram이다.
도 1a는 부화율이 1/2이고 구속장길이(constraint length) K는 3인경우이며, 도 1b는 부호화율이 1/3이고 구속장길이(constraint length) K는 3인경우이다.
여기에서 부호화율이란 원래의 비트 1비트에 대해 몇비트로 코딩하느냐를 나타내는것으로, 1/2부호화율은 원래비트 1비트를 2비트로 코딩한다는 의미이다.
또한 구속장 K는 코딩특성을 나타내는 파라미터로 부호화기의 레지스터 숫자를 의미한다. 즉 레지스터갯수 + 1이 K를 나타낸다.
상기의 trellis diagram은 길쌈부호를 해석하기 위해서 나타내는 여러가지 방법중의 하나이며, 인코딩 과정이 어떻게 되는지를 나타내기 위한 표현법이다.
길쌈 부호의 viterbi 복호 방법은 0 상태에서 얻어진 Codeword 중에 가장 작은 path-metric을 가지는 codeword를 선택하여 전송 정보를 복호한다.
상기에서 path-metric이란, 복호기의 최종상태가 0상태로 되는 codeword들이 여러개가 생기게 되며, 상기 codeword들이 입력값에 대하여 얼마나 가까운지를 계산하여 최소가 되는 것이 입력에 대하여 가장 알맞은 codeword가 되며, 상기 입력값에 대하여 상기 codeword들이 얼마나 거리를 두는지를 계산한 것을 path metric 이라고 표시 한다.
도 3은 도 1의 길쌈부호기를 경유한 일반적인 전송프레임 구조를 나타낸 것으로, 일반정보에 CRC비트와 테일비트가 포함된 경우의 프레임 구조이다.
도 4는 상기 도 3처럼 테일비트가 있는경우의 복호방법을 나타낸 흐름도이다.
Tail 비트가 있으므로 최종 상태에 대한 최소 path-metric을 가지는 한개의 codeword인 Wn 을 구한다. (단계 41).
상기의 Wn 에 대해 경판정을 수행하여 Hn을 구하여 최종정보로써 전송한다. (단계 42).
상기의 경판정 출력값 Hn 에 대하여 CRC 검증 작업을 수행하여 출력 값에 대한 에러 유무를 판별 한다. (단계 43).
도 5는 8비트 크기를 가지는 CRC 부호기의 한 예이다. 전달하여야 할 전송 비트들을 순차적으로 부호기를 통과시키면 마지막으로 부호기의 각 상태(state)에 남는 정보가 생성된다. 이 상태 정보를 전송비트에 포함시켜 도 1의 부호기를 통과하면 CRC 부호기의 상태는 모두 0으로 수렴된다. 따라서 수신측에서는 수신후 복호 판정된 정보를 CRC 부호기에 통과시켜 마지막 상태가 0로 수렴되는지 판정함으로써 오류 유무를 판별할 수가 있다.
좀 더 구체적으로, 상기 도 5를 설명한다.
생성다항식 g(x) = x7 + x6 + x5 + x + 1 이다.
도 5는 상기 생성 다항식 g(x)를 이용하여, Input information 8 bit를 이용하여 목적하는 code word를 생성하는 회로이다. (1/2코딩시 16비트 생성됨)
따라서 상기의 8비트의 모든 정보가 입력되면, 도 5의 오른쪽의 3개의 스위치는 다른 위치로 각각 이동하여 7개의 쉬프트 레지스터에 저장된 모든 값들이 출력될 때까지 동작한다. 이에 따라 각각의 codeword값이 출력된다.
그러나 상기 도 3과 같이 테일비트를 포함하는 프레임구성에 있어서는 전체 프레임의 에너지를 일정하게 생각하는 경우, 본래 전달하여야 할 일반정보들에 할당되는 에너지의 크기는 감소하게 된다.
참고적으로 부연하면, 데이터 통신에서 사용되는 프레임은 본래 전송해야 할 비트의 수가 100비트 이상이 되어, 상대적으로 CRC 및 tail에 사용되는 비트의 수는 적은 부분을 차지하므로 전체 성능에 큰 영향을 주지 않는 특성을 가진다.
그러나 시스템의 제어 신호와 같은 부분은 본래 전달해야 할 비트의 수가 20비트 미만으로 아주 작은 경우가 존재하는데, 이러한 경우에 CRC 비트와 tail 비트를 사용하면 부가 정보의 양이 오히려 본래 전달해야 할 정보의 양보다 크게 될 수가 있으며 이경우에는 오히려 부가 정보를 첨가함으로써 본래의 일반정보에 할당될 에너지에 손실을 크게 입혀 성능을 열화 시킬 수가 있다.
따라서 이러한 상황을 방지하기 위하여, 짧은 정보를 전달할 경우에는 CRC 비트를 포함하지 않고 전송하기도 한다. 하지만 CRC비트가 없으면 수신측에서는 오류 유무에 대한 판정 방법이 없으므로 복호화 후 판정된 값을 무조건 맞는 다고 가정하고 전달하게 되는 단점을 가진다.
따라서 본 발명은, 길쌈 부호를 사용하는 프레임에서 부가 비트들로 인한 실제 전송 비트들에 대한 에너지 손실의 문제점을 해결하기 위하여, 도 3에 구성된 tail bit를 삭제한 새로운 프레임 방식을 제안 하며, 이를 복호시 에러 검출을 하기 위한 방안을 제안한다.
또한 새로운 CRC 부호화기를 제안한다.
본 발명의 길쌈 부호화 및 복호화를 위한 프레임 구성은, 일반정보와 CRC 정보로 프레임을 구성하여 길쌈 부호의 부호기 및/또는 복호기에 입력하는 것을 특징으로 한다.
또한 통신시스템에서의 부호화 및 복호화시 에러처리 방법은, 길쌈부호기의 각 상태값을 구하는 제 1단계와; 상기의 각 상태값에 대한 판정값을 구하는 제 2단계와; 상기의 판정값을 일정한 크기로 분류한 값을 구하는 제 3단계와; 상기 분류한 값에 대해 에러가 있는지 체크하는 제 4단계;를 포함하는 것을 특징으로 한다.
또한 본 발명에서 제안한 새로운 CRC 부호기는, 3개의 저장수단과, 상기 저장수단과 접속된 모듈로와, 상기 모듈로와 접속되어 있는 2개의 저장수단과, 상기 저장수단과 접속된 모듈로와, 상기 모듈로와 접속되어 있는 1개의 저장수단과, 상기 저장수단과 접속되어 있는 모듈로와, 상기 모듈러와 접속되어 있는 1개의 저장수단과, 상기 저장수단과 접속되며, 상기 3개의 저장수단에 출력값을 인가하는 모듈러;로 구성되는 것을 특징으로 한다.
또한 본 발명은, 길쌈부호기의 각 상태값을 구하는 단계와; 상기의 각 상태값중 가장 작은 상태값을 선택하는 단계와; 상기 선택한 상태값에 대해 경판정값을 구하는 단계와; 상기 경판정 출력값에 대해 에러가 있는지 체크하는 단계;를 포함하는 것을 특징으로 한다.
또한 본 발명은 부호기 또는 복호기 출력값의 각 최종 상태로부터 나온 경판정 신호열들로부터 CRC 체크를 통과한 경판정 신호열을 최종 출력 값들로 판단하는 것을 특징으로 한다.
또한 본 발명의 각 상태값은 길쌈부호기 인코더의 쉬프트레지스터들의 값으로써 최소 path metric를 가지는것을 특징으로 한다.
또한 본 발명의 상태값에 대한 판정값은 최소 path-metric을 가지는 codeword를 구하여 이에 해당하는 source값이 -1 또는 1로 판단하는 경판정값인것을 특징으로 한다.
또한 본 발명에서는 각 상태값의 path-metric 크기에 의해 경판정한값을 일정한 크기로 분류하는것을 특징으로 한다.
또한 본 발명에서 분류된 값의 에러체크(CRC) 순서는 최대 path-metric 순서로 순차적으로 수행하는 것을 특징으로 한다.
또한 본 발명에서 에러체크결과 CRC를 통과시에는 해당 경판정값을 최종출력값으로 설정하는 것을 특징으로 한다.
또한 본 발명에서 현재크기에 대한 경판정 값의 에러체크결과 CRC 통과가 안된경우에는 다음크기의 경판정값에 대해 CRC를 수행하여 통과한 경판정값을 최종출 력값으로 설정하는 것을 특징으로 한다.
또한 본 발명에서는 순차적으로 다음크기의 경판정값에 대해 CRC를 수행하여 분류된 모든 경판정값이 CRC를 통과하지 못한 경우에는 해당 프레임을 에러처리하는 것을 특징으로 한다.
본 발명의 다른 목적, 특징들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
이하 첨부된 도면을 참조하여 본 발명에 따른 부호화 및 복호화시 에러처리방법을 설명한다.
본 발명의 통신시스템에서의 부호화 후 전송 프레임 구성은 도 6과 같다.
도 6은 종래에 사용되던 도 3의 프레임 구성에서 tail 비트가 없는 프레임 구조이다. 따라서 CRC 정보의 마지막 8비트에 의하여 최종 상태(state)가 결정되는 특징을 가진다.
본 발명의 도 6의 프레임을 복호화하고 에러 검출하는 방법은 다음과 같다.
도 6은 테일비트가 없기때문에, 도 2에 나타난 최종 상태(state)가 0 상태인 것과는 다르게, 도 7과 같이 trellis의 어떤 상태로도 갈 수 있는 tail 비트가 없는 프레임에 대한 viterbi 복호기를 사용할 수가 있다.
본 발명의 도 8은 상기 도 6의 테일비트가 없는 프레임구조에 대한 복호 방법을 나타내는 흐름도로써, tail 비트가 없으므로 각 상태에 대한 최종 path-metric을 가지는 다수의 codeword인 Wn중에 가장 작은 path-metric을 가지는 codeword인 Wi 하나를 선택한다. (단계 81,82).
상기의 Wi 에 대해 경판정을 수행하여 Hn을 구하여 최종정보로써 전송한다. (단계 83).
상기의 경판정 출력값 Hn 에 대하여 CRC 검증 작업을 수행하여 출력 값에 대한 에러 유무를 판별 한다. (단계 84).
상기의 에러 검출 방식에서는 전송된 총 패킷 중에서 에러가 없다고 판단되어 통과한 확률(P_success)과 통과한 패킷들 중에 실제로 에러가 있지만 검출하지 못한 확률 (P_undetected_error) 사이에는 서로 trade-off(절충)를 가지는 경우가 일반적이다.
즉, P_success를 높이면 그만큼 P_undetected_error가 증가하고, P_success를 감소시키면 P_undetected_error가 감소하게 된다.
도 8에 나타난 바와 같이 최소 path metric의 출력값 1개 만을 CRC과정을 진행하므로 CRC 과정에서 에러가 없다고 판정되어 통과되는 경우가 하나의 값으로 설정되어지므로 상기의 P_success와 P_undetected_error의 목적하는 성능이 발생되도록 가변적 성능을 부여할 수가 없다.
한편, 도 8과 같이 최소 path-metric의 출력값만을 CRC 검증 작업을 하는 경우는 길쌈부호의 성능에 따라 CRC check 과정에서 에러가 없다고 판정되어 통과되는 경우가 하나의 값으로 설정되어지는 특징을 가지게 되어, 만약 상기 하나의 값이 CRC를 통과하지 않으면 해당 프레임은 에러로 처리된다.
따라서 다음과 같은 변형된 방법의 복호화 및 에러 검출 방법을 부가적(두번째 실시예)으로 제안한다.
본 발명의 부가적으로 제안되는 변형된 복호화 및 에러 검출 방법은, 길쌈부호기의 각 상태값을 구하는 제 1단계와; 상기의 각 상태값에 대한 판정값을 구하는 제 2단계와; 상기의 판정값을 일정한 크기로 분류한 값을 구하는 제 3단계와; 상기 분류한 값에 대해 에러가 있는지 체크하는 제 4단계;를 포함하는 것을 특징으로 한다.
이하 첨부된 도면을 참조하여 본 발명에 따른 변형된 복호화 및 에러 검출 방법을 설명한다.
참고로 상기 도 5의 8비트 크기를 가지는 CRC 부호기의 예와 같은 CRC 부호기는 본 발명의 두번쩨 실시예에 동일하게 적용된다.
먼저 본 발명의 부가적으로 제안되는 복호화 및 에러 검출 방법인 도 9의 복호과정을 개괄적으로 설명한다.
각 상태에서 최소 path metric을 가지는 codeword를 선택하는 경우는 종래 도 8의 단계 81과 동일하나, 일단 각 상태에서 구해진 codeword들이 구해지면, 이 codeword들을 path metric의 크기에 따라 작은 것부터 나열되도록 분류(sorting) 작업을 수행하여, path metric이 작은 codeword부터 출력값에 대한 CRC check를 수행한다.
만약 CRC check를 수행하여 오류가 없다고 판정되면 해당 codeword에 대한 경판정값을 최종 출력값으로 설정하고, 만약 CRC check를 하여 오류로 판정되면 다 음 path-metric 크기를 가지는 codeword의 출력값에 대하여 순차적으로 CRC check 과정을 통과하는 codeword가 발견될때까지 CRC check 과정은 반복 수행된다.
그러나 모든 codeword가 오류로 판단되면 해당 수신 프레임은 오류로 판정 된다.
본 발명의 복호 방식에서는 CRC check의 대상은 모든 codeword들의 경판정 출력값들이 대상이 되므로, CRC check의 대상이 되는 codeword들의 수를 가변적으로 조정함으로써, 얻고자하는 P_success와 P_undetected_error의 목적하는 성능이 발생되도록 가변적 성능을 부여할 수가 있다
도 9는 상기 도 6의 테일비트가 없는 프레임에 대한 복호 방법을 나타내는 흐름도로써, tail 비트가 없으므로 각 상태에 대한 최소 path-metric을 가지는 다수의 codeword인 Wn 를 구한다. (단계 91).
상기의 Wn 에 대해 경판정을 수행하여 Hn을 구하여 최종정보로써 전송한다. (단계 92).
상기의 경판정 출력값 Hn 을 path metric 크기에 의해 분류(sorting)하여 새로운 경판정에 의한 G={Gi}를 구한다. (단계 93).
상기 G에 대해 최대 path metric 순서로 CRC 과정을 진행하여, CRC를 통과시는 해당 경판정값을 최종출력값으로 설정한다. (단계 94, 95,96).
만약 상기 G에 대해 최대 path metric 순서로 CRC 과정을 진행하여, CRC를 통과 못할시는, 다음크기의 Gi 에 대해 CRC 과정을 진행하여 CRC를 통과시는 해당 경판정값을 최종출력값으로 설정한다. (단계 94, 95,97, 98).
또한 만약 상기 G에 대해 최대 path metric 순서로 CRC 과정을 진행하여, CRC를 통과 못할시는, 다음크기의 Gi 에 대해 상기의 과정을 진행하여 통과한 값을최종출력값으로 출력하나, 만약 상기 G에 대해 모두 CRC 과정을 했는데도 CRC를 통과하지 못한 경우는 해당 프레임을 에러처리한다. (단계 94,95, 97,99, 100).
즉, 테일비트가 없는 경우의 도 8에서는 하나의 값에 대해 CRC 체크를 하여 에러가 나는 경우에는 해당프레임을 에러처리 하였으나, 본 발명의 도 9에서는 복수의 값에 대해 순차적으로 CRC 과정을 진행하여 모든 값이 에러가 나는 경우에 해당 프레임을 에러처리한다.
상기의 에러 검출 방식에서는 전송된 총 패킷 중에서 에러가 없다고 판단되어 통과한 확률(P_success)과 통과한 패킷들 중에 실제로 에러가 있지만 검출하지 못한 확률 (P_undetected_error) 사이에는 서로 trade-off(절충)를 가지는 경우가 일반적이다.
즉, P_success를 높이면 그만큼 P_undetected_error가 증가하고, P_success를 감소시키면 P_undetected_error가 감소하게 된다.
한편 실제 전송해야 할 비트가 작은 경우에는 상기 도 5의 CRC 부호기의 primitive polynomial에 따라 발생되는 codeword 사이의 최소 hamming 거리(minimum hamming distance)가 틀려지게 된다.
따라서 전송 비트의 수가 결정된 후에 가능한 codeword들의 집합을 primitive polynomial을 변형해 가면서 집합 내의 codeword 원소 사이에 최소 hamming 거리가 최대가 되도록 CRC 부호기를 디자인 해야 한다.
일례로, 전송 비트가 4 비트이며 구속장 길이가 9이고 부호화 율이 1/2인 길쌈부호를 사용하여 본 발명에서 제시한 프레임을 구성하면 24비트 codeword가 16개를 구할 수가 있다. 만약 도 5의 CRC 부호기를 사용하면 codeword들 사이의 최소 hamming 거리는 10으로 디자인되지만, 본 발명에서 제안하는 최적화된 도 10을 사용하는 경우에는 codeword들 사이의 최소 hamming 거리를 12로 디자인하여 성능을 향상시킬 수가 있다.
상기의 내용을 부연한다.
전송비트가 4인경우 가능한 조합 수는 16개이고, 상기 16개의 경우마다 CRC를 통과하여 붙는 8 bit가 각각 다를 것이다.
따라서 12비트 크기를 가지는 16가지의 경우가 K=9, rate 1/2 길쌈부호기에 들어가 24비트 크기의 16개 codeword가 생성되는데, 이때 길쌈부호의 generating polynomial이나 CRC bit의 generating polynomial을 디자인하여 16개의 codeword 사이의 minimum hamming distance가 최대가 되도록 하는 것이 중요하다.
상기에서 해밍거리란 같은 워드길이(비트 수)를 갖는 두개의 2진수를 비교했을 때 각각 대응하는 비트의 수치가 서로 다른 개수를 말한다. (예를 들면 만약 하나의 codeword가 00000이고 다른 codeword가 10010이면 hamming distance는 2가 된다).
이러한 방법은 전송 비트가 많은 경우에는 codeword의 갯수가 무지 많아서 (n비트이면 2^n 개) 일일히 design할 수 없지만 전송 비트가 작은 경우(위와 같이 16가지 정도 이하라면)에는 일일히 codeword를 구하여 codeword끼리의 hamming distance를 구할 수가 있다.
현재 종래 및 본 발명의 실시예에서의 전송비트가 4비트 또는 5비트인데, 상기 도 5는 3GPP에서 쓰는 것이고 상기 도 10은 위와 같이 hamming distance를 구하였을때에 minimum hamming distance를 최대로 하는 것을 새로 구한 것이다.
일반적으로 전송 비트의 수가 매우 크기 때문에 이렇게 trial and error로 하는 방식은 사용을 하지 않고 수식적 방법을 사용하지만 최적으로 optimize하는 경우에는 이러한 trial and error방법을 사용한다.
그런데 사용자가 optimize하는 것은 길쌈부호의 polynomial과 CRC의 polynomial이 동시에 붙어 있고 서로 영향을 주기 때문에 수식적으로 design하기가 매우 어렵다.
따라서 CRC 자체만 가지고 디자인 하는 경우, 입력비트의 길이가 무지 큰 경우에는 상기 도 5의 것이 거의 최적이나, 본 발명에서 처럼 CRC와 길쌈부호가 동시에 붙어 있는 경우는 도 10과 같은 부호기를 제안한다.
본 발명을 다시한번 정리한다.
도 3은 종래 IS_95나 3GPP시스템에서 CRC 비트가 있는 경우에 사용되는 tail bit가 첨가된, 길쌈부호 및 터보 부호의 encoder에 입력되는 일반적인 신호 format을 나타낸 것입니다.
도 6은 본 발명에서 제안하고 있는 길쌈부호 및 터보 부호의 encoder에 입력되는 신호 format으로서, 도 3에서 tail bit를 포함하지 않는 경우에 해당된다.
즉, 본래 전송될 신호가 CRC를 통과해 부과되는 redundancy를 붙인 후에 tail bit가 없이 encoder의 입력으로 들어가게 되는 방식이다.
도 6과 같은 신호 format을 복호하기 위해서는, 도 7과 같이 trellis의 어떤 상태로도 갈 수 있는 tail 비트가 없는 프레임에 대한 viterbi 복호기를 사용하면 마지막으로 선택되어지는 codeword는 단 하나가 나오게 되며 이에 대한 전달신호의 경판정 값들이 나오게 된다.
따라서 상기의 경판정 값에 대해 CRC 검색을 하여 맞으면 통과시켜 값을 사용하는 것이고 틀리면 에러가 복호된 프레임에 존재한다고 판단한다.
한편, 상기에서 비터비 복호 방법이 잘되는 신호대 잡음비(SIR)가 높은 경우에는 CRC 검색에 에러가 없다고 통과되는 경우가 많으나, SIR이 낮은 경우에는 에러가 없다고 통과되는 경우가 매우 적으므로 길쌈부호의 성능과 CRC검색시 에러 없다고 판정되는 비율이 서로 연관성을 지니게 된다.
일반적으로 SIR이 낮은 경우에는 실제로 최소 path-metric을 가지는 codeword 이외에 다른 codeword 중에 실제로 맞는 경우가 종종 발생하므로 본 발명에서는 가능한 최종 state들 중에 단 하나의 codeword를 정하는 경우가 아니라 다수개의 codeword에 대한 전달 information hard-decision 값을 모두 추출하여 CRC를 통과시켜 오류유무를 판정하는 방법이다.
이러한 경우에는 최소 path-metric의 단 하나 codeword를 선택해 체크하는 종래의 경우보다, 에러가 없다고 통과되는 비율이 많아질 것은 분명한 반면, 통과된 경우 중에 검출이 안된 에러는 증가할 것이다.
상기의 방법에 의하면, 시스템을 실제로 사용하는 service provider가 에러 유무를 판단할 codeword들의 갯수를 가변적으로 조정하여 CRC에서 오류가 없다고 통과되는 비율과 이 중에 실제로 undetected error가 있는 경우를 가변시킬 수 있을 것이다.
이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다.
따라서 상기 기재 내용은 하기 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.
따라서 본 발명에 의하면, 오류 검출 기능이 필요한 길이가 짧은 프레임에 길쌈부호를 사용했을 경우, tail 비트에 의한 에너지 손실 및 복호 성능 감소를 줄일 수 있다. 또한 CRC check의 대상은 모든 codeword들의 경판정 출력값들이 대상이 되므로, CRC check의 대상이 되는 codeword들의 수를 가변적으로 조정함으로써, 얻고자하는 P_success와 P_undetected_error의 성능이 발생되도록 가변적 성능을 부여할 수가 있다
또한 새로운 CRC 부호화기를 제안하여 최적의 해밍거리를 도출할 수 있다.

Claims (16)

  1. 삭제
  2. 삭제
  3. 길쌈부호화한 데이터를 복호화 및 에러 검출하는데 있어서,
    길쌈부호기의 각 레지스터 상태값을 구하는 제 1단계와; 상기의 각 상태값에 대한 경판정값을 구하는 제 2단계와; 상기의 판정값을 상기 각 상태값의 path-methric 크기에 의해 분류한 값을 구하는 제 3단계와; 상기 분류한 값에 대해 에러가 있는지 체크하는 제 4단계;를 포함하는 것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
  4. 제 3항에 있어서, 각 상태값은 길쌈부호기 인코더의 쉬프트레지스터들의 값으로써 최소 path metric를 가지는 것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
  5. 제 3항에 있어서, 제 2단계의 상태값에 대한 판정값은 최소 path-metric을 가지는 codeword를 구하여 이에 해당하는 source값이 -1 또는 1로 판단하는 경판정값인것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
  6. 제 3항에 있어서, 상기 제 3단계에서는 경판정한 값을 각 상태값의 path-metric 크기에 의해 분류하는것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
  7. 제 3항에 있어서, 상기 제 4단계에서 분류된 값의 에러체크(CRC) 순서는 미리 정한 path-metric 크기 순서로 순차적으로 수행하는 것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
  8. 제 7항에 있어서, 에러체크결과 CRC를 통과시에는 해당 경판정값을 최종출력값으로 설정하는 것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
  9. 제 7항에 있어서, 현재크기에 대한 경판정 값의 에러체크결과 CRC 통과가 안된경우에는 다음크기의 경판정값에 대해 CRC를 수행하여 통과한 경판정값을 최종출력값으로 설정하는 것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
  10. 제 9항에 있어서, 순차적으로 다음크기의 경판정값에 대해 CRC를 수행하여 분류된 모든 경판정값이 CRC를 통과하지 못한 경우에는 해당 프레임을 에러처리하는 것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
  11. 제 6항에 있어서, path metric이란 복호기의 최종상태가 0상태로 되는 codeword들이 복수개 생기는 경우, 상기 codeword들이 입력값에 대하여 얼마나 가까운지를 계산하여 최소가 되는 것이 입력에 대한 codeword가 되며, 상기 입력값에 대하여 상기 codeword들이 얼마나 거리를 두는지를 계산한 것을 path metric이라고 표시하는 것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
  12. 제 3항에 있어서, CRC check의 대상은 모든 codeword들의 경판정 출력값들이 대상이 되므로, CRC check의 대상이 되는 codeword들의 수를 복수개로 조정함으로써, 얻고자하는 P_success와 P_undetected_error의 성능을 가변적으로 발생되도록 하는것을 특징으로 하는 길쌈부호의 부호화 및 복호화시 에러 검출 방법.
  13. 제 12항에 있어서, CRC check의 대상이 되는 codeword들의 수를 복수개로의 조정은 각 상태값에 대해 크기별로 분류하여 구하는 것을 특징으로 하는 길쌈부호의 부호화 및 복호화시 에러 검출 방법.
  14. 길쌈부호화한 데이터를 복호화 및 에러 검출하는데 있어서,
    길쌈부호기의 각 레지스터 상태값을 구하는 단계와; 상기의 각 상태값중 가장 작은 path-metric 크기를 가지는 상태값을 선택하는 단계와; 상기 선택한 상태값에 대해 경판정값을 구하는 단계와; 상기 경판정 출력값에 대해 에러가 있는지 체크하는 단계;를 포함하는데 있어서, 상기 경판정 값을 상기 각 상태값의 path-metric 크기에 의해 분류하는 것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
  15. 제 14항에 있어서, 길쌈부호기의 각 상태값중 가장 작은 path-metric 크기를 가지는 상태값을 선택하는 단계는, 각 상태에 대한 최종 path-metric을 가지는 다수의 codeword 값중에 가장 작은 path-metric을 가지는 codeword 값 하나를 선택하는 것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
  16. 레지스터 상태값의 path-metric을 가지는 복수의 codeword인 Wn중에 서 최소 path-metric을 가지는 codeword인 Wi 를 선택하는 단계;
    상기의 Wi 에 대해 경판정을 수행하여 경판정 출력값 Hn을 구하는 단계; 및
    상기의 경판정 출력값 Hn에 대하여 CRC 검증 작업을 수행하여 출력 값에 대한 에러 유무를 판별하는 단계;를 포함하는 것을 특징으로 하는 길쌈부호의 복호화시 에러 검출 방법.
KR1020010066360A 2001-10-26 2001-10-26 길쌈 부호화 및 복호화를 위한 프레임 구성 및 에러 검출방법 KR100893053B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010066360A KR100893053B1 (ko) 2001-10-26 2001-10-26 길쌈 부호화 및 복호화를 위한 프레임 구성 및 에러 검출방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010066360A KR100893053B1 (ko) 2001-10-26 2001-10-26 길쌈 부호화 및 복호화를 위한 프레임 구성 및 에러 검출방법

Publications (2)

Publication Number Publication Date
KR20030034681A KR20030034681A (ko) 2003-05-09
KR100893053B1 true KR100893053B1 (ko) 2009-04-15

Family

ID=29566576

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010066360A KR100893053B1 (ko) 2001-10-26 2001-10-26 길쌈 부호화 및 복호화를 위한 프레임 구성 및 에러 검출방법

Country Status (1)

Country Link
KR (1) KR100893053B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998045952A1 (en) * 1997-04-10 1998-10-15 Nokia Mobile Phones Limited Method for decreasing the frame error rate in data transmission in the form of data frames
KR0180303B1 (ko) * 1995-12-28 1999-04-01 김광호 비터비 디코더의 정규화 방법 및 장치
KR19990065358A (ko) * 1998-01-12 1999-08-05 서정욱 오류 검출 부호의 길쌈 부호화 및 복호화 방법
WO2000022739A1 (en) * 1998-10-13 2000-04-20 Interdigital Technology Corporation Hybrid interleaver for turbo codes
US6085349A (en) * 1997-08-27 2000-07-04 Qualcomm Incorporated Method for selecting cyclic redundancy check polynomials for linear coded systems
KR20010029541A (ko) * 1996-09-20 2001-04-06 도날드 디. 먼둘 복수의 코딩 버스트내에 배치된 crc 비트에 의해 종료 상태가결정되는 컨벌루셔널 디코딩

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0180303B1 (ko) * 1995-12-28 1999-04-01 김광호 비터비 디코더의 정규화 방법 및 장치
KR20010029541A (ko) * 1996-09-20 2001-04-06 도날드 디. 먼둘 복수의 코딩 버스트내에 배치된 crc 비트에 의해 종료 상태가결정되는 컨벌루셔널 디코딩
WO1998045952A1 (en) * 1997-04-10 1998-10-15 Nokia Mobile Phones Limited Method for decreasing the frame error rate in data transmission in the form of data frames
US6085349A (en) * 1997-08-27 2000-07-04 Qualcomm Incorporated Method for selecting cyclic redundancy check polynomials for linear coded systems
KR19990065358A (ko) * 1998-01-12 1999-08-05 서정욱 오류 검출 부호의 길쌈 부호화 및 복호화 방법
WO2000022739A1 (en) * 1998-10-13 2000-04-20 Interdigital Technology Corporation Hybrid interleaver for turbo codes

Also Published As

Publication number Publication date
KR20030034681A (ko) 2003-05-09

Similar Documents

Publication Publication Date Title
US6557139B2 (en) Encoding apparatus and encoding method for multidimensionally coding and encoding method and decoding apparatus for iterative decoding of multidimensionally coded information
EP0927464B1 (en) Convolutional decoding with the ending state decided by crc bits selectively placed inside multiple coding bursts
EP1628405B1 (en) List output Viterbi decoding using CRC constraint tests and physical constraint tests
JP4777876B2 (ja) ターボデコーダの反復の早期終了
US5355376A (en) Circular viterbi decoder
EP1942579A1 (en) An iterative decoder and an iterative decoding method for a communication system
CA2068159A1 (en) Generalized viterbi algorithm with tail-biting
US20090132897A1 (en) Reduced State Soft Output Processing
AU755043B2 (en) Data transmission method, data transmission system, transmitter and receiver
US20080092025A1 (en) Method and System for Improving Decoding Efficiency in Wireless Receivers
US20050210358A1 (en) Soft decoding of linear block codes
US7716554B2 (en) System and method for blind transport format detection with cyclic redundancy check
US20030188248A1 (en) Apparatus for iterative hard-decision forward error correction decoding
US20070153693A1 (en) Transport format detecting apparatus and method
US7237180B1 (en) Symbol-level soft output Viterbi algorithm (SOVA) and a simplification on SOVA
EP3713096B1 (en) Method and device for decoding staircase code, and storage medium
US20060236211A1 (en) Cyclic redundancy check modification for length detection of message with convolutional protection
EP0920138A2 (en) Method and system for decoding tailbiting convolution codes
KR100893053B1 (ko) 길쌈 부호화 및 복호화를 위한 프레임 구성 및 에러 검출방법
JP2002344330A (ja) ターボ復号装置およびターボ復号における復号の繰返し回数の制御方法
JP4379329B2 (ja) Crc生成多項式の選択方法、crc符号化方法およびcrc符号化回路
JPH06284018A (ja) ビタビ復号方法および誤り訂正復号化装置
WO1995001008A1 (fr) Methode de comptage des erreurs sur les bits et compteur
CN110460339B (zh) 卷积码译码的检测方法、装置、存储介质及电子设备
KR102293600B1 (ko) 극 부호를 위한 저지연 비트 플리핑 연속 제거 복호 방법 및 복호 시스템

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E902 Notification of reason for refusal
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee