[go: up one dir, main page]

KR100627723B1 - Parallel Decoding Method for Turbo Decoding and Turbo Decoder Using the Same - Google Patents

Parallel Decoding Method for Turbo Decoding and Turbo Decoder Using the Same Download PDF

Info

Publication number
KR100627723B1
KR100627723B1 KR1020040047646A KR20040047646A KR100627723B1 KR 100627723 B1 KR100627723 B1 KR 100627723B1 KR 1020040047646 A KR1020040047646 A KR 1020040047646A KR 20040047646 A KR20040047646 A KR 20040047646A KR 100627723 B1 KR100627723 B1 KR 100627723B1
Authority
KR
South Korea
Prior art keywords
subblock
decoding
state metric
metric calculation
subblocks
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020040047646A
Other languages
Korean (ko)
Other versions
KR20050122521A (en
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 KR1020040047646A priority Critical patent/KR100627723B1/en
Publication of KR20050122521A publication Critical patent/KR20050122521A/en
Application granted granted Critical
Publication of KR100627723B1 publication Critical patent/KR100627723B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • 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/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • 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

본 발명에 의한 터보 복호화를 위한 병렬 복호화 방법은, 입력된 데이터 신호를 소정 개수의 서브블록으로 나누어 각각의 서브블록이 독립적으로 병렬처리되는 터보 복호화를 위한 병렬 복호화 방법이며, 성능 사양에 따라 소정 회수만큼 반복 복호 과정을 수행하며, 하나의 반복 복호 과정은The parallel decoding method for turbo decoding according to the present invention is a parallel decoding method for turbo decoding in which an input data signal is divided into a predetermined number of subblocks, and each subblock is independently processed in parallel. Repeat the decoding process as much as one repeat decoding process

홀수번째 서브블록은 순방향 상태 매트릭 계산과정을 먼저 수행하고, 짝수번째 서브블록은 역방향 상태 매트릭 계산과정을 먼저 수행하는 단계; 홀수번째 서브블록은 역방향 상태 매트릭 계산과정을 수행하고, 짝수번째 서브블록은 순방향 상태 매트릭 계산과정을 수행하는 단계; 및 각 서브블록은 외부 정보값을 계산하는 단계를 구비하는 것을 특징으로 한다.The odd-numbered subblocks perform the forward state metric calculation process first and the even-numbered subblocks perform the reverse state metric calculation process first; Odd-numbered subblocks performing backward state metric calculation and even-numbered subblocks performing forward state metric calculation; And each subblock has a step of calculating an external information value.

본 발명에 의하면 첫째, 터보 복호화를 위한 병렬 복호화시에 훈련구간을 없앰으로써 시간 지연의 오버헤드가 없다. 둘째, 블록분할시 문제가 되는 초기 상태 매트릭값의 부정확성을 인접한 블록에서 계산된 경계 상태 매트릭값을 이용함으로써 종래의 알고리즘 보다 더 긴 훈련 구간을 두는 효과를 얻는다. 따라서 보다 더 짧은 서브블록의 길이에서도 성능 저하가 발생하지 않는다. 복호 지연은 서브블록의 길이에 비례한다. 따라서 본 발명에 의하면 더 작은 복호 지연을 갖는 터보 복호기 구현이 가능하다.According to the present invention, first, there is no overhead of time delay by eliminating training intervals in parallel decoding for turbo decoding. Second, the inaccuracy of the initial state metric value, which is a problem in block division, is obtained by using a boundary state metric value calculated in an adjacent block, which results in a longer training interval than the conventional algorithm. Therefore, no performance degradation occurs even with a shorter length of the subblock. The decoding delay is proportional to the length of the subblock. Thus, the present invention enables the implementation of a turbo decoder with a smaller decoding delay.

Description

터보 복호화를 위한 병렬 복호 방법 및 이를 사용한 터보 복호기{Parallel decoding method for turbo decoding and turbo decoder using the same}Parallel decoding method for turbo decoding and a turbo decoder using the same {Parallel decoding method for turbo decoding and turbo decoder using the same}

도 1은 반복 복호를 적용한 터보 복호기를 설명하기 위한 블록도이다.1 is a block diagram illustrating a turbo decoder to which iterative decoding is applied.

도 2는 훈련구간을 이용한 병렬 블록분할 복호 알고리즘의 복호 과정을 나타낸 모식도이다.2 is a schematic diagram showing a decoding process of a parallel block division decoding algorithm using a training interval.

도 3은 이전 반복시의 상태 매트릭값을 이용하는 병렬 블록분할 복호 알고리즘의 복호 과정을 나타낸 모식도이다.3 is a schematic diagram showing a decoding process of a parallel block division decoding algorithm using a state metric value in a previous iteration.

도 4는 본 발명의 바람직한 일 실시예에 의한 터보 복호화를 위한 병렬 복호화 방법을 설명하기 위한 모식도이다.4 is a schematic diagram for explaining a parallel decoding method for turbo decoding according to an embodiment of the present invention.

도 5는 경계 상태 매트릭이 초기 상태 매트릭으로 사용되기 위한 교환 방법을 보여주는 서브블록의 모식도이다.5 is a schematic diagram of a subblock showing an exchange method for using a boundary state metric as an initial state metric.

도 6 내지 도 8은 AWGN 채널 환경하에서 본 발명의 알고리즘과 도 3의 종래의 알고리즘을 수치모사하여 성능평가를 수행한 결과이다.6 to 8 are results of numerical evaluation of the algorithm of the present invention and the conventional algorithm of FIG. 3 under AWGN channel environment.

도 9 내지 도 13은 패이딩 채널 환경하에서 본 발명의 알고리즘과 도 3의 종래의 알고리즘을 IEEE 802.11a 무선 랜 시스템에 적용하여 수치모사한 성능평가 결과이다.9 to 13 show the results of numerical simulations by applying the algorithm of the present invention and the conventional algorithm of FIG. 3 to an IEEE 802.11a wireless LAN system in a fading channel environment.

도 14는 본 발명의 알고리즘이 적용되어 설계된 터보 복호기의 전체 블록도 이다.14 is an overall block diagram of a turbo decoder designed by applying the algorithm of the present invention.

도 15는 도 14의 각 sub-SISO 의 내부 구성의 일 실시예를 설명하기 위한 블록도이다.FIG. 15 is a block diagram illustrating an embodiment of an internal configuration of each sub-SISO of FIG. 14.

도 16은 도 15의 상태 매트릭 결정부의 내부 구성의 일 실시예를 설명하기 위한 블록도이다.FIG. 16 is a block diagram illustrating an embodiment of an internal configuration of the state metric decision unit of FIG. 15.

본 발명은 통신 시스템에 관한 것으로서, 특히 터보 복호화를 위한 효율적인 병렬 복호 방법 및 이를 사용한 터보 복호기에 관한 것이다.The present invention relates to a communication system, and more particularly, to an efficient parallel decoding method for turbo decoding and a turbo decoder using the same.

정보 통신의 급격한 발전에 따라 음성위주의 서비스에서 데이터, 영상 신호와 같은 멀티미디어 무선통신 서비스에 대한 비중이 높아지고 있다. 특히 무선랜 시스템 등과 같은 멀티미디어 통신 시스템에서는 보다 우수한 성능을 갖는 채널 부호화 기법이 요구된다. 이러한 시스템에서는, 무선 채널의 특성상 데이터를 전송하는 경우 채널 상에서 발생할 수 있는 페이딩, 간섭, 잡음 등의 여러 가지 원인에 의하여, 오류 발생 확률이 높고 정보의 손실이 발생한다. 그러므로 무선 채널의 환경에서 이용되는 채널 부호화 기법은 왜곡 신호로부터 전송된 정보를 보호하기 위해 높은 성능을 필요로 한다(C. Berrou, A. Glavieux and P. Thitimajshima, "Near Shannon limit error correcting coding and decoding : Turbo-codes (1)," IEEE Int. Conf. On Comm.ICC' 93, vol 2/3, May 1993, pp. 1064-1071.)(C. Berrou, A. Glavieux, "Near Optimum Limit error-correcting coding and decoding : Turbo codes," IEEE Trans. Commun., vol. 44, no. 10, pp. 1261-1271, 1996).Due to the rapid development of information and communication, the proportion of the multimedia wireless communication services such as data and video signals is increasing in voice-oriented services. In particular, in a multimedia communication system such as a WLAN system, a channel encoding technique having better performance is required. In such a system, when data is transmitted due to the characteristics of a wireless channel, a high probability of error occurs and loss of information occurs due to various causes such as fading, interference, and noise that may occur on the channel. Therefore, channel coding techniques used in wireless channel environments require high performance to protect the transmitted information from distortion signals (C. Berrou, A. Glavieux and P. Thitimajshima, "Near Shannon limit error correcting coding and decoding : Turbo-codes (1), "IEEE Int. Conf. On Comm.ICC '93, vol 2/3, May 1993, pp. 1064-1071.) (C. Berrou, A. Glavieux," Near Optimum Limit error -correcting coding and decoding: Turbo codes, "IEEE Trans. Commun., vol. 44, no. 10, pp. 1261-1271, 1996).

1993년에 Berrou[1] 에 의해 처음으로 제안된 터보코드(turbo code)는 길쌈부호(convolution code)를 병렬 연접(parallel concatenation) 형태로 배열한 비교적 간단한 두 개의 구성 부호기와 프레임 크기가 큰 인터리버(interleaver)를 가지고 있어 샤논(Shannon)의 한계에 근접하는 아주 우수한 오류정정 능력을 가지는 것으로 알려지고 있다. 그러나 이러한 우수한 성능에도 불구하고 터보코드는, 많은 연산량으로 인한 복잡도가 증가와, 매우 긴 복호 지연 등으로 인한 실시간 처리가 어려움으로, 우주 통신용으로만 이용되어왔다. 최근에는 셀룰라 통신이나 이동통신 시스템과 같은 짧은 패킷 단위로 정보를 송수신하는 무선 통신 시스템에 터보코드를 적용하려는 연구가 진행되고 있다.The turbo code, first proposed by Berrou [1] in 1993, consists of two relatively simple constituent coders arranged in parallel concatenation in convolution code and an interleaver with a large frame size. It has an interleaver and is said to have a very good error correction capability that is close to Shannon's limits. However, in spite of such excellent performance, turbo code has been used only for space communication due to the increased complexity due to a large amount of computation and the difficulty in real time processing due to a very long decoding delay. Recently, research has been conducted to apply a turbo code to a wireless communication system that transmits and receives information in a short packet unit such as a cellular communication or a mobile communication system.

이러한 연구결과 중 하나로서 긴 복호 지연을 줄일 수 있는 방안으로 병렬 블록 분할 복호 알고리즘이 제시되었다. 이 알고리즘은 데이터 블록을 일정한 서브블록(sub-block)으로 나누어 각각의 서브블록이 독립적인 프로세서로 병렬 처리 되도록 하는 것으로 복호 지연을 1/W(여기서 W는 서브블록 수)로 줄일 수 있다. 병렬 블록분할 복호 알고리즘은 각 서브블록이 동시에 병렬 처리 되므로 초기 상태 매트릭(initial state metric)값의 부정확성으로 인한 성능 저하가 발생하여 이를 해결하기 위해 훈련 구간을 두거나(Jae-Ming Hsu and Chin and Chin-Liang Wang, "A parallel decoding scheme For Turbo codes," IEEE Int. Symp. on Circuit and Systems, vol. 4, pp445-448, June 1998), 이전의 반복 복호시 계산된 경계 상태 매트릭값(boundary state metric)을 이용하는 알고리즘(Seokyun Yoon, Yeheskel Bar-NessA "Parallel MAP algorithm for low latency turbo decoding," Communications Letters, IEEE ,Volume: 6 , Issue: 7 , July 2002) 등이 제안되었다. 그러나 이러한 알고리즘은 훈련구간의 오버헤드(overhead)로 인하여 추가적인 시간지연이 발생하고, 서브블록 수의 증가로 인하여 프로세서가 추가 되어야 한다. 또한 이전 반복시 경계 상태 매트릭값을 사용하는 방법은 서브블록의 크기가 어느 정도 커야 성능을 보장할 수 있다.As one of these results, a parallel block division decoding algorithm has been proposed to reduce the long decoding delay. This algorithm divides the data block into regular sub-blocks so that each subblock is processed in parallel by an independent processor, thereby reducing the decoding delay to 1 / W (where W is the number of subblocks). In parallel block division decoding algorithm, since each sub-block is processed in parallel at the same time, performance degradation occurs due to inaccuracy of initial state metric value, and a training interval can be solved (Jae-Ming Hsu and Chin and Chin-). Liang Wang, "A parallel decoding scheme For Turbo codes," IEEE Int. Symp. On Circuit and Systems, vol. 4, pp 445-448, June 1998), bounded state metric calculated during previous iterative decoding. (Seokyun Yoon, Yeheskel Bar-Ness A "Parallel MAP algorithm for low latency turbo decoding," Communications Letters, IEEE, Volume: 6, Issue: 7, July 2002). However, this algorithm has an additional time delay due to the overhead of the training interval and an additional processor due to the increase in the number of subblocks. In addition, the method of using the boundary state metric at the previous iteration may ensure the performance only when the size of the subblock is large.

