KR20060068921A - 터보 인터리버에서의 터버 인터리버 어드레스 출력 방법및 그 장치 - Google Patents

터보 인터리버에서의 터버 인터리버 어드레스 출력 방법및 그 장치 Download PDF

Info

Publication number
KR20060068921A
KR20060068921A KR1020040107864A KR20040107864A KR20060068921A KR 20060068921 A KR20060068921 A KR 20060068921A KR 1020040107864 A KR1020040107864 A KR 1020040107864A KR 20040107864 A KR20040107864 A KR 20040107864A KR 20060068921 A KR20060068921 A KR 20060068921A
Authority
KR
South Korea
Prior art keywords
cur
turbo
turbo interleaver
addr2
interleaver address
Prior art date
Application number
KR1020040107864A
Other languages
English (en)
Other versions
KR100830500B1 (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 KR1020040107864A priority Critical patent/KR100830500B1/ko
Publication of KR20060068921A publication Critical patent/KR20060068921A/ko
Application granted granted Critical
Publication of KR100830500B1 publication Critical patent/KR100830500B1/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/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/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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Abstract

본 발명은 이동통신 시스템에서 사용되는 터보 부호화기(turbo encodier)에 포함되는 터보 인터리버(turbo interleaver)에 있어서 터보 인코딩을 위한 인터리빙 과정에서 터보 인터리버 어드레스를 매 클록마다 생성하게 하여 중간에 쉬는 시간을 없앨 수 있는 터보 인터리버 어드레스 출력 방법 및 그 장치에 관한 것이다. 본 발명에 따른 터보 인터리버 어드레스 출력 방법은, 터보 부호화기에 포함되는 터보 인터리버에 있어서, 두 개의 카운터로부터 1 씩 차이를 두어 출력되는 두 값 Cnt1 및 Cnt2(여기서, Cnt1 및 Cnt2 각각의 초기값은 0 및 1이고, Cnt2 = Cnt1 + 1임.)의 각각에 대한 터보 인터리버 어드레스 값 Cur_addr1 및 Cur_addr2를 산출하는 제1단계; 및 현재 클록(clock)에서 산출된 상기 Cur_addr1, Cur_addr2 및 이전 클록에서 산출된 Cur_addr2 (Prev_addr2) 중에서 선택된 특정 값을 최종 터보 인터리버 어드레스 값으로 출력하는 제2단계를 포함하여 구성됨을 특징으로 한다.
터보 인코딩, 터보 인터리버, 어드레스, 3GPP2

Description

터보 인터리버에서의 터버 인터리버 어드레스 출력 방법 및 그 장치{Method and apparatus for generating turbo interleaver address in turbo interleaver}
도1은 병렬 연쇄형인 PCCC 부호기의 블록 구성도를 도시한 것임.
도2는 3GPP2 cdma2000 release C 물리 계층 규격(physical layer standard)에서 채택하고 있는 터보 인터리버에서의 인터리빙 방법을 설명하기 위한 도면임.
도3은 본 발명의 바람직한 일 실시예에 따른 터보 인터리버 어드레스 출력 장치의 블록 구성도임.
도4는 본 발명의 바람직한 일 실시예에 따른 터보 인터리버 어드레스 출력 방법의 절차 흐름도임.
본 발명은 터보 부호화(burbo encoding)를 위한 터보 인터리빙(turbo interleaving)에 관한 것이다. 보다 구체적으로, 본 발명은 이동통신 시스템에서 사용되는 터보 부호화기(turbo encodier)에 포함되는 터보 인터리버(turbo interleaver)에 있어서 터보 인코딩을 위한 인터리빙 과정에서 터보 인터리버 어드레스를 매 클록마다 생성하게 하여 중간에 쉬는 시간을 없앨 수 있는 터보 인터리 버 어드레스 출력 방법 및 그 장치에 관한 것이다.
터보 부호(turbo code)는 상대적으로 간단한 코드와 큰 인터리버를 이용하여 섀넌(Shannon)의 한계에 가까운 에러 정정 성능을 얻는다고 알려져 있다. 즉, 1/2 터보 코드를 사용하여, 10-5의 비트에러율을 얻기 위해서 AWGN 채널에서 약 0.7dB의 Eb/N0가 요구된다. 이와 같은 우수한 성능으로 인해 최근에 와서 터보 코드는 연쇄코드의 대표적인 방식으로서 인식되어지고 있으며, 다양한 분야의 응용을 위해 많은 연구가 이루어지고 있다. 터보 부호는 IMT-2000을 위한 동기식, 비동기식 규격안 모두에서, 프레임내의 데이터양이 많을 경우 채널부호의 방식으로서 채택되고 있다.
터보 부호기는 2개 이상의 구성부호기(constituent encoder)와 터보 인터리버(turbo inetrleaver)로 구성된다. 구성부호기로는 일반적으로 생성다항식이 같은 길쌈부호기를 사용하는 경우가 많으며, 구성부호기의 연결방법에 따라 병렬 연쇄형인 PCCC(Parallel Concatenated Convolutional Code)와 직렬연쇄형인 SCCC(Serial Concatenated Convolutional Code)로 나뉜다.
도1은 병렬 연쇄형인 PCCC 부호기를 나타낸 것이다. 제1구성부호화기(11)는 정보비트의 원래 입력 순서에 따라 부호화 과정을 수행하며, 제2구성부호화기(15)는 터보 인터리버(13)에 의해 순서가 재배열한 정보비트의 순서에 따라 부호화 과정을 수행한다. 상기 터보 인터리버(13)는 정보비트의 입력순서를 재배열하는 역할을 하게 된다. 정보비트는 터보 부호화기 구조가 조직형(systematic)이므로 채널을 통해 항상 그대로 전송한다. 심볼 펑쳐링 및 반복기(17)는 원하는 부호화율을 얻기 위해서, 일반적으로 전송 전에 두 개의 구성부호화기의 출력을 펑처링(puncturing)하고 반복(repetition)한다. 상기 터보 인터리버(13)는 연집오류(burst error)를 랜덤오류(random)로 변환시키는 중요한 역할을 한다.
도2는 3GPP2 cdma2000 release C 물리 계층 규격(physical layer standard)에서 채택하고 있는 터보 인터리버(13)에서의 인터리빙 방법을 설명하기 위한 도면이다. 상기 규격에 따르면 터보 인터리버(13)은 블록 인터리빙(block interleaving)을 수행한다. 도1에서, 상기 터보 인터리버(13)에 입력되는 Nturbo 비트의 정보비트는 도2의 방식에 의해 획득되는 인터리버 출력 어드레스(interleaver output address)의 순서에 의해 출력된다.
이하에서는 도2를 참조하여 인터리버의 출력 어드레스를 획득하는 과정을 설명하도록 한다. 설명의 편의를 위해 상기 규격에 규정된 R-SCH(Reverse Synchronization Channel) 19.2kbps 경우의 예를 설명하도록 한다.
첫째, 터보 인터리버 파라미터 n을 결정한다. 상기 n은 Nturbo ≤ 2n+5를 만족하는 가장 작은 정수이다. 예를 들어, Nturbo = 378 비트인 경우, n=4 이다.
둘째, (n+5) 비트 카운터를 0으로 초기화한다.
셋째, 상기 카운터로부터 n 비트의 최상위 비트(MSBs)를 추출하여 1을 더하여 새로운 값을 획득하고, 상기 새로운 값의 n 비트의 최하위 비트(LSBs)를 제외한 모든 값을 버린다.
넷째, 상기 카운터의 다섯 비트의 최상위 비트에 따른 읽기 주소(read address)에 의해 표1의 참조 테이블의 n 비트 출력값을 얻는다.
Table Index n=4 Entries n=5 Entries n=6 Entries n=7 Entries n=8 Entries n=9 Entries n=10 Entries
0 5 27 3 15 3 13 1
1 15 3 27 127 1 335 349
2 5 1 15 89 5 87 303
3 15 15 13 1 83 15 721
4 1 13 29 31 19 15 973
5 9 17 5 15 179 1 703
6 9 23 1 61 19 333 761
7 15 13 31 47 99 11 327
8 13 9 3 127 23 13 453
9 15 3 9 17 1 1 95
10 7 15 15 119 3 121 241
11 11 3 31 15 13 155 187
12 15 13 17 57 13 1 497
13 3 1 5 123 3 175 909
14 15 13 39 95 17 421 769
15 5 29 1 5 1 5 349
16 13 21 19 85 63 509 71
17 15 19 27 17 131 215 557
18 9 1 15 55 17 47 197
19 3 3 13 57 131 425 499
20 1 29 45 15 211 295 409
21 3 17 5 41 173 229 259
22 15 25 33 93 231 427 335
23 1 29 15 87 171 83 253
24 13 9 13 63 23 409 677
25 1 13 9 15 147 387 717
26 9 23 15 13 243 193 313
27 15 13 31 15 213 57 757
28 11 13 17 81 189 501 189
29 3 1 5 57 51 313 15
30 15 13 15 31 15 489 75
31 5 13 33 69 67 391 163
다섯째, 상기 셋째 단계와 넷째 단계에서 얻은 값을 곱하여(multiply) 얻은 값에서, n 개의 최하위 비트(LSBs)을 제외한 나머지 값들을 버린다.
여섯째, 상기 카운터의 출력값의 다섯 개의 최하위 비트들을 역전(bit reverse)시킨다.
일곱째, 상기 여섯째 단계에서 얻어진 값들을 최상위 비트들로 하고, 상기 다섯 번째 단계에서 얻어진 값들을 최하위 비트들로 하여 임시 출력 어드레스를 획득한다.
여덟째, 상기 임시 출력 어드레스가 Nturbo보다 작으면 최종 출력 어드레스로 하고, Nturbo보다 크면 버린다.
아홉째, 상기 카운터 값을 증가시키고, 모든 Nturbo 인터리버 출력 어드레스를 얻을 때까지 상기 셋째 단계에서 여덟째 단계를 반복한다.
표2는 R-SCH(Reverse Synchronization Channel) 19.2kbps 경우의 예에 있어서, 도2의 방법에 따라서 출력된 터보 인터리버 어드레스 값들을 나타낸다.
Figure 112004059655323-PAT00001
도1과 같은 방식으로 인터리버 출력 어드레스를 계산하다 보면 하드웨어적으로 (n+5) 비트 카운터를 사용하게 된다. 즉, (n+5) 비트 카운터를 1 클록(clock)마다 증가하여 그에 따른 인터리버 출력 어드레스가 생성된다. 그런데, 생성된 인터리버 출력 어드레스가 Nturbo 즉 378보다 크면 버리게(discard)되는데, 이 버리는 과정을 수행하기 위해서는 1 클록을 쉬어야 하기 때문에, 전체 생성되어야 할 378개 어드레스를 중간중간에 1 클록씩 쉬는 과정이 첨가되어 전체 터보 디코더(turbo decoder)의 성능을 저하시키는 문제점이 있다.
본 발명은 상기한 바와 같은 종래기술의 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 터보 인코딩을 위한 인터리빙 과정에서 터보 인터리버 어드레스를 매 클록마다 생성하게 하여 중간에 쉬는 시간을 없앨 수 있는 터보 인터리버 어드레스 출력 방법 및 그 장치를 제공하는 것이다.
본 발명의 일 양상으로서, 본 발명에 따른 터보 인터리버 어드레스 출력 방법은, 터보 부호화기에 포함되는 터보 인터리버에 있어서, 두 개의 카운터로부터 1 씩 차이를 두어 출력되는 두 값 Cnt1 및 Cnt2(여기서, Cnt1 및 Cnt2 각각의 초기값은 0 및 1이고, Cnt2 = Cnt1 + 1임.)의 각각에 대한 터보 인터리버 어드레스 값 Cur_addr1 및 Cur_addr2를 산출하는 제1단계; 및 현재 클록(clock)에서 산출된 상기 Cur_addr1, Cur_addr2 및 이전 클록에서 산출된 Cur_addr2 (Prev_addr2) 중에서 선택된 특정 값을 최종 터보 인터리버 어드레스 값으로 출력하는 제2단계를 포함하여 구성됨을 특징으로 한다.
본 발명의 다른 양상으로서, 본 발명에 따른 터보 인터리버 어드레스 출력 장치는, 터보 부화화기에 포함되는 터보 인터리버에 있어서, Cnt1을 출력하는 제1카운터; Cnt2(여기서, Cnt1 및 Cnt2 각각의 초기값은 0 및 1이고, Cnt2 = Cnt1 + 1임.)를 출력하는 제2카운터; 상기 Cnt1을 입력으로 하여 터보 인터리버 어드레스 Cur_addr1을 산출하는 제1 터보 인터리버 어드레스 산출 모듈; 상기 Cnt2를 입력으로 하여 터보 인터리버 어드레스 Cur_addr2를 산출하는 제2 터보 인터리버 어드레스 산출 모듈; 및 현재 클록(clock)에서 산출된 상기 Cur_addr1, Cur_addr2 및 이 전 클록에서 산출된 Cur_addr2 (Prev_addr2) 중에서 선택된 특정 값을 최종 터보 인터리버 어드레스 값으로 결정하여 출력하는 터보 인터리버 어드레스 결정 모듈을 포함하여 구성됨을 특징으로 한다.
이하에서 첨부된 도면을 참조하여 설명되는 본 발명의 바람직한 일 실시예에 의해 본 발명의 구성, 작용 및 다른 특징들이 용이하게 이해될 수 있을 것이다. 도3은 본 발명의 바람직한 일 실시예에 따른 터보 인터리버 어드레스 출력 장치의 블록 구성도이고, 도4는 본 발명의 바람직한 일 실시예에 따른 터보 인터리버 어드레스 출력 방법의 절차 흐름도이다.
도3을 참조하면, 본 발명의 바람직한 일 실시예에 따른 터보 인터리버 어드레스 출력 장치는, (n+5) 비트의 카운트 값인 Cnt1 및 Cnt2를 각각 출력하는 제1카운터(31) 및 제2카운터(32)와, 상기 Cnt1을 입력으로 하여 터보 인터리버 어드레스 Cur_addr1을 산출하는 제1 터보 인터리버 어드레스 산출 모듈(33)과, 상기 Cnt2를 입력으로 하여 터보 인터리버 어드레스 Cur_addr2를 산출하는 제2 터보 인터리버 어드레스 산출 모듈(34)과, 현재 클록(clock)에서 산출된 상기 Cur_addr1, Cur_addr2 및 이전 클록에서 산출된 Cur_addr2 (Prev_addr2) 중에서 기 결정된 규칙에 따라 선택된 특정 값을 최종 터보 인터리버 어드레스 값으로 결정하여 출력하는 터보 인터리버 어드레스 결정 모듈(35)을 포함하여 구성됨을 특징으로 한다.
도4를 참조하여 상기 터보 인터리버 어드레스 출력 장치 및 방법의 작용을 설명하도록 한다. 상기 제1카운터(31) 및 제2카운터(32)에서 각각 출력되는 Cnt1 및 Cnt2의 초기값은 각각 0 및 1이다[S21]. Valid2는 현재 클록(clock)에서의 Cur_addr2가 유효한(valid) 값인지를 지시하는 지시자로서, 1일 때는 유효함을 의미하고 0일 때는 유효하지 않음을 의미한다. Valid2_cnt는 Valid2가 유효한 값으로 지속된 클록 수를 의미한다. Valid2 및 Valid2_cnt의 초기값은 0으로 한다. 상기 Cur_addr2가 유효한 값이라는 의미는 상기 Cur_addr2가 터보 인터리버에 입력되는 정보비트(Nturbo) 이하인 값인 것을 의미한다. 상기 n은 Nturbo ≤ 2n+5를 만족하는 가장 작은 정수로서, 예를 들어, Nturbo = 378 비트인 경우, n=4 이다.
상기 제1 터보 인터리버 어드레스 산출 모듈(33) 및 상기 제2 터보 인터리버 어드레스 산출 모듈(34)은 각각 상기 Cnt1 및 Cnt2를 입력 받아 상기 Cur_addr1 및 Cur_addr2를 산출한다[S22]. 상기 Cur_addr1 및 Cur_addr2를 산출하는 구체적인 방법은 전술한 바와 같다(도2 참조). 상기 Cur_addr2는 한 클록 다음에 최종 출력 어드레스를 결정하는 과정에서 필요하기 때문에 Prev_addr2 값으로 저장된다[S23]. 따라서, 상기 터보 인터리버 어드레스 결정 모듈(35)은 상기 Prev_addr2 값을 저장하기 위한 메모리를 가지고 있는 것이 바람직하다.
상기 터보 인터리버 어드레스 결정 모듈(35)은 현재 클록에서 산출된 상기 Cur_addr1, Cur_addr2 및 이전 클록에서의 Cur_addr2 값인 Prev_addr2를 이용하여 최종 터보 인터리버 어드레스를 결정한다. 그 과정을 구체적으로 설명하면 다음과 같다.
상기 현재 클록에서 산출된 Cur_addr2가 유효한 값인지, 즉 상기 Valid2 값이 1인지를 판단한다[S24]. 상기 Valid2가 1이면 상기 Valid2_cnt를 1증가시키고 [S25], 상기 Valid2가 0이면 상기 Valid2_cnt를 증가시키지 않는다. 전술한 바와 같이, 상기 Valid2_cnt는 상기 Valid2가 유효한 값으로 지속된 클록 수, 즉 현재 클록을 포함하여 상기 Vailid2가 1로 지속된 클록 수를 의미한다. 예를 들어, 이전 클록에서의 Valid2가 0이고 현재 클록에서의 Valid2가 0이면 상기 Valid2_cnt는 0이 되고, 이전 클록에서의 Valid2가 1이고 현재 클록에서의 Valid2가 0이면 상기 Valid2_cnt는 1이 되고, 이전 클록에서의 Valid2가 1이고 전전 클록에서의 Valid2가 0이며 현재 클록에서의 Valid2가 1이면 상기 Valid2_cnt는 2가 되며, 이전 클록에서의 Valid2가 1이고 전전 클록에서의 Valid2가 1이고 현재 클록에서의 Valid2가 1이면 상기 Valid2_cnt는 3이 된다.
상기 터보 인터리버 어드레스 결정 모듈(35)은 상기 Valid2_cnt 값을 기준으로 최종 터보 인터리버 어드레스를 결정한다[S26]. 구체적으로 설명하면, 상기 Valid2_cnt가 0인 경우와 2인 경우는 상기 Cur_addr1을 최종 터보 인터리버 어드레스로 결정하여 출력하고, 상기 Valid2_cnt가 1이면 상기 Prev_addr2를 최종 터보 인터리버 어드레스로 결정하여 출력하며, 상기 Valid2_cnt가 3인 경우에는 상기 Cur_addr2를 최종 터보 인터리버 어드레스로 결정하여 출력한다.
상기 터보 인터리버 어드레스 결정 모듈(35)에서 출력된 상기 최종 터보 인터리버 어드레스의 수(N)가 상기 Nturbo 이상인지를 판단하여[S27], 이상인 경우에는 모든 터보 인터리버 어드레스가 출력된 것으므로 절차를 종료하고, 상기 N이 Nturbo 보다 작으면 다음의 절차를 계속 진행한다.
즉, 상기 Valid2와 Valid2_cnt 값을 체크하여 판단하여[S28], 상기 Valid2가 1이고 상기 Valid2_cnt가 0 또는 1인 경우에는 상기 Cnt1 및 Cnt2를 증가시키지 않고 S22단계로부터의 과정을 반복하며, 상기 Valid2가 0이거나 상기 Valid2_cnt가 2 또는 3인 경우에는 상기 Cnt1 및 Cnt2를 각각 2씩 증가시킨 후에[S29] 상기 S22단계로부터의 과정을 반복한다.
표3은 R-SCH(Reverse Synchronization Channel) 19.2kbps 경우의 예에 있어서, 상기한 바와 같이 본 발명의 바람직한 일 실시예에 따라서 출력된 터보 인터리버 어드레스 값들을 나타낸다.
Figure 112004059655323-PAT00002
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
본 발명에 따르면 터보 인터리버 어드레스를 매 클록 마다 생성케 함으로써 터보 디코더 엔진(turbo decoder engine)이 동작하는데 있어서 중간에 쉬는 시간을 없앨 수 있고, 따라서 터보 디코더(turbo decoder)의 동작 속도를 향상 시킬 수 있는 효과가 있다.

Claims (10)

  1. 터보 부호화기(turbo encoder)에 포함되는 터보 인터리버(turbo interleaver)에서의 터버 인터리버 어드레스(turbo interleaver address) 출력 방법에 있어서,
    두 개의 카운터로부터 1 씩 차이를 두어 출력되는 두 값 Cnt1 및 Cnt2(여기서, Cnt1 및 Cnt2 각각의 초기값은 0 및 1이고, Cnt2 = Cnt1 + 1임.)의 각각에 대한 터보 인터리버 어드레스 값 Cur_addr1 및 Cur_addr2를 산출하는 제1단계; 및
    현재 클록(clock)에서 산출된 상기 Cur_addr1, Cur_addr2 및 이전 클록에서 산출된 Cur_addr2 (Prev_addr2) 중에서 선택된 특정 값을 최종 터보 인터리버 어드레스 값으로 출력하는 제2단계를 포함하는 터보 인터리버 어드레스 출력 방법.
  2. 제1항에 있어서,
    상기 현재 클록에서 산출된 Cur_addr2가 유효한(valid) 값일 것이라는 제1조건과 상기 현재 클록에서 산출된 Cur_addr2가 유효한 상태로 지속되는 클록의 수(Valid2_cnt)가 0 또는 1일 것이라는 제2조건을 만족하는 경우에 상기 Cnt1 및 Cnt2를 증가시키지 않은 상태에서 상기 제1단계 및 제2단계를 다시 수행하고, 상기 제1조건 또는 상기 제2조건을 만족하지 않는 경우에는 상기 Cnt1 및 Cnt2를 각각 2씩 증가시켜 상기 제1단계 및 제2단계를 다시 수행하는 것을 특징으로 터보 인터리버 어드레스 출력 방법.
  3. 제2항에 있어서,
    상기 Valid2_cnt가 0 또는 2인 경우에는 상기 Cur_addr1을 상기 최종 터보 인터리버 어드레스 값으로 출력하고,
    상기 Valid2_cnt가 1인 경우에는 상기 Prev_addr2를 상기 최종 터보 인터리버 어드레스 값으로 출력하며,
    상기 Valid2_cnt가 2인 경우에는 상기 Cur_addr1을 상기 최종 터보 인터리버 어드레스 값으로 출력하는 것을 특징으로 하는 터보 인터리버 어드레스 출력 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 유효한 값은 상기 터보 인터리버에 입력되는 정보비트(Nturbo) 이하인 값인 것을 특징으로 하는 터보 인터리버 어드레스 출력 방법.
  5. 터보 부호화기(turbo encoder)에 포함되는 터보 인터리버(turbo interleaver)에서의 터버 인터리버 어드레스(turbo interleaver address) 출력 장치에 있어서,
    Cnt1을 출력하는 제1카운터;
    Cnt2(여기서, Cnt1 및 Cnt2 각각의 초기값은 0 및 1이고, Cnt2 = Cnt1 + 1임.)를 출력하는 제2카운터;
    상기 Cnt1을 입력으로 하여 터보 인터리버 어드레스 Cur_addr1을 산출하는 제1 터보 인터리버 어드레스 산출 모듈;
    상기 Cnt2를 입력으로 하여 터보 인터리버 어드레스 Cur_addr2를 산출하는 제2 터보 인터리버 어드레스 산출 모듈; 및
    현재 클록(clock)에서 산출된 상기 Cur_addr1, Cur_addr2 및 이전 클록에서 산출된 Cur_addr2 (Prev_addr2) 중에서 선택된 특정 값을 최종 터보 인터리버 어드레스 값으로 결정하여 출력하는 터보 인터리버 어드레스 결정 모듈을 포함하는 터보 인터리버 어드레스 출력 장치.
  6. 제5항에 있어서,
    상기 터보 인터리버 어드레스 결정 모듈은 상기 Prev_addr2를 저장하는 메모리를 더 포함하는 것을 특징으로 하는 터보 인터리브 어드레스 출력 장치.
  7. 제5항 또는 제6항에 있어서,
    상기 현재 클록에서 산출된 Cur_addr2가 유효한(valid) 값일 것이라는 제1조건과 상기 현재 클록에서 산출된 Cur_addr2가 유효한 상태로 지속되는 클록의 수(Valid2_cnt)가 0 또는 1일 것이라는 제2조건을 만족하는 경우에 상기 Cnt1 및 Cnt2를 증가시키지 않은 상태에서 상기 Cur_addr1 및 Cur_addr2를 산출하고, 상기 제1조건 또는 상기 제2조건을 만족하지 않는 경우에는 상기 Cnt1 및 Cnt2를 각각 2씩 증가시켜 상기 Cur_addr1 및 Cur_addr2를 산출하는 것을 특징으로 터보 인터리 버 어드레스 출력 장치.
  8. 제7항에 있어서,
    상기 Valid2_cnt가 0 또는 2인 경우에는 상기 Cur_addr1을 상기 최종 터보 인터리버 어드레스 값으로 결정하고,
    상기 Valid2_cnt가 1인 경우에는 상기 Prev_addr2를 상기 최종 터보 인터리버 어드레스 값으로 결정하며,
    상기 Valid2_cnt가 2인 경우에는 상기 Cur_addr1을 상기 최종 터보 인터리버 어드레스 값으로 결정하는 것을 특징으로 하는 터보 인터리버 어드레스 출력 장치.
  9. 제7항에 있어서,
    상기 유효한 값은 상기 터보 인터리버에 입력되는 정보비트(Nturbo) 이하인 값인 것을 특징으로 하는 터보 인터리버 어드레스 출력 장치.
  10. 제8항에 있어서,
    상기 유효한 값은 상기 터보 인터리버에 입력되는 정보비트(Nturbo) 이하인 값인 것을 특징으로 하는 터보 인터리버 어드레스 출력 장치.
KR1020040107864A 2004-12-17 2004-12-17 터보 인터리버에서의 터보 인터리버 어드레스 출력 방법 및 그 장치 KR100830500B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040107864A KR100830500B1 (ko) 2004-12-17 2004-12-17 터보 인터리버에서의 터보 인터리버 어드레스 출력 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040107864A KR100830500B1 (ko) 2004-12-17 2004-12-17 터보 인터리버에서의 터보 인터리버 어드레스 출력 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20060068921A true KR20060068921A (ko) 2006-06-21
KR100830500B1 KR100830500B1 (ko) 2008-05-21

Family

ID=37163164

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040107864A KR100830500B1 (ko) 2004-12-17 2004-12-17 터보 인터리버에서의 터보 인터리버 어드레스 출력 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR100830500B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009093865A3 (en) * 2008-01-25 2009-10-22 Samsung Electronics Co,. Ltd. System and method for pseudorandom permutation for interleaving in wireless communications
US7929918B2 (en) 2007-08-13 2011-04-19 Samsung Electronics Co., Ltd. System and method for training the same type of directional antennas that adapts the training sequence length to the number of antennas
US8165595B2 (en) 2008-01-25 2012-04-24 Samsung Electronics Co., Ltd. System and method for multi-stage antenna training of beamforming vectors
US8280445B2 (en) 2008-02-13 2012-10-02 Samsung Electronics Co., Ltd. System and method for antenna training of beamforming vectors by selective use of beam level training
US8478204B2 (en) 2008-07-14 2013-07-02 Samsung Electronics Co., Ltd. System and method for antenna training of beamforming vectors having reuse of directional information

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100346183B1 (ko) * 2000-08-21 2002-07-26 삼성전자 주식회사 터보 인터리빙을 위한 출력주소 발생장치 및 방법
KR20050112180A (ko) * 2004-05-24 2005-11-30 삼성전자주식회사 디지털 통신 시스템의 터보 복호기에서 인터리버의 인덱스주소 발생 방법 및 장치

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7929918B2 (en) 2007-08-13 2011-04-19 Samsung Electronics Co., Ltd. System and method for training the same type of directional antennas that adapts the training sequence length to the number of antennas
US7978134B2 (en) 2007-08-13 2011-07-12 Samsung Electronics Co., Ltd. System and method for efficient transmit and receive beamforming protocol with heterogeneous antenna configuration
US8249513B2 (en) 2007-08-13 2012-08-21 Samsung Electronics Co., Ltd. System and method for training different types of directional antennas that adapts the training sequence length to the number of antennas
US8917208B2 (en) 2007-08-13 2014-12-23 Samsung Electronics Co., Ltd. System and method for efficient transmit and receive beamforming protocol with heterogeneous antenna configuration
WO2009093865A3 (en) * 2008-01-25 2009-10-22 Samsung Electronics Co,. Ltd. System and method for pseudorandom permutation for interleaving in wireless communications
US8051037B2 (en) 2008-01-25 2011-11-01 Samsung Electronics Co., Ltd. System and method for pseudorandom permutation for interleaving in wireless communications
US8165595B2 (en) 2008-01-25 2012-04-24 Samsung Electronics Co., Ltd. System and method for multi-stage antenna training of beamforming vectors
US8280445B2 (en) 2008-02-13 2012-10-02 Samsung Electronics Co., Ltd. System and method for antenna training of beamforming vectors by selective use of beam level training
US8478204B2 (en) 2008-07-14 2013-07-02 Samsung Electronics Co., Ltd. System and method for antenna training of beamforming vectors having reuse of directional information

Also Published As

Publication number Publication date
KR100830500B1 (ko) 2008-05-21

Similar Documents

Publication Publication Date Title
EP1045521B1 (en) Rate matching and channel interleaving for a communications system
JP3730238B2 (ja) 適用形チャネル符号化方法及び装置
JP3494994B2 (ja) 通信システムで直列鎖相構造を有する符号化及び復号化装置
JP3996514B2 (ja) ターボ復号器のためのバッファアーキテクチャ
US6728927B2 (en) Method and system for high-spread high-distance interleaving for turbo-codes
US7543197B2 (en) Pruned bit-reversal interleaver
US6339834B1 (en) Interleaving with golden section increments
US6298463B1 (en) Parallel concatenated convolutional coding
JP2004531116A (ja) ターボデコーダ用インタリーバ
CN103380585B (zh) 输入位错误率推定方法及其装置
US20020032890A1 (en) Turbo code interleaver using linear congruential sequences
KR20020067382A (ko) 통신시스템에서 부호 생성 및 복호 장치 및 방법
US20100058136A1 (en) System and Method for Rate Matching to Enhance System Throughput Based on Packet Size
CA2540892A1 (en) Channel encoding/decoding apparatus and method using a parallel concatenated low density parity check code
US20020007474A1 (en) Turbo-code decoding unit and turbo-code encoding/decoding unit
US20020124221A1 (en) Interleaver for variable block size
KR100369561B1 (ko) 터보 코드용 인코더 및 디코더
KR100830500B1 (ko) 터보 인터리버에서의 터보 인터리버 어드레스 출력 방법 및 그 장치
KR20100071490A (ko) 디레이트 매칭하는 방법 및 그 장치
KR100628201B1 (ko) 터보 디코딩 방법
KR20050111843A (ko) 가변 윈도우가 적용된 터보 복호화 장치 및 방법
Yu et al. An improved rate matching algorithm for 3GPP LTE turbo code
US7634703B2 (en) Linear approximation of the max* operation for log-map decoding
WO2008105588A1 (en) Transmitting device and method and receiving device and method in communication system
CN1561598A (zh) 一种串行级联卷积码内交织的方法及装置

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee