KR101200073B1 - A channel encoder of wireless communication system - Google Patents
A channel encoder of wireless communication system Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/22—Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
- H04L1/0042—Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
Abstract
본 발명은 와이브로 시스템의 채널 부호기에 관한 것이다.
와이브로 규격에서 채널 부호기는 CRC 부호기, 랜덤화기, CTC 부호기, 인터리버, 심볼선택기 등으로 이루어지고 있다. 본 발명은 각 블록들에 대하여 병렬 데이터 처리를 위한 하드웨어 구조를 제시함으로써, 와이브로 시스템에서 요구하는 고속의 데이터를 효율적으로 처리할 수 있다.
와이브로, 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.
WiBro, CTC, Turbo, Coding, Interleaver
Description
도 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 부호기(10) 및 랜덤화기(20)는 매 클럭마다 하나의 입력 비트를 받아 간단한 게이트 연산 후 하나의 비트를 출력하므로, 입력 비트 수가 N이라고 할 때 총 N개의 클럭이 소요된다. According to the conventional WiBro system, since the
CTC 부호기(30)는 제1 길쌈 부호기에 대한 초기 상태 값을 찾기 위해 N/2 클럭, 제2 길쌈 부호기에 대한 초기 상태 값을 찾기 위해 N/2 클럭, 마지막으로 실제 부호화를 위해 N/2 클럭 등 총 3*N/2 클럭이 소요된다. 인터리버(40)는 CTC 부호기의 출력을 총 6개의 집합으로 나누어 각각에 대해 독립적으로 인터리빙을 수행하는데, CTC 부호기(30)의 출력 비트 수가 3*N이므로 인터리빙을 위해 필요한 클럭 수는 N/2이다.The
심볼 선택기(50)는 인터리빙된 결과를 OFDM 심볼의 부채널 단위에 맞도록 불필요한 비트를 잘라내는 역할을 수행하는데, 이에 소요되는 클럭 수는 부호화율에 비례하지만 천공이 발생하지 않는다고 가정할 때 3*N이다.The
상기와 같이 종래의 와이브로 시스템에 따르면 입력되는 비트 수가 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
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상 세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다. 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 부호기(100)는 HARQ(Hybrid Automatic Repeat reQuest) 모드인 경우에만 동작하며, 8비트(1바이트)의 데이터를 병렬로 입력받아 버스트 단위로 CRC(Cyclic Redundancy Code)를 첨부한다. 이때, CRC는 수신부에서 복호 완료 후 해당 복호 시퀀스의 에러 유무를 판단하는데 이용된다. The
랜덤화기(200)는 CRC 부호기(100)로부터 출력된 8 비트의 데이터를 병렬로 입력받아, 전송할 데이터를 주파수 영역에서 관찰 했을 때 특정 주파수 성분이 커지지 않도록 하기 위해 모든 주파수 성분의 크기를 균일하게 하고 주기적인 데이터를 랜덤화시킨다. The
CTC 부호기(300)는 랜덤화기(200)로부터 출력된 데이터에 대하여 무선 채널상에서 발생한 오류를 정정하기 위해 특정된 포맷으로 정보 비트를 정해진 부호율에 따라 부호화를 수행한다. The
인터리버(400)는 CTC 부호기(300)로부터 출력된 데이터를 섞어주어 연집(Burst)오류를 랜덤(Random)오류로 바꾸어 준다. 즉, 인터리버(400)는 어느 시간 대역폭에 모여 있는 오류를 더 큰 시간 대역폭으로 뒤섞어 주는 역할을 수행한다. The
심볼선택기(500)는 인터리버(400)로부터 출력된 데이터에 대하여 부호율을 맞추기 위해 불필요한 필요한 비트수를 잘라낸다. The
반복부호기(600)는 심볼선택기(500)로부터 출력된 데이터를 정수배만큼 반복해서 출력한다. 이는 셀 경계에서 성능 열화를 보상하기 위해 즉, CTC 부호화 이득만으로 수신 신호를 복호가 불가능할 때 이를 극복하기 위해 강력한 부호화 이득을 얻기 위한 것이다. The
본 발명의 실시예에 따른 CRC 부호기(100)는 고속 처리를 위해 도 5에 도시한 바와 같이, 8비트 단위의 병렬 처리가 가능하도록 구현하였다. 이와 같이, 구현함으로써 종래의 CRC 부호기(10)보다 처리 속도를 N/8으로 감소시킬 수 있다.As illustrated in FIG. 5, the
도 2에 도시한 종래의 CRC 부호기(10)는 시프트 레지스터(SR1, SR2, SR3)와 XOR 연산기(XOR1,XOR2, XOR3)를 이용하여 간단히 구현한다. 종래의 CRC 부호기(10)에 따르면, 입력 포트에 데이터를 순차적으로 넣고 모든 입력이 완료되면. 스위치는 "0"을 입력받도록 위치한다. 그 다음 레지스터가 입력데이터를 오른쪽으로 시프 트하고 인버터(INV)를 거친 값이 최종 CRC 출력이 된다. The
그러나 이러한 종래의 CRC 부호기(10)는 고속 통신 시스템에서 수십 Mbps의 전송속도를 충족시키기 위해서는 병렬 구조를 채택하는 것이 불가피하다. However, such a
본 발명의 실시예에 따르면, CRC 부호기(100)는 상위 계층으로부터 구성되는 정보 비트의 최소 단위가 8비트인 것에 착안하여 8비트가 병렬로 입력되는 CRC 부호기(100)를 설계하였다. According to the exemplary embodiment of the present invention, the
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-
위의 표를 이용하여 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
또한, 본 발명의 실시예에 따른 랜덤화기(200)도 6에 도시한 바와 같이 8비트 병렬 처리 구조로 구현하였으며, 이에 따라 처리 속도를 N/8로 감소시킬 수 있다. 이러한 랜덤화기(200)의 설계는 이전의 CRC 부호기(100)에 대한 설명으로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 알 수 있으므로 이에 대한 자세한 설명은 생략한다. In addition, the
한편, 도 3은 일반적인 CTC 부호기(30)로서, 부호율 1/3인 CTC 부호기를 나타내고 있다. 도 3에서, CTC 부호기(30)는 인터리버(31), 제1 길쌈부호기(32), 제2 길쌈부호기(33) 및 병렬/직렬 변환기(34)를 포함한다. 3 shows a CTC encoder having a
도 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
본 발명의 실시예에 따르면 종래 CTC 부호기(30) 내부의 두 개의 길쌈 부호기(32, 33)를 도 7에 도시한 바와 같이 8비트 병렬 처리 구조로 구현할 수 있다.According to an embodiment of the present invention, two
즉, 본 발명의 실시예에 따른 CTC 부호기(300) 내부의 길쌈 부호기는 2비트 입력을 받아 처리하는 종래의 길쌈 부호기와 달리 8비트 단위로 입력을 받아 부호화를 수행한다. That is, the convolutional encoder inside the
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
위의 표를 이용하여 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,
도 8은 본 발명의 실시예에 따른 CTC 부호기(300)를 나타내는 도면이다. 8 is a diagram illustrating a
도 8에 도시한 바와 같이, 본 발명의 실시예에 따른 CTC 부호기(300)는 인터리버(310), 직렬 길쌈 부호기(320), 초기 상태값 결정부(330), 메모리(340), 병렬 길쌈 부호기(350, 360), 역다중화기(375) 및 다중화기(380)를 포함한다. As shown in FIG. 8, the
본 발명의 실시예에 따른 CTC 부호기(300)의 동작은 크게 두 단계로 나눌 수 있다. The operation of the
첫 번째 단계는 직렬길쌈 부호기(320)를 이용하여 인터리빙된 입력 시퀀스에 대한 길쌈 부호기 초기 상태값을 결정하고 순차적인 입력 시퀀스에 대한 병렬 길쌈 부호기(360)를 이용하여 길쌈 부호기 초기 상태값 결정하는 단계이다. The first step is to determine the convolutional encoder initial state value for the interleaved input sequence using the serial
두 번째 단계는 첫 번째 단계에서 결정된 초기 상태값으로 병렬길쌈부호기(350,360)의 상태값을 초기화시킨 후 순차적인 입력 시퀀스와 인터리빙된 입력 시퀀스에 대해 실제 부호화 과정을 수행하는 단계이다. The second step is to initialize the state values of the parallel
이를 보다 구체적으로 설명하면, 인터리버(310)를 통해 입력 시퀀스를 인터리빙 순서대로 읽어들여 초기 상태값이 '0'인 직렬길쌈부호기(320)를 이용하여 부호화를 수행 후 얻어진 최종 상태값을 초기상태값 결정부(330)로 전달한다. 또한 동시에 인터리빙된 비트에 대해 8비트 단위로 메모리(340)에 저장한다. 이에 대한 일련의 과정에는 N 클럭이 소요된다. More specifically, the final state value obtained after the encoding is performed using the serial
그리고나서, 순차적인 입력 시퀀스에 대한 초기 값을 찾기 위해 하단 병렬 길쌈 부호기(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
초기 상태값 결정부(330)는 규격에 제시된 표를 이용하여 실제 부호화를 수행할 병렬길쌈부호기의 초기 상태값을 결정한다. 다음 앞서 결정된 순차적인 입력시퀀스에 대한 초기 상태값을 이용하여 하단 병렬길쌈부호기(360)의 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 1에 대한 부호화 비트를 얻고, 인터리빙된 입력 시퀀스에 대한 초기 상태값을 이용하여 상단 병렬길쌈부호기(350)의 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 2에 대한 부호화 비트를 얻는다. 이 과정은 동시에 진행되므로 약 N/4 클럭이 소요된다. 이러한 모든 과정은 N+N/4+N/4=1.5N 클럭이 소요된다.The initial
한편, CTC 부호기의 인터리버에서 수행되는 인터리빙 알고리즘은 수학식 1에 나타난 바와 같이 두 단계로 이루어진다. Meanwhile, the interleaving algorithm performed in the interleaver of the CTC encoder has two steps as shown in
수학식 1에 나타낸 연산 과정은 모듈로 연산과 곱셈으로 이루어지기 때문에, 계산과정이 복잡하다는 문제점이 있다. 수학식 1은 다음의 수학식 2로 바꿀 수 있는데 수학식 2를 보면 덧셈 연산으로만 모든 과정이 이루어짐을 알 수 있다. Since the calculation process shown in
이와 같은 수학식 2에 기재된 인터리빙 알고리즘에 기초하여 하드웨어를 구현하면 용이하게 구현할 수 있는데, 도 9는 본 발명의 실시예에 따른 인터리버의 하드웨어의 구조를 나타내는 도면이다. Hardware can be easily implemented based on the interleaving algorithm described in
인터리버 주소 생성은 수학식 2에서와 같이 두 단계로 나누어진다. 도 9는 이 두 단계 중 두 번째 단계(Step 2)에 관한 것이다.The interleaver address generation is divided into two steps as in
도 9에 나타낸 바와 같이, 인터리버(310)는 카운터(312), 다중화기(311, 316, 322, 326), 덧셈기(313, 314, 318, 319, 324), 비교기(315, 321, 325) 및 D 플립플롭(313, 323)을 포함한다.As shown in FIG. 9, the
먼저, 카운터(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
그리고 덧셈기(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-
다음, 덧셈기(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
이후, 덧셈기(324)와 비교기(325) 및 다중화기(326)를 통해 인터리빙 주소가 출력된다. 이때, 덧셈기(324)의 입력값은 D 플립플롭(323)의 출력값이다. Thereafter, the interleaving address is output through the
이처럼 본 발명의 실시예에 따르면, 인터리버(310)를 수학식 2와 같이 덧셈 연산을 통해 하드웨어를 구현하기 때문에, 하드웨어를 용이하게 구현할 수 있는 장점이 있다. As described above, according to the embodiment of the present invention, since the
한편, 본 발명의 실시예에 따른 심볼 선택기(500)의 동작은 상위 계층에서 오는 버스트가 바이트 단위로 패킹되기 때문에 심볼 선택 계산식에서 얻어진 주소의 하위 3비트를 버린 주소를 취함으로써 바이트 단위로 심볼 선택이 이루어지게 할 수 있다. 이렇게 함으로써 처리 속도를 3*N/8으로 감소 시킬 수 있다.On the other hand, in the operation of the
이와 같이, 본 발명의 실시예에 따르면 채널 부호기의 각 요소에 대하여 병렬적으로 하드웨어를 설계하기 때문에, 처리 속도를 빨리 구현할 수 있다는 효과가 있다. 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)
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)
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 |
-
2006
- 2006-12-08 KR KR1020060124539A patent/KR101200073B1/en active IP Right Grant
Patent Citations (5)
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 |