따라서, 본 발명이 이루고자 하는 기술적 과제는, 복호지연 시간을 줄이면서도 복호 성능을 개선할 수 있는 터보 복호화를 위한 병렬 블록 분할 복호화 방법 및 장치를 제공하는데 있다.Accordingly, an aspect of the present invention is to provide a method and apparatus for parallel block division decoding for turbo decoding that can reduce decoding delay time and improve decoding performance.

상기한 기술적 과제를 이루기 위한 본 발명에 의한 터보 복호화를 위한 병렬 복호화 방법은, 입력된 데이터 신호를 소정 개수의 서브블록으로 나누어 각각의 서브블록이 독립적으로 병렬처리되는 터보 복호화를 위한 병렬 복호화 방법이며, 성능 사양에 따라 소정 회수만큼 반복 복호 과정을 수행하며,The parallel decoding method for turbo decoding according to the present invention for achieving the above technical problem is a parallel decoding method for turbo decoding in which an input data signal is divided into a predetermined number of subblocks and each subblock is independently processed in parallel. Repeat the decoding process as many times as the performance specification.

하나의 반복 복호 과정은One iterative decoding process

(a) 홀수번째 서브블록은 순방향 상태 매트릭 계산과정을 먼저 수행하고, 짝수번째 서브블록은 역방향 상태 매트릭 계산과정을 먼저 수행하는 단계; (b) 상기 (a)단계 후에, 홀수번째 서브블록은 역방향 상태 매트릭 계산과정을 수행하고, 짝 수번째 서브블록은 순방향 상태 매트릭 계산과정을 수행하는 단계; 및 (c) 상기 (b)단계와 동시에 상기 각 서브블록은 외부 정보값을 계산하는 단계를 구비하는 것을 특징으로 한다.(a) odd-numbered subblocks perform a forward state metric calculation process first, and even-numbered subblocks perform a reverse state metric calculation process first; (b) after step (a), odd-numbered subblocks perform reverse state metric calculation and even-numbered subblocks perform forward state metric calculation; And (c) calculating the external information value of each subblock simultaneously with the step (b).

여기서 상기 (b) 단계는, 상기 홀수번째 서브블록의 순방향 상태 매트릭 계산과정의 최종 상태값을 상기 짝수번째 서브블록의 순방향 상태 매트릭 계산과정의 초기 상태값으로 결정하고, 상기 짝수번째 서브블록의 역방향 상태 매트릭 계산과정의 최종 상태값을 상기 홀수번째 서브블록의 역방향 상태 매트릭 계산과정의 초기 상태값으로 결정할 수 있다.In the step (b), the final state value of the forward state metric calculation process of the odd-numbered subblocks is determined as an initial state value of the forward state metric calculation process of the even-numbered subblocks, and the backward direction of the even-numbered subblocks is determined. The final state value of the state metric calculation process may be determined as an initial state value of the reverse state metric calculation process of the odd subblock.

상기한 기술적 과제를 이루기 위한 본 발명에 의한 터보 복호기는, 두 개의 구성 복호기를 인터리버와 디인터리버에 의해 연결한 구조의 터보 복호기이며, 상기 각 구성 복호기는 독립적으로 병렬처리를 수행하는 소정 개수의 서브블록을 구비하고, 상기 터보 복호기가 수행하는 소정 횟수의 반복 복호 과정 중 하나의 반복 복호 과정에서, 홀수번째 서브블록은 순방향 상태 매트릭 계산과정을 먼저 수행하고, 짝수번째 서브블록은 역방향 상태 매트릭 계산과정을 먼저 수행하고, 다음으로, 홀수번째 서브블록은 역방향 상태 매트릭 계산과정을 수행하고, 짝수번째 서브블록은 순방향 상태 매트릭 계산과정을 수행하고, 상기 각 서브블록은 외부 정보값을 계산하는 것을 특징으로 한다.The turbo decoder according to the present invention for achieving the above technical problem is a turbo decoder having a structure in which two component decoders are connected by an interleaver and a deinterleaver, and each of the component decoders independently performs a predetermined number of sub processes. In the iterative decoding process of one of a predetermined number of iterative decoding processes performed by the turbo decoder, the odd-numbered subblock first performs the forward state metric calculation process, and the even-numbered subblock is the reverse state metric calculation process. Next, the odd-numbered subblocks perform reverse state metric calculation, the even-numbered subblocks perform forward state metric calculation, and each subblock calculates an external information value. do.

상기 터보 복호기는, 상기 홀수번째 서브블록의 순방향 상태 매트릭 계산의 최종 상태값을 상기 짝수번째 서브블록의 순방향 상태 매트릭 계산의 초기 상태값으로 사용하고, 상기 짝수번째 서브블록의 역방향 상태 매트릭 계산의 최종 상태값 을 상기 홀수번째 서브블록의 역방향 상태 매트릭 계산의 초기 상태값으로 사용할 수 있다.The turbo decoder uses a final state value of a forward state metric calculation of the odd subblock as an initial state value of a forward state metric calculation of the even subblock, and ends the backward state metric calculation of the even subblock. The state value may be used as an initial state value of the reverse state metric calculation of the odd subblock.

이하, 본 발명의 바람직한 실시예에 의한 병렬 블록 분할에 의한 터보 복호화 방법 및 장치의 구성 및 작용을 첨부한 도면들을 참조하여 상세히 설명한다.Hereinafter, the configuration and operation of a turbo decoding method and apparatus by parallel block division according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 반복 복호를 적용한 터보 복호기를 설명하기 위한 블록도로서, 제1 및 제2 SISO(Soft Input Soft Output) 복호기(100, 102), 제1 및 제2 인터리버(104, 108), 제1 및 제2 디인터리버(106, 110), 및 경판정부(112)를 구비한다.1 is a block diagram illustrating a turbo decoder to which iterative decoding is applied, and includes first and second soft input soft output (SISO) decoders 100 and 102, first and second interleavers 104 and 108, and a first one. And second deinterleavers 106 and 110, and hard decision unit 112.

제1 SISO 복호기(100)는 수신된 정보비트(Xk, information bit), 수신된 부가비트(Yk, redundancy bit) 및 이전 반복(iteration)에서 계산된 제1 외부정보값(La1)을 사용하여 제1 연판정 정보(Le1)를 생성한다.The first SISO decoder 100 receives the received information bit (X k, information bit), the received additional bit (Y k , redundancy bit), and the first external information value L a1 calculated in a previous iteration. To generate the first soft decision information L e1 .

제1 인터리버(104)는 제1 연판정 정보를 재배열하여 제2 외부정보값(La2)으로서 출력한다.The first interleaver 104 rearranges the first soft decision information and outputs it as the second external information value La a2 .

