부호 비트 펑처링 방법

申请号 KR1020010088414 申请日 2001-12-29 公开(公告)号 KR1020030059548A 公开(公告)日 2003-07-10
申请人 엘지전자 주식회사; 发明人 정희성;
摘要 PURPOSE: A code bit puncturing method is provided to reduce a hardware source during a code puncturing in a forward auxiliary channel of a variable rate. CONSTITUTION: Y and j are set to "0", respectively(S21). When Y=0+K=3, since Y is less than 5(J) but is equal to 3(K), indexes 2 and 3 are not punctured(S22). Y is set to Y-J(S23). It is judges whether Y is less than K(S24). When Y is less than K, indexes 4 and 5 is symbol-punctured(S25). When Y is equal to or greater than X, it is judged whether j is less than J(S26). When j is less than J, Y is set to Y+K and j is set to j+1(S27). A coding bit is symbol-repeated. A modular calculation for the symbol-repeated coding bit is performed using addition and subtraction and a puncturing operation is performed.
权利要求
  • 부호화 비트를 심볼 반복하는 단계와;
    상기 심볼 반복된 부호화 비트를 덧셈과 뺄셈을 이용한 모듈러 연산을 수행하여 펑처링하는 단계로 이루어지는 것을 특징으로 하는 부호비트 펑처링 방법.
  • 제 1 항에 있어서, 상기 펑처링하는 단계는 상기 심볼 반복된 부호화 비트의 수(L)를 인터리버 사이즈(N)로 감산한 값을 2로 나눈 값의 가장 작은 정수 값을 K라 하고, 상기 정보 비트를 2로 나눈 값의 가장 작은 정수 값을 J라 하며, 상기 심볼 반복된 부호화 비트가 입력되면 초기 입력 시작 값 Y와 인덱스를 j를 0으로 초기화하여 펑처링할 때,
    상기 초기 입력 시작 값 Y가 상기 J를 생성하고, Y는 Y+K의 새로운 Y'값으로 대체하는 제 1 단계와;
    상기 새로운 값 Y' 값으로 상기 J 및 상기 K와 다시 비교하여 상기 Y가 J보다 작지 않으면 상기 Y를 YJ한 새로운 Y' 값이 상기 J 및 K 보다 작은 경우 상기 j'의 2j'과 2j'+1에 해당하는 부호 비트 그룹을 펑처링하여 삭제하는 제 2 단계와;
    상기 1증가된 j'가 상기 J보다 작은 경우 상기 제 1, 제 2 단계를 반복하는 제 3 단계로 이루어지는 것을 특징으로 하는 부호비트 펑처링 방법.
  • 제 1 항에 있어서, 상기 제 1 단계 및 제 2 단계에서 상기 K값이 상기 Y값보다 작지 않으면 상기 j의 2j와 2j+1 및 j'의 2j'와 2j'+1에 해당하는 부호비트를 펑처링하지 않는 것을 특징으로 하는 부호비트 펑처링 방법.
  • 제 1 항에 있어서, 상기 제 3 단계에서 상기 j'이 J보다 작지 않으면, 펑처링을 끝내는 것을 특징으로 하는 부호비트 펑처링 방법.
  • 说明书全文

    부호 비트 펑처링 방법{Method for puncturing of coded bits}

    본 발명은 부호비트 펑처링에 관한 것으로 특히 가변 레이트의 순방향 보조채널에서 부호 펑처링 시 하드웨어 자원을 줄이기에 적당하도록 한 부호비트 펑처링 방법에 관한 것이다.

    이하 첨부된 도면을 참조하여 종래 기술에 따른 부호 비트 펑처링 방법을 설명하기로 한다.

    도 1은 일반적인 순방향 보조 채널의 전송 체인 블록 구성도이고, 도 2는 도 1에 나타낸 전송 체인의 심볼 펑처부를 상세히 나타낸 블록 구성도이다.

    도 1에 나타낸 순방향 보조 채널의 전송 체인은 1xEV-DV의 순방향 보조 채널이 가변 레이트일 때 전송 체인의 구성을 나타낸 것으로, 1xEV-DV의 순방향 보조 채널이 가변 레이트일 때 ERAM(Enhanced Rate Adaptation Mode)를 사용하는 터보 엔코딩(Turbo Encoding)을 할 수 있다.

    입력되는 채널 비트는 프레임 품질 지시자(10)에서 에러 검출 코드가 부가된다.

    그리고, 에러 검출 코드가 부가된 비트는 리저브드/엔코더 테일 비트(20) 블록에서 부호기의 최종 상태(state)를 알려진 상태(trellis termination)로 보내주기 위한 테일 비트(tail bits)들이 부가된다.

    테일 비트가 부가된 비트들은 엔코더(30)에서 컨벌루셔널 코드로 부호화된다.

    이러한 과정을 통해 생성된 부호화된 비트들은 전송하는 슬롯의 길이에 맞게 심볼 반복부(40)에서 반복되고, 상기 반복된 비트들은 심볼(부호비트) 펑처링부(50)에서 펑처링된다.

    상기 펑처링된 비트들은 블록 인터리버(60)에서 인터리빙된다.

    이때 엔코더(30) 출력단에서 프레임 당 엔코딩된 부호비트(Symbol) 수(L)가 채널 인터리버 사이즈(N) 보다 작으면 심볼 반복부(40)에서 심볼 반복 후 펑처링 과정은 생략된다.

    반대로 채널 인터리버 사이즈(N)가 엔코더(30) 출력단에서의 부호 비트 수(L)보다 작고 터보 엔코더를 사용하여 ERAM이 인에이블 되면 도 3에 나타낸 바와 같은 펑처링을 한다.

    우선 도 2에 나타낸 바와 같은 종래 전송 체인의 심볼 펑처부를 상세히 설명하면 다음과 같다.

    심볼 반복부(40)의 출력이 심볼 펑처부(50)를 거쳐 불록 인터리버(60)로 들어가는데, 심볼 펑처부(50)는 입력 심볼의 크기와 블록 인터리버(60)의 크기에 따라 펑처링할 심볼을 정하기 위해 배수기(Multiplier)(51), 모듈러 연산기(Modular arithmetic)(52) 절사부(Truncation)(53)를 거쳐서 나온 값에 따라 각 심볼의 펑처링 여부를 정하는데, 비교기(55)와 카운터(56)는 펑처링해야 하는 심볼의 수와 입력된 심볼의 수에 따라 다시 한번 더 루프를 돌아야 하는지를 정하고 한번 루프를 돌 때마다 카운터를 증가시킨다.

    이와 같은 구성을 갖는 종래 심볼 펑처루(50)의 펑처링 동작을 첨부된 도 3을 참조하여 설명하기로 한다.

    우선 I는 프레임당 정보비트의 수이고, 프레임당 정보 비트의 수를 2로 나눈 값을 초과하지 않는 가장 큰 정수 값을 나타내는 J는 ??I/2??이고, K는 ??(LN)/2??라하며, 각각의 부호 심볼 그룹이 부호화된 비트 L을 정보 비트 I로 나눈(L/I) 개수의 부호화된 비트로 구성되어 있을 때 부호 비트 그룹을 i=0에서 I-1로 인덱스를 붙인다.

    그리고 j=0에서 J-1 일 때, (j*K mod J)의 값이 K보다 작으면 인덱스 2j, 2j+1인 부호 비트 그룹이 펑처링되어 삭제되고, K보다 크면 펑처링하지 않고 블록 인터리버(60)로 전송된다.

    여기서 만약 L이 홀수이면, (I-1)번째 부호 심볼 그룹은 펑처링한다.

    1xEV-DV의 순방향 보조 채널의 속도가 변할 때 펑처링을 구현하려면 ERAM을 사용하는 터보 코드 엔코딩을 하여야 하고, 인터리버 크기보다 엔코더를 거친 데이터 비트 수가 더 커야 한다. 이 조건을 만족하는 경우 먼저 2비트씩 J는 ??I/2??개의 코드 심볼 그룹을 만들고, 각각의 j=0에서 J-1까지 (j*Kmod J) 연산, 즉 모듈로 연산을 하도록 구현한다(S11 - S16).

    여기서 J는 5이고, K는 3일 때의 펑처링 과정을 살펴보면,

    j=0 : [(0*3) mod 5 =0], 즉 3보다 작으므로 인덱스 0,1은 펑처링한다.

    j=1 : [(1*3) mod 5 =3], 즉 3과 같으므로 인덱스 2,3은 펑처링하지 않는다.

    j=2 : [(2*3) mod 5 =1], 즉 3보다 작으므로 인덱스 4,5는 펑처링한다.

    j=3 : [(3*3) mod 5 =4], 즉 3보다 크므로 인덱스 6,7은 펑처링하지 않는다.

    j=4 : [(4*3) mod 5 =2], 즉 3보다 작으므로 인덱스 8,9는 펑처링한다.

    이와 같은 종래 기술에 따른 펑처링 방법에 있어서는 모듈 연산이 펑처링에 입력되는 엔코더 출력 데이터 비트수의 1/2의 개수로 구현되어야 하므로, 하드웨어의 자원이 많이 필요하게 된다. 즉 (j*K mod j)에서 곱셈과 모듈 연산이 필요하다. 모듈 연산은 나눗셈 연산으로 구현되어야 하고, 나눗셈 연산은 곱셈 연산으로 구현되므로 하드웨어 자원이 많이 필요하게 되는 문제점이 있었다.

    본 발명은 이상에서 설명한 바와 같은 종래 기술의 문제점을 해결하기 위하여 안출한 것으로, 펑처링시 구현되는 모듈 연산의 하드웨어 자원을 줄이기에 적당한 부호비트 펑처링 방법을 제공하기 위한 것이다.

    이와 같은 본 발명 부호 비트 펑처링 방법은 부호화 비트를 심볼 반복하는 단계와, 상기 심볼 반복된 부호화 비트를 덧셈과 뺄셈을 이용한 모듈러 연산을 수행하여 펑처링하는 단계로 이루어진다.

    바람직하게 상기 펑처링하는 단계는 상기 심볼 반복된 부호화 비트의 수(L)를 인터리버 사이즈(N)로 감산한 값을 2로 나눈 값의 가장 작은 정수 값을 K라 하고, 상기 정보 비트를 2로 나눈 값의 가장 작은 정수 값을 J라 하며, 상기 심볼 반복된 부호화 비트가 입력되면 초기 입력 시작 값 Y와 인덱스를 j를 0으로 초기화하여 펑처링할 때, 상기 초기 입력 시작 값 Y가 상기 J를 생성하고, Y는 Y+K의 새로운 Y'값으로 대체하는 제 1 단계와, 상기 새로운 값 Y' 값으로 상기 J 및 상기 K와 다시 비교하여 상기 Y가 J보다 작지 않으면 상기 Y를 YJ한 새로운 Y' 값이 상기 J 및 K 보다 작은 경우 상기 j'의 2j'과 2j'+1에 해당하는 부호 비트 그룹을 펑처링하여 삭제하는 제 2 단계와, 상기 1증가된 j'가 상기 J보다 작은 경우 상기 제 1, 제 2 단계를 반복하는 제 3 단계로 이루어진다.

    그리고 상기 제 1 단계 및 제 2 단계에서 상기 K값이 상기 Y값보다 작지 않으면 상기 j의 2j와 2j+1 및 j'의 2j'와 2j'+1에 해당하는 부호비트를 펑처링하지 않으며, 상기 제 3 단계에서 상기 j'이 J보다 작지 않으면, 펑처링을 끝낸다

    도 1은 일반적인 순방향 보조 채널의 전송 체인 블록 구성도

    도 2는 도 1에 나타낸 전송 체인의 심볼 펑처부를 상세히 나타낸 블록 구성도

    도 3은 종래 기술에 따른 심볼 펑처링 방법을 설명하기 위한 플로우차트

    도 4는 본 발명에 따른 전송 체인의 심볼 펑처부를 상세히 나타낸 블록 구성도

    도 5는 본 발명에 따른 심볼 펑처링 방법을 설명하기 위한 플로우차트

    *도면의 주요 부분에 대한 부호의 설명*

    40 : 심볼 반복부500 : 심볼 펑처부

    510, 530, 550 : 비교부520 : 감산부

    540 : 심볼 펑처링부560 : 카운터

    60 : 블록 인터리버

    이하 첨부된 도면을 참조하여 본 발명 부호 비트 펑처링 장치 및 펑처링 방법을 설명하기로 한다.

    도 4는 본 발명에 따른 전송 체인의 심볼 펑처부를 상세히 나타낸 블록 구성도이고, 도 5는 본 발명에 따른 심볼 펑처링 방법을 설명하기 위한 플로우차트이다.

    우선 본 발명에서는 펑처링시 구현되어야 하는 모듈 연산의 하드웨어 자원을 줄이기 위하여 (j*K mod J)에서 곱셈은 덧셈으로 모듈 연산은 뺄셈으로 구현한다.

    우선 심볼 반복부(40)의 전단은 종래와 동일하므로 상세한 설명을 생략한다.

    심볼 반복부(40)의 출력이 심볼 펑처부(500)를 거쳐 블록 인터리버(60)로 입력되는데, 심볼 펑처부(500)는 앞단의 심볼 반복부(40)의 출력값을 입력받아 비교부(550)와 카운터(560)에서는 기존 방식에서처럼 펑처링해야 하는 심볼의 수와 입력 심볼의 수에 따라 다시 한번 더 루프를 돌아야 하는지, 끝낼지를 결정하고, 한번 루프를 돌 때마다 카운터(560)를 증가시킨다. 그러나 기존 방식과는 달리 입력 심볼의 크기와 블록 인터리빙의 크기에 따라 펑처링할 심볼을 정하기 위해 비교부(510)와 감산부(520) 및 비교부(530)를 거쳐서 나온 값에 따라 각 심볼의 펑처링 여부를 결정한다, 즉 하드웨어 자원을 줄이기 위해 비교부(510,530)와 감산부(520)를 사용하는 것이다.

    우선 I는 플레임당 정보비트의 수이고, 프레임당 정보 비트의 수를 2로 나눈 값이 정수 값을 초과하지 않는 가장 큰 정수 값을 나타내는 J는 ??I/2??이고, K는 ??(LN)/2??라하고, 각각의 부호 심볼 그룹이 엔코더(30)에서 부호화된 심볼 수를 정보비트 I로 나눈 즉, L/I 부호화된 비트로 구성되어 있을 때 부호 비트 그룹을 i=0에서 I-1로 인덱스를 붙인다.

    그리고 j=0에서 J-1 일 때, 펑처링 값이 K보다 작으면 인덱스 2j, 2j+1인 부호 비트 그룹이 펑처링되어 삭제되고, K보다 크면 펑처링하지 않고 블록 인터리버(60)로 전송된다.

    여기서 종래 기술에서 설명한 바와 같이 L은 엔코더(30)에서 부호화된 심볼 수이고, N은 블록 인터리버(60)의 사이즈이다.

    여기서 종래와 같이 J는 5이고, K는 3인 경우의 펑처링 과정을 살펴보면,

    인덱스 j와 심볼 펑처링부(540)에 초기 입력 값(새로운 부호 비트의 입력) Y = 0 일 때 다음과 같이 정리할 수 있다.

    Y = 0 : Y〈 J 그리고 Y〈 K이므로 인덱스 0,1은 펑처링.

    즉 Y가 0인 경우에 Y는 5(J)와 3(K)보다 작으므로 인덱스 0,1은 펑처링한다(S21,S24,S25,S26). 그리고 j(0)는 5(J)보다 작으므로 S27단계에서 Y는 Y+K의 값인 3이 되고, j는 1이 된다. 즉 카운터(560)를 1 증가시킨다(S27).

    S27 단계에서 0의 값을 갖고 있던 Y는 3의 값을 갖고 있는 K와 더해서 3의 값을 갖게 된다.

    따라서 Y = 3일 때 다음과 같이 정리할 수 있다.

    Y = 0 + K =3. 3 〈 J 이지만 3 = K이므로 인덱스 2,3은 펑처링하지 않음.

    즉 S22 단계에서는 Y = 0 + K =3인 경우 Y는 5(J)보다는 작지만 3(K)과 같으므로 인덱스 2,3은 펑처링하지 않는다(S22,S24,S26). 그러나 j는 5보다 작으므로 S27 단계에서 Y는 Y+K의 값인 6이 되고, j는 2가 된다(S27). 즉 카운터(560)를 1 증가시킨다.

    S27 단계에서 3의 값을 갖고 있던 Y는 3의 값을 갖고 있는 K와 더해서 6의 값을 갖게 된다.

    따라서 Y = 6일 때 다음과 같이 정리할 수 있다.

    Y = 6, 6 〉J, Y = 6 - 5 =1, 1〈 J, 1〈 K이므로 인덱스 4,5는 펑처링.

    즉 다시 S22 단계에서는 Y의 값은 S27 단계에서 3 + K =6이므로 Y는 5(J)보다 크므로 S23단계에서 Y의 값은 6 - 5 = 1이 된다. 다시 S22 단계에서 1이 된 Y는 J(5)보다 작으므로 S24 단계로 가고 K(3)보다 작은 값이므로 인덱스 4,5는 심볼 펑처링된다(S25). 그러나 j는 J(5)보다 작으므로 S27 단계에서 Y는 Y+K의 값인 4가 되고, j는 3이 된다. 즉 다시 카운터(560)를 1증가시킨다.

    S27 단계에서 1의 값을 갖고 있던 Y는 3의 값을 갖고 있는 K와 더해서 4의 값을 갖게 된다.

    따라서 Y = 4일 때 다음과 같이 정리할 수 있다.

    Y = 1 + K = 4, 4〈 J, 4 〉K이므로 인덱스 6,7는 펑처링하지 않음.

    즉 S22 단계에서 Y의 값은 1 + K = 4이므로 Y는 5(J)보다 작으므로 S24 단계로 가는데, 이때 Y는 K(3)보다 작지는 않으므로 심볼 펑처링하지 않고, S26단계로 간다. 이때 S26 단계에서도 j의 값은 4이므로 여전히 5(J)보다 작아 S27 단계로 가고, S27 단계에서 Y는 Y+K의 값인 7이 되고, j는 5가 된다. 즉 다시 카운터(560)를 1 증가시킨다.

    S27 단계에서 4의 값을 갖고 있던 Y는 3의 값을 갖고 있는 K와 더해져 7의 값을 갖게 된다.

    그리고 Y = 7일 때 다음과 같이 정리할 수 있다.

    Y = 7, 7 〉J, Y = 7 - 5 = 2, 2〈 J, 2〈 K이므로 인덱스 8,9는 펑처링.

    즉 S22 단계에서 Y의 값은 4 + K = 7이므로 Y는 S23 단계에서 7 - 5 = 2가 된다. 2가 된 Y 값은 S22 단계에서 J(5)보다 작고, S23 단계에서 K(3)보다 작으므로 심볼 펑처링한다. 따라서 인덱스 8,9는 펑처링된다.

    본 발명의 부호비트 펑처링 방법은 곱셈과 모듈연산의 펑처링 방법을 사용하지 않고, 덧셈과 뺄셈을 이용하는 부호비트 펑처링 방법을 펑처링을 하므로 하드웨어 자원을 줄일 수 있는 효과가 있다.

    QQ群二维码
    意见反馈