KR100853497B1 - 터보 인터리빙 장치 및 그의 출력주소 발생 방법 - Google Patents

터보 인터리빙 장치 및 그의 출력주소 발생 방법 Download PDF

Info

Publication number
KR100853497B1
KR100853497B1 KR1020040067297A KR20040067297A KR100853497B1 KR 100853497 B1 KR100853497 B1 KR 100853497B1 KR 1020040067297 A KR1020040067297 A KR 1020040067297A KR 20040067297 A KR20040067297 A KR 20040067297A KR 100853497 B1 KR100853497 B1 KR 100853497B1
Authority
KR
South Korea
Prior art keywords
address
output
bits
count value
counter
Prior art date
Application number
KR1020040067297A
Other languages
English (en)
Other versions
KR20060018778A (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 KR1020040067297A priority Critical patent/KR100853497B1/ko
Publication of KR20060018778A publication Critical patent/KR20060018778A/ko
Application granted granted Critical
Publication of KR100853497B1 publication Critical patent/KR100853497B1/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/27Coding, 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 using interleaving techniques
    • H03M13/276Interleaving address generation
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2771Internal interleaver for turbo 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

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

Abstract

본 발명은 터보 인터리빙 장치 및 그의 출력주소 발생 방법에 관한 것으로서, 본 발명의 터보 인터리빙 장치 및 그의 출력주소 발생방법은 입력되는 정보비트의 비트수에 따라 카운팅-비트수가 결정되며 시스템 클럭을 순차적으로 카운트하여 카운트값을 출력하는 카운터와, 상기 카운터에서 출력되는 카운트값에 의거하여 현재 클럭 이후에 발생될 적어도 하나 이상의 예상 어드레스들과 현재 클럭에 대응된 현재 어드레스를 함께 계산하는 어드레스 계산부와, 상기 어드레스 계산부에서 계산된 어드레스들을, 클럭 순서에 의해 순차적으로, 상기 정보비트의 비트수와 비교하고 정보비트의 비트수보다 작은 첫 번째 어드레스를 인터리브 출력주소로 결정하는 비교부를 포함하고, 상기 카운터는 상기 비교부의 인터리브 출력주소 결정결과에 의거하여 상기 카운터의 증가값을 설정한다. 따라서, 본 발명은 유효하지 않은 인터리버 출력주소의 폐기로 인한 인코딩 및 디코딩 시간 지연을 줄이는 효과가 있다.
CDMA, 인코딩, 터보 인터리빙

Description

터보 인터리빙 장치 및 그의 출력주소 발생 방법{Apparatus for turbo interleaving and method for generating output address of the same}
도 1은 통상적인 터보 인코더의 구성을 나타낸 블록도,
도 2는 종래의 실시 예에 따라 터보 인터리빙을 하는 장치에 대한 블록도,
도 3은 터보 인터리버의 블록 크기에 대한 터보 인터리버 파라미터(n)에 대한 예를 나타낸 도면,
도 4는 터보 인터리버의 룩업테이블에 대한 예를 나타낸 도면,
도 5는 본 발명의 일 실시 예에 따른 터보 인터리빙 장치에 대한 블록도,
도 6은 본 발명의 일 실시 예에 따른 터보 인터리빙 장치의 어드레스 계산기에 대한 블록도,
도 7은 본 발명의 일 실시 예에 따라 터보 인터리빙을 위한 출력주소를 발생하는 방법에 대한 처리 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100: 인터리빙 장치 110: (n+5)비트 카운터
120: 제1 어드레스 계산기 130: 가산기
140: 제2 어드레스 계산기 150: 비교기
160: 스위치부
본 발명은 무선통신시스템(예컨대, 위성시스템, ISDN, 디지털 셀룰러, W-CDMA, IMT-2000 등)에 사용되는 터보 부호기(Turbo encoder)에 관한 것으로서, 특히 터보 부호기(Turbo encoder)에서 터보 인터리빙을 하는 장치 및 그의 출력주소 발생 방법에 관한 것이다.
일반적으로 에러 정정 코드는 페이딩의 영향을 받아 발생하는 랜덤성 에러를 정정하는 데 주로 이용된다. 그러나 페이딩의 영향이 심하거나 버스트성 에러가 발생할 경우에는 에러 정정 코드만으로 이를 대처하기가 쉽지 않다.
인터리빙은 전송하고자 하는 정보비트를 미리 정해진 인터리빙 규칙에 따라 섞음으로써 정보비트를 분산시키고 비트와 비트를 서로 독립적으로 배치시킨다. 따라서 인터리빙은 각 비트가 서로 독립적으로 페이딩의 영향을 받도록 한다. 즉, 인터리빙은 정보비트에 버스트성 에러가 발생하더라도 그 버스트성 에러를 랜덤성 에러로 변환시킴으로써 에러정정코드를 이용하여 정정할 수 있도록 한다.
따라서 코드분할다중접속(Code Division Multiple Access, 이하 'CDMA'라 칭함) 표준은 무선 채널에서 발생하는 버스트성 에러를 방지하기 위해 인터리빙을 수행하는 터보 인코딩 방식을 권고하고 있다. 상기 터보 인코딩 방식은 인터리빙 없 이 인코딩된 정보비트와 인터리빙을 거쳐 인코딩된 정보비트를 함께 출력한다.
도 1은 상기 터보 인코딩을 수행하는 통상적인 터보 인코더의 구성을 나타낸 블록도이다. 도 1을 참조하면 터보 인코더는 터보 인터리버(10)와, 제1 구성 인코더(20)와, 제2 구성 인코더(30)와, 심볼 천공 및 반복기(40)를 포함한다.
터보 인터리버(10)는 정보비트를 인터리빙하여 출력한다. 제1 구성 인코더(20)는 인터리빙되지 않은 정보비트를 인코딩하여 출력하고, 제2 구성 인코더(30)는 터보 인터리버(10)로부터 인터리빙된 정보비트를 인코딩하여 출력한다.
이 때 제1 및 제2 구성 인코더(20 및 30)는 이미 기술분야에서 잘 알려진 RSC(Recursive Systematic Convolutional) 인코더를 사용하고 있다. 한편 터보 인터리버(10)는 입력되는 최대프레임 크기와 동일한 메모리 크기를 가지며, 제2 구성 인코더(30)에 입력되는 정보비트의 입력순서를 바꿈으로써 정보비트들 사이의 상관(correlation)을 줄여주는 역할을 한다.
심볼 천공 및 반복기(40)는 제1 구성 인코더(20)의 출력신호(X, Y0, Y1)와 제2 구성 인코더(20)의 출력신호(X', Y0', Y1')를 처리하여 코드 심볼(
Figure 112004038226380-pat00001
)로 출력한다.
도 2는 종래의 실시 예에 따라 터보 인터리빙을 하는 장치에 대한 블록도이다. 즉, 도 1에 예시된 터보 인코더에 포함된 터보 인터리버(10)에 대한 블록도이다. 도 2를 참조하면 터보 인터리버(10)는 (n+5)비트 카운터(11), 가산/선택기(12), 룩업테이블(13), 비트 역전기(14), 다중화/선택기(15) 및 선택기(16)를 포함 한다.
(n+5)비트 카운터(11)는 시스템 클럭을 순차적으로 카운트하여 카운트값을 출력한다. 이 때, 'n'은 입력되는 정보비트의 크기(예컨대, 정보비트의 비트수)(Nturbo)에 따라 정해지는 파라미터이다. 즉, 'n'은 입력되는 정보비트의 비트수(Nturbo)를 카운트하기 위한 카운트의 비트수를 결정하기 위한 파라미터 값으로서, 2(n+5)의 값이 입력되는 정보비트의 비트수(Nturbo) 보다 커지도록 결정한다. 예를 들어 'n'값은 (수학식 1)을 만족하는 최소의 'n'값으로 결정함이 바람직하다.
Nturbo ≤ 2n+5
예를 들어, 정보비트의 비트수(Nturbo)가 '186'인 경우 (수학식 1)을 만족하는 최소의 'n'값은 '3'이고, 정보비트의 비트수(Nturbo)가 '378' 또는 '402'인 경우 (수학식 1)을 만족하는 최소의 'n'값은 '4'이다. 이와 같이 입력될 정보비트의 비트수(Nturbo)에 대하여 (수학식 1)을 만족하는 최소의 'n'값을 미리 계산한 결과가 도 3에 나타나 있다.
가산/선택기(12)는 (n+5) 비트 카운터(11)의 출력 카운트 값인 (n+5) 비트 중 상위 n비트(n MSBs)(in+4...5)만을 입력받아 그 비트들(n MSBs)에 '1'을 더한 후 그 결과에서 하위 n비트만을 선택하여 출력한다.
룩업 테이블(13)은 인터리빙 순서를 결정하기 위해 최소의 버스트 에러를 발생시키도록 하는 미리 정해진 원소들을 저장하는데, 각 원소는 CDMA 2000 표준에 따라 파라미터 'n' 별로 정해진다. 이러한 룩업 테이블(13)의 예가 도 4에 예시되어 있다. 룩업 테이블(13)은 (n+5) 비트 카운터(11)의 출력 카운트 값인 (n+5) 비트 중 하위 5비트(5 LSBs)(i4...0)만을 입력받아 그 5비트의 입력(5 LSBs)에 일대일로 대응하는 32개의 원소들을 출력한다.
비트 역전기(14)는 (n+5) 비트 카운터(11)의 출력 카운트 값인 (n+5) 비트 중 하위 5비트(5 LSBs)(i4...0)만을 입력받아 그 비트를 역전시킨 값(i0...4)을 출력한다. 이 때 출력된 값(i0...4)은 인터리버 출력 주소의 상위 5비트가 된다.
다중화/선택기(15)는 가산/선택기(12) 및 룩업 테이블(13)의 출력값을 입력받아 다중화한 후 그 결과에서 하위 'n'비트만을 선택한 값(tn-1...0)을 출력한다. 이 때 출력된 값(tn-1...0)은 인터리버 출력 주소의 하위 'n'비트가 된다.
선택기(16)는 비트 역전기(14) 및 다중화/선택기(15)의 출력값들을 이용하여 인터리버 출력주소(i0...4tn-1...0)를 생성한 후 그 값을 정보비트의 크기(즉, 정보비트의 비트수)(Nturbo)와 비교한다. 상기 비교 결과 인터리버 출력주소(i0...4tn-1...0 )가 정보비트의 비트수(Nturbo) 보다 작은 값만을 유효한 인터리버 출력주소로서 출력한다. 예를 들여 상기 비교 결과 인터리버 출력주소(i0...4tn-1...0)가 정보비트의 비트수 (Nturbo) 보다 크거나 같은 경우 그 인터리버 출력주소를 유효하지 않은 값으로 간주하여 폐기한다. 즉 그 유효하지 않은 인터리버 출력주소를 무시하고 (n+5)비트 카운터(11)의 카운트값을 증가시킨 후 그 값을 이용한 인터리버 출력주소를 계산한다.
이와 같이 종래의 경우에는 인터리버 출력주소가 폐기되는 경우가 랜덤(random)하게 발생된다. 따라서 매 클럭(clock) 마다 인터리버 출력주소가 발생할 수 없게 된다. 즉 인터리버 출력주소가 연속적으로 발생하지 못한다. 결과적으로 유효하지 않은 인터리버 출력주소를 폐기하기 위해 한 사이클(cycle)을 소요하게 되어 인코딩 및 디코딩 시간을 지연시키는 문제점이 있다. 또한 상기와 같은 문제점은 인코더 및 디코더의 컨트롤을 어렵게 만드는 요인으로 작용하게 된다.
본 발명은 상술한 문제점을 해결하기 위하여 안출된 것으로서, 본 발명은 유효하지 않은 인터리버 출력주소의 폐기로 인한 인코딩 및 디코딩 시간 지연을 최소화하기 위한 장치 및 방법을 제공하고자 한다.
또한 본 발명은 현재 클럭 이후에 발생될 복수의 어드레스를 현재 클럭의 어드레스와 함께 계산하여 유효하지 않은 인터리버 출력주소의 폐기로 인한 인코딩 및 디코딩 시간 지연을 줄이는 장치 및 방법을 제공하고자 한다.
상술한 목적을 달성하기 위해 본 발명에서 제공하는 터보 인터리빙 장치는 입력되는 정보비트의 비트수에 따라 카운팅-비트수가 결정되며 시스템 클럭을 순차적으로 카운트하여 카운트값을 출력하는 카운터와, 상기 카운터에서 출력되는 카운트값에 의거하여 현재 클럭 이후에 발생될 적어도 하나 이상의 예상 어드레스들과 현재 클럭에 대응된 현재 어드레스를 함께 계산하는 어드레스 계산부와, 상기 어드레스 계산부에서 계산된 어드레스들을, 클럭 순서에 의해 순차적으로, 상기 정보비트의 비트수와 비교하고 정보비트의 비트수보다 작은 첫 번째 어드레스를 인터리브 출력주소로 결정하는 비교부를 포함하고, 상기 카운터는 상기 비교부의 인터리브 출력주소 결정결과에 의거하여 상기 카운터의 증가값을 설정함을 특징으로 한다.
또한 상기 목적을 달성하기 위해 본 발명에서 제공하는 터보 인터리빙 장치는 입력되는 정보비트의 비트수에 따라 카운팅-비트수가 결정되며 시스템 클럭을 순차적으로 카운트하여 카운트값을 출력하는 카운터와, 상기 카운터에서 출력된 카운트값을 이용하여 현재 클럭에서 인터리버 출력주소를 결정하기 위한 제1 어드레스를 계산하여 출력하는 제1 어드레스 계산기와, 상기 카운터에서 출력된 카운트값을 증가시킨 후 그 증가된 카운트값을 이용하여 다음 클럭에서 인터리버 출력주소를 결정하기 위한 제2 어드레스를 계산하여 출력하는 제2 어드레스 계산기와, 상기 제1 어드레스와 상기 정보비트의 비트수를 비교한 후 그 결과에 의해 상기 제1 어드레스의 유효성 여부를 판단하는 비교부와, 상기 비교부의 판단 결과 상기 제1 어드레스가 유효하지 않은 경우 제2 어드레스를 선택하여 인터리버 출력주소로서 출 력하는 스위치부를 포함하고, 상기 비교부는 제1 어드레스가 유효한 경우 상기 카운터의 증가값을 '1'로 결정하고, 제1 어드레스가 유효하지 않다고 판단된 경우 상기 카운터의 증가값을 '2'로 변경함을 특징으로 한다.
한편 상기 목적을 달성하기 위해 본 발명에서 제공하는 터보 인터리빙을 위한 출력 주소 발생 방법은 시스템 클럭을 순차적으로 카운트하여 카운트값을 출력하는 과정과, 상기 출력된 카운트값에 의거하여 현재 클럭 이후에 발생될 적어도 하나 이상의 예상 어드레스들과 현재 클럭에 대응된 현재 어드레스를 함께 계산하는 과정과, 상기 계산과정에서 계산된 어드레스들을, 클럭 순서에 의해 순차적으로, 입력되는 정보비트의 수와 비교하고 정보비트의 수보다 작은 첫 번째 어드레스를 인터리브 터보 인터리빙을 위한 출력주소로 결정하는 과정과, 상기 출력주소의 결정결과에 의거하여 상기 카운트값의 증가값을 설정하는 과정을 포함함을 특징으로 한다.
또한 상기 목적을 달성하기 위해 본 발명에서 제공하는 터보 인터리빙을 위한 출력 주소 발생 방법은 시스템 클럭을 순차적으로 카운트하여 카운트값을 출력하는 과정과, 상기 출력된 카운트값에 의거하여 현재 클럭에서 상기 출력주소를 결정하기 위한 제1 어드레스를 계산하는 제1 계산과정과, 상기 출력된 카운트값을 증가시킨 후 그 증가된 카운트값을 이용하여 다음 클럭에서 상기 출력주소를 결정하기 위한 제2 어드레스를 계산하는 제2 계산과정과, 상기 제1 어드레스를 입력되는 정보비트의 비트수와 비교한 후 그 결과에 의해 상기 제1 어드레스의 유효성 여부를 판단하는 과정과, 상기 판단 결과 상기 제1 어드레스가 유효하지 않은 경우 제2 어드레스를 선택하여 인터리버 출력주소로서 출력하는 과정과, 제1 어드레스가 유효한 경우 상기 카운터의 증가값을 '1'로 설정하고, 제1 어드레스가 유효하지 않다고 판단된 경우 상기 카운터의 증가값을 '2'로 설정하는 과정을 포함함을 특징으로 한다.
이하 첨부된 도면을 참조하여 본 발명의 일 실시 예에 의한 구성 및 작용에 대해서 더욱 상세히 설명한다. 이 때 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
도 5는 본 발명의 일 실시 예에 따른 터보 인터리빙 장치에 대한 블록도이다. 도 5를 참조하면 본 발명의 일 실시 예에 따른 터보 인터리빙 장치(100)는 (n+5)비트 카운터(110)와, 제1 어드레스 계산기(120)와, 가산기(130)와, 제2 어드레스 계산기(140)와, 비교기(150)와, 스위치부(160)를 포함한다.
(n+5)비트 카운터(110)는 시스템 클럭을 순차적으로 카운트하여 카운트값을 출력한다. 이 때, 'n'은 입력되는 정보비트의 크기(예컨대, 정보비트의 비트수)(Nturbo)에 따라 정해지는 파라미터이다. 즉, 'n'은 입력되는 정보비트의 비트수(Nturbo)를 카운트하기 위한 카운트의 비트수를 결정하기 위한 파라미터 값으로서, 2(n+5)의 값이 입력되는 정보비트의 비트수(Nturbo) 보다 커지도록 결정한다. (n+5)비트 카운터(110)의 'n'값 결정에 관해서는 도 2를 참조한 (n+5)비트 카운터(11)에 대한 설명시 언급되었고 'n'값 결정에 관한 내용은 본 발명의 요지를 벗어나므로 그 구체적인 설명은 상기 설명으로 대체한다.
한편, (n+5)비트 카운터(110)는 비교기(150)로부터 전달된 증가값(increment)에 의거하여 동작한다. 즉, 상기 이전 카운값에 상기 증가값을 더한 값을 출력한다. 예를 들어 비교기(150)로부터 전달된 증가값(increment)이 '1'인 경우 (n+5)비트 카운터(110)는 카운트값을 '1' 증가시켜 출력하고, 비교기(150)로부터 전달된 증가값(increment)이 '2'인 경우 (n+5)비트 카운터(110)는 카운트값을 '2' 증가시켜 출력한다.
가산기(130)는 (n+5)비트 카운터(110)의 출력값에 '1'을 증가시켜 출력한다.
제1 어드레스 계산기(120)는 (n+5)비트 카운터(110)의 출력값을 이용하여 인터리버 출력주소를 결정하기 위한 제1 어드레스를 계산하여 출력한다.
제2 어드레스 계산기(140)는 가산기(130)의 출력값을 이용하여 인터리버 출력주소를 결정하기 위한 제2 어드레스를 계산하여 출력한다. 이 때, 제2 어드레스는 가산기(130)의 출력값(즉, (n+5)비트 카운터(110)의 출력값에 '1'을 증가시킨 값)을 이용하여 계산된 값으로서 다음 클럭에 해당하는 어드레스와 동일하다.
비교기(150)는 정보비트의 비트수(Nturbo)와 제1 어드레스를 비교한 후 그 결과에 의해 제1 어드레스 또는 제2 어드레스 중 어느 하나를 인터리버 출력주소로 선택하도록 하는 제어신호를 발생시킨다. 그리고 그 결과에 의거하여 (n+5)비트 카운터(110)의 증가값을 결정하여 (n+5)비트 카운터(110)로 전달한다.
상기 비교결과 제1 어드레스가 정보비트의 비트수(Nturbo) 보다 작은 경우, 비 교기(150)는 제1 어드레스를 인터리버 출력주소로 선택하도록 하는 제어신호를 스위치부(160)로 전달하고 (n+5)비트 카운터(110)의 증가값을 '1'로 결정하여 (n+5)비트 카운터(110)로 전달한다.
한편 상기 비교결과 제1 어드레스가 정보비트의 비트수(Nturbo) 보다 크거나 같은 경우, 비교기(150)는 제2 어드레스를 인터리버 출력주소로 선택하도록 하는 제어신호를 스위치부(160)로 전달하고 (n+5)비트 카운터(110)의 증가값을 '2'로 결정하여 (n+5)비트 카운터(110)로 전달한다.
이와 같이 제1 어드레스가 정보비트의 비트수(Nturbo) 보다 크거나 같은 경우 제1 어드레스를 폐기시키고 제1 어드레스와 함께 계산된 제2 어드레스를 인터리버 출력주소로 선택함으로써 본 발명은 제1 어드레스를 폐기시킨 후 제2 어드레스를 계산하는 데에 소요되는 시간을 절약할 수 있는 것이다. 한 클럭의 시간을 절약할 수 있는 것이다. 이와 같이 함으로써 본 발명은 매 클럭 마다 인터리버 출력주소를 발생하도록 한다.
스위치부(160)는 비교기(150)로부터 전달된 제어 신호에 의거하여 상기 제1 및 제2 어드레스 중 어느 하나를 인터리버 출력주소로 선택하여 출력한다.
도 6은 본 발명의 일 실시 예에 따른 터보 인터리빙 장치의 어드레스 계산기에 대한 블록도이다. 즉, 도 5의 제1 어드레스 계산기(120)에 대한 블록도이다. 도 5 및 도 6을 참조하면 제1 어드레스 계산기(120)는 입력부(121), 가산/선택기(122), 룩업테이블(123), 비트역전기(124), 다중화/선택기(125) 및 출력부(126)를 포함한다.
입력부(121)는 (n+5)비트 카운터(110)로부터 전달된 카운트값을 입력받는다.
가산/선택기(122)는 입력부(121)를 통해 출력된 (n+5) 비트 카운터(110)의 카운트 값인 (n+5) 비트 중 상위 n비트(n MSBs)(in+4...5)만을 입력받아 그 비트들(n MSBs)에 '1'을 더한 후 그 결과에서 하위 n비트만을 선택하여 출력한다.
룩업 테이블(123)은 인터리빙 순서를 결정하기 위해 최소의 버스트 에러를 발생시키도록 하는 미리 정해진 원소들을 저장하는데, 각 원소는 CDMA 2000 표준에 따라 파라미터 'n' 별로 정해진다. 이러한 룩업 테이블(123)의 예는 도 4에 예시된 바와 같다. 룩업 테이블(123)은 입력부(121)를 통해 출력된 (n+5) 비트 카운터(110)의 카운트 값인 (n+5) 비트 중 하위 5비트(5 LSBs)(i4...0)만을 입력받아 그 5비트의 입력(5 LSBs)에 일대일로 대응하는 32개의 원소들을 출력한다.
비트 역전기(124)는 입력부(121)를 통해 출력된 (n+5) 비트 카운터(110)의 카운트 값인 (n+5) 비트 중 하위 5비트(5 LSBs)(i4...0)만을 입력받아 그 비트를 역전시킨 값(i0...4)을 출력한다. 이 때 출력된 값(i0...4)은 제1 어드레스의 상위 5비트가 된다.
다중화/선택기(125)는 가산/선택기(122) 및 룩업 테이블(123)의 출력값을 입력받아 다중화한 후 그 결과에서 하위 'n'비트만을 선택한 값(tn-1...0)을 출력한다. 이 때 출력된 값(tn-1...0)은 제1 어드레스의 하위 'n'비트가 된다.
출력부(126)는 비트 역전기(124) 및 다중화/선택기(125)의 출력값들을 이용하여 제1 어드레스(i0...4tn-1...0)를 생성한 후 그 값을 출력한다.
도 5의 제2 어드레스 계산기(140)는 도 6에 예시된 제1 어드레스 계산기(120)와 동일한 구조를 가지고 유사하게 동작한다. 다만, 입력부의 동작만이 다르다. 즉, 제1 어드레스 계산기(120)의 입력부(121)는 (n+5)비트 카운터(110)로부터 전달된 카운트값을 입력하지만 제2 어드레스 계산기(140)의 입력부는 가산기(130)를 통해 '1'이 더해진 카운트값을 입력하는 점만이 다른 것이다.
도 7은 본 발명의 일 실시 예에 따라 터보 인터리빙을 위한 출력주소를 발생하는 방법에 대한 처리 흐름도이다. 도 5 및 도 7을 참조하면 본 발명의 일 실시 예에 따른 출력주소 발생 방법은 다음과 같다. 먼저, (n+5)비트 카운터(110)는 카운터 증가값을 '1'로 하여(S105) 카운트 값을 출력한다(S110). 이 때 (n+5)비트 카운터(110)에서 출력된 카운트값을 이하에는 제1 카운트값(C1)이라 명명한다. 이와 같이 제1 카운트값(C1)이 출력되면 가산기(130)에서는 상기 제1 카운트값(C1)에 '1'을 더하여 제2 카운트값(C2)을 계산한다(S115).
이와 같이 제1 및 제2 카운트값(C1 및 C2)이 계산되었으면, 제1 및 제2 어드레스 계산기(120 및 140)는 상기 제1 및 제2 카운트값(C1 및 C2)을 이용하여 제1 및 제2 어드레스를 계산한다. 즉, 제1 어드레스 계산기(120)는 제1 카운트값(C1)을 이용하여 제1 어드레스를 계산하고(S120), 제2 어드레스 계산기(14)는 제2 카운트값(C2)을 이용하여 제2 어드레스를 계산한다(S125).
이 때 계산된 제1 어드레스는 현재 클럭에 대응된 인터리버 출력주소이고, 제2 어드레스는 제1 어드레스가 인터리버 출력주소로서 유효하지 않은 경우 선택하기 위한 다음 클럭에 대응된 인터리버 출력주소이다.
따라서 비교기(150)는 제1 어드레스가 인터리버 출력주소로서 유효한지의 여부를 판단하기 위해 제1 어드레스를 정보비트의 비트수(Nturbo)와 비교한다(S130).
상기 비교(S130) 결과 제1 어드레스가 정보비트의 비트수(Nturbo)보다 크지 않으면 스위치부(160)는 비교기(150)의 제어를 받아 제1 어드레스를 인터리버 출력주소로 선택하여 출력한다(S135). 그리고 (n+5)비트 카운터(110)는 카운터 증가값을 '2'로 설정한 후(S140) 과정(S110)을 수행한다.
한편 상기 비교결과(S130) 제1 어드레스가 정보비트의 비트수(Nturbo)보다 큰 경우 스위치부(160)는 비교기(150)의 제어를 받아 제2 어드레스를 인터리버 출력주소로 선택하여 출력한다(S145). 그리고 (n+5)비트 카운터(110)는 카운터 증가값을 '1'로 설정한 후(S150) 과정(S110)을 수행한다.
이와 같이, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범주에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
보다 구체적으로 상기 예에서는 한 클럭에 2개의 어드레스(제1 및 제2 어드 레스)를 생성하고 그 들 중 하나를 선택하는 경우에 대한 예를 설명하였다. 하지만 본 발명은 현재 클럭 이후에 발생될 적어도 하나 이상의 어드레스를 더 생성하는 경우에 관한 것으로서 한 클럭에 생성된 어드레스의 수에 의해 한정되는 것은 아니다. 다시 말해 시스템의 특성에 의해 한 클럭에 생성되는 어드레스의 수는 증가할 수 있는 것이다. 예를 들어 현재 클럭 이후에 발생될 2개의 어드레스를 현재 클럭의 어드레스와 함께 생성하고(즉, 한 클럭에 3개의 어드레스를 생성하고) 그 어드레스들을 순차적으로 정보비트의 비트수와 비교하여 정보비트의 비트수 보다 작은 첫 번째 값을 인터리브 출력주소로 결정하도록 하는 것도 가능함은 자명한 것이다.
상술한 바와 같이 본 발명은 현재 클럭 이후에 발생될 복수의 어드레스를 현재 클럭의 어드레스와 함께 계산함으로써 매 클럭마다 인터리버 출력주소를 출력할 수 있는 효과가 있다. 즉, 본 발명은 유효하지 않은 인터리버 출력주소의 폐기로 인한 인코딩 및 디코딩 시간 지연을 줄이는 효과가 있다. 예를 들어 현재 클럭의 어드레스가 유효하지 않은 경우 현재 클럭의 어드레스를 폐기시키고 그 현재 클럭의 어드레스와 함께 계산된 현재 클럭 이후의 어드레스를 인터리버 출력주소로서 출력함으로써 현재 클럭의 어드레스 폐기 후 다음 클럭의 어드레스 계산까지의 시간 지연을 줄이는 효과가 있다.
따라서 인코딩 및 디코딩 시간 지연을 최소화할 수 있으며 인코딩 및 디코딩 시간 지연으로 인해 인코더 및 디코더의 컨트롤이 어려워지는 문제점을 해결할 수 있는 효과가 있다.

Claims (10)

  1. 터보 인터리빙 장치에 있어서,
    입력되는 정보비트의 비트수에 따라 카운팅-비트수가 결정되며 시스템 클럭을 순차적으로 카운트하여 카운트값을 출력하는 카운터와,
    상기 카운터에서 출력되는 카운트값에 의거하여 현재 클럭 이후에 발생될 적어도 하나 이상의 예상 어드레스들과 현재 클럭에 대응된 현재 어드레스를 함께 계산하는 어드레스 계산부와,
    상기 어드레스 계산부에서 계산된 어드레스들을, 클럭 순서에 의해 순차적으로, 상기 정보비트의 비트수와 비교하고 정보비트의 비트수보다 작은 첫 번째 어드레스를 인터리브 출력주소로 결정하는 비교부를 포함하고,
    상기 카운터는
    상기 비교부의 인터리브 출력주소 결정결과에 의거하여 상기 카운터의 증가값을 설정함을 특징으로 하는 터보 인터리빙 장치.
  2. 제1항에 있어서, 상기 어드레스 계산부는
    상기 카운터에서 출력되는 카운트값을 이용하여 현재 어드레스를 계산하고, 상기 카운트값을 '1'씩 증가시킨 적어도 하나 이상의 증가 카운트값을 이용하여 적어도 하나 이상의 예상 어드레스들을 계산함을 특징으로 하는 터보 인터리빙 장치.
  3. 제1항에 있어서, 상기 카운터는
    상기 현재 어드레스가 인터리브 출력주소로 결정된 경우 상기 카운터의 증가값을 '1'로 설정하고,
    상기 예상 어드레스들 중 어느 하나가 인터리브 출력주소로 결정된 경우 상기 카운터의 증가값을 '상기 예상 어드레스를 계산하기 위한 카운트값의 증가값 + 1'로 설정함을 특징으로 하는 터보 인터리빙 장치.
  4. 터보 인터리빙 장치에 있어서,
    입력되는 정보비트의 비트수에 따라 카운팅-비트수가 결정되며 시스템 클럭을 순차적으로 카운트하여 카운트값을 출력하는 카운터와,
    상기 카운터에서 출력된 카운트값을 이용하여 현재 클럭에서 인터리버 출력주소를 결정하기 위한 제1 어드레스를 계산하여 출력하는 제1 어드레스 계산기와,
    상기 카운터에서 출력된 카운트값을 증가시킨 후 그 증가된 카운트값을 이용하여 다음 클럭에서 인터리버 출력주소를 결정하기 위한 제2 어드레스를 계산하여 출력하는 제2 어드레스 계산기와,
    상기 제1 어드레스와 상기 정보비트의 비트수를 비교한 후, 정보비트의 비트수보다 작은 어드레스를 인터리브 출력주소로 결정하고, 제1 어드레스가 인터리브 출력 주소로 결정되는 경우 상기 카운터의 증가값을 '1'로 설정하고, 제2 어드레스가 출력 주소로 결정되는 경우 상기 카운터의 증가값을 '2'로 설정하는 비교부를 포함하는 터보 인터리빙 장치.
  5. 제4항에 있어서, 상기 비교부는
    상기 제1 어드레스와 상기 정보비트의 비트수를 비교한 후 제1 어드레스가 상기 정보비트의 비트수보다 크면 상기 제1 어드레스가 유효하지 않은 것으로 판단하고, 그렇지 않으면 상기 제1 어드레스가 유효한 것으로 판단함을 특징으로 하는 터보 인터리빙 장치.
  6. 터보 인터리빙을 위한 출력주소 발생 방법에 있어서,
    시스템 클럭을 순차적으로 카운트하여 카운트값을 출력하는 과정과,
    상기 출력된 카운트값에 의거하여 현재 클럭 이후에 발생될 적어도 하나 이상의 예상 어드레스들과 현재 클럭에 대응된 현재 어드레스를 함께 계산하는 과정과,
    상기 계산과정에서 계산된 어드레스들을, 클럭 순서에 의해 순차적으로, 입력되는 정보비트의 수와 비교하고 정보비트의 수보다 작은 첫 번째 어드레스를 인터리브 터보 인터리빙을 위한 출력주소로 결정하는 과정과,
    상기 출력주소의 결정결과에 의거하여 상기 카운트값의 증가값을 설정하는 과정을 포함함을 특징으로 하는 상기 방법.
  7. 제6항에 있어서, 상기 계산과정은
    상기 출력과정에서 출력되는 카운트값을 이용하여 현재 어드레스를 계산하고, 상기 카운트값을 '1'씩 증가시킨 적어도 하나 이상의 증가 카운트값을 이용하여 적어도 하나 이상의 예상 어드레스들을 계산함을 특징으로 하는 상기 방법.
  8. 제6항에 있어서, 상기 출력과정은
    상기 현재 어드레스가 터보 인터리빙을 위한 출력주소로 결정된 경우 상기 카운트값의 증가값을 '1'로 설정하고, 상기 예상 어드레스들 중 어느 하나가 상기 출력주소로 결정된 경우 상기 카운트값의 증가값을 '상기 예상 어드레스를 계산하기 위한 카운트값의 증가값 + 1'로 설정함을 특징으로 하는 상기 방법.
  9. 터보 인터리빙을 위한 출력주소 발생 방법에 있어서,
    시스템 클럭을 순차적으로 카운트하여 카운트값을 출력하는 과정과,
    상기 출력된 카운트값에 의거하여 현재 클럭에서 상기 출력주소를 결정하기 위한 제1 어드레스를 계산하는 제1 계산과정과,
    상기 출력된 카운트값을 증가시킨 후 그 증가된 카운트값을 이용하여 다음 클럭에서 상기 출력주소를 결정하기 위한 제2 어드레스를 계산하는 제2 계산과정과,
    상기 제1 어드레스를 입력되는 정보비트의 비트수와 비교한 후, 정보비트의 비트수보다 작은 어드레스를 인터리브 출력주소로 결정하고, 이를 출력하는 과정과,
    제1 어드레스가 인터리브 출력 주소로 결정되는 경우 상기 카운터의 증가값을 '1'로 설정하고, 제2 어드레스가 출력 주소로 결정되는 경우 상기 카운터의 증가값을 '2'로 설정하는 과정을 포함함을 특징으로 하는 상기 방법.
  10. 제9항에 있어서, 상기 판단과정은
    상기 제1 어드레스와 상기 정보비트의 비트수를 비교한 후 제1 어드레스가 상기 정보비트의 비트수보다 크면 상기 제1 어드레스가 유효하지 않은 것으로 판단하고, 그렇지 않으면 상기 제1 어드레스가 유효한 것으로 판단함을 특징으로 하는 상기 방법.
KR1020040067297A 2004-08-25 2004-08-25 터보 인터리빙 장치 및 그의 출력주소 발생 방법 KR100853497B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040067297A KR100853497B1 (ko) 2004-08-25 2004-08-25 터보 인터리빙 장치 및 그의 출력주소 발생 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040067297A KR100853497B1 (ko) 2004-08-25 2004-08-25 터보 인터리빙 장치 및 그의 출력주소 발생 방법

Publications (2)

Publication Number Publication Date
KR20060018778A KR20060018778A (ko) 2006-03-02
KR100853497B1 true KR100853497B1 (ko) 2008-08-21

Family

ID=37126349

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040067297A KR100853497B1 (ko) 2004-08-25 2004-08-25 터보 인터리빙 장치 및 그의 출력주소 발생 방법

Country Status (1)

Country Link
KR (1) KR100853497B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05300028A (ja) * 1992-04-22 1993-11-12 Fujitsu Ltd インターリーブアドレス発生回路
US5488607A (en) * 1991-06-18 1996-01-30 Alcatel N.V. Asynchronous time-division multiplex communication medium virtual circuit throughput measuring device
US5818289A (en) * 1996-07-18 1998-10-06 Micron Technology, Inc. Clocking scheme and charge transfer switch for increasing the efficiency of a charge pump or other circuit
EP0963042A2 (en) 1998-06-02 1999-12-08 General Electric Company Clocked comparator
KR20030060518A (ko) * 2002-01-09 2003-07-16 삼성전자주식회사 통신시스템의 인터리빙 장치 및 방법
KR20030077644A (ko) * 2001-02-23 2003-10-01 콸콤 인코포레이티드 임의-접속 다방향 cdma2000 터보 코드 인터리버

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5488607A (en) * 1991-06-18 1996-01-30 Alcatel N.V. Asynchronous time-division multiplex communication medium virtual circuit throughput measuring device
JPH05300028A (ja) * 1992-04-22 1993-11-12 Fujitsu Ltd インターリーブアドレス発生回路
US5818289A (en) * 1996-07-18 1998-10-06 Micron Technology, Inc. Clocking scheme and charge transfer switch for increasing the efficiency of a charge pump or other circuit
EP0963042A2 (en) 1998-06-02 1999-12-08 General Electric Company Clocked comparator
KR20030077644A (ko) * 2001-02-23 2003-10-01 콸콤 인코포레이티드 임의-접속 다방향 cdma2000 터보 코드 인터리버
KR20030060518A (ko) * 2002-01-09 2003-07-16 삼성전자주식회사 통신시스템의 인터리빙 장치 및 방법

Also Published As

Publication number Publication date
KR20060018778A (ko) 2006-03-02

Similar Documents

Publication Publication Date Title
KR100711326B1 (ko) 선형 합동 시퀀스들을 이용한 터보 코드 인터리버
JP5133760B2 (ja) ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ
JP4101653B2 (ja) インターリーバ・メモリ内の復調データのスケーリング
US6437714B1 (en) Channel encoding device and method for communication system
US6519732B1 (en) Error-correcting encoding apparatus
KR20030004985A (ko) 오류 정정 터보 부호의 복호기
US20030221084A1 (en) Interleaver address generator and method of generating an interleaver address
KR20080055586A (ko) 저밀도 패리티 검사 부호를 이용한 부호화 방법 및 장치
KR20090074183A (ko) 데이터를 인코딩 및 디코딩하는 방법 및 장치
EP1537673B1 (en) Method of interleaving/deinterleaving in a communication system
CN111130572B (zh) Turbo码快速实现方法
KR100853497B1 (ko) 터보 인터리빙 장치 및 그의 출력주소 발생 방법
JP2010529764A (ja) 非再帰的畳み込み符号用の復号器による、再帰的畳み込み符号の復号化
US6925592B2 (en) Turbo decoder, turbo encoder and radio base station with turbo decoder and turbo encoder
KR100297739B1 (ko) 다중테일을갖는터보코드및그의부호화/복호화방법및그를이용한부호기/복호기
KR101614482B1 (ko) 터보 인터리버의 인터리빙 주소 결정 장치 및 방법
CN101373977B (zh) 并行最大后验概率译码交织去交织的装置和方法
KR100979366B1 (ko) 다양한 오류 정정 능력을 갖는 리드-솔로몬 부호의 복호기
KR19990071594A (ko) 수신된 정보 신호를 디코딩하기 위해서 비터비 디코더 내의비트 메트릭들을 조건적으로 결합하기 위한 방법 및 장치
KR100625242B1 (ko) 터보 복호화 장치 및 방법
CN112803955B (zh) 通用Turbo码编码器结构、编码器、方法、装置、设备及介质
KR100346183B1 (ko) 터보 인터리빙을 위한 출력주소 발생장치 및 방법
KR101331053B1 (ko) 터보부호를 이용하는 부호화 장치와 방법 및 순열치환기와 순열치환기법
CN101142747A (zh) 使用包含z系统的两个子系统的两个表的信道编码
KR100561631B1 (ko) 터보 인터리버의 출력 주소 산출 장치

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140730

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150730

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160728

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170728

Year of fee payment: 10