제2 인터리버(108)는 수신된 정보비트(Xk)를 재배열하여 출력(X' k)한다. The second interleaver 108 rearranges the received information bits X k and outputs X k .

제2 SISO 복호기(102)는 재배열된 정보비트(X' k), 수신된 부가비트(Y2k ) 및 제2 외부정보값(La2)을 사용하여 제2 연판정 정보(Le2)를 생성한다.The second SISO decoder 102 uses the rearranged information bits X k , the received additional bits Y 2k , and the second external information value L a2 to determine the second soft decision information L e2 . Create

제1 디인터리버(106)는 제2 연판정 정보(Le2)를 재배열하여 제1 연판정 정보(Le1)를 생성하고, 이를 제1 SISO 복호기로 피드백한다.The first deinterleaver 106 rearranges the second soft decision information L e2 to generate the first soft decision information L e1 , and feeds it back to the first SISO decoder.

전술한 터보 복호기는 원하는 횟수만큼의 반복 복호를 행하여 요구되는 비트오율(Bit Error Rate, BER) 성능을 갖는 출력(L2)얻게 된다.The above-described turbo decoder performs an iterative decoding as many times as desired to obtain an output L 2 having a required bit error rate (BER) performance.

제2 디 인터리버(110)는 제2 SISO 복호기(102)의 반복 복호 결과(L2)를 재배열하여 출력하며, 이 출력 신호는 경판정부(112)에 의하여 양자화된 신호(

Figure 112004027455179-pat00001
)로서 출력된다.The second deinterleaver 110 rearranges and outputs the iterative decoding result L 2 of the second SISO decoder 102, and the output signal is a signal quantized by the hard decision unit 112.
Figure 112004027455179-pat00001
Is output as

제1 및 제2 SISO 복호기(100, 102)에 사용되는 알고리즘은 일반적으로 MAP(Maximum A Posteriori)을 이용한 알고리즘과 SOVA(Soft Output Viterbi Algorithm) 알고리즘이 있다. 그 중 MAP 알고리즘에서 파생된 Max-Log-Map 알고리즘은 우수한 성능과 낮은 복잡도를 가지기 때문에 하드웨어 구현하는데 있어서 좀 더 용이하다. 이러한 Max-Log-Map을 이용한 내부의 SISO 복호기는 FSMC(Forward State Metric calculation)과정과 BSMC(Backward State Metric calculation)과정 그리고 이 두 개의 과정을 통해 발생된 상태 매트릭값을 통해 외부정보 값을 발생시키는 EIC(Extrinsic Information Calculation)과정을 수행한다. Algorithms used in the first and second SISO decoders 100 and 102 generally include an algorithm using Maximum A Posteriori (MAP) and a Soft Output Viterbi Algorithm (SOVA) algorithm. Among them, the Max-Log-Map algorithm derived from MAP algorithm is easier to implement in hardware because of its superior performance and low complexity. The internal SISO decoder using the Max-Log-Map generates external information values through the state metric values generated through two processes, a forward state metric calculation (FSMC) and a backward state metric calculation (BSMC). Perform EIC (Extrinsic Information Calculation) process.

이러한 과정은 전체의 입력 데이터 블록을 받아 FSMC를 수행한 후 BSMC와 EIC를 수행해야 하기 때문에 매우 긴 복호 지연을 갖게 된다. 이러한 복호 지연을 줄이기 위한 여러 개의 프로세서를 동시에 이용하는 병렬 복호 알고리즘이 제안되었다. 병렬 복호 알고리즘으로 대표적인 것에 파이프라인 기법(C. Berrou, A. Glavieux and P. Thitimajshima, "Near Shannon limit error correcting coding and decoding : Turbo-codes (1)," IEEE Int. Conf. On Comm.ICC' 93, vol 2/3, May 1993, pp. 1064-1071.)(Curt Schurgers, Franky Catthoor and Marc Engels, "Optimized MAP Turbo Decoder," IEEE Workshop on signal Processing Systems, pp245-254, 2000.)과, 블록 분할을 통한 병렬 복호 알고리즘(Jae-Ming Hsu and Chin and Chin-Liang Wang, "A parallel decoding scheme For Turbo codes," IEEE Int. Symp. on Circuit and Systems, vol. 4, pp445-448, June 1998)(Seokyun Yoon, Yeheskel Bar-NessA "Parallel MAP algorithm for low latency turbo decoding," Communications Letters, IEEE ,Volume: 6 , Issue: 7 , July 2002)이 있다.This process has a very long decoding delay because it needs to perform the FSMC after receiving the entire input data block and then perform BSMC and EIC. In order to reduce the decoding delay, a parallel decoding algorithm using several processors at the same time has been proposed. The parallel decoding algorithm is representative of the pipeline technique (C. Berrou, A. Glavieux and P. Thitimajshima, "Near Shannon limit error correcting coding and decoding: Turbo-codes (1)," IEEE Int. Conf. On Comm.ICC ' 93, vol 2/3, May 1993, pp. 1064-1071.) (Curt Schurgers, Franky Catthoor and Marc Engels, "Optimized MAP Turbo Decoder," IEEE Workshop on signal Processing Systems, pp245-254, 2000.) Parallel Decoding Algorithm (Jae-Ming Hsu and Chin and Chin-Liang Wang, "A parallel decoding scheme For Turbo codes," IEEE Int. Symp. On Circuit and Systems, vol. 4, pp 445-448, June 1998 (Seokyun Yoon, Yeheskel Bar-Ness A "Parallel MAP algorithm for low latency turbo decoding," Communications Letters, IEEE, Volume: 6, Issue: 7, July 2002).

파이프라인 기법은 각각의 프로세서가 전체의 블록을 수행하여 그 결과값 즉 외부 정보값을 발생시킨다. 이는 복호 지연을 상당히 줄일 수 있으나 연산을 수행할 때 저장 매체(메모리)의 증가를 초래하게 되어, 그 만큼의 하드웨어 낭비를 일으킬 뿐 아니라 복호 지연의 감소 효과가 적다.In the pipeline technique, each processor executes the entire block and generates a result value, that is, an external information value. This can significantly reduce the decoding delay, but causes an increase in the storage medium (memory) when performing the operation, which not only causes a waste of hardware but also reduces the decoding delay.

다른 하나의 방법인 병렬 블록 분할 알고리즘은 데이터 블록을 W개의 서브블록으로 나누어 각각의 프로세서를 이용하여 병렬로 복호해 낸다. 이 알고리즘은 복호 지연이 서브블록의 개수에 반비례(1/W)하여 감소되지만 각각의 프로세서가 동시에 수행되기 위해서는 각 서브블록에서 동시에 순방향 상태값과 역방향 상태값을 계산하여야 하며, 이를 모두 동일한 값으로 설정하면 초기 상태 매트릭값의 부정확함으로 인해 성능이 저하가 발생한다. 또한 서브블록의 길이가 일정한 크기 이하로 짧아질수록 급격하게 성능저하가 발생한다. 이를 막기 위해 훈련구간을 이용하는 방법과 이전 반복 복호시의 경계 상태 매트릭값을 이용하는 알고리즘이 제시되었다. Another method, the parallel block partitioning algorithm, divides a data block into W subblocks and decodes them in parallel using respective processors. In this algorithm, the decoding delay is reduced in inverse proportion to the number of subblocks (1 / W), but in order for each processor to be executed simultaneously, the forward state value and the reverse state value must be calculated simultaneously in each subblock, and both of them have the same value. If set, performance will be degraded due to inaccurate initial state metrics. In addition, as the length of the subblock becomes shorter than a certain size, performance decreases rapidly. To prevent this, an algorithm using the training interval and the boundary state metric of the previous iterative decoding has been proposed.

훈련구간을 이용하는 병렬 블록분할 복호 알고리즘은 각각의 블록에서 순방향, 역방향 상태 매트릭을 계산하기 때문에 초기 상태 매트릭값의 신뢰도가 매우 중요하므로 초기상태 값의 부정확성으로 인한 성능저하를 막기 위해 훈련구간을 두게된다.Since the parallel block division decoding algorithm using the training interval calculates the forward and backward state metrics in each block, the reliability of the initial state metric is very important, so the training interval is placed to prevent performance degradation due to the inaccuracy of the initial state value. .

도 2는 훈련구간(T)을 이용한 병렬 블록분할 복호 알고리즘의 복호 과정을 나타낸 모식도이다. 도 2에서 FSMC, BSMC, EIC는 각각 순방향 상태 매트릭 계산(Forward State Metric caculation), 역방향 상태 매트릭 계산(Backward State Metric caculation), 외부 정보값 계산(Extrinsic Information calculation) 과정을 의미한다.2 is a schematic diagram showing a decoding process of a parallel block division decoding algorithm using a training interval T. In FIG. 2, FSMC, BSMC, and EIC mean a forward state metric calculation, a backward state metric calculation, and an external information calculation process, respectively.

훈련구간(T)은 초기 상태 매트릭(initial state metric)값을 알지 못할 경우, 모든 서브블록에서 동일한 초기 상태 매트릭값을 취하고 상태 매트릭값을 구해 나갈 때 소정 구간이 지나면 발생된 상태 매트릭값을 신뢰할 수 있을 정도의 구간을 의미한다. 일반적으로 훈련구간(T)은 구속장의 5-6배 정도가 되어야 한다고 알려져 있다. When the training interval (T) does not know the initial state metric value, it takes the same initial state metric value in all subblocks, and when the state metric value is obtained, the generated state metric value can be trusted. It means that there is enough section. In general, it is known that the training interval (T) should be about 5-6 times the length of restraint.

따라서 이러한 구간에서 각각의 순방향, 역방향 초기 상태 매트릭값은 모두 같은 값에서 시작하여 훈련구간(T)이 지난 후부터 유효한 상태 매트릭값으로 받아들여 각각의 상태 매트릭값으로 사용되게 된다. 우선 N/W+2T(N는 데이터 블록 길이, W는 서브블록의 개수, T는 훈련구간의 길이)의 길이를 갖는 각각의 서브블록은 순방향 상태 매트릭값을 계산하여 훈련구간 이후의 상태 매트릭값을 저장한 후 역방향 상태 매트릭값을 계산하는 동시에 저장된 순방향 상태 매트릭값과 계산되는 역방향 상태 매트릭값을 이용하여 외부 정보값을 계산한다.Therefore, in this interval, each forward and backward initial state metric value starts with the same value and is accepted as a valid state metric value after the training interval (T). First, each subblock having a length of N / W + 2T (N is the length of the data block, W is the number of subblocks, and T is the length of the training interval) calculates the forward state metric value to calculate the state metric value after the training interval. After storing, the backward state metric is calculated and the external information value is calculated using the stored forward state metric and the calculated reverse state metric.

이 알고리즘은 충분한 훈련구간(T)이 설정되어있지 않으면 성능저하가 발생하고, 또한 충분한 훈련구간이 설정되어 있으면 그만큼의 트렐리스상의 오버헤드로 인해 복호 지연시간 증가의 원인이 된다. 작은 복호 지연을 위하여는 서브블록의 크기가 작을수록 좋다. 그런데 대략 서브블록의 길이가 100정도 이하에서는, 충분한 훈련구간을 두더라도 성능이 저하되는 한계가 존재한다. 또한 같은 서브블록의 길이를 사용하더라도 훈련구간이 차지하는 부분으로 인해 더 많은 프로세서를 요구하게 된다.This algorithm causes performance degradation if not enough training interval T is set, and increases the decoding delay time due to the trellis overhead as much as enough training interval is set. For smaller decoding delays, the smaller the size of the subblock is, the better. However, when the length of the subblock is about 100 or less, there is a limit that the performance is degraded even with sufficient training interval. In addition, even though the same subblock length is used, more processor is required due to the portion of the training interval.

이러한 문제를 해결하기 위해 제시된 것이 도 3의 이전 반복시의 상태 매트릭값을 이용하는 병렬 블록분할 복호 방법이다.Proposed to solve this problem is a parallel block division decoding method using the state metric value in the previous iteration of FIG.

도 3은 훈련구간으로 인한 복호 지연의 오버헤드를 없애고 그에 따른 성능 저하를 막기 위해 이전 상태에서 발생되는 경계 상태 매트릭값들을 저장하여 다음 반복 복호시에 초기 상태 매트릭값으로 재사용하는 알고리즘이다. 이러한 알고리즘은 이전의 경계 상태 매트릭값(Boundary State Metric)을 이용하기 때문에 이전 반복 복호시의 그 상태 매트릭값이 서브블록 길이만큼의 훈련 구간을 둔 것과 같은 효과로 초기 상태 매트릭의 신뢰도를 증가시켜 성능 저하를 막아 준다.3 is an algorithm for storing boundary state metrics generated in the previous state and reusing them as initial state metrics in the next iterative decoding in order to remove the overhead of the decoding delay due to the training interval and prevent performance degradation. Since this algorithm uses the previous boundary state metric, the state metric in the previous iterative decoding increases the reliability of the initial state metric by the same effect that the training interval is equal to the subblock length. Prevents degradation.

하지만 이러한 알고리즘 또한 첫 번째 복호시에는 초기 상태 매트릭값들을 모두 같은 값으로 할당하여 시작하기 때문에 매우 부정확한 외부 정보값을 발생시 키고 이전의 서브블록의 길이만큼이 훈련구간의 역할을 하므로 서브블록의 길이가 충분하지 않으면 성능 저하를 발생하게 된다. 성능저하 없이 설정 가능한 서브블록의 길이는 약 128 정도이다. 따라서 이 알고리즘은 반복 복호를 고려했을 경우 무선 통신과 같은 작은 복호 지연을 요구하는 시스템에 적용하기 어렵다.However, this algorithm also starts with assigning the initial state metric values to the same value at the first decoding, which generates very inaccurate external information values and plays the training interval as much as the length of the previous subblock. Not enough will result in performance degradation. The length of the subblock that can be set without deterioration is about 128. Therefore, this algorithm is difficult to apply to a system that requires a small decoding delay such as wireless communication when considering repeated decoding.

도 2 및 도 3에서 설명한 병렬 블록분할 복호 알고리즘들은 초기의 터보 복호 방식과 동일한 성능을 유지하면서 터보 복호기의 구현시 가장 문제시 되는 복호 지연을 상당히 줄일 수 있으나, 각각은 일정한 한계를 갖고 있다. 도 2의 알고리즘은 충분한 훈련구간과 서브블록의 길이가 있어야 하고, 도 3의 알고리즘은 충분한 서브블록의 길이를 사용하여야만 성능 저하를 막을 수 있다.The parallel block division decoding algorithms described with reference to FIGS. 2 and 3 can significantly reduce the decoding delay which is most problematic when implementing a turbo decoder, while maintaining the same performance as the initial turbo decoding scheme, but each has a certain limit. The algorithm of FIG. 2 should have a sufficient training interval and the length of the subblock, and the algorithm of FIG. 3 should use a sufficient length of the subblock to prevent performance degradation.

본 발명은 이러한 성능저하의 단점을 개선하기 위해 첫 번째 반복에서부터 서로 인접한 서브블록 사이에 서로 경계 상태 매트릭값을 교환함으로써, 훈련구간이 필요없고, 작은 서브블록으로도 충분한 성능을 유지할 수 있는 터보 복호화를 위한 병렬 복호화 방법을 제공한다. 따라서 본 발명에 의하면 만족한 성능을 유지하면서도 매우 작은 복호 지연을 갖게 된다.In order to improve the disadvantage of this performance, the present invention exchanges boundary state metrics between subblocks adjacent to each other from the first iteration, thereby eliminating training intervals and turbo decoding capable of maintaining sufficient performance even with a small subblock. Provides a parallel decoding method for. Therefore, according to the present invention, it has a very small decoding delay while maintaining satisfactory performance.

도 4는 본 발명의 바람직한 일 실시예에 의한 터보 복호화를 위한 병렬 복호화 방법을 설명하기 위한 모식도이다.4 is a schematic diagram for explaining a parallel decoding method for turbo decoding according to an embodiment of the present invention.

제안된 구조는 각각의 인접한 서브블록이 순방향과 역방향 상태를 계산하여 다음의 순방향, 역방향 상태 매트릭 계산 시 초기 값을 제공함으로써 초기 상태 매트릭값의 부정확함을 해결하고, 처음 반복 복호시부터 비교적 정확한 초기 상태 매트릭값을 이용할 수 있기 때문에 신뢰도가 높은 외부정보 값을 보다 빨리 발생시킬 수 있다. 따라서 이러한 구조를 통해 성능 저하 없이 더 짧은 서브블록의 길이 설용이 가능하여 작은 복호 지연을 가질 수 있다.The proposed structure solves the inaccuracy of the initial state metric by calculating the forward and reverse states of each adjacent subblock and providing the initial value in the next forward and reverse state metric. The state metric can be used to generate more reliable external information faster. Therefore, this structure enables the use of shorter subblock lengths without degrading performance and thus has a small decoding delay.

도 4에 도시된 터보 복호화를 위한 병렬 복호화 방법을 6단계로 나누어 다음과 같이 설명한다.The parallel decoding method for turbo decoding shown in FIG. 4 is divided into six steps and described as follows.

단계 1) 입력으로 들어오는 N개의 신호를 W개의 서브블록으로 나눈다.Step 1) Divide the N signals coming into the input into W subblocks.

단계 2) 각 서브블록은 FSMC 먼저 시작하는 서브블록과 BSMC 먼저 시작하는 서브블록으로 서로 짝을 이루어 시작한다. 즉 홀수번째 서브블록은 FSMC 과정을 먼저 수행하고, 짝수번째 서브블록은 BSMC 과정을 먼저 수행한다.Step 2) Each subblock starts with a subblock starting with FSMC first and a subblock starting with BSMC first. That is, the odd-numbered subblocks perform the FSMC process first, and the even-numbered subblocks perform the BSMC process first.

