KR101200073B1 - A channel encoder of wireless communication system - Google Patents

A channel encoder of wireless communication system Download PDF

Info

Publication number
KR101200073B1
KR101200073B1 KR1020060124539A KR20060124539A KR101200073B1 KR 101200073 B1 KR101200073 B1 KR 101200073B1 KR 1020060124539 A KR1020060124539 A KR 1020060124539A KR 20060124539 A KR20060124539 A KR 20060124539A KR 101200073 B1 KR101200073 B1 KR 101200073B1
Authority
KR
South Korea
Prior art keywords
value
encoder
output
bits
adder
Prior art date
Application number
KR1020060124539A
Other languages
Korean (ko)
Other versions
KR20070061437A (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 한국전자통신연구원
Publication of KR20070061437A publication Critical patent/KR20070061437A/en
Application granted granted Critical
Publication of KR101200073B1 publication Critical patent/KR101200073B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving

Abstract

본 발명은 와이브로 시스템의 채널 부호기에 관한 것이다.

와이브로 규격에서 채널 부호기는 CRC 부호기, 랜덤화기, CTC 부호기, 인터리버, 심볼선택기 등으로 이루어지고 있다. 본 발명은 각 블록들에 대하여 병렬 데이터 처리를 위한 하드웨어 구조를 제시함으로써, 와이브로 시스템에서 요구하는 고속의 데이터를 효율적으로 처리할 수 있다.

Figure R1020060124539

와이브로, CTC, 터보, 부호화, 인터리버

The present invention relates to a channel encoder of a WiBro system.

In the WiBRO standard, a channel encoder is composed of a CRC encoder, a randomizer, a CTC encoder, an interleaver, a symbol selector, and the like. The present invention can efficiently process high-speed data required by a WiBro system by providing a hardware structure for parallel data processing for each block.

Figure R1020060124539

WiBro, CTC, Turbo, Coding, Interleaver

Description

무선 통신 시스템의 채널 부호기{A CHANNEL ENCODER OF WIRELESS COMMUNICATION SYSTEM}Channel encoder in wireless communication system {A CHANNEL ENCODER OF WIRELESS COMMUNICATION SYSTEM}

도 1은 종래 와이브로 시스템의 채널 부호기의 구조를 나타내는 도면이다. 1 is a diagram illustrating a structure of a channel encoder of a conventional WiBro system.

도 2는 종래 CRC 부호기를 나타내는 도면이다. 2 is a diagram illustrating a conventional CRC coder.

도 3은 종래 CTC 부호기를 나타내는 도면이다. 3 is a diagram illustrating a conventional CTC encoder.

도 4는 본 발명의 실시예에 따른 와이브로 시스템의 채널 부호기의 개략적인 구조를 나타내는 도면이다.4 is a diagram illustrating a schematic structure of a channel encoder of a WiBro system according to an embodiment of the present invention.

도 5는 본 발명의 실시예에 따른 CRC 부호기를 나타내는 도면이다. 5 is a diagram illustrating a CRC coder according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 랜덤화기를 나타내는 도면이다. 6 is a diagram illustrating a randomizer according to an embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 병렬 길쌈 부호기를 나타내는 도면이다. 7 is a diagram illustrating a parallel convolutional encoder according to an embodiment of the present invention.

도 8은 본 발명의 실시예에 따른 CTC 부호기를 나타내는 도면이다. 8 is a diagram illustrating a CTC encoder according to an embodiment of the present invention.

도 9는 본 발명의 실시예에 따른 인터리버를 나타내는 도면이다 . 9 illustrates an interleaver according to an embodiment of the present invention.

본 발명은 무선 통신 시스템의 채널 부호기에 관한 것으로서, 특히 와이브로 통신 시스템의 채널 부호기에 관한 것이다. The present invention relates to a channel encoder of a wireless communication system, and more particularly to a channel encoder of a WiBro communication system.

일반적으로 유무선 디지털 통신 시스템에서 전송로상의 오류를 보정하기 위해, 송신단은 정보비트에 부가 비트를 첨부하고 수신단은 오류 정정 알고리즘을 이용하여 오류를 보정한다. 이러한 오류정정알고리즘의 하나로서 터보코드(Turbo Code)가 사용된다. 일반적인 터보 코드에서는 부호기가 매 클럭마다 하나의 비트를 입력받아 처리하는 반면에, 길쌈 터보 코드(Convolutional Turbo Code; 이하 'CTC'라 함)에서는 매 클럭마다 2개의 비트를 입력받아 처리한다. CTC는 최근 연구가 진행되고 있는 802.16e의 채널 코덱으로서 채택되어 있고, 와이브로 시스템 ('개인 휴대 인터넷(HPI) 시스템'이라고 도 함)에도 채택되고 있다.In general, in order to correct an error on a transmission path in a wired or wireless digital communication system, a transmitting end adds an additional bit to an information bit and a receiving end corrects an error using an error correction algorithm. Turbo code is used as one of such error correction algorithms. In a typical turbo code, an encoder receives and processes one bit every clock, whereas in a convolutional turbo code (CTC), two bits are received and processed every clock. CTC has been adopted as a channel codec of 802.16e, which is being studied in recent years, and has also been adopted in WiBro systems (also called 'HPI' systems).

이러한 오류정정 기능 수행을 위해 와이브로 시스템의 채널 부호기는 CRC 부호기(10), 랜덤화기(20), CTC 부호기(30), 인터리버(40), 심볼선택기(50) 및 반복부호기(60)를 포함한다. In order to perform the error correction function, the channel encoder of the WiBro system includes a CRC encoder 10, a randomizer 20, a CTC encoder 30, an interleaver 40, a symbol selector 50, and an iterative encoder 60. .

종래의 와이브로 시스템에 따르면, CRC 부호기(10) 및 랜덤화기(20)는 매 클럭마다 하나의 입력 비트를 받아 간단한 게이트 연산 후 하나의 비트를 출력하므로, 입력 비트 수가 N이라고 할 때 총 N개의 클럭이 소요된다. According to the conventional WiBro system, since the CRC encoder 10 and the randomizer 20 receive one input bit every clock and output one bit after a simple gate operation, a total of N clocks are assumed when the number of input bits is N. This takes

CTC 부호기(30)는 제1 길쌈 부호기에 대한 초기 상태 값을 찾기 위해 N/2 클럭, 제2 길쌈 부호기에 대한 초기 상태 값을 찾기 위해 N/2 클럭, 마지막으로 실제 부호화를 위해 N/2 클럭 등 총 3*N/2 클럭이 소요된다. 인터리버(40)는 CTC 부호기의 출력을 총 6개의 집합으로 나누어 각각에 대해 독립적으로 인터리빙을 수행하는데, CTC 부호기(30)의 출력 비트 수가 3*N이므로 인터리빙을 위해 필요한 클럭 수는 N/2이다.The CTC encoder 30 is N / 2 clock to find the initial state value for the first convolutional encoder, N / 2 clock to find the initial state value for the second convolutional encoder, and finally N / 2 clock for the actual encoding. It takes a total of 3 * N / 2 clocks. The interleaver 40 divides the output of the CTC encoder into six sets and performs interleaving independently for each. Since the number of output bits of the CTC encoder 30 is 3 * N, the number of clocks required for interleaving is N / 2. .

심볼 선택기(50)는 인터리빙된 결과를 OFDM 심볼의 부채널 단위에 맞도록 불필요한 비트를 잘라내는 역할을 수행하는데, 이에 소요되는 클럭 수는 부호화율에 비례하지만 천공이 발생하지 않는다고 가정할 때 3*N이다.The symbol selector 50 cuts out unnecessary bits to fit the interleaved result to subchannel units of an OFDM symbol, and assumes that the number of clocks is proportional to the coding rate but no puncturing occurs. N.

상기와 같이 종래의 와이브로 시스템에 따르면 입력되는 비트 수가 N이라고 할 때, 필요한 총 클럭 수는 총 7*N이다. 그러나 와이브로 시스템에서 한 프레임은 5ms이고 이 시간 내에 처리해야 할 정보 비트 수는 순방향 링크에서 최대 96,000 비트인데, 이를 부호화하는 데에는 클럭 주파수가 80MHz라 가정할 때 약 8.4ms가 소요된다. 따라서 종래의 설계기법으로는 와이브로 시스템에서 요구되는 고속의 데이터를 처리할 수 없다는 문제점이 있다. According to the conventional WiBro system as described above, when the number of input bits is N, the total number of required clocks is 7 * N in total. However, in a WiBro system, one frame is 5ms and the number of information bits to be processed within this time is 96,000 bits on the forward link. It takes about 8.4ms to assume that the clock frequency is 80MHz. Therefore, there is a problem that conventional design techniques cannot process the high speed data required by the WiBro system.

본 발명이 이루고자 하는 기술적 과제는 이와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 고속 처리가 가능한 구조를 제시하기 채널 부호기를 제공하기 위한 것이다. The technical problem to be achieved by the present invention is to solve the problems of the prior art, and to provide a channel encoder for presenting a structure capable of high-speed processing.

이와 같은 목적을 달성하기 위한 본 발명의 특징에 따른 채널부호기는 The channel encoder according to the characteristics of the present invention for achieving the above object is

N 비트의 데이터를 병렬로 입력받아 부가 비트를 첨부하는 CRC 부호기; 상기 CRC 부호기로부터 출력된 N 비트의 데이터를 병렬로 입력받아, 주기적인 데이터를 랜덤화시키는 랜덤화기; 상기 랜덤화기로부터 출력된 데이터에 대하여 특정된 포맷으로 정보 비트를 정해진 부호율에 따라 부호화를 수행하는 CTC 부호기; 및 상기 CTC 부호기로부터 출력된 데이터를 섞어서 출력하는 인터리버를 포함한다. A CRC encoder receiving N bits of data in parallel and attaching additional bits; A randomizer which receives N bits of data output from the CRC encoder in parallel and randomizes periodic data; A CTC encoder which encodes information bits according to a predetermined code rate in a format specified on data output from the randomizer; And an interleaver for mixing and outputting data output from the CTC encoder.

또한, 상기 채널부호기는 상기 인터리버로부터 출력된 데이터에 대하여 부호율을 맞추기 위해 불필요한 필요한 비트수를 잘라내는 심볼선택기; 및 상기 심볼선택기로부터 출력된 데이터를 정수배만큼 반복해서 출력하는 심볼 반복기를 추가로 포함할 수 있다. The channel encoder may further include: a symbol selector for cutting out the number of bits necessary to match a code rate with respect to data output from the interleaver; And a symbol repeater for repeatedly outputting data output from the symbol selector by an integer multiple.

여기서, 상기 채널 부호기는 802.16e 규격을 따를 수 있다. Here, the channel encoder can follow the 802.16e standard.

이때, 상기 CRC 부호기는 8 비트인 병렬 입력 데이터의 입력시 8 사이클에 대한 시프트 레지스트 상태를 기초로 설계될 수 있다. In this case, the CRC encoder may be designed based on a shift resist state for 8 cycles upon input of parallel input data having 8 bits.

또한, 상기 CTC 부호기는 순차 입력 데이터의 시퀀스를 섞어주는 인터리버; 상기 인터리버를 통해 출력된 인터리빙된 입력 시퀀스에 대하여 부호화를 수행한 후 최종 상태 값을 생성하는 직렬 길쌈 부호기; 상기 순차입력 데이터에 대하여 8 비트 단위로 부호화를 수행한 후 최종 상태값을 생성하며, 순차 입력 시퀀스에 대한 초기 상태값을 이용하여 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 1에 대한 부호화 비트를 생성하는 제1 병렬 길쌈 부호기; 상기 인터리빙된 입력 시퀀스에 대한 초기 상태값을 이용하여 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 2에 대한 부호화비트를 생성하는 제2 병렬 길쌈 부호기; 및 상기 직렬 길쌈 부호기 및 상기 제1 병렬 길쌈 부호기로부터 각각 출력되는 최종 상태값을 기초로 상기 제1 병렬 길쌈 부호기 및 상기 제2 병렬 길쌈 부호기의 부호화를 위한 초기 상태값을 결정하는 초기 상태값 결정부를 포함할 수 있다. The CTC encoder may further include an interleaver for mixing a sequence of sequential input data; A serial convolutional encoder for encoding an interleaved input sequence output through the interleaver and generating a final state value; After encoding the sequential input data in units of 8 bits, a final state value is generated, and an encoding is performed for the parity bit 1 by initializing an internal register using an initial state value for the sequential input sequence and performing encoding. A first parallel convolutional encoder for generating a; A second parallel convolutional encoder that initializes an internal register using an initial state value of the interleaved input sequence, and then performs encoding to generate encoded bits for parity bits 2; And an initial state value determiner configured to determine an initial state value for encoding the first parallel convolutional encoder and the second parallel convolutional encoder based on final state values respectively output from the serial convolutional encoder and the first parallel convolutional encoder. It may include.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상 세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다. DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention. Like parts are designated by like reference numerals throughout the specification.

본 발명의 실시예에 따르면, 상위 계층으로부터 구성되는 정보 비트의 최소 단위가 8비트인 것에 착안하여 각기 요소 블록의 구동 단위를 비트가 아닌 바이트로 하여 8배 빠른 동작이 가능하도록 한다. According to an embodiment of the present invention, the minimum unit of the information bits configured from the upper layer is 8 bits, so that 8 times faster operation is possible by using the driving unit of each element block as a byte rather than a bit.

본 발명의 실시예에 따른 와이브로 시스템의 채널 부호기는 도 4에 도시한 바와 같이, CRC 부호기(100), 랜덤화기(200), CTC 부호기(300), 인터리버(400), 심볼선택기(500) 및 반복부호기(600)를 포함한다. 도 4에 도시한 채널 부호기는 도 1에 도시한 부호기와 동일한 기능을 수행하나, 각 요소 블록들의 하드웨어는 후술하는 바와 같이 도 1의 채널 부호기와 다른 구조를 가진다. As shown in FIG. 4, the channel encoder of the WiBro system according to an embodiment of the present invention includes a CRC encoder 100, a randomizer 200, a CTC encoder 300, an interleaver 400, a symbol selector 500, and The repeater 600 is included. The channel encoder shown in FIG. 4 performs the same function as the encoder shown in FIG. 1, but the hardware of each element block has a structure different from that of the channel encoder of FIG.

본 발명의 실시예에 따른 CRC 부호기(100)는 HARQ(Hybrid Automatic Repeat reQuest) 모드인 경우에만 동작하며, 8비트(1바이트)의 데이터를 병렬로 입력받아 버스트 단위로 CRC(Cyclic Redundancy Code)를 첨부한다. 이때, CRC는 수신부에서 복호 완료 후 해당 복호 시퀀스의 에러 유무를 판단하는데 이용된다. The CRC encoder 100 according to an embodiment of the present invention operates only in a hybrid automatic repeat reQuest (HARQ) mode, and receives 8 bits (1 byte) of data in parallel to receive a cyclic redundancy code (CRC) in burst units. attach. In this case, the CRC is used by the receiver to determine whether an error of the corresponding decoding sequence is obtained after completion of decoding.

랜덤화기(200)는 CRC 부호기(100)로부터 출력된 8 비트의 데이터를 병렬로 입력받아, 전송할 데이터를 주파수 영역에서 관찰 했을 때 특정 주파수 성분이 커지지 않도록 하기 위해 모든 주파수 성분의 크기를 균일하게 하고 주기적인 데이터를 랜덤화시킨다. The randomizer 200 receives 8 bits of data output from the CRC encoder 100 in parallel, and uniformly sizes all frequency components so that a specific frequency component does not increase when the data to be transmitted is observed in the frequency domain. Randomize the periodic data.

CTC 부호기(300)는 랜덤화기(200)로부터 출력된 데이터에 대하여 무선 채널상에서 발생한 오류를 정정하기 위해 특정된 포맷으로 정보 비트를 정해진 부호율에 따라 부호화를 수행한다. The CTC encoder 300 encodes information bits according to a predetermined code rate in a specific format to correct an error occurring on a wireless channel with respect to data output from the randomizer 200.

인터리버(400)는 CTC 부호기(300)로부터 출력된 데이터를 섞어주어 연집(Burst)오류를 랜덤(Random)오류로 바꾸어 준다. 즉, 인터리버(400)는 어느 시간 대역폭에 모여 있는 오류를 더 큰 시간 대역폭으로 뒤섞어 주는 역할을 수행한다. The interleaver 400 mixes the data output from the CTC encoder 300 and converts a burst error into a random error. That is, the interleaver 400 mixes errors gathered in a certain time bandwidth into a larger time bandwidth.

심볼선택기(500)는 인터리버(400)로부터 출력된 데이터에 대하여 부호율을 맞추기 위해 불필요한 필요한 비트수를 잘라낸다. The symbol selector 500 cuts out the necessary number of bits necessary for matching the code rate with respect to the data output from the interleaver 400.

반복부호기(600)는 심볼선택기(500)로부터 출력된 데이터를 정수배만큼 반복해서 출력한다. 이는 셀 경계에서 성능 열화를 보상하기 위해 즉, CTC 부호화 이득만으로 수신 신호를 복호가 불가능할 때 이를 극복하기 위해 강력한 부호화 이득을 얻기 위한 것이다. The repeater 600 repeatedly outputs data output from the symbol selector 500 by an integer multiple. This is to obtain a strong encoding gain to compensate for performance degradation at the cell boundary, that is, to overcome when the received signal cannot be decoded with only the CTC encoding gain.

본 발명의 실시예에 따른 CRC 부호기(100)는 고속 처리를 위해 도 5에 도시한 바와 같이, 8비트 단위의 병렬 처리가 가능하도록 구현하였다. 이와 같이, 구현함으로써 종래의 CRC 부호기(10)보다 처리 속도를 N/8으로 감소시킬 수 있다.As illustrated in FIG. 5, the CRC encoder 100 according to the embodiment of the present invention is implemented to enable parallel processing in units of 8 bits. As such, the processing speed can be reduced to N / 8 than that of the conventional CRC encoder 10.

도 2에 도시한 종래의 CRC 부호기(10)는 시프트 레지스터(SR1, SR2, SR3)와 XOR 연산기(XOR1,XOR2, XOR3)를 이용하여 간단히 구현한다. 종래의 CRC 부호기(10)에 따르면, 입력 포트에 데이터를 순차적으로 넣고 모든 입력이 완료되면. 스위치는 "0"을 입력받도록 위치한다. 그 다음 레지스터가 입력데이터를 오른쪽으로 시프 트하고 인버터(INV)를 거친 값이 최종 CRC 출력이 된다. The conventional CRC encoder 10 shown in FIG. 2 is simply implemented by using the shift registers SR1, SR2, SR3 and the XOR operators XOR1, XOR2, XOR3. According to the conventional CRC encoder 10, when the data is sequentially put in the input port, all the input is completed. The switch is positioned to receive a "0". The register then shifts the input data to the right and the value passed through the inverter (INV) becomes the final CRC output.

그러나 이러한 종래의 CRC 부호기(10)는 고속 통신 시스템에서 수십 Mbps의 전송속도를 충족시키기 위해서는 병렬 구조를 채택하는 것이 불가피하다. However, such a conventional CRC encoder 10 is inevitable to adopt a parallel structure in order to meet the transmission rate of several tens of Mbps in a high speed communication system.

본 발명의 실시예에 따르면, CRC 부호기(100)는 상위 계층으로부터 구성되는 정보 비트의 최소 단위가 8비트인 것에 착안하여 8비트가 병렬로 입력되는 CRC 부호기(100)를 설계하였다. According to the exemplary embodiment of the present invention, the CRC encoder 100 has designed the CRC encoder 100 in which 8 bits are input in parallel, focusing on the fact that the minimum unit of the information bits configured from the upper layer is 8 bits.

8비트 CRC 부호기(100)를 설계하기 위해서는 도 2의 CRC 부호기(10)의 상태를 8클럭 사이클 동안 관찰해야 한다. 도 2에서, 입력 비트를 입력 순서대로 IN1, IN2,...IN8, 시프트 레지스터 값을 D1,D2,D3,...,D16이라 가정하고 M0에서부터 M7까지의 총 8 사이클에 대해 각 시프트 레지스터 값은 다음의 표와 같다. 여기에서 + 연산은 배타적 논리합(XOR) 연산을 의미한다. In order to design the 8-bit CRC encoder 100, the state of the CRC encoder 10 of FIG. 2 must be observed for 8 clock cycles. In Fig. 2, each shift register for a total of eight cycles from M0 to M7 assuming the input bits are IN1, IN2, ... IN8, and the shift register values are D1, D2, D3, ..., D16 in the order of input. The values are shown in the following table. The + operation here means an exclusive OR.

M0 입력 사이클M0 input cycle R1R1 R16+IN1R16 + IN1 R2R2 R1R1 R3R3 R2R2 R4R4 R3R3 R5R5 R4R4 R6R6 R5+R16+IN1R5 + R16 + IN1 R7R7 R6R6 R8R8 R7R7 R9R9 R8R8 R10R10 R9R9 R11R11 R10R10 R12R12 R11R11 R13R13 R12+R16+IN1R12 + R16 + IN1 R14R14 R13R13 R15R15 R14R14 R16R16 R15R15

M1 입력 사이클M1 input cycle R1R1 R15+IN2R15 + IN2 R2R2 R16+IN1R16 + IN1 R3R3 R1R1 R4R4 R2R2 R5R5 R3R3 R6R6 R4+R15+IN2R4 + R15 + IN2 R7R7 R5+R16+IN1R5 + R16 + IN1 R8R8 R6R6 R9R9 R7R7 R10R10 R8R8 R11R11 R9R9 R12R12 R10R10 R13R13 R11+R15+IN2R11 + R15 + IN2 R14R14 R12+R16+IN1R12 + R16 + IN1 R15R15 R13R13 R16R16 R14R14

M2 입력 사이클M2 input cycle R1R1 R14+IN3R14 + IN3 R2R2 R15+IN2R15 + IN2 R3R3 R16+IN1R16 + IN1 R4R4 R1R1 R5R5 R2R2 R6R6 R3+R14+IN3R3 + R14 + IN3 R7R7 R4+R15+IN2R4 + R15 + IN2 R8R8 R5+R16+IN1R5 + R16 + IN1 R9R9 R6R6 R10R10 R7R7 R11R11 R8R8 R12R12 R9R9 R13R13 R10+R14+IN3R10 + R14 + IN3 R14R14 R11+R15+IN2R11 + R15 + IN2 R15R15 R12+R16+IN1R12 + R16 + IN1 R16R16 R13R13

M3 입력 사이클M3 input cycle R1R1 R13+IN4R13 + IN4 R2R2 R14+IN3R14 + IN3 R3R3 R15+IN2R15 + IN2 R4R4 R16+IN1R16 + IN1 R5R5 R1R1 R6R6 R2+R13+IN4R2 + R13 + IN4 R7R7 R3+R14+IN3R3 + R14 + IN3 R8R8 R4+R15+IN2R4 + R15 + IN2 R9R9 R5+R16+IN1R5 + R16 + IN1 R10R10 R6R6 R11R11 R7R7 R12R12 R8R8 R13R13 R9+R13+IN4R9 + R13 + IN4 R14R14 R10+R14+IN3R10 + R14 + IN3 R15R15 R11+R15+IN2R11 + R15 + IN2 R16R16 R12+R16+IN1R12 + R16 + IN1

M4 입력 사이클M4 input cycle R1R1 R12+R16+IN1+IN5R12 + R16 + IN1 + IN5 R2R2 R13+IN4R13 + IN4 R3R3 R14+IN3R14 + IN3 R4R4 R15+IN2R15 + IN2 R5R5 R16+IN1R16 + IN1 R6R6 R1+R12+R16+IN1+IN5R1 + R12 + R16 + IN1 + IN5 R7R7 R2+R13+IN4R2 + R13 + IN4 R8R8 R3+R14+IN3R3 + R14 + IN3 R9R9 R4+R15+IN2R4 + R15 + IN2 R10R10 R5+R16+IN1R5 + R16 + IN1 R11R11 R6R6 R12R12 R7R7 R13R13 R8+R12+R16+IN1+IN5R8 + R12 + R16 + IN1 + IN5 R14R14 R9+R13+IN4R9 + R13 + IN4 R15R15 R10+R14+IN3R10 + R14 + IN3 R16R16 R11+R15+IN2R11 + R15 + IN2

M5 입력 사이클M5 input cycle R1R1 R10+R14+IN3+IN7R10 + R14 + IN3 + IN7 R2R2 R11+R15+IN2+IN6R11 + R15 + IN2 + IN6 R3R3 R12+R16+IN1+IN5R12 + R16 + IN1 + IN5 R4R4 R13+IN4R13 + IN4 R5R5 R14+IN3R14 + IN3 R6R6 R15+IN2+R10+R14+IN3+IN7R15 + IN2 + R10 + R14 + IN3 + IN7 R7R7 R16+IN1+R11+R15+IN2+IN6R16 + IN1 + R11 + R15 + IN2 + IN6 R8R8 R1+R12+R16+IN1+IN5R1 + R12 + R16 + IN1 + IN5 R9R9 R2+R13+IN4R2 + R13 + IN4 R10R10 R3+R14+IN3R3 + R14 + IN3 R11R11 R4+R15+IN2R4 + R15 + IN2 R12R12 R5+R16+IN1R5 + R16 + IN1 R13R13 R6+ R10+R14+IN3+IN7R6 + R10 + R14 + IN3 + IN7 R14R14 R7+R11+R15+IN2+IN6R7 + R11 + R15 + IN2 + IN6 R15R15 R8+R12+R16+IN1+IN5R8 + R12 + R16 + IN1 + IN5 R16R16 R9+R13+IN4R9 + R13 + IN4

M6 입력 사이클M6 input cycle R1R1 R10+R14+IN3+IN7R10 + R14 + IN3 + IN7 R2R2 R11+R15+IN2+IN6R11 + R15 + IN2 + IN6 R3R3 R12+R16+IN1+IN5R12 + R16 + IN1 + IN5 R4R4 R13+IN4R13 + IN4 R5R5 R14+IN3R14 + IN3 R6R6 R15+IN2+R10+R14+IN3+IN7R15 + IN2 + R10 + R14 + IN3 + IN7 R7R7 R16+IN1+R11+R15+IN2+IN6R16 + IN1 + R11 + R15 + IN2 + IN6 R8R8 R1+R12+R16+IN1+IN5R1 + R12 + R16 + IN1 + IN5 R9R9 R2+R13+IN4R2 + R13 + IN4 R10R10 R3+R14+IN3R3 + R14 + IN3 R11R11 R4+R15+IN2R4 + R15 + IN2 R12R12 R5+R16+IN1R5 + R16 + IN1 R13R13 R6+ R10+R14+IN3+IN7R6 + R10 + R14 + IN3 + IN7 R14R14 R7+R11+R15+IN2+IN6R7 + R11 + R15 + IN2 + IN6 R15R15 R8+R12+R16+IN1+IN5R8 + R12 + R16 + IN1 + IN5 R16R16 R9+R13+IN4R9 + R13 + IN4

M7 입력 사이클M7 input cycle R1R1 R9+R13+IN4+IN8R9 + R13 + IN4 + IN8 R2R2 R10+R14+IN3+IN7R10 + R14 + IN3 + IN7 R3R3 R11+R15+IN2+IN6R11 + R15 + IN2 + IN6 R4R4 R12+R16+IN1+IN5R12 + R16 + IN1 + IN5 R5R5 R13+IN4R13 + IN4 R6R6 R14+IN3+ R9+R13+IN4+IN8R14 + IN3 + R9 + R13 + IN4 + IN8 R7R7 R15+IN2+R10+R14+IN3+IN7R15 + IN2 + R10 + R14 + IN3 + IN7 R8R8 R16+IN1+R11+R15+IN2+IN6R16 + IN1 + R11 + R15 + IN2 + IN6 R9R9 R1+R12+R16+IN1+IN5R1 + R12 + R16 + IN1 + IN5 R10R10 R2+R13+IN4R2 + R13 + IN4 R11R11 R3+R14+IN3R3 + R14 + IN3 R12R12 R4+R15+IN2R4 + R15 + IN2 R13R13 R5+R16+IN1+ R9+R13+IN4+IN8R5 + R16 + IN1 + R9 + R13 + IN4 + IN8 R14R14 R6+ R10+R14+IN3+IN7R6 + R10 + R14 + IN3 + IN7 R15R15 R7+R11+R15+IN2+IN6R7 + R11 + R15 + IN2 + IN6 R16R16 R8+R12+R16+IN1+IN5R8 + R12 + R16 + IN1 + IN5

위의 표를 이용하여 8 비트의 입력시 8 사이클에 대한 시프트 레지스터 상태를 알 수 있으며, 표 8에 도시한 최종 M7에 대하여 하드웨어를 구성하면 도 5와 같게 된다. Using the table above, the shift register state for 8 cycles can be known when 8 bits are inputted. If the hardware is configured for the final M7 shown in Table 8, it is as shown in FIG.

도 5에 도시된 CRC 부호기(100)에서, 도면 부호 110은 8 비트 병렬 데이터이고, 도면 부호 120은 시프트 레지스터 값이다. 그리고 도면 부호 130은 연산부를 의미하는데, 연산부(130)는 표 8에 해당하는 입력데이터와 시프트 레지스트 값과의 XOR 연산을 수행한다. 본 발명의 실시예에서는 연산부(130)의 자세한 구조를 도시하지 않았으나, 표 8에 해당하는 값을 얻기 위한 연산부(130)의 하드웨어 구조는 본 발명이 속하는 기술분야의 전문가라면 쉽게 알 수 있으므로 이에 대한 자세한 설명은 생략한다. In the CRC encoder 100 shown in FIG. 5, reference numeral 110 is 8-bit parallel data, and reference numeral 120 is a shift register value. In addition, reference numeral 130 denotes an operation unit, and the operation unit 130 performs an XOR operation on the input data and the shift register values corresponding to Table 8. In the embodiment of the present invention, the detailed structure of the operation unit 130 is not shown, but the hardware structure of the operation unit 130 for obtaining values corresponding to Table 8 can be easily understood by those skilled in the art. Detailed description will be omitted.

또한, 본 발명의 실시예에 따른 랜덤화기(200)도 6에 도시한 바와 같이 8비트 병렬 처리 구조로 구현하였으며, 이에 따라 처리 속도를 N/8로 감소시킬 수 있다. 이러한 랜덤화기(200)의 설계는 이전의 CRC 부호기(100)에 대한 설명으로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 알 수 있으므로 이에 대한 자세한 설명은 생략한다. In addition, the randomizer 200 according to the embodiment of the present invention is also implemented as an 8-bit parallel processing structure, as shown in FIG. 6, thereby reducing the processing speed to N / 8. Since the design of the randomizer 200 can be easily understood by those skilled in the art from the previous description of the CRC coder 100, a detailed description thereof will be omitted.

한편, 도 3은 일반적인 CTC 부호기(30)로서, 부호율 1/3인 CTC 부호기를 나타내고 있다. 도 3에서, CTC 부호기(30)는 인터리버(31), 제1 길쌈부호기(32), 제2 길쌈부호기(33) 및 병렬/직렬 변환기(34)를 포함한다. 3 shows a CTC encoder having a code rate 1/3 as a general CTC encoder 30. In FIG. 3, the CTC encoder 30 includes an interleaver 31, a first convolutional encoder 32, a second convolutional encoder 33, and a parallel / serial converter 34.

도 3에 따르면, A 및 B가 입력되는 정보 비트 열로부터 제1 길쌈부호기(32)를 통해 패리티 비트(Parity bit;잉여 비트) Y1와 W1가 생성되어 출력된다. 또한, 입력 A 및 B는 인터리버(31)에 의해 재배열 된 후, 제1 길쌈 부호기(32)와 병렬 연결된 제2 길쌈 부호기(33)를 통해 패리티 비트 Y2와 W2가 생성되어 출력된다. 그리고 입력 A, B는 그대로 부호화되지 않은 C1, C2로서 출력한다. 이렇게 생성된 패리티 비트(Y1, W1, Y2, W2) 및 부호화되지 않은 심볼(C1, C2)은 병/직렬 변환부(34)를 통해 직렬로 변환되어 하나의 출력심볼이 생성된다.According to FIG. 3, parity bits Y1 and W1 are generated and output from the information bit strings to which A and B are input through the first convolutional encoder 32. In addition, after the inputs A and B are rearranged by the interleaver 31, parity bits Y2 and W2 are generated and output through the second convolutional encoder 33 connected in parallel with the first convolutional encoder 32. The inputs A and B are output as C1 and C2 which are not encoded as they are. The parity bits Y1, W1, Y2, and W2 generated in this way and the uncoded symbols C1 and C2 are serially converted by the parallel / serial converter 34 to generate one output symbol.

본 발명의 실시예에 따르면 종래 CTC 부호기(30) 내부의 두 개의 길쌈 부호기(32, 33)를 도 7에 도시한 바와 같이 8비트 병렬 처리 구조로 구현할 수 있다.According to an embodiment of the present invention, two convolutional encoders 32 and 33 in the conventional CTC encoder 30 may be implemented in an 8-bit parallel processing structure as shown in FIG. 7.

즉, 본 발명의 실시예에 따른 CTC 부호기(300) 내부의 길쌈 부호기는 2비트 입력을 받아 처리하는 종래의 길쌈 부호기와 달리 8비트 단위로 입력을 받아 부호화를 수행한다. That is, the convolutional encoder inside the CTC encoder 300 according to the embodiment of the present invention receives an input in 8-bit units and performs encoding unlike a conventional convolutional encoder that receives and processes a 2-bit input.

8비트 병렬 길쌈 부호기를 설계하기 위해 도 3의 CTC 부호기(30)의 상태를 4 클럭 주기 동안 관찰해야 한다. 도 3에서 입력 비트를 각각 A, B, 지연 소자 값을 S1, S2, S3라 가정하고 데이터가 M0에서부터 M4까지 총 4주기에 대해 각 지연소자 및 패리티 출력 비트 값은 다음의 표 9 내지 표 12와 같다. 여기서 + 연산은 배타적 논리합(XOR) 연산을 의미한다.In order to design an 8-bit parallel convolutional encoder, the state of the CTC encoder 30 of FIG. 3 should be observed for four clock periods. In FIG. 3, assuming that the input bits are A, B, and the delay element values S1, S2, and S3, respectively, the delay and parity output bit values of the delay elements and the parity output bit values for four cycles from M0 to M4 are as follows. Same as Here, the + operation means an exclusive OR.

M0 입력 사이클M0 input cycle Y1Y1 A1+B1+S1+S2A1 + B1 + S1 + S2 W1W1 A1+B1+S1   A1 + B1 + S1 S1S1 A1+B1+S1+S3A1 + B1 + S1 + S3 S2S2 S1+B1S1 + B1 S3S3 S2+B1S2 + B1

M1 입력 사이클M1 input cycle Y2Y2 A2+B2+A1+S3A2 + B2 + A1 + S3 W2W2 A2+B2+A1+B1+S1+S3A2 + B2 + A1 + B1 + S1 + S3 S1S1 A2+B2+A1+S1+S3+S2A2 + B2 + A1 + S1 + S3 + S2 S2S2 B2+A1+B1+S1+S3B2 + A1 + B1 + S1 + S3 S3S3 B2+S1+B1B2 + S1 + B1

M2 입력 사이클  M2 input cycle Y3Y3 A3+B3+A2+S2+B1A3 + B3 + A2 + S2 + B1 W3W3 A3+B3+A2+A1+S3+S2 +B2+S1A3 + B3 + A2 + A1 + S3 + S2 + B2 + S1 S1S1 A3+B3+A2+A1+S3+S2+B1A3 + B3 + A2 + A1 + S3 + S2 + B1 S2S2 B3+ A2+B2+A1+S1+S3+S2B3 + A2 + B2 + A1 + S1 + S3 + S2 S3S3 B3+ B2+A1+B1+S1+S3B3 + B2 + A1 + B1 + S1 + S3

M3 입력 사이클 M3 input cycle Y4Y4 A4+B4+ A3+B1+ B2+S1A4 + B4 + A3 + B1 + B2 + S1 W4W4 A4+B4+ A3+A2 +B1+ B3+A1+S3+S2A4 + B4 + A3 + A2 + B1 + B3 + A1 + S3 + S2 S1S1 A4+B4+ A3+A2+S2+ B2+S1A4 + B4 + A3 + A2 + S2 + B2 + S1 S2S2 B4+ A3+B3+A2+A1+S3+S2+B1B4 + A3 + B3 + A2 + A1 + S3 + S2 + B1 S3S3 B4+ B3+ A2+B2+A1+S1+S3+S2B4 + B3 + A2 + B2 + A1 + S1 + S3 + S2

위의 표를 이용하여 8비트가 입력될 때, 4주기 동안의 부호화 비트 Y1,W1,Y2,W2,Y3,W3,Y4,W4를 얻을 수 있다. 지연 소자의 상태 값은 마지막 주기인 M3 주기의 S1,S2,S3가 된다. 이에 대한 하드웨어 구조는 도 7과 같다. When 8 bits are input using the above table, encoding bits Y1, W1, Y2, W2, Y3, W3, Y4, and W4 for four periods can be obtained. The state value of the delay element is S1, S2, S3 of the last period M3. The hardware structure thereof is shown in FIG. 7.

도 7에서, 도면 부호 310은 연산부를 의미하는데, 연산부(305)는 표 12에 해당하는 입력데이터와 지연 소자의 상태 값에 대하여 XOR 연산을 수행한다. 본 발명의 실시예에서는 연산부(305)의 자세한 구조를 도시하지 않았으나, 표 12에 해당하는 값을 얻기 위한 연산부(305)의 하드웨어 구조는 본 발명이 속하는 기술분야의 전문가라면 쉽게 알 수 있으므로 이에 대한 자세한 설명은 생략한다. In FIG. 7, reference numeral 310 denotes an operation unit. The operation unit 305 performs an XOR operation on the input data corresponding to Table 12 and the state values of the delay elements. Although the detailed structure of the operation unit 305 is not illustrated in the embodiment of the present invention, the hardware structure of the operation unit 305 for obtaining values corresponding to Table 12 may be easily understood by those skilled in the art. Detailed description will be omitted.

도 8은 본 발명의 실시예에 따른 CTC 부호기(300)를 나타내는 도면이다. 8 is a diagram illustrating a CTC encoder 300 according to an embodiment of the present invention.

도 8에 도시한 바와 같이, 본 발명의 실시예에 따른 CTC 부호기(300)는 인터리버(310), 직렬 길쌈 부호기(320), 초기 상태값 결정부(330), 메모리(340), 병렬 길쌈 부호기(350, 360), 역다중화기(375) 및 다중화기(380)를 포함한다. As shown in FIG. 8, the CTC encoder 300 according to the embodiment of the present invention includes an interleaver 310, a serial convolutional encoder 320, an initial state value determining unit 330, a memory 340, and a parallel convolutional encoder. 350, 360, demultiplexer 375, and multiplexer 380.

본 발명의 실시예에 따른 CTC 부호기(300)의 동작은 크게 두 단계로 나눌 수 있다. The operation of the CTC encoder 300 according to the embodiment of the present invention can be largely divided into two steps.

첫 번째 단계는 직렬길쌈 부호기(320)를 이용하여 인터리빙된 입력 시퀀스에 대한 길쌈 부호기 초기 상태값을 결정하고 순차적인 입력 시퀀스에 대한 병렬 길쌈 부호기(360)를 이용하여 길쌈 부호기 초기 상태값 결정하는 단계이다. The first step is to determine the convolutional encoder initial state value for the interleaved input sequence using the serial convolutional encoder 320 and to determine the convolutional encoder initial state value using the parallel convolutional encoder 360 for the sequential input sequence. to be.

두 번째 단계는 첫 번째 단계에서 결정된 초기 상태값으로 병렬길쌈부호기(350,360)의 상태값을 초기화시킨 후 순차적인 입력 시퀀스와 인터리빙된 입력 시퀀스에 대해 실제 부호화 과정을 수행하는 단계이다. The second step is to initialize the state values of the parallel convolutional encoders 350 and 360 to the initial state values determined in the first step, and then perform the actual encoding process on the sequential input sequence and the interleaved input sequence.

이를 보다 구체적으로 설명하면, 인터리버(310)를 통해 입력 시퀀스를 인터리빙 순서대로 읽어들여 초기 상태값이 '0'인 직렬길쌈부호기(320)를 이용하여 부호화를 수행 후 얻어진 최종 상태값을 초기상태값 결정부(330)로 전달한다. 또한 동시에 인터리빙된 비트에 대해 8비트 단위로 메모리(340)에 저장한다. 이에 대한 일련의 과정에는 N 클럭이 소요된다. More specifically, the final state value obtained after the encoding is performed using the serial convolutional encoder 320 having an initial state value of '0' and the input sequence is read in the interleaving order through the interleaver 310 to the initial state value. Transfer to the determination unit 330. At the same time, the interleaved bits are stored in the memory 340 in units of 8 bits. This process takes N clocks.

그리고나서, 순차적인 입력 시퀀스에 대한 초기 값을 찾기 위해 하단 병렬 길쌈 부호기(360)를 이용하여 8비트 단위로 부호화를 수행 후 최종 상태 값을 초기 상태값 결정부(330)로 전달한다. 이러한 동작에는 약 N/4 클럭이 소요된다. Then, in order to find an initial value for the sequential input sequence, encoding is performed in units of 8 bits using the lower parallel convolutional encoder 360, and then the final state value is transmitted to the initial state value determiner 330. This operation takes about N / 4 clocks.

초기 상태값 결정부(330)는 규격에 제시된 표를 이용하여 실제 부호화를 수행할 병렬길쌈부호기의 초기 상태값을 결정한다. 다음 앞서 결정된 순차적인 입력시퀀스에 대한 초기 상태값을 이용하여 하단 병렬길쌈부호기(360)의 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 1에 대한 부호화 비트를 얻고, 인터리빙된 입력 시퀀스에 대한 초기 상태값을 이용하여 상단 병렬길쌈부호기(350)의 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 2에 대한 부호화 비트를 얻는다. 이 과정은 동시에 진행되므로 약 N/4 클럭이 소요된다. 이러한 모든 과정은 N+N/4+N/4=1.5N 클럭이 소요된다.The initial state value determiner 330 determines an initial state value of the parallel convolutional encoder to perform actual encoding by using a table provided in the specification. Next, after initializing the internal register of the lower parallel convolutional encoder 360 by using the initial state values for the sequential input sequence determined above, encoding is performed to obtain an encoding bit for parity bit 1, and an initial stage for the interleaved input sequence. After the internal register of the upper parallel convolutional encoder 350 is initialized using the state value, encoding is performed to obtain an encoding bit for parity bit 2. This process takes place at the same time, so it takes about N / 4 clock. All of this takes N + N / 4 + N / 4 = 1.5N clocks.

한편, CTC 부호기의 인터리버에서 수행되는 인터리빙 알고리즘은 수학식 1에 나타난 바와 같이 두 단계로 이루어진다. Meanwhile, the interleaving algorithm performed in the interleaver of the CTC encoder has two steps as shown in Equation 1.

Figure 112006091076216-pat00001
Figure 112006091076216-pat00001

수학식 1에 나타낸 연산 과정은 모듈로 연산과 곱셈으로 이루어지기 때문에, 계산과정이 복잡하다는 문제점이 있다. 수학식 1은 다음의 수학식 2로 바꿀 수 있는데 수학식 2를 보면 덧셈 연산으로만 모든 과정이 이루어짐을 알 수 있다. Since the calculation process shown in Equation 1 is performed by modulo operation and multiplication, there is a problem that the calculation process is complicated. Equation 1 can be changed to the following Equation 2. Looking at Equation 2, it can be seen that all the processes are performed only by the addition operation.

Figure 112006091076216-pat00002
Figure 112006091076216-pat00002

이와 같은 수학식 2에 기재된 인터리빙 알고리즘에 기초하여 하드웨어를 구현하면 용이하게 구현할 수 있는데, 도 9는 본 발명의 실시예에 따른 인터리버의 하드웨어의 구조를 나타내는 도면이다. Hardware can be easily implemented based on the interleaving algorithm described in Equation 2, and FIG. 9 is a diagram illustrating a hardware structure of an interleaver according to an embodiment of the present invention.

인터리버 주소 생성은 수학식 2에서와 같이 두 단계로 나누어진다. 도 9는 이 두 단계 중 두 번째 단계(Step 2)에 관한 것이다.The interleaver address generation is divided into two steps as in Equation 2. 9 relates to the second of these two steps (Step 2).

도 9에 나타낸 바와 같이, 인터리버(310)는 카운터(312), 다중화기(311, 316, 322, 326), 덧셈기(313, 314, 318, 319, 324), 비교기(315, 321, 325) 및 D 플립플롭(313, 323)을 포함한다.As shown in FIG. 9, the interleaver 310 includes a counter 312, multiplexers 311, 316, 322, 326, adders 313, 314, 318, 319, 324, and comparators 315, 321, 325. And D flip-flops 313 and 323.

먼저, 카운터(312)는 0부터 1씩 증가하면서 코드 블록 사이즈의 1/2까지(N-1) 카운트한다. 그리고 다중화기(311)는 카운터 값의 최하위 2비트를 제어값으로 받아 상수 값(const)을 출력한다. 이때, 다중화기는 수학식 2와 같이, 최하위 비트가 "11"인 경우 상수 값으로서 "0"을 출력하고, 최하위 비트가 "00"인 경우 상수값으로서 N/2+P1을 출력하고, 최하위 비트가 "01"인 경우 상수값으로서 P2를 출력하고, 최하위 비트가 "10"인 경우 상수값으로서 N/2+P3를 출력한다. First, the counter 312 counts from N to 1 1/2 of the code block size in increments of 0 to 1. The multiplexer 311 receives the least significant 2 bits of the counter value as a control value and outputs a constant value const. In this case, as shown in Equation 2, the multiplexer outputs "0" as a constant value when the least significant bit is "11", outputs N / 2 + P1 as a constant value when the least significant bit is "00", and least significant bit. Is "01", P2 is output as a constant value, and when the least significant bit is "10", N / 2 + P3 is output as a constant value.

그리고 덧셈기(313, 314)와 비교기(315) 및 다중화기(316)를 통해 D 플립플롭(317)으로 입력되는 D+P0에 대해 N으로 모듈로 연산을 수행한다. 즉, 수학식 2와 같이, D+P0에서 N을 뺀 후 이값이 0보다 크면 비교기 출력으로 "1"을 발생시키고, 작으면 "0"을 발생시킨다. 이때, 비교기(315)의 출력이 "1"이면 다중화기(316)는 (D+P0)-N을 출력하고 비교기(315)의 출력이 "0"이면 다중화기(316)는 D+P0를 출력하여 D 플립플롭(317)에 저장한다.A modulo operation is performed at N with respect to D + P 0 input to the D flip-flop 317 through the adders 313 and 314, the comparator 315, and the multiplexer 316. That is, as shown in Equation 2, after subtracting N from D + P 0 , if the value is greater than 0, “1” is generated as a comparator output, and if it is smaller, “0” is generated. In this case, when the output of the comparator 315 is "1", the multiplexer 316 outputs (D + P 0 ) -N. When the output of the comparator 315 is "0", the multiplexer 316 is D + P. 0 is output and stored in the D flip-flop 317.

다음, 덧셈기(318)는 D 플립플롭(317)의 출력값과 다중화기(311)의 출력값을 입력받아 덧셈연산을 수행하여 Y값을 출력하고, 덧셈기(319)는 덧셈기(318)의 출력값 Y에 N을 뺀다. 비교기(321)는 덧셈기(319)의 출력 즉, Y에서 N을 뺀 값이 0 보다 큰지 작은지를 비교하여, Y에서 N을 뺀 값이 0 보다 크면 비교기 출력으로 "1" 을 발생시키고, 작으면 "0"을 발생시킨다. 이때, 비교기(321)의 출력이 "1"이면 다중화기(322)는 Y-N을 출력하고 비교기(322)의 출력이 "0"이면 다중화기(316)는 Y를 출력하여 D 플립플롭(323)에 저장한다.Next, the adder 318 receives the output value of the D flip-flop 317 and the output value of the multiplexer 311 and performs an addition operation to output the Y value, and the adder 319 is applied to the output value Y of the adder 318. Subtract N. The comparator 321 compares the output of the adder 319, i.e., Y minus N is greater than or less than 0. When Y minus N is greater than 0, a comparator output generates " 1 " Generates "0". In this case, when the output of the comparator 321 is "1", the multiplexer 322 outputs YN. When the output of the comparator 322 is "0", the multiplexer 316 outputs Y to D flip-flop 323. Store in

이후, 덧셈기(324)와 비교기(325) 및 다중화기(326)를 통해 인터리빙 주소가 출력된다. 이때, 덧셈기(324)의 입력값은 D 플립플롭(323)의 출력값이다. Thereafter, the interleaving address is output through the adder 324, the comparator 325, and the multiplexer 326. In this case, the input value of the adder 324 is an output value of the D flip-flop 323.

이처럼 본 발명의 실시예에 따르면, 인터리버(310)를 수학식 2와 같이 덧셈 연산을 통해 하드웨어를 구현하기 때문에, 하드웨어를 용이하게 구현할 수 있는 장점이 있다. As described above, according to the embodiment of the present invention, since the interleaver 310 implements hardware through an addition operation as shown in Equation 2, the hardware can be easily implemented.

한편, 본 발명의 실시예에 따른 심볼 선택기(500)의 동작은 상위 계층에서 오는 버스트가 바이트 단위로 패킹되기 때문에 심볼 선택 계산식에서 얻어진 주소의 하위 3비트를 버린 주소를 취함으로써 바이트 단위로 심볼 선택이 이루어지게 할 수 있다. 이렇게 함으로써 처리 속도를 3*N/8으로 감소 시킬 수 있다.On the other hand, in the operation of the symbol selector 500 according to the embodiment of the present invention, since the burst coming from the upper layer is packed in byte units, symbol selection is performed by byte unit by taking the address discarding the lower 3 bits of the address obtained from the symbol selection equation. This can be done. By doing this, the processing speed can be reduced to 3 * N / 8.

이와 같이, 본 발명의 실시예에 따르면 채널 부호기의 각 요소에 대하여 병렬적으로 하드웨어를 설계하기 때문에, 처리 속도를 빨리 구현할 수 있다는 효과가 있다. As described above, according to the embodiment of the present invention, since hardware is designed in parallel for each element of the channel encoder, there is an effect that the processing speed can be realized quickly.

이상에서 설명한 바와 같이, 본 발명에 따르면 와이브로 시스템의 채널부호기를 바이트 단위의 연산이 가능하도록 병렬적으로 구현함으로써, 처리속도를 향상시킬 수 있다. As described above, according to the present invention, the processing speed can be improved by implementing the channel encoder of the WiBro system in parallel so as to perform byte-based operations.

Claims (11)

N 비트의 데이터를 병렬로 입력받아 부가 비트를 첨부하는 CRC 부호기;A CRC encoder receiving N bits of data in parallel and attaching additional bits; 상기 CRC 부호기로부터 출력된 N 비트의 데이터를 병렬로 입력받아, 주기적인 데이터를 랜덤화시키는 랜덤화기; A randomizer which receives N bits of data output from the CRC encoder in parallel and randomizes periodic data; 상기 랜덤화기로부터 출력된 데이터에 대하여 특정된 포맷으로 정보 비트를 정해진 부호율에 따라 부호화를 수행하는 CTC 부호기; 및 A CTC encoder which encodes information bits according to a predetermined code rate in a format specified on data output from the randomizer; And 상기 CTC 부호기로부터 출력된 데이터를 섞어서 출력하는 인터리버를 포함하는 무선통신 시스템의 채널부호기.And a channel interleaver for mixing and outputting data output from the CTC encoder. 제1항에 있어서,The method of claim 1, 상기 인터리버로부터 출력된 데이터에 대하여 부호율을 맞추기 위해 불필요한 필요한 비트수를 잘라내는 심볼선택기; 및 A symbol selector for cutting out the necessary number of bits necessary for matching a code rate with respect to data output from the interleaver; And 상기 심볼선택기로부터 출력된 데이터를 정수배만큼 반복해서 출력하는 심볼 반복기를 추가로 포함하는 포함하는 무선통신 시스템의 채널부호기.And a symbol repeater for repeatedly outputting data output from the symbol selector by an integer multiple. 제2항에 있어서,3. The method of claim 2, 상기 채널 부호기는 802.16e 규격을 따르는 것을 특징으로 하는 무선통신 시스템의 채널부호기.The channel encoder according to the 802.16e standard channel encoder of the wireless communication system, characterized in that. 제3항에 있어서,The method of claim 3, 상기 CRC 부호기는 8 비트인 병렬 입력 데이터의 입력시 8 사이클에 대한 시프트 레지스트 상태를 기초로 설계되는 것을 특징으로 하는 무선통신 시스템의 채널부호기.Wherein the CRC encoder is designed based on a shift register state for eight cycles upon input of parallel input data of eight bits. 제3항에 있어서,The method of claim 3, 상기 심볼 선택기는 심볼 선택 계산식에서 얻어진 주소의 하위 3 비트를 버린 주소를 취함으로써 바이트 단위로 심볼 선택이 이루어지도록 하는 것을 특징으로 하는 무선통신 시스템의 채널부호기. The symbol selector is a channel encoder of a wireless communication system, characterized in that the symbol selection is made in units of bytes by taking an address discarding the lower 3 bits of the address obtained in the symbol selection formula. 제2항 내지 제5항 중 어느 한 항에 있어서, 6. The method according to any one of claims 2 to 5, 상기 CTC 부호기는 The CTC encoder 순차 입력 데이터의 시퀀스를 섞어주는 인터리버; An interleaver for mixing a sequence of sequential input data; 상기 인터리버를 통해 출력된 인터리빙된 입력 시퀀스에 대하여 부호화를 수행한 후 최종 상태 값을 생성하는 직렬 길쌈 부호기;A serial convolutional encoder for encoding an interleaved input sequence output through the interleaver and generating a final state value; 상기 순차입력 데이터에 대하여 8 비트 단위로 부호화를 수행한 후 최종 상태값을 생성하며, 순차 입력 시퀀스에 대한 초기 상태값을 이용하여 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 1에 대한 부호화 비트를 생성하는 제1 병렬 길쌈 부호기;After encoding the sequential input data in units of 8 bits, a final state value is generated, and an encoding is performed for the parity bit 1 by initializing an internal register using an initial state value for the sequential input sequence and performing encoding. A first parallel convolutional encoder for generating a; 상기 인터리빙된 입력 시퀀스에 대한 초기 상태값을 이용하여 내부 레지스터 를 초기화한 후 부호화를 수행하여 패리티비트 2에 대한 부호화비트를 생성하는 제2 병렬 길쌈 부호기; 및 A second parallel convolutional encoder that initializes an internal register by using an initial state value of the interleaved input sequence, and then performs encoding to generate encoded bits for parity bits 2; And 상기 직렬 길쌈 부호기 및 상기 제1 병렬 길쌈 부호기로부터 각각 출력되는 최종 상태값을 기초로 상기 제1 병렬 길쌈 부호기 및 상기 제2 병렬 길쌈 부호기의 부호화를 위한 초기 상태값을 결정하는 초기 상태값 결정부를 포함하는 무선통신 시스템의 채널부호기.An initial state value determiner configured to determine an initial state value for encoding the first parallel convolutional encoder and the second parallel convolutional encoder based on a final state value output from the serial convolutional encoder and the first parallel convolutional encoder, respectively A channel encoder of a wireless communication system. 제6항에 있어서, The method of claim 6, 상기 직렬 길쌈 부호기는 복수의 레지스터 및 복수의 배타적 논리합(XOR) 연산기를 포함하는 무선통신 시스템의 채널부호기.And said serial convolutional encoder comprises a plurality of registers and a plurality of exclusive ORs. 제6항에 있어서, The method of claim 6, 상기 제1 및 제2 병렬 길쌈 부호기는 8비트 단위로 입력받아 부호화하기 위하여 컨벌루션 터보 코드 부호화 장치의 상태를 4클럭 주기 동안 관찰하는 것을 특징으로 하는 무선통신 시스템의 채널부호기.And the first and second parallel convolutional encoders observe the state of the convolutional turbo coder for four clock periods in order to receive and encode the signal in units of 8 bits. 제8항에 있어서,9. The method of claim 8, 상기 제1 및 제2 병렬 길쌈 부호기는 입력 비트로서 8비트 병렬 데이터와 지연 소자 값이 데이터가 M0에서부터 M3까지 총 4주기에 대해 각 지연소자 및 패리티 출력 비트 값으로 8비트가 입력될 때, 4주기 동안의 부호화 비트를 얻을 수 있도록 구성된 것을 특징으로 하는 무선통신 시스템의 채널부호기.The first and second parallel convolutional encoders have 8-bit parallel data and delay element values as input bits, when 8 bits are input to each delay element and parity output bit value for four cycles of data from M0 to M3. A channel encoder of a wireless communication system, characterized in that configured to obtain coded bits during a period. 제6항에 있어서, The method of claim 6, 상기 CTC 부호기의 상기 인터리버는The interleaver of the CTC encoder is 순차적으로 증가시키면서 CTC 코드 블록 사이즈의 1/2까지 카운트하는 카운터;A counter that counts up to 1/2 of the CTC code block size while sequentially increasing; 상기 카운트 값의 최하위 2비트를 제어값으로 입력받아 상수값을 출력하는 제1 다중화기;A first multiplexer receiving a least two bits of the count value as a control value and outputting a constant value; 제1 값과 제2 값을 입력받아 덧셈하는 제1 덧셈기;A first adder configured to receive and add a first value and a second value; 상기 제1 덧셈기의 출력에 제3 값을 감산하는 제2 덧셈기;A second adder which subtracts a third value from the output of the first adder; 상기 제2 덧셈기로부터 출력된 값과 기준값을 비교하는 제1 비교기;A first comparator comparing a value output from the second adder with a reference value; 상기 제1 비교기의 비교 결과에 기초하여 제1 덧셈기의 출력 값 또는 제2 덧셈기의 출력 값 중 하나를 선택하는 제2 다중화기; 및 A second multiplexer for selecting one of an output value of a first adder or an output value of a second adder based on a comparison result of the first comparator; And 상기 제2 다중화기에 의해 선택되는 값을 저장하는 제1 플립플롭을 포함하는 무선통신 시스템의 채널부호기.And a first flip-flop for storing a value selected by said second multiplexer. 제10항에 있어서, The method of claim 10, 상기 플립플롭의 출력값과 상기 제1 다중화기의 출력값을 덧셈하는 제3 뎃셈기;A third multiplier for adding an output value of the flip flop and an output value of the first multiplexer; 상기 제3 덧셈기의 출력에 상기 제3 값을 감산하는 제4 덧셈기;A fourth adder which subtracts the third value from the output of the third adder; 상기 제4 덧셈기로부터 출력된 값과 상기 기준값을 비교하는 제2 비교기;A second comparator for comparing the value output from the fourth adder with the reference value; 상기 제2 비교기의 비교 결과에 기초하여 제3 덧셈기의 출력 값 또는 제4 덧셈기의 출력 값 중 하나를 선택하는 제3 다중화기; A third multiplexer for selecting one of an output value of a third adder or an output value of a fourth adder based on a comparison result of the second comparator; 상기 제3 다중화기에 의해 선택되는 값을 저장하는 제2 플립플롭; A second flip-flop that stores a value selected by the third multiplexer; 상기 제2 플립플롭의 출력 값에 상기 제3 값을 감산하는 제5 덧셈기;A fifth adder which subtracts the third value from an output value of the second flip-flop; 상기 제5 덧셈기의 출력값과 상기 기준 값을 비교하는 제3 비교기; 및A third comparator comparing the output value of the fifth adder and the reference value; And 상기 제3 제2 비교기의 비교 결과에 기초하여 제5 덧셈기의 출력 값 또는 상기 제2 플립플롭의 출력 값 중 하나를 선택하여 인터리빙 주소로서 출력하는 제4 다중화기를 포함하는 무선통신 시스템의 채널부호기.And a fourth multiplexer for selecting one of an output value of the fifth adder or an output value of the second flip-flop based on a comparison result of the third second comparator, and outputting the interleaved address as a fourth multiplexer.
KR1020060124539A 2005-12-08 2006-12-08 A channel encoder of wireless communication system KR101200073B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050119880 2005-12-08
KR20050119880 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061437A KR20070061437A (en) 2007-06-13
KR101200073B1 true KR101200073B1 (en) 2012-11-12

Family

ID=38357295

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060124539A KR101200073B1 (en) 2005-12-08 2006-12-08 A channel encoder of wireless communication system

Country Status (1)

Country Link
KR (1) KR101200073B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010009726A (en) * 1999-07-13 2001-02-05 정선종 Channel encoder in digital communication
KR20020058553A (en) * 2000-12-30 2002-07-12 엘지전자 주식회사 Apparatus for coding channel in Time Division Duplex Mode
JP2004282787A (en) * 2004-05-24 2004-10-07 Fujitsu Ltd Signal transmitting apparatus and encoding apparatus
KR20060071076A (en) * 2004-12-21 2006-06-26 한국전자통신연구원 A coding method of convolutional turbo code for high-speed personal internet system and apparatus thereof
KR100651847B1 (en) * 2005-09-05 2006-12-01 엘지전자 주식회사 Encoding and decoding apparatuses and methods of turbo code using multiple circular coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010009726A (en) * 1999-07-13 2001-02-05 정선종 Channel encoder in digital communication
KR20020058553A (en) * 2000-12-30 2002-07-12 엘지전자 주식회사 Apparatus for coding channel in Time Division Duplex Mode
JP2004282787A (en) * 2004-05-24 2004-10-07 Fujitsu Ltd Signal transmitting apparatus and encoding apparatus
KR20060071076A (en) * 2004-12-21 2006-06-26 한국전자통신연구원 A coding method of convolutional turbo code for high-speed personal internet system and apparatus thereof
KR100651847B1 (en) * 2005-09-05 2006-12-01 엘지전자 주식회사 Encoding and decoding apparatuses and methods of turbo code using multiple circular coding

Also Published As

Publication number Publication date
KR20070061437A (en) 2007-06-13

Similar Documents

Publication Publication Date Title
KR100711326B1 (en) Turbo code interleaver using linear congruential sequences
JP5457535B2 (en) Rate matching and channel interleaving for communication systems
JP3546063B2 (en) Channel coding apparatus and method for communication system
JP5133760B2 (en) Random access multi-direction CDMA2000 turbo code interleaver
US6766489B1 (en) Device and method of adapting turbocoders and the associated decoders to sequences of variable length
CN110999095B (en) Block-wise parallel freeze bit generation for polarization codes
JP2008219892A (en) Method and apparatus of encoding and decoding data
JP2004531116A (en) Interleaver for turbo decoder
KR101435830B1 (en) Method of performing interleaving
WO2009085871A2 (en) Efficient address generation for pruned interleavers and de-interleavers
US20160013812A1 (en) Systems and methods for network coding using convolutional codes
KR101143768B1 (en) Memory efficient interleaving/de-interleaving utilising the periodicity of the mapping function
US7734989B2 (en) Multi-standard turbo interleaver using tables
US20130007568A1 (en) Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
WO2011024032A1 (en) Device and method for turbo-encoding a block of data
KR100628201B1 (en) Method for Turbo Decoding
KR100912600B1 (en) Tail-biting turbo code for arbitrary number of information bits
KR20060121312A (en) Convolutional turbo code interleaver
KR101200073B1 (en) A channel encoder of wireless communication system
KR101286019B1 (en) Turbo encoder apparatus
KR101049947B1 (en) Convolutional Turbo Code Coding Device and Coding Method Using Convolutional Turbo Code
KR101968590B1 (en) Recursive systematic coding method, recursive systematic convolutional encoder and turbo encoder using the same
KR20080010736A (en) Appaturus and method for convolutional turbo codes encoding in broadband wireless access communication system
CN101142747A (en) Channel encoding with two tables containing two sub-systems of a Z system
de Figueiredo et al. LTE-advanced channel coding generic procedures a high-level model to guide low-level implementations

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151021

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171019

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 7