이 때 각 블록에서 입력으로 들어온 브랜치 상태 매트릭을 이용하여 계산한 다음 수학식 1, 수학식 2, 수학식 3에 의하여 FSM값과 BSM값을 구하고, 그 결과값을 외부 정보 값을 구하기 위해 저장한다.At this time, the branch state metric inputted from each block is calculated and then the FSM value and the BSM value are obtained according to Equation 1, Equation 2 and Equation 3, and the result is stored to obtain an external information value. .

Figure 112004027455179-pat00002
Figure 112004027455179-pat00002

Figure 112004027455179-pat00003
Figure 112004027455179-pat00003

Figure 112004027455179-pat00004
Figure 112004027455179-pat00004

여기서 Γi()은 BM(Branch Metric)을 나타내고 xs와 xp는 인코더에서 S k에서 Sk+1로 변환될 때의 시스테메틱(systematic) 출력과 부가(redundancy) 출력이고, ys와 yp는 채널을 통과한 복호기의 각각의 입력이고, Le in는 이전 반복시 계산한 외부 정보값이다.Where Γ i () represents the branch metric (BM) and x s and x p are the systematic and redundancy outputs when the encoder converts from S k to S k + 1 , and y s And y p are the inputs of each decoder through the channel, and L e in is the external information value calculated at the previous iteration.

이 때 첫 번째 서브블록은 시작하는 상태를 알고 있으므로 초기 상태 매트릭값을 시작하는 상태에 가장 큰 값을 할당하고 나머지는 0으로 할당한다. 이를 제외하고는 첫 번째 반복 복호시에는 모두 같은 값으로 초기 상태 매트릭값을 정하고 두 번째 반복 복호시 부터는 이전의 반복 복호시 저장된 경계 상태 매트릭값을 사용하여 초기 상태 매트릭값으로 할당한다.At this time, since the first subblock knows the starting state, it assigns the largest value to the starting state metric value and the rest to 0. Except for this, in the first iterative decoding, the initial state metric value is set to the same value, and in the second iterative decoding, the initial state metric value is assigned using the boundary state matrix value stored in the previous iterative decoding.

예를들어 임의의 K번째와 K+1번째 서브블록을 고려하자. K번째 블록은 A(K-1)M+1(S), A(K-1)M+2(S), A(K-1)M+3(S),....., AKM(S)을 수학식 2에 의해 구해낸다. 동시에 인접한 K+1번째 서브블록에서는 B2KM-1(S), B2KM-2(S), B2KM-2(S),....., BKM(S)을 수학식 3에 의해 구해낸다.For example, consider any Kth and K + 1th subblocks. Kth block is A (K-1) M + 1 (S), A (K-1) M + 2 (S), A (K-1) M + 3 (S), ....., A KM (S) is obtained by the equation (2). B 2KM-1 (S), B 2KM-2 (S), B 2KM-2 (S), ....., B KM (S) in the adjacent K + 1th subblock at the same time Save it.

단계 3) 각 서브블록에서 FSMC를 구했던 블록은 BSMC를 계산하고 BSMC를 구했던 블록은 FSMC를 계산한다. 즉 홀수번째 서브블록은 BSMC 과정을 수행하고, 짝수번째 서브블록은 FSMC 과정을 수행한다. 이 때 서로 경계 상태 매트릭값을 넘겨주어 초기 상태 매트릭값으로 사용한다. 즉 홀수번째 서브블록의 FSMC 의 최종 상태값을 짝수번째 서브블록의 FSMC 과정의 초기 상태값으로 사용하고, 짝수번째 서브블록의 BSMC 과정의 최종 상태값을 홀수번째 서브블록의 BSMC 과정의 초기 상태 값으로 사용한다.Step 3) In each subblock, the block that obtained the FSMC calculates the BSMC, and the block that obtains the BSMC calculates the FSMC. That is, the odd-numbered subblocks perform the BSMC process and the even-numbered subblocks perform the FSMC process. At this time, the boundary state metrics are passed to each other and used as initial state metrics. That is, the final state value of the FSMC of the odd subblock is used as the initial state value of the FSMC process of the even subblock, and the final state value of the BSMC process of the even subblock is used as the initial state value of the BSMC process of the odd subblock. Used as

예를들어 K번째 블록은 BKM-1(S), BKM-2(S), BKM-2(S),........, B (K-1)M(S)을 수학식 3을 통해 구해낸다. 동시에 인접한 K+1번째 서브블록은 AKM+1(S), AKM+2(S), AKM+3(S),....., A2KM(S)을 계산해낸다. 여기서 BKM-1(S)과 AKM+1 (S)를 계산하기 위한 과정에서 계산했던 초기 BKM(S)은 K+1번째에서, AKM(S)은 K번째 블록에서 저장된 경계 상태 매트릭값을 사용하여 계산해 낸다. For example, the Kth block is B KM-1 (S), B KM-2 (S), B KM-2 (S), ........, B (K-1) M (S) Is obtained from Equation 3. At the same time, the adjacent K + 1th subblock calculates A KM + 1 (S), A KM + 2 (S), A KM + 3 (S), ....., A 2KM (S). Where the initial B KM (S) calculated in the process for calculating B KM-1 (S) and A KM + 1 (S) is in the K + 1th, and A KM (S) is the boundary state stored in the Kth block. Calculate using the metric.

단계 4) 단계 3의 과정과 동시에 각각의 서브블록은 다음 수학식 4에 의해 외부 정보값을 계산해 낸다.Step 4) Simultaneously with step 3, each subblock calculates an external information value by the following equation (4).

Figure 112004027455179-pat00005
Figure 112004027455179-pat00005

예를들어 각각의 블록 K와 K+1번째 블록은 L(d(K-1)M), L(d(K-1)M+1), L(d(K-1)M+2) , ....., L(d2KM)를 계산해낸다. For example, each block K and K + 1th block is L (d (K-1) M) , L (d (K-1) M + 1) , L (d (K-1) M + 2) Calculate L , d2KM .

단계 5) 단계 4에서 나온 외부 정보값을 인터리버(Interleaver) 또는 디인터리버(Deinterleaver)를 거쳐 다음 복호기에 입력으로 주어 단계 2 과정부터 반복회수만큼 반복한다. 여기서 반복회수는 성능 사양에 따라 결정될 수 있다.Step 5) The external information value obtained in step 4 is input to the next decoder via an interleaver or deinterleaver, and repeated as many times as iterations from step 2. The iteration number may be determined according to the performance specification.

단계 6) 반복회수 만큼 나온 외부 정보 값을 경판정하여 최종 복호된 결과를 내보낸다.Step 6) Hard decision of the value of the external information as many times as the number of iterations to send the final decoded result.

이러한 복호 과정으로 인해 훈련구간이 도 3의 종래의 알고리즘에 비해 더 길어지는 효과가 생긴다. 훈련 구간이 증가하면 그 만큼의 초기 상태 매트릭의 신뢰도가 증가 하므로 성능이 향상된다. 표 1은 실질적인 훈련구간의 길이를 비교하여 놓은 것이다. 도 3의 종래의 알고리즘의 경우는 첫 반복시에는 모든 서브 블록의 초기 상태값을 할당하여 시작하는 데 반면, 본 발명의 알고리즘은 근접한 블록의 경계 상태 매트릭 값을 초기 상태 값으로 이용하므로 인접한 블록에서의 서브블록의 길이(D)만큼 훈련구간을 두는 것과 같다. 두 번째 반복부터는 훈련구간이 이와 동일하게 적용된다. 도 3의 종래의 알고리즘은 D만큼만 훈련구간을 두는 것과 같기 때문에 서브 블록이 작아지면 훈련구간이 작아지게 되어 성능의 저하를 발생한다. 그러나 본 발명의 알고리즘은 훈련구간을 기존 보다 두 배로 길게 해주게 되어 성능 저하를 막아준다.This decoding process results in a longer training interval compared to the conventional algorithm of FIG. Increasing the training interval increases the reliability of the initial state metric, which improves performance. Table 1 compares the actual training intervals. In the conventional algorithm of FIG. 3, an initial state value of all sub-blocks is assigned at the first iteration, and the algorithm of the present invention uses the boundary state metric of a neighboring block as an initial state value. The training interval is equal to the length D of the subblock of. From the second iteration, the same training interval applies. Since the conventional algorithm of FIG. 3 is the same as having a training interval as much as D, when the sub-block becomes smaller, the training interval becomes smaller, resulting in a decrease in performance. However, the algorithm of the present invention makes the training interval twice as long as the conventional one and prevents performance degradation.

서브 블록 인덱스Subblock index 상태 상태 매트릭Status Status Metric 첫번째 이터레이션에서의 훈련구간 길이 Training interval length at first iteration                                              두번째 이후의 이터레이션에서의 훈련구간 길이Training interval length in second iterations 도 3의 알고리즘3 algorithm 본발명의 알고리즘Algorithm of the Invention 도 3의 알고리즘3 algorithm 본 발명의 알고리즘Algorithm of the invention 2K2K αα 00 00 DD DD ββ 00 DD DD 2D2D 2K+12K + 1 αα 00 DD DD 2D2D ββ 00 00 DD DD

도 5는 경계 상태 매트릭이 초기 상태 매트릭으로 사용되기 위한 교환 방법을 보여주는 서브블록의 모식도이다.5 is a schematic diagram of a subblock showing an exchange method for using a boundary state metric as an initial state metric.

도 4에 예시된 본 발명의 알고리즘은 도 3의 종래의 알고리즘에 비하여 상대 적으로 더 짧은 서브블록의 크기를 갖더라도 성능 저하가 없으며, 더 짧은 서브블록으로 인해 복호 지연이 매우 감소되는 효과가 있다.The algorithm of the present invention illustrated in FIG. 4 has no performance degradation even with a relatively shorter subblock size than the conventional algorithm of FIG. 3, and the decoding delay is greatly reduced due to the shorter subblock. .

도 6 내지 도 8은 AWGN 채널 환경하에서 본 발명의 알고리즘과 도 3의 종래의 알고리즘을 수치모사하여 성능평가를 수행한 결과이다.6 to 8 are results of numerical evaluation of the algorithm of the present invention and the conventional algorithm of FIG. 3 under AWGN channel environment.

적용된 MAP 알고리즘은 Max-Log-MAP을 사용하였고, 채널 환경은 AWGN(Additive White Gaussian Noise)을 사용하였으며, 인터리버 길이는 1024를 사용하였다. 반복회수는 4번으로 하였으며 부호율은 1/2로 하였다. 인터리버는 S-random 인터리버를 사용하였고 패킷 수는 100,000개로 하였다.The applied MAP algorithm uses Max-Log-MAP, the channel environment uses AWGN (Additive White Gaussian Noise), and the interleaver length is 1024. The number of repetitions was 4 and the code rate was 1/2. The interleaver used S-random interleaver and the number of packets was 100,000.

도 6, 도 7, 도 8은 각각 서브블록의 길이를 128, 64, 32 인 경우의 성능비교 결과 그래프이다.6, 7, and 8 are graphs of performance comparison results when the lengths of subblocks are 128, 64, and 32, respectively.

도 6을 참조하면 본 발명의 알고리즘에 의하면 서브블록의 길이가 128인 경우 BER=10-4 에서 0.03dB의 성능이득을 얻는다.Referring to FIG. 6, according to the algorithm of the present invention, when the length of the subblock is 128, a performance gain of 0.03 dB is obtained at BER = 10 −4 .

도 7을 참조하면 본 발명의 알고리즘에 의하면 서브블록의 길이가 64인 경우 BER=10-4 에서 0.08dB의 성능이득을 얻는다.Referring to FIG. 7, according to the algorithm of the present invention, when the length of the subblock is 64, a performance gain of 0.08 dB is obtained at BER = 10 −4 .

도 8을 참조하면 본 발명의 알고리즘에 의하면 서브블록의 길이가 32인 경우 BER=10-4 에서 0.17dB의 성능이득을 얻는다.Referring to FIG. 8, according to the algorithm of the present invention, when the length of the subblock is 32, a performance gain of 0.17 dB is obtained at BER = 10 −4 .

도면에 도시되지는 않았지만, 본 발명의 알고리즘에 의하면 서브블록의 길이가 16인 경우 BER=10-4 에서 0.32dB의 성능이득을 얻는다. 그러나 서브블록의 길이 가 16인 경우는 BER=10-4 는 SNR이 2.2dB 로서 급격히 증가하여, 성능이 저하되는 양상을 보인다. 본 발명의 알고리즘은 서브 블록의 길이가 32까지 가능하다.Although not shown, according to the algorithm of the present invention, when the length of the subblock is 16, a performance gain of 0.32 dB is obtained at BER = 10 −4 . However, when the length of the subblock is 16, BER = 10 -4 has a sharp increase in SNR as 2.2dB, resulting in a performance degradation. The algorithm of the present invention can have a length of up to 32 subblocks.

본 발명의 알고리즘이 종래의 알고리즘과 비교하여 서브블록의 길이가 128보다 작을 때 우수한 성능을 나타냄을 알 수 있다. 서브 블록의 길이가 32, 64, 128 일때 성능 비교를 하면 두 알고리즘 모두 128 정도이면 성능 저하가 거의 없지만 32, 64일 때는 기존 알고리즘의 성능이 제안된 알고리즘보다 성능이 떨어짐을 알 수 있다. 종래의 알고리즘은 성능 저하 없이 사용할 수 있는 최소 서브 블록의 길이가 128인 반면, 본 발명의 알고리즘은 서브 블록의 길이가 32까지 가능하다.It can be seen that the algorithm of the present invention shows superior performance when the length of the subblock is smaller than 128 compared with the conventional algorithm. Comparing the performance when the length of the subblock is 32, 64, 128, it can be seen that the performance of both algorithms is about 128, but the performance of the existing algorithm is lower than that of the proposed algorithm. While the conventional algorithm has a minimum subblock length of 128 that can be used without degrading performance, the algorithm of the present invention can have a subblock length of 32.

다음 표 2는 본 발명의 알고리즘의 성능 이득을 나타낸다.Table 2 below shows the performance gains of the algorithm of the present invention.

서브블록 길이Subblock length 도 3의 알고리즘(dB)Algorithm (dB) of FIG. 3 본발명의 알고리즘(dB)Algorithm of the Invention (dB) 성능이득(dB) (BER=10-4)Performance Gain (dB) (BER = 10 -4 ) 1616 2.522.52 2.202.20 0.320.32 3232 2.252.25 2.082.08 0.170.17 6464 2.122.12 2.042.04 0.080.08 128128 2.052.05 2.022.02 0.030.03 256256 2.032.03 2.022.02 0.010.01 Full SizeFull Size 2.022.02 2.022.02 --

서브 블록의 길이가 128이상이면 성능차가 거의 없지만 64에서는 0.08dB, 32에서는 0.17dB, 16에서는 0.32dB의 성능 이득이 생긴다. 또한 본 발명의 알고리즘의 서브 블록 32의 성능과 종래의 알고리즘의 서브블록 128의 성능이 거의 같음을 알 수 있다. 이는 곧 시간 지연을 줄이기 위해 종래의 알고리즘보다 1/4 길이의 서브블록을 적용할 수 있음을 의미한다. 복호 지연은 서브블록의 길이에 비례함으로 서브블록의 길이를 1/4로 줄일 수 있다는 것은 복호 지연을 마찬가지로 75% 줄일 수 있다는 것과 같게 된다.If the length of the subblock is more than 128, there is little performance difference, but there is a performance gain of 0.08dB at 64, 0.17dB at 32, and 0.32dB at 16. In addition, it can be seen that the performance of the subblock 32 of the algorithm of the present invention is substantially the same as the performance of the subblock 128 of the conventional algorithm. This means that it is possible to apply a quarter length subblock to the conventional algorithm to reduce the time delay. Since the decoding delay is proportional to the length of the subblock, reducing the length of the subblock by 1/4 is equivalent to reducing the decoding delay by 75%.

표 3은 본 발명의 알고리즘과 종래의 알고리즘들이 갖는 복호 지연을 비교하여 놓은 것이다.Table 3 compares the decoding delays of the algorithm of the present invention and the conventional algorithms.

알고리즘algorithm 일반적인 MAP 알고리즘Common MAP Algorithm 도 3 알고리즘Fig. 3 algorithm 본 발명의 알고리즘Algorithm of the invention 성능저하 없는 서브블록 길이Subblock length without degradation -- 128128 3232 성능저하 없는 최소 복호지연 (ex) N=1024Minimum decoding delay without performance degradation (ex) N = 1024 O(N)=1O (N) = 1 O(N/W)=1/8O (N / W) = 1/8 O(N/W)=1/32O (N / W) = 1/32

복호 지연을 작게 하기 위해 짧은 블록 길이를 갖는 서브 블록을 사용하면 성능 저하가 발생한다. 따라서 성능 저하 없이 가능한 최소의 서브 블록의 길이가 그 알고리즘의 복호지연을 결정한다. 표 3은 알고리즘이 결정 지울수 있는 최소의 복호지연을 비교하여 놓았다. O(·)는 복호지연의 함수를 뜻하고 파라미터(·)에 비례하는 함수이다. 일반적인 터보 복호는 전체 블록의 FSM와 BSM을 구하고 EI를 구하기 때문에 복호지연 함수가 전체 데이터 블록의 길이 N의 함수로 결정되는데 반해 종래의 복호 알고리즘과 본 발명의 알고리즘은 L(=N/W)의 함수로 결정된다. 이때 복호지연 함수 O(N)를 1로 가정하면 종래의 알고리즘과 본 발명의 알고리즘의 복호지연은 1/L이 된다. 이때 성능 저하 없는 최소의 서브 블록의 길이로 각 알고리즘의 복호 지연을 비교하면, N=1024일 때 도 3의 종래의 알고리즘에 의하면 1/8이 되고 본 발명의 알고리즘에 의하면 1/32이 된다. 결국 본 발명의 알고리즘은 종래의 알고리즘의 복호지연을 75%정도 줄일 수 있다.Using a subblock with a short block length to reduce the decoding delay causes performance degradation. Therefore, the minimum length of subblock possible without degrading performance determines the decoding delay of the algorithm. Table 3 compares the minimum decoding delay that the algorithm can determine. O (·) is a function of decoding delay and is proportional to the parameter (·). In general turbo decoding, since the FSM and BSM of the entire block are obtained and EI is obtained, the decoding delay function is determined as a function of the length N of the entire data block, whereas the conventional decoding algorithm and the algorithm of the present invention use L (= N / W). Determined by a function If the decoding delay function O (N) is assumed to be 1, the decoding delay of the conventional algorithm and the algorithm of the present invention is 1 / L. At this time, when the decoding delays of the respective algorithms are compared with the length of the minimum sub-block without degrading performance, when N = 1024, it becomes 1/8 according to the conventional algorithm of FIG. 3 and 1/32 according to the algorithm of the present invention. As a result, the algorithm of the present invention can reduce the decoding delay of the conventional algorithm by about 75%.

본 발명의 알고리즘을 시스템 차원에서 검증하기 위하여 IEEE 802.11a 무선 랜 시스템에 적용하여 성능 평가를 수행하였다. In order to verify the algorithm of the present invention at the system level, performance evaluation was performed by applying to an IEEE 802.11a wireless LAN system.

도 9 내지 도 13은 패이딩 채널 환경하에서 본 발명의 알고리즘과 도 3의 종래의 알고리즘을 IEEE 802.11a 무선 랜 시스템에 적용하여 수치모사한 성능평가 결과이다.9 to 13 show the results of numerical simulations by applying the algorithm of the present invention and the conventional algorithm of FIG. 3 to an IEEE 802.11a wireless LAN system in a fading channel environment.

IEEE 802.11 표준화 그룹에서는 5GHz 대역에서 6 - 54Mbps의 데이터 전송이 가능한 OFDM 방식의 고속 무선랜 시스템 표준인 IEEE 802.11a를 확정하였다. 이 시스템은 OFDM을 기반으로 가변 프레임 길이와 다양한 부호율을 지원하여 다양한 전송율을 갖는다.The IEEE 802.11 standardization group has established IEEE 802.11a, a high-speed wireless LAN system standard of OFDM method that can transmit data of 6 to 54Mbps in the 5GHz band. The system supports variable frame lengths and various code rates based on OFDM to achieve various data rates.

표 4는 IEEE 802.11a 무선랜 시스템에 적용할 터보 복호기의 파라미터를 정리한 것이다.Table 4 summarizes the parameters of the turbo decoder to be applied to the IEEE 802.11a WLAN system.

파라미터parameter value 터보 복호비Turbo Decoding Ratio 1/2, 2/3, 3/41/2, 2/3, 3/4 인터리버 크기Interleaver size 216216 서브 블록 길이Subblock length 18, 30, 45, 60, 10818, 30, 45, 60, 108 Generator PolynomialGenerator Polynomial (13, 15)8 (13, 15) 8 구속장Restraint 44 반복횟수Repeat count 44 인터리버 타입Interleaver Type S-random 인터리버S-random interleaver SISO 복호기SISO Decoder Max-Log-MAPMax-Log-MAP

표 4에서 볼 수 있듯이 내부 복호기의 알고리즘은 Max_Log_Map을 사용하여 하드웨어의 복잡도를 줄이고 성능이 우수하다고 알려진 S-random 인터리버를 사용하였다. 인터리버 길이와 반복 횟수는 모의 실험을 통해 성능과 하드웨어의 복잡도를 고려하여 결정하였다.As shown in Table 4, the algorithm of the internal decoder uses the S-random interleaver, which is known to reduce the complexity of the hardware by using Max_Log_Map and excellent performance. The interleaver length and the number of iterations were determined by simulation in consideration of the performance and hardware complexity.

IEEE 802.11a 무선 랜 시스템이 패킷 기반의 통신을 하기 때문에 PER로 성능 을 비교하였다. 모의 실험의 환경은 페이딩 채널, 64QAM, 3/4 부호율, 50,000개의 패킷이다. 이 실험 결과는 AWGN 채널보다 좀 더 열악한 채널 환경인 페이딩 채널에서 성능을 비교한 것이다.Since the IEEE 802.11a wireless LAN system is packet-based communication, the performance is compared by PER. The simulation environment is a fading channel, 64QAM, 3/4 code rate, 50,000 packets. The experimental results compare the performance in the fading channel, which is a worse channel environment than the AWGN channel.

도 9 내지 도 13은 각각 서브블록의 길이가 108, 60, 45, 30, 18 인 경우의 성능비교 결과 그래프이다.9 to 13 are graphs of performance comparison results when the lengths of subblocks are 108, 60, 45, 30, and 18, respectively.

도 9를 참조하면 본 발명의 알고리즘에 의하면 서브블록의 길이가 108인 경우 PER=10-2 에서 0.2dB의 성능이득을 얻는다.Referring to FIG. 9, according to the algorithm of the present invention, when the length of the subblock is 108, a performance gain of 0.2 dB is obtained at PER = 10 −2 .

도 10을 참조하면 본 발명의 알고리즘에 의하면 서브블록의 길이가 60인 경우 PER=10-2 에서 0.7dB의 성능이득을 얻는다.Referring to FIG. 10, according to the algorithm of the present invention, when the length of the subblock is 60, a performance gain of 0.7 dB is obtained at PER = 10 −2 .

도 11을 참조하면 본 발명의 알고리즘에 의하면 서브블록의 길이가 45인 경우 PER=10-2 에서 0.8dB의 성능이득을 얻는다.Referring to FIG. 11, according to the algorithm of the present invention, when the length of the subblock is 45, a performance gain of 0.8 dB is obtained at PER = 10 −2 .

도 12를 참조하면 본 발명의 알고리즘에 의하면 서브블록의 길이가 30인 경우 PER=10-2 에서 1.7dB의 성능이득을 얻는다.Referring to FIG. 12, according to the algorithm of the present invention, when the length of the subblock is 30, a performance gain of 1.7 dB is obtained at PER = 10 −2 .

도 13을 참조하면 본 발명의 알고리즘에 의하면 서브블록의 길이가 18인 경우 PER=10-2 에서 1.9dB의 성능이득을 얻는다. 그러나 서브블록의 길이가 18인 경우는 PER=10-2 에서의 SNR이 20.6dB 로서 급격히 증가하여, 성능이 저하되는 양상을 보인다. 본 발명의 알고리즘은 서브 블록의 길이가 30까지 가능하다.Referring to FIG. 13, according to the algorithm of the present invention, when the length of the subblock is 18, a performance gain of 1.9 dB is obtained at PER = 10 −2 . However, when the length of the subblock is 18, the SNR at PER = 10 -2 is rapidly increased to 20.6 dB, resulting in a performance degradation. The algorithm of the present invention can have a length of up to 30 subblocks.

표 5는 본 발명의 알고리즘을 IEEE 802.11a 무선랜 시스템에 적용하였을 때의 성능을 비교 평가한 결과이다.Table 5 shows the results of comparing and evaluating the performance of the algorithm of the present invention in the IEEE 802.11a wireless LAN system.

서브블록 길이Subblock length 종래의 알고리즘(dB)Conventional Algorithm (dB) 본발명의 알고리즘(dB)Algorithm of the Invention (dB) 성능이득(dB) (PER=10-2)Performance Gain (dB) (PER = 10 -2 ) 1818 22.522.5 20.620.6 1.91.9 3030 21.521.5 19.819.8 1.71.7 4545 20.520.5 19.719.7 0.80.8 6060 20.220.2 19.519.5 0.70.7 108108 19.619.6 19.419.4 0.20.2 Full SizeFull Size 19.419.4 19.419.4 --

서브 블록의 길이가 18일 때는 종래의 알고리즘보다 1.9dB의 성능 이득이 생기고, 30일때는 1.7dB, 45일때는 0.8dB, 60일때는 0.7dB, 108일때는 0.2dB의 성능 이득을 얻는다. 서브블록의 길이가 짧아질 수록 성능 저하가 심해지는 것을 알수 있다. 블록분할을 하지 않은 경우와 성능을 비교하면 종래의 알고리즘은 서브블록의 길이가 100이상이어야 하고 본 발명의 알고리즘은 30이상이면 된다. 복호 지연 관점에서 종래의 알고리즘의 108과 본 발명의 알고리즘의 30이 거의 같은 성능을 보이므로 성능 저하 없는 최소의 서브 블록의 길이를 사용하였을 때 본 발명의 알고리즘은 AWGN에서 실험 결과와 마찬가지로 복호 지연을 70% 정도 줄일 수 있다.When the length of the subblock is 18, a performance gain of 1.9 dB is obtained compared to the conventional algorithm, and a performance gain of 1.7 dB in 30, 0.8 dB in 45, 0.7 dB in 60, and 0.2 dB in 108 is obtained. It can be seen that the shorter the length of the subblock, the worse the performance. Comparing performance with the case of no block division, the conventional algorithm should have a subblock length of 100 or more and the algorithm of the present invention should be 30 or more. In view of the decoding delay, the conventional algorithm 108 and the algorithm 30 of the present invention exhibit almost the same performance. Therefore, when the minimum subblock length is used without deterioration, the algorithm of the present invention achieves the decoding delay like the experimental results in AWGN. It can be reduced by 70%.

도 14는 본 발명의 알고리즘이 적용되어 설계된 터보 복호기의 전체 블록도로서, 제어부(100), 입력버퍼(102), 8개의 SISO 블록(104-1 내지 104-8), 4개의 인터리버(106-1 내지 106-4), 4개의 디인터리버(108-1 내지 108-4), 경판정부(110), 출력버퍼(112), ROM 어드레스 생성부(114)를 구비한다.14 is a block diagram of a turbo decoder designed by applying the algorithm of the present invention, including a control unit 100, an input buffer 102, eight SISO blocks 104-1 to 104-8, and four interleavers 106-. 1 to 106-4, four deinterleavers 108-1 to 108-4, a hard decision unit 110, an output buffer 112, and a ROM address generator 114.

도 14의 터보 복호기는 입력버퍼(102)를 통하여 입력된 신호를 제어부(100) 의 제어하에 2개의 SISO 블록, 1개의 인터리버, 1개의 디인터리버 당 1회의 반복을 수행하여, 전체적으로 4회의 반복을 수행한다. 이 때, 각 인터리버와 디인터리버의 데이터 배열 및 재배열은 ROM 어드레스 생성부(114)의 제어하에 수행된다.The turbo decoder of FIG. 14 performs one iteration per two SISO blocks, one interleaver, and one deinterleaver under the control of the control unit 100 to control the signal input through the input buffer 102 to perform four iterations in total. Perform. At this time, the data arrangement and rearrangement of each interleaver and deinterleaver are performed under the control of the ROM address generator 114.

각 SISO 블록은 프로세서 역할을 하는 sub-SISO0 내지 sub-SISO7 을 구비한다. 각 sub-SISO 사이에는 각각의 경계 상태 매트릭값을 전달할 수 있는 레지스터(미도시)가 존재하여 인접한 sub-SISO 블록끼리 경계 상태 매트릭값을 전달하게 된다. 각 인터리버와 디인터리버는 S-random type으로 구현되는 경우 미리 발생시킨 주소값을 ROM 어드레스 생성부(114)에 저장하여 저장된 외부정보 값을 읽어 들일 때 이 주소 값을 참조한다. 도 14의 터보 복호기는 반복 복호를 위해 전체적으로 파이프라인 구조를 사용한다. 이 구조는 하드웨어의 복잡도를 증가시키지만 무선 통신등에서의 가변 프레임을 연속적으로 복호낼 수 있게 함으로써 높은 처리율(throughput)을 가능하게 하여 준다. 4번의 반복 복호를 위해 SISO가 8개를 직렬로 연결되어 있다.Each SISO block has sub-SISO0 to sub-SISO7 serving as a processor. Between each sub-SISO, there is a register (not shown) that can transfer each boundary state metric value, so that adjacent sub-SISO blocks transmit boundary state metric values between adjacent sub-SISO blocks. When the interleaver and the deinterleaver are implemented in the S-random type, the interleaver and the deinterleaver store the address value generated in advance in the ROM address generator 114 and refer to the address value when reading the stored external information value. The turbo decoder of FIG. 14 uses the pipeline structure as a whole for iterative decoding. This structure increases the complexity of the hardware, but enables high throughput by allowing the continuous decoding of variable frames in wireless communication and the like. Eight SISOs are connected in series for four iterative decoding.

도 15는 도 14의 각 sub-SISO 의 내부 구성의 일 실시예를 설명하기 위한 블록도로서, 브렌치 매트릭 결정부(200), 상태 매트릭 결정부(202)를 구비한다.FIG. 15 is a block diagram illustrating an example of an internal configuration of each sub-SISO of FIG. 14, and includes a branch metric determining unit 200 and a state metric determining unit 202.

브렌치 매트릭 결정부(200)는 시스테메틱 데이터(DATA_sys)와 부가 데이터(Data_re) 그리고 이전 반복의 외부 정보값(EIi-1)으로 브랜치 매트릭(BM)을 결정한다.The branch metric determiner 200 determines the branch metric BM based on the systematic data DATA_sys, the additional data Data_re, and the external information value EI i-1 of the previous iteration.

상태 매트릭 결정부(202)는 브랜치 매트릭(BM), 시스테메틱 데이터(DATA_sys), 이전 반복의 외부 정보값(EIi-1), 순방향 초기 상태 매트릭(Initial_FSM), 역방향 초기 상태 매트릭(Initial_BSM)값을 입력으로 받아 외부 정보값(EIi), 최종 순방향 상태 매트릭(Final_FSM), 최종 역방향 상태 매트릭(Final_BSM)을 결정한다.The state metric determiner 202 is a branch metric (BM), the systematic data (DATA_sys), the external information value (EI i-1 ) of the previous iteration, the forward initial state metric (Initial_FSM), the reverse initial state metric (Initial_BSM) The external information value (EI i ), the final forward state metric (Final_FSM), and the final reverse state metric (Final_BSM) are determined by receiving the value.

도 16은 도 15의 상태 매트릭 결정부의 내부 구성의 일 실시예를 설명하기 위한 블록도로서, 순방향 상태 매트릭 연산부(300), 역방향 상태 매트릭 연산부(302), 저장부(304), 외부정보값 연산부(306)를 구비한다.FIG. 16 is a block diagram illustrating an example of an internal configuration of the state metric determining unit of FIG. 15. The forward state metric calculating unit 300, the reverse state metric calculating unit 302, the storing unit 304, and the external information value calculating unit are illustrated. 306.

순방향 상태 매트릭 연산부(300)는 브렌치 매트릭(BM)과 순방향 초기 상태 매트릭(Initial_FSM)을 입력받아 순방향 상태 매트릭(FSM)을 계산하고, 마지막 반복이 완료되면 최종 순방향 상태 매트릭(Final_FSM)을 출력한다.The forward state metric calculator 300 receives the branch metric BM and the forward initial state metric (Initial_FSM), calculates the forward state metric (FSM), and outputs the final forward state metric (Final_FSM) when the last iteration is completed.

역방향 상태 매트릭 연산부(302)는 브렌치 매트릭(BM)과 역방향 초기 상태 매트릭(Initial_BSM)을 입력받아 역방향 상태 매트릭(BSM)을 계산하고, 마지막 반복이 완료되면 최종 역방향 상태 매트릭(Final_BSM)을 출력한다.The reverse state metric calculation unit 302 receives the branch metric BM and the reverse initial state metric B_, calculates the reverse state metric BSM, and outputs the final reverse state metric Final_BSM when the last iteration is completed.

저장부(304)는 역방향 상태 매트릭을 계산하는 동안 순방향 상태 매트릭(FSM)을 저장한다.The storage 304 stores the forward state metric (FSM) while calculating the reverse state metric.

외부정보값 연산부(306)는 순방향 상태 매트릭(FSM), 역방향 상태 매트릭(BSM), 시스테메틱 데이터(DATA_sys), 이전 반복의 외부 정보값(EIi-1)을 입력받아 외부정보값(EIi)을 결정한다.The external information value calculator 306 receives the forward state metric (FSM), the reverse state metric (BSM), the systematic data (DATA_sys), and the external information value (EI i-1 ) of the previous iteration. i )

도 15 및 도 16에 도시된 sub-SISO는 홀수번째와 짝수번째에서 FSM과 BSM이 계산되는 순서가 서로 반대이다. 즉 초기 상태로부터 하나의 반복 복호 과정은, 홀수번째 서브블록은 순방향 상태 매트릭 계산과정을 먼저 수행하고, 짝수번째 서브블록은 역방향 상태 매트릭 계산과정을 먼저 수행하한다. 그리고 나서 홀수번째 서브블록은 역방향 상태 매트릭 계산과정을 수행하고, 짝수번째 서브블록은 순방향 상태 매트릭 계산과정을 수행한다.In the sub-SISOs shown in FIGS. 15 and 16, the order in which FSMs and BSMs are calculated in odd and even numbers is reversed. That is, in one iterative decoding process from the initial state, the odd subblock performs the forward state metric calculation process first and the even subblock performs the reverse state metric calculation process first. Then, the odd-numbered subblocks perform the backward state metric calculation and the even-numbered subblocks perform the forward state metric calculation.

본 발명에 의한 터보 복호화를 위한 병렬 복호화 방법은, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 프로그램이나 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드디스크, 플로피디스크, 플래쉬 메모리, 광데이터 저장장치 등이 있다. 여기서, 기록매체에 저장되는 프로그램이라 함은 특정한 결과를 얻기 위하여 컴퓨터 등의 정보처리능력을 갖는 장치 내에서 직접 또는 간접적으로 사용되는 일련의 지시 명령으로 표현된 것을 말한다. 따라서, 컴퓨터라는 용어도 실제 사용되는 명칭의 여하에 불구하고 메모리, 입출력장치, 연산장치를 구비하여 프로그램에 의하여 특정의 기능을 수행하기 위한 정보처리능력을 가진 모든 장치를 총괄하는 의미로 사용된다.The parallel decoding method for turbo decoding according to the present invention can be implemented as computer readable codes on a computer readable recording medium. Computer-readable recording media include any type of recording device that stores programs or data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, hard disk, floppy disk, flash memory, optical data storage, and the like. Here, the program stored in the recording medium refers to a series of instruction instructions used directly or indirectly in an apparatus having an information processing capability such as a computer to obtain a specific result. Thus, the term computer is used to mean all devices having an information processing capability for performing a specific function by a program, including a memory, an input / output device, and an arithmetic device, regardless of the name actually used.

또한, 본 발명에 의한 터보 복호화를 위한 병렬 복호화 방법은, 컴퓨터상에서 스키매틱(schematic) 또는 초고속 집적회로 하드웨어 기술언어(VHDL, Verilog-HDL 등) 등에 의해 작성되고, 컴퓨터에 연결되어 프로그램 가능한 집적회로 예컨대 FPGA(Field Programmable Gate Array)에 의해 구현될 수 있다. 또한, 상기 기록매 체는 이러한 프로그램 가능한 집적회로 또는 ASIC(application specific integrated circuit)을 포함하는 개념이다.In addition, the parallel decoding method for turbo decoding according to the present invention is an integrated circuit which can be programmed in a schematic or ultra-high speed integrated circuit hardware description language (VHDL, Verilog-HDL, etc.) on a computer, and connected to a computer and programmable. For example, it may be implemented by a field programmable gate array (FPGA). In addition, the recording medium is a concept including such a programmable integrated circuit or ASIC (application specific integrated circuit).

이상 도면과 명세서에서 최적 실시예들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.The best embodiments have been disclosed in the drawings and specification above. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not used to limit the scope of the present invention as defined in the meaning or claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

상술한 바와 같이, 본 발명의 터보 복호화를 위한 병렬 복호화 방법 및 이를 사용한 터보 복호기에 의하면 다음과 같은 효과를 얻을 수 있다.As described above, according to the parallel decoding method for turbo decoding and the turbo decoder using the same, the following effects can be obtained.

첫째, 터보 복호화를 위한 병렬 복호화시에 훈련구간을 없앰으로써 시간 지연의 오버헤드가 없다. First, there is no overhead of time delay by eliminating training intervals in parallel decoding for turbo decoding.

둘째, 블록분할시 문제가 되는 초기 상태 매트릭값의 부정확성을 인접한 블록에서 계산된 경계 상태 매트릭값을 이용함으로써 종래의 알고리즘 보다 더 긴 훈련 구간을 두는 효과를 얻는다. 따라서 보다 더 짧은 서브블록의 길이에서도 성능 저하가 발생하지 않는다. 복호 지연은 서브블록의 길이에 비례한다. 따라서 본 발명에 의하면 더 작은 복호 지연을 갖는 터보 복호기 구현이 가능하다.Second, the inaccuracy of the initial state metric value, which is a problem in block division, is obtained by using a boundary state metric value calculated in an adjacent block, which results in a longer training interval than the conventional algorithm. Therefore, no performance degradation occurs even with a shorter length of the subblock. The decoding delay is proportional to the length of the subblock. Thus, the present invention enables the implementation of a turbo decoder with a smaller decoding delay.

본 발명의 복호화 방법을 이용하여 무선 랜 시스템에 적합한 터보 복호기를 설계한 결과 종래의 터보 복호기와 동일한 성능을 유지하면서도 복호 지연을 70% 줄일 수 있었다.As a result of designing a turbo decoder suitable for a wireless LAN system using the decoding method of the present invention, the decoding delay can be reduced by 70% while maintaining the same performance as a conventional turbo decoder.

본 발명은 이상에서 설명되고 도면들에 표현된 예시들에 한정되는 것은 아니다. 전술한 실시 예들에 의해 가르침 받은 당업자라면, 다음의 특허 청구 범위에 기재된 본 발명의 범위 및 목적 내에서 치환, 소거, 병합 등에 의하여 전술한 실시 예들에 대해 많은 변형이 가능할 것이다.The invention is not limited to the examples described above and represented in the drawings. Those skilled in the art taught by the above-described embodiments, many modifications to the above-described embodiments are possible by substitution, erasure, merging, etc. within the scope and object of the present invention described in the following claims.

Claims (9)

입력된 데이터 신호를 소정 개수의 서브블록으로 나누어 각각의 서브블록이 독립적으로 병렬처리되는 터보 복호화를 위한 병렬 복호화 방법에 있어서,A parallel decoding method for turbo decoding in which an input data signal is divided into a predetermined number of subblocks, and each subblock is independently processed in parallel. 성능 사양에 따라 소정 회수만큼 반복 복호 과정을 수행하며,Repeat the decoding process a predetermined number of times according to the performance specification, 하나의 반복 복호 과정은One iterative decoding process (a) 홀수번째 서브블록은 순방향 상태 매트릭 계산과정을 먼저 수행하고, 짝수번째 서브블록은 역방향 상태 매트릭 계산과정을 먼저 수행하는 단계;(a) odd-numbered subblocks perform a forward state metric calculation process first, and even-numbered subblocks perform a reverse state metric calculation process first; (b) 상기 (a)단계 후에, 홀수번째 서브블록은 역방향 상태 매트릭 계산과정을 수행하고, 짝수번째 서브블록은 순방향 상태 매트릭 계산과정을 수행하는 단계; 및(b) after step (a), odd-numbered subblocks perform backward state metric calculation and even-numbered subblocks perform forward state metric calculation; And (c) 상기 (b)단계와 동시에 상기 각 서브블록은 외부 정보값을 계산하는 단계를 구비하는 것을 특징으로 하는 것을 특징으로 하는 터보 복호화를 위한 병렬 복호화 방법.(c) parallel to the step (b), wherein each subblock comprises calculating an external information value. 제1항에 있어서, 상기 (b) 단계는The method of claim 1, wherein step (b) 상기 홀수번째 서브블록의 순방향 상태 매트릭 계산과정의 최종 상태값을 상기 짝수번째 서브블록의 순방향 상태 매트릭 계산과정의 초기 상태값으로 결정하고,The final state value of the forward state metric calculation process of the odd subblock is determined as an initial state value of the forward state metric calculation process of the even subblock. 상기 짝수번째 서브블록의 역방향 상태 매트릭 계산과정의 최종 상태값을 상기 홀수번째 서브블록의 역방향 상태 매트릭 계산과정의 초기 상태값으로 결정하는 것을 특징으로 하는 터보 복호화를 위한 병렬 복호화 방법.And determining a final state value of a reverse state metric calculation process of the even subblock as an initial state value of a reverse state metric calculation process of the odd subblock. 제1항에 있어서, 상기 서브블록의 크기는The method of claim 1, wherein the size of the subblock is AWGN 채널환경하에서 128보다 작은 것을 특징으로 하는 터보 복호화를 위한 병렬 복호화 방법.Parallel decoding method for turbo decoding characterized in that less than 128 in AWGN channel environment. 제1항에 있어서, 상기 서브블록의 크기는The method of claim 1, wherein the size of the subblock is AWGN 채널환경하에서 32 이상인 것을 특징으로 하는 터보 복호화를 위한 병렬 복호화 방법.Parallel decoding method for turbo decoding, characterized in that more than 32 in the AWGN channel environment. 제1항에 있어서, 상기 서브블록의 크기는The method of claim 1, wherein the size of the subblock is 무선랜 시스템에서 108보다 작은 것을 특징으로 하는 터보 복호화를 위한 병렬 복호화 방법.Parallel decoding method for turbo decoding, characterized in that less than 108 in the WLAN system. 제1항에 있어서, 상기 서브블록의 크기는The method of claim 1, wherein the size of the subblock is 무선랜 시스템에서 30 이상인 것을 특징으로 하는 터보 복호화를 위한 병렬 복호화 방법.Parallel decoding method for turbo decoding, characterized in that more than 30 in the WLAN system. 두 개의 구성 복호기를 인터리버와 디인터리버에 의해 연결한 구조의 터보 복호기에 있어서, 상기 각 구성 복호기는 독립적으로 병렬처리를 수행하는 소정 개수의 서브블록을 구비하고,In a turbo decoder having a structure in which two component decoders are connected by an interleaver and a deinterleaver, each of the component decoders includes a predetermined number of subblocks for performing parallel processing independently. 상기 터보 복호기가 수행하는 소정 횟수의 반복 복호 과정 중 하나의 반복 복호 과정에서,In one iterative decoding process of a predetermined number of iterative decoding processes performed by the turbo decoder, 홀수번째 서브블록은 순방향 상태 매트릭 계산과정을 먼저 수행하고, 짝수번째 서브블록은 역방향 상태 매트릭 계산과정을 먼저 수행하고,Odd-numbered subblocks perform forward state metric calculation first, and even-numbered subblocks perform reverse state metric calculation first. 다음으로, 홀수번째 서브블록은 역방향 상태 매트릭 계산과정을 수행하고, 짝수번째 서브블록은 순방향 상태 매트릭 계산과정을 수행하고, 상기 각 서브블록은 외부 정보값을 계산하는 것을 특징으로 하는 터보 복호기.Next, the odd-numbered subblocks perform a reverse state metric calculation process, the even-numbered subblocks perform a forward state metric calculation process, and each of the subblocks calculates an external information value. 제7항에 있어서,The method of claim 7, wherein 상기 홀수번째 서브블록의 순방향 상태 매트릭 계산의 최종 상태값을 상기 짝수번째 서브블록의 순방향 상태 매트릭 계산의 초기 상태값으로 사용하고,Using the final state value of the forward state metric calculation of the odd subblock as an initial state value of the forward state metric calculation of the even subblock, 상기 짝수번째 서브블록의 역방향 상태 매트릭 계산의 최종 상태값을 상기 홀수번째 서브블록의 역방향 상태 매트릭 계산의 초기 상태값으로 사용하는 것을 특징으로 하는 터보 복호기.And a final state value of a reverse state metric calculation of the even subblock is used as an initial state value of a reverse state metric calculation of the odd subblock. 제1항 내지 제6항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method of any one of claims 1 to 6.
KR1020040047646A 2004-06-24 2004-06-24 Parallel Decoding Method for Turbo Decoding and Turbo Decoder Using the Same Expired - Fee Related KR100627723B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040047646A KR100627723B1 (en) 2004-06-24 2004-06-24 Parallel Decoding Method for Turbo Decoding and Turbo Decoder Using the Same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040047646A KR100627723B1 (en) 2004-06-24 2004-06-24 Parallel Decoding Method for Turbo Decoding and Turbo Decoder Using the Same

Publications (2)

Publication Number Publication Date
KR20050122521A KR20050122521A (en) 2005-12-29
KR100627723B1 true KR100627723B1 (en) 2006-09-25

Family

ID=37294332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040047646A Expired - Fee Related KR100627723B1 (en) 2004-06-24 2004-06-24 Parallel Decoding Method for Turbo Decoding and Turbo Decoder Using the Same

Country Status (1)

Country Link
KR (1) KR100627723B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101110201B1 (en) 2007-10-31 2012-02-15 연세대학교 산학협력단 Parallel Latin Dustproof Interleaving Method and Device in Communication System

Also Published As

Publication number Publication date
KR20050122521A (en) 2005-12-29

Similar Documents

Publication Publication Date Title
KR100860733B1 (en) Decoding device, decoding method, and receiving apparatus
US7530011B2 (en) Turbo decoding method and turbo decoding apparatus
JP4227481B2 (en) Decoding device and decoding method
US6892335B2 (en) Method for the optimization, under resource constraint, of the size of blocks of coded data
JP4874312B2 (en) Turbo code decoding apparatus, turbo code decoding method, and communication system
EP2313979B1 (en) Methods for programmable decoding of a plurality of code types
US20090172495A1 (en) Methods and Apparatuses for Parallel Decoding and Data Processing of Turbo Codes
JP2004343716A (en) Method for blind detection of transmission format of convolutionally encoded signal and decoder
US6807239B2 (en) Soft-in soft-out decoder used for an iterative error correction decoder
US20130007568A1 (en) Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
US8050363B2 (en) Turbo decoder and method for turbo decoding a double-binary circular recursive systematic convolutional encoded signal
US20070180351A1 (en) Decoding device, decoding method , and receiving apparatus
US8983008B2 (en) Methods and apparatus for tail termination of turbo decoding
KR100627723B1 (en) Parallel Decoding Method for Turbo Decoding and Turbo Decoder Using the Same
CN112332868A (en) Turbo parallel decoding method based on DVB-RCS2
US6857101B1 (en) Apparatus and method of storing reference vector of state metric
CN118041374A (en) Turbo code decoding method and decoder based on improved sliding window
JP4224370B2 (en) Input control apparatus and input control method
Weithoffer et al. Where to go from here? New cross layer techniques for LTE Turbo-Code decoding at high code rates
CN103701475B (en) Decoding method for Turbo codes with word length of eight bits in mobile communication system
US7200797B2 (en) Method and device for optimising, under performance constraint, the size of blocks of coded data
EP1094612B1 (en) SOVA Turbo decoder with decreased normalisation complexity
US6889353B2 (en) Method and arrangement for decoding convolutionally encoded code word
US20040181406A1 (en) Clamping and non linear quantization of extrinsic information in an iterative decoder
US7584407B2 (en) Decoder and method for performing decoding operation using map algorithm in mobile communication system

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R14-asn-PN2301

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

FPAY Annual fee payment

Payment date: 20110805

Year of fee payment: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20120919

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20120919

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000