KR20070061437A - 무선 통신 시스템의 채널 부호기 - Google Patents
무선 통신 시스템의 채널 부호기 Download PDFInfo
- Publication number
- KR20070061437A KR20070061437A KR1020060124539A KR20060124539A KR20070061437A KR 20070061437 A KR20070061437 A KR 20070061437A KR 1020060124539 A KR1020060124539 A KR 1020060124539A KR 20060124539 A KR20060124539 A KR 20060124539A KR 20070061437 A KR20070061437 A KR 20070061437A
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 와이브로 시스템의 채널 부호기에 관한 것이다.
와이브로 규격에서 채널 부호기는 CRC 부호기, 랜덤화기, CTC 부호기, 인터리버, 심볼선택기 등으로 이루어지고 있다. 본 발명은 각 블록들에 대하여 병렬 데이터 처리를 위한 하드웨어 구조를 제시함으로써, 와이브로 시스템에서 요구하는 고속의 데이터를 효율적으로 처리할 수 있다.
와이브로, CTC, 터보, 부호화, 인터리버
Description
도 1은 종래 와이브로 시스템의 채널 부호기의 구조를 나타내는 도면이다.
도 2는 종래 CRC 부호기를 나타내는 도면이다.
도 3은 종래 CTC 부호기를 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 와이브로 시스템의 채널 부호기의 개략적인 구조를 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른 CRC 부호기를 나타내는 도면이다.
도 6은 본 발명의 실시예에 따른 랜덤화기를 나타내는 도면이다.
도 7은 본 발명의 실시예에 따른 병렬 길쌈 부호기를 나타내는 도면이다.
도 8은 본 발명의 실시예에 따른 CTC 부호기를 나타내는 도면이다.
도 9는 본 발명의 실시예에 따른 인터리버를 나타내는 도면이다 .
본 발명은 무선 통신 시스템의 채널 부호기에 관한 것으로서, 특히 와이브로 통신 시스템의 채널 부호기에 관한 것이다.
일반적으로 유무선 디지털 통신 시스템에서 전송로상의 오류를 보정하기 위해, 송신단은 정보비트에 부가 비트를 첨부하고 수신단은 오류 정정 알고리즘을 이용하여 오류를 보정한다. 이러한 오류정정알고리즘의 하나로서 터보코드(Turbo Code)가 사용된다. 일반적인 터보 코드에서는 부호기가 매 클럭마다 하나의 비트를 입력받아 처리하는 반면에, 길쌈 터보 코드(Convolutional Turbo Code; 이하 'CTC'라 함)에서는 매 클럭마다 2개의 비트를 입력받아 처리한다. CTC는 최근 연구가 진행되고 있는 802.16e의 채널 코덱으로서 채택되어 있고, 와이브로 시스템 ('개인 휴대 인터넷(HPI) 시스템'이라고 도 함)에도 채택되고 있다.
이러한 오류정정 기능 수행을 위해 와이브로 시스템의 채널 부호기는 CRC 부호기(10), 랜덤화기(20), CTC 부호기(30), 인터리버(40), 심볼선택기(50) 및 반복부호기(60)를 포함한다.
종래의 와이브로 시스템에 따르면, CRC 부호기(10) 및 랜덤화기(20)는 매 클럭마다 하나의 입력 비트를 받아 간단한 게이트 연산 후 하나의 비트를 출력하므로, 입력 비트 수가 N이라고 할 때 총 N개의 클럭이 소요된다.
CTC 부호기(30)는 제1 길쌈 부호기에 대한 초기 상태 값을 찾기 위해 N/2 클럭, 제2 길쌈 부호기에 대한 초기 상태 값을 찾기 위해 N/2 클럭, 마지막으로 실제 부호화를 위해 N/2 클럭 등 총 3*N/2 클럭이 소요된다. 인터리버(40)는 CTC 부호기의 출력을 총 6개의 집합으로 나누어 각각에 대해 독립적으로 인터리빙을 수행하는데, CTC 부호기(30)의 출력 비트 수가 3*N이므로 인터리빙을 위해 필요한 클럭 수는 N/2이다.
심볼 선택기(50)는 인터리빙된 결과를 OFDM 심볼의 부채널 단위에 맞도록 불필요한 비트를 잘라내는 역할을 수행하는데, 이에 소요되는 클럭 수는 부호화율에 비례하지만 천공이 발생하지 않는다고 가정할 때 3*N이다.
상기와 같이 종래의 와이브로 시스템에 따르면 입력되는 비트 수가 N이라고 할 때, 필요한 총 클럭 수는 총 7*N이다. 그러나 와이브로 시스템에서 한 프레임은 5ms이고 이 시간 내에 처리해야 할 정보 비트 수는 순방향 링크에서 최대 96,000 비트인데, 이를 부호화하는 데에는 클럭 주파수가 80MHz라 가정할 때 약 8.4ms가 소요된다. 따라서 종래의 설계기법으로는 와이브로 시스템에서 요구되는 고속의 데이터를 처리할 수 없다는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는 이와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 고속 처리가 가능한 구조를 제시하기 채널 부호기를 제공하기 위한 것이다.
이와 같은 목적을 달성하기 위한 본 발명의 특징에 따른 채널부호기는
N 비트의 데이터를 병렬로 입력받아 부가 비트를 첨부하는 CRC 부호기; 상기 CRC 부호기로부터 출력된 N 비트의 데이터를 병렬로 입력받아, 주기적인 데이터를 랜덤화시키는 랜덤화기; 상기 랜덤화기로부터 출력된 데이터에 대하여 특정된 포맷으로 정보 비트를 정해진 부호율에 따라 부호화를 수행하는 CTC 부호기; 및 상기 CTC 부호기로부터 출력된 데이터를 섞어서 출력하는 인터리버를 포함한다.
또한, 상기 채널부호기는 상기 인터리버로부터 출력된 데이터에 대하여 부호율을 맞추기 위해 불필요한 필요한 비트수를 잘라내는 심볼선택기; 및 상기 심볼선택기로부터 출력된 데이터를 정수배만큼 반복해서 출력하는 심볼 반복기를 추가로 포함할 수 있다.
여기서, 상기 채널 부호기는 802.16e 규격을 따를 수 있다.
이때, 상기 CRC 부호기는 8 비트인 병렬 입력 데이터의 입력시 8 사이클에 대한 시프트 레지스트 상태를 기초로 설계될 수 있다.
또한, 상기 CTC 부호기는 순차 입력 데이터의 시퀀스를 섞어주는 인터리버; 상기 인터리버를 통해 출력된 인터리빙된 입력 시퀀스에 대하여 부호화를 수행한 후 최종 상태 값을 생성하는 직렬 길쌈 부호기; 상기 순차입력 데이터에 대하여 8 비트 단위로 부호화를 수행한 후 최종 상태값을 생성하며, 순차 입력 시퀀스에 대한 초기 상태값을 이용하여 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 1에 대한 부호화 비트를 생성하는 제1 병렬 길쌈 부호기; 상기 인터리빙된 입력 시퀀스에 대한 초기 상태값을 이용하여 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 2에 대한 부호화비트를 생성하는 제2 병렬 길쌈 부호기; 및 상기 직렬 길쌈 부호기 및 상기 제1 병렬 길쌈 부호기로부터 각각 출력되는 최종 상태값을 기초로 상기 제1 병렬 길쌈 부호기 및 상기 제2 병렬 길쌈 부호기의 부호화를 위한 초기 상태값을 결정하는 초기 상태값 결정부를 포함할 수 있다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상 세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다.
본 발명의 실시예에 따르면, 상위 계층으로부터 구성되는 정보 비트의 최소 단위가 8비트인 것에 착안하여 각기 요소 블록의 구동 단위를 비트가 아닌 바이트로 하여 8배 빠른 동작이 가능하도록 한다.
본 발명의 실시예에 따른 와이브로 시스템의 채널 부호기는 도 4에 도시한 바와 같이, CRC 부호기(100), 랜덤화기(200), CTC 부호기(300), 인터리버(400), 심볼선택기(500) 및 반복부호기(600)를 포함한다. 도 4에 도시한 채널 부호기는 도 1에 도시한 부호기와 동일한 기능을 수행하나, 각 요소 블록들의 하드웨어는 후술하는 바와 같이 도 1의 채널 부호기와 다른 구조를 가진다.
본 발명의 실시예에 따른 CRC 부호기(100)는 HARQ(Hybrid Automatic Repeat reQuest) 모드인 경우에만 동작하며, 8비트(1바이트)의 데이터를 병렬로 입력받아 버스트 단위로 CRC(Cyclic Redundancy Code)를 첨부한다. 이때, CRC는 수신부에서 복호 완료 후 해당 복호 시퀀스의 에러 유무를 판단하는데 이용된다.
랜덤화기(200)는 CRC 부호기(100)로부터 출력된 8 비트의 데이터를 병렬로 입력받아, 전송할 데이터를 주파수 영역에서 관찰 했을 때 특정 주파수 성분이 커지지 않도록 하기 위해 모든 주파수 성분의 크기를 균일하게 하고 주기적인 데이터를 랜덤화시킨다.
CTC 부호기(300)는 랜덤화기(200)로부터 출력된 데이터에 대하여 무선 채널상에서 발생한 오류를 정정하기 위해 특정된 포맷으로 정보 비트를 정해진 부호율에 따라 부호화를 수행한다.
인터리버(400)는 CTC 부호기(300)로부터 출력된 데이터를 섞어주어 연집(Burst)오류를 랜덤(Random)오류로 바꾸어 준다. 즉, 인터리버(400)는 어느 시간 대역폭에 모여 있는 오류를 더 큰 시간 대역폭으로 뒤섞어 주는 역할을 수행한다.
심볼선택기(500)는 인터리버(400)로부터 출력된 데이터에 대하여 부호율을 맞추기 위해 불필요한 필요한 비트수를 잘라낸다.
반복부호기(600)는 심볼선택기(500)로부터 출력된 데이터를 정수배만큼 반복해서 출력한다. 이는 셀 경계에서 성능 열화를 보상하기 위해 즉, CTC 부호화 이득만으로 수신 신호를 복호가 불가능할 때 이를 극복하기 위해 강력한 부호화 이득을 얻기 위한 것이다.
본 발명의 실시예에 따른 CRC 부호기(100)는 고속 처리를 위해 도 5에 도시한 바와 같이, 8비트 단위의 병렬 처리가 가능하도록 구현하였다. 이와 같이, 구현함으로써 종래의 CRC 부호기(10)보다 처리 속도를 N/8으로 감소시킬 수 있다.
도 2에 도시한 종래의 CRC 부호기(10)는 시프트 레지스터(SR1, SR2, SR3)와 XOR 연산기(XOR1,XOR2, XOR3)를 이용하여 간단히 구현한다. 종래의 CRC 부호기(10)에 따르면, 입력 포트에 데이터를 순차적으로 넣고 모든 입력이 완료되면. 스위치는 "0"을 입력받도록 위치한다. 그 다음 레지스터가 입력데이터를 오른쪽으로 시프 트하고 인버터(INV)를 거친 값이 최종 CRC 출력이 된다.
그러나 이러한 종래의 CRC 부호기(10)는 고속 통신 시스템에서 수십 Mbps의 전송속도를 충족시키기 위해서는 병렬 구조를 채택하는 것이 불가피하다.
본 발명의 실시예에 따르면, CRC 부호기(100)는 상위 계층으로부터 구성되는 정보 비트의 최소 단위가 8비트인 것에 착안하여 8비트가 병렬로 입력되는 CRC 부호기(100)를 설계하였다.
8비트 CRC 부호기(100)를 설계하기 위해서는 도 2의 CRC 부호기(10)의 상태를 8클럭 사이클 동안 관찰해야 한다. 도 2에서, 입력 비트를 입력 순서대로 IN1, IN2,...IN8, 시프트 레지스터 값을 D1,D2,D3,...,D16이라 가정하고 M0에서부터 M7까지의 총 8 사이클에 대해 각 시프트 레지스터 값은 다음의 표와 같다. 여기에서 + 연산은 배타적 논리합(XOR) 연산을 의미한다.
R1 | R16+IN1 |
R2 | R1 |
R3 | R2 |
R4 | R3 |
R5 | R4 |
R6 | R5+R16+IN1 |
R7 | R6 |
R8 | R7 |
R9 | R8 |
R10 | R9 |
R11 | R10 |
R12 | R11 |
R13 | R12+R16+IN1 |
R14 | R13 |
R15 | R14 |
R16 | R15 |
R1 | R15+IN2 |
R2 | R16+IN1 |
R3 | R1 |
R4 | R2 |
R5 | R3 |
R6 | R4+R15+IN2 |
R7 | R5+R16+IN1 |
R8 | R6 |
R9 | R7 |
R10 | R8 |
R11 | R9 |
R12 | R10 |
R13 | R11+R15+IN2 |
R14 | R12+R16+IN1 |
R15 | R13 |
R16 | R14 |
R1 | R14+IN3 |
R2 | R15+IN2 |
R3 | R16+IN1 |
R4 | R1 |
R5 | R2 |
R6 | R3+R14+IN3 |
R7 | R4+R15+IN2 |
R8 | R5+R16+IN1 |
R9 | R6 |
R10 | R7 |
R11 | R8 |
R12 | R9 |
R13 | R10+R14+IN3 |
R14 | R11+R15+IN2 |
R15 | R12+R16+IN1 |
R16 | R13 |
R1 | R13+IN4 |
R2 | R14+IN3 |
R3 | R15+IN2 |
R4 | R16+IN1 |
R5 | R1 |
R6 | R2+R13+IN4 |
R7 | R3+R14+IN3 |
R8 | R4+R15+IN2 |
R9 | R5+R16+IN1 |
R10 | R6 |
R11 | R7 |
R12 | R8 |
R13 | R9+R13+IN4 |
R14 | R10+R14+IN3 |
R15 | R11+R15+IN2 |
R16 | R12+R16+IN1 |
R1 | R12+R16+IN1+IN5 |
R2 | R13+IN4 |
R3 | R14+IN3 |
R4 | R15+IN2 |
R5 | R16+IN1 |
R6 | R1+R12+R16+IN1+IN5 |
R7 | R2+R13+IN4 |
R8 | R3+R14+IN3 |
R9 | R4+R15+IN2 |
R10 | R5+R16+IN1 |
R11 | R6 |
R12 | R7 |
R13 | R8+R12+R16+IN1+IN5 |
R14 | R9+R13+IN4 |
R15 | R10+R14+IN3 |
R16 | R11+R15+IN2 |
R1 | R10+R14+IN3+IN7 |
R2 | R11+R15+IN2+IN6 |
R3 | R12+R16+IN1+IN5 |
R4 | R13+IN4 |
R5 | R14+IN3 |
R6 | R15+IN2+R10+R14+IN3+IN7 |
R7 | R16+IN1+R11+R15+IN2+IN6 |
R8 | R1+R12+R16+IN1+IN5 |
R9 | R2+R13+IN4 |
R10 | R3+R14+IN3 |
R11 | R4+R15+IN2 |
R12 | R5+R16+IN1 |
R13 | R6+ R10+R14+IN3+IN7 |
R14 | R7+R11+R15+IN2+IN6 |
R15 | R8+R12+R16+IN1+IN5 |
R16 | R9+R13+IN4 |
R1 | R10+R14+IN3+IN7 |
R2 | R11+R15+IN2+IN6 |
R3 | R12+R16+IN1+IN5 |
R4 | R13+IN4 |
R5 | R14+IN3 |
R6 | R15+IN2+R10+R14+IN3+IN7 |
R7 | R16+IN1+R11+R15+IN2+IN6 |
R8 | R1+R12+R16+IN1+IN5 |
R9 | R2+R13+IN4 |
R10 | R3+R14+IN3 |
R11 | R4+R15+IN2 |
R12 | R5+R16+IN1 |
R13 | R6+ R10+R14+IN3+IN7 |
R14 | R7+R11+R15+IN2+IN6 |
R15 | R8+R12+R16+IN1+IN5 |
R16 | R9+R13+IN4 |
R1 | R9+R13+IN4+IN8 |
R2 | R10+R14+IN3+IN7 |
R3 | R11+R15+IN2+IN6 |
R4 | R12+R16+IN1+IN5 |
R5 | R13+IN4 |
R6 | R14+IN3+ R9+R13+IN4+IN8 |
R7 | R15+IN2+R10+R14+IN3+IN7 |
R8 | R16+IN1+R11+R15+IN2+IN6 |
R9 | R1+R12+R16+IN1+IN5 |
R10 | R2+R13+IN4 |
R11 | R3+R14+IN3 |
R12 | R4+R15+IN2 |
R13 | R5+R16+IN1+ R9+R13+IN4+IN8 |
R14 | R6+ R10+R14+IN3+IN7 |
R15 | R7+R11+R15+IN2+IN6 |
R16 | R8+R12+R16+IN1+IN5 |
위의 표를 이용하여 8 비트의 입력시 8 사이클에 대한 시프트 레지스터 상태를 알 수 있으며, 표 8에 도시한 최종 M7에 대하여 하드웨어를 구성하면 도 5와 같게 된다.
도 5에 도시된 CRC 부호기(100)에서, 도면 부호 110은 8 비트 병렬 데이터이고, 도면 부호 120은 시프트 레지스터 값이다. 그리고 도면 부호 130은 연산부를 의미하는데, 연산부(130)는 표 8에 해당하는 입력데이터와 시프트 레지스트 값과의 XOR 연산을 수행한다. 본 발명의 실시예에서는 연산부(130)의 자세한 구조를 도시하지 않았으나, 표 8에 해당하는 값을 얻기 위한 연산부(130)의 하드웨어 구조는 본 발명이 속하는 기술분야의 전문가라면 쉽게 알 수 있으므로 이에 대한 자세한 설명은 생략한다.
또한, 본 발명의 실시예에 따른 랜덤화기(200)도 6에 도시한 바와 같이 8비트 병렬 처리 구조로 구현하였으며, 이에 따라 처리 속도를 N/8로 감소시킬 수 있다. 이러한 랜덤화기(200)의 설계는 이전의 CRC 부호기(100)에 대한 설명으로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 알 수 있으므로 이에 대한 자세한 설명은 생략한다.
한편, 도 3은 일반적인 CTC 부호기(30)로서, 부호율 1/3인 CTC 부호기를 나타내고 있다. 도 3에서, CTC 부호기(30)는 인터리버(31), 제1 길쌈부호기(32), 제2 길쌈부호기(33) 및 병렬/직렬 변환기(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)를 통해 직렬로 변환되어 하나의 출력심볼이 생성된다.
본 발명의 실시예에 따르면 종래 CTC 부호기(30) 내부의 두 개의 길쌈 부호기(32, 33)를 도 7에 도시한 바와 같이 8비트 병렬 처리 구조로 구현할 수 있다.
즉, 본 발명의 실시예에 따른 CTC 부호기(300) 내부의 길쌈 부호기는 2비트 입력을 받아 처리하는 종래의 길쌈 부호기와 달리 8비트 단위로 입력을 받아 부호화를 수행한다.
8비트 병렬 길쌈 부호기를 설계하기 위해 도 3의 CTC 부호기(30)의 상태를 4 클럭 주기 동안 관찰해야 한다. 도 3에서 입력 비트를 각각 A, B, 지연 소자 값을 S1, S2, S3라 가정하고 데이터가 M0에서부터 M4까지 총 4주기에 대해 각 지연소자 및 패리티 출력 비트 값은 다음의 표 9 내지 표 12와 같다. 여기서 + 연산은 배타적 논리합(XOR) 연산을 의미한다.
Y1 | A1+B1+S1+S2 |
W1 | A1+B1+S1 |
S1 | A1+B1+S1+S3 |
S2 | S1+B1 |
S3 | S2+B1 |
Y2 | A2+B2+A1+S3 |
W2 | A2+B2+A1+B1+S1+S3 |
S1 | A2+B2+A1+S1+S3+S2 |
S2 | B2+A1+B1+S1+S3 |
S3 | B2+S1+B1 |
Y3 | A3+B3+A2+S2+B1 |
W3 | A3+B3+A2+A1+S3+S2 +B2+S1 |
S1 | A3+B3+A2+A1+S3+S2+B1 |
S2 | B3+ A2+B2+A1+S1+S3+S2 |
S3 | B3+ B2+A1+B1+S1+S3 |
Y4 | A4+B4+ A3+B1+ B2+S1 |
W4 | A4+B4+ A3+A2 +B1+ B3+A1+S3+S2 |
S1 | A4+B4+ A3+A2+S2+ B2+S1 |
S2 | B4+ A3+B3+A2+A1+S3+S2+B1 |
S3 | B4+ B3+ A2+B2+A1+S1+S3+S2 |
위의 표를 이용하여 8비트가 입력될 때, 4주기 동안의 부호화 비트 Y1,W1,Y2,W2,Y3,W3,Y4,W4를 얻을 수 있다. 지연 소자의 상태 값은 마지막 주기인 M3 주기의 S1,S2,S3가 된다. 이에 대한 하드웨어 구조는 도 7과 같다.
도 7에서, 도면 부호 310은 연산부를 의미하는데, 연산부(305)는 표 12에 해당하는 입력데이터와 지연 소자의 상태 값에 대하여 XOR 연산을 수행한다. 본 발명의 실시예에서는 연산부(305)의 자세한 구조를 도시하지 않았으나, 표 12에 해당하는 값을 얻기 위한 연산부(305)의 하드웨어 구조는 본 발명이 속하는 기술분야의 전문가라면 쉽게 알 수 있으므로 이에 대한 자세한 설명은 생략한다.
도 8은 본 발명의 실시예에 따른 CTC 부호기(300)를 나타내는 도면이다.
도 8에 도시한 바와 같이, 본 발명의 실시예에 따른 CTC 부호기(300)는 인터리버(310), 직렬 길쌈 부호기(320), 초기 상태값 결정부(330), 메모리(340), 병렬 길쌈 부호기(350, 360), 역다중화기(375) 및 다중화기(380)를 포함한다.
본 발명의 실시예에 따른 CTC 부호기(300)의 동작은 크게 두 단계로 나눌 수 있다.
첫 번째 단계는 직렬길쌈 부호기(320)를 이용하여 인터리빙된 입력 시퀀스에 대한 길쌈 부호기 초기 상태값을 결정하고 순차적인 입력 시퀀스에 대한 병렬 길쌈 부호기(360)를 이용하여 길쌈 부호기 초기 상태값 결정하는 단계이다.
두 번째 단계는 첫 번째 단계에서 결정된 초기 상태값으로 병렬길쌈부호기(350,360)의 상태값을 초기화시킨 후 순차적인 입력 시퀀스와 인터리빙된 입력 시퀀스에 대해 실제 부호화 과정을 수행하는 단계이다.
이를 보다 구체적으로 설명하면, 인터리버(310)를 통해 입력 시퀀스를 인터리빙 순서대로 읽어들여 초기 상태값이 '0'인 직렬길쌈부호기(320)를 이용하여 부호화를 수행 후 얻어진 최종 상태값을 초기상태값 결정부(330)로 전달한다. 또한 동시에 인터리빙된 비트에 대해 8비트 단위로 메모리(340)에 저장한다. 이에 대한 일련의 과정에는 N 클럭이 소요된다.
그리고나서, 순차적인 입력 시퀀스에 대한 초기 값을 찾기 위해 하단 병렬 길쌈 부호기(360)를 이용하여 8비트 단위로 부호화를 수행 후 최종 상태 값을 초기 상태값 결정부(330)로 전달한다. 이러한 동작에는 약 N/4 클럭이 소요된다.
초기 상태값 결정부(330)는 규격에 제시된 표를 이용하여 실제 부호화를 수행할 병렬길쌈부호기의 초기 상태값을 결정한다. 다음 앞서 결정된 순차적인 입력시퀀스에 대한 초기 상태값을 이용하여 하단 병렬길쌈부호기(360)의 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 1에 대한 부호화 비트를 얻고, 인터리빙된 입력 시퀀스에 대한 초기 상태값을 이용하여 상단 병렬길쌈부호기(350)의 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 2에 대한 부호화 비트를 얻는다. 이 과정은 동시에 진행되므로 약 N/4 클럭이 소요된다. 이러한 모든 과정은 N+N/4+N/4=1.5N 클럭이 소요된다.
한편, CTC 부호기의 인터리버에서 수행되는 인터리빙 알고리즘은 수학식 1에 나타난 바와 같이 두 단계로 이루어진다.
수학식 1에 나타낸 연산 과정은 모듈로 연산과 곱셈으로 이루어지기 때문에, 계산과정이 복잡하다는 문제점이 있다. 수학식 1은 다음의 수학식 2로 바꿀 수 있는데 수학식 2를 보면 덧셈 연산으로만 모든 과정이 이루어짐을 알 수 있다.
이와 같은 수학식 2에 기재된 인터리빙 알고리즘에 기초하여 하드웨어를 구현하면 용이하게 구현할 수 있는데, 도 9는 본 발명의 실시예에 따른 인터리버의 하드웨어의 구조를 나타내는 도면이다.
인터리버 주소 생성은 수학식 2에서와 같이 두 단계로 나누어진다. 도 9는 이 두 단계 중 두 번째 단계(Step 2)에 관한 것이다.
도 9에 나타낸 바와 같이, 인터리버(310)는 카운터(312), 다중화기(311, 316, 322, 326), 덧셈기(313, 314, 318, 319, 324), 비교기(315, 321, 325) 및 D 플립플롭(313, 323)을 포함한다.
먼저, 카운터(312)는 0부터 1씩 증가하면서 코드 블록 사이즈의 1/2까지(N-1) 카운트한다. 그리고 다중화기(311)는 카운터 값의 최하위 2비트를 제어값으로 받아 상수 값(const)을 출력한다. 이때, 다중화기는 수학식 2와 같이, 최하위 비트가 "11"인 경우 상수 값으로서 "0"을 출력하고, 최하위 비트가 "00"인 경우 상수값으로서 N/2+P1을 출력하고, 최하위 비트가 "01"인 경우 상수값으로서 P2를 출력하고, 최하위 비트가 "10"인 경우 상수값으로서 N/2+P3를 출력한다.
그리고 덧셈기(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)에 저장한다.
다음, 덧셈기(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)에 저장한다.
이후, 덧셈기(324)와 비교기(325) 및 다중화기(326)를 통해 인터리빙 주소가 출력된다. 이때, 덧셈기(324)의 입력값은 D 플립플롭(323)의 출력값이다.
이처럼 본 발명의 실시예에 따르면, 인터리버(310)를 수학식 2와 같이 덧셈 연산을 통해 하드웨어를 구현하기 때문에, 하드웨어를 용이하게 구현할 수 있는 장점이 있다.
한편, 본 발명의 실시예에 따른 심볼 선택기(500)의 동작은 상위 계층에서 오는 버스트가 바이트 단위로 패킹되기 때문에 심볼 선택 계산식에서 얻어진 주소의 하위 3비트를 버린 주소를 취함으로써 바이트 단위로 심볼 선택이 이루어지게 할 수 있다. 이렇게 함으로써 처리 속도를 3*N/8으로 감소 시킬 수 있다.
이와 같이, 본 발명의 실시예에 따르면 채널 부호기의 각 요소에 대하여 병렬적으로 하드웨어를 설계하기 때문에, 처리 속도를 빨리 구현할 수 있다는 효과가 있다.
이상에서 설명한 바와 같이, 본 발명에 따르면 와이브로 시스템의 채널부호기를 바이트 단위의 연산이 가능하도록 병렬적으로 구현함으로써, 처리속도를 향상시킬 수 있다.
Claims (11)
- N 비트의 데이터를 병렬로 입력받아 부가 비트를 첨부하는 CRC 부호기;상기 CRC 부호기로부터 출력된 N 비트의 데이터를 병렬로 입력받아, 주기적인 데이터를 랜덤화시키는 랜덤화기;상기 랜덤화기로부터 출력된 데이터에 대하여 특정된 포맷으로 정보 비트를 정해진 부호율에 따라 부호화를 수행하는 CTC 부호기; 및상기 CTC 부호기로부터 출력된 데이터를 섞어서 출력하는 인터리버를 포함하는 무선통신 시스템의 채널부호기.
- 제1항에 있어서,상기 인터리버로부터 출력된 데이터에 대하여 부호율을 맞추기 위해 불필요한 필요한 비트수를 잘라내는 심볼선택기; 및상기 심볼선택기로부터 출력된 데이터를 정수배만큼 반복해서 출력하는 심볼 반복기를 추가로 포함하는 포함하는 무선통신 시스템의 채널부호기.
- 제2항에 있어서,상기 채널 부호기는 802.16e 규격을 따르는 것을 특징으로 하는 무선통신 시스템의 채널부호기.
- 제3항에 있어서,상기 CRC 부호기는 8 비트인 병렬 입력 데이터의 입력시 8 사이클에 대한 시프트 레지스트 상태를 기초로 설계되는 것을 특징으로 하는 무선통신 시스템의 채널부호기.
- 제3항에 있어서,상기 심볼 선택기는 심볼 선택 계산식에서 얻어진 주소의 하위 3 비트를 버린 주소를 취함으로써 바이트 단위로 심볼 선택이 이루어지도록 하는 것을 특징으로 하는 무선통신 시스템의 채널부호기.
- 제2항 내지 제5항 중 어느 한 항에 있어서,상기 CTC 부호기는순차 입력 데이터의 시퀀스를 섞어주는 인터리버;상기 인터리버를 통해 출력된 인터리빙된 입력 시퀀스에 대하여 부호화를 수행한 후 최종 상태 값을 생성하는 직렬 길쌈 부호기;상기 순차입력 데이터에 대하여 8 비트 단위로 부호화를 수행한 후 최종 상태값을 생성하며, 순차 입력 시퀀스에 대한 초기 상태값을 이용하여 내부 레지스터를 초기화한 후 부호화를 수행하여 패리티비트 1에 대한 부호화 비트를 생성하는 제1 병렬 길쌈 부호기;상기 인터리빙된 입력 시퀀스에 대한 초기 상태값을 이용하여 내부 레지스터 를 초기화한 후 부호화를 수행하여 패리티비트 2에 대한 부호화비트를 생성하는 제2 병렬 길쌈 부호기; 및상기 직렬 길쌈 부호기 및 상기 제1 병렬 길쌈 부호기로부터 각각 출력되는 최종 상태값을 기초로 상기 제1 병렬 길쌈 부호기 및 상기 제2 병렬 길쌈 부호기의 부호화를 위한 초기 상태값을 결정하는 초기 상태값 결정부를 포함하는 무선통신 시스템의 채널부호기.
- 제6항에 있어서,상기 직렬 길쌈 부호기는 복수의 레지스터 및 복수의 배타적 논리합(XOR) 연산기를 포함하는 무선통신 시스템의 채널부호기.
- 제6항에 있어서,상기 제1 및 제2 병렬 길쌈 부호기는 8비트 단위로 입력받아 부호화하기 위하여 컨벌루션 터보 코드 부호화 장치의 상태를 4클럭 주기 동안 관찰하는 것을 특징으로 하는 무선통신 시스템의 채널부호기.
- 제8항에 있어서,상기 제1 및 제2 병렬 길쌈 부호기는 입력 비트로서 8비트 병렬 데이터와 지연 소자 값이 데이터가 M0에서부터 M3까지 총 4주기에 대해 각 지연소자 및 패리티 출력 비트 값으로 8비트가 입력될 때, 4주기 동안의 부호화 비트를 얻을 수 있도록 구성된 것을 특징으로 하는 무선통신 시스템의 채널부호기.
- 제6항에 있어서,상기 CTC 부호기의 상기 인터리버는순차적으로 증가시키면서 CTC 코드 블록 사이즈의 1/2까지 카운트하는 카운터;상기 카운트 값의 최하위 2비트를 제어값으로 입력받아 상수값을 출력하는 제1 다중화기;제1 값과 제2 값을 입력받아 덧셈하는 제1 덧셈기;상기 제1 덧셈기의 출력에 제3 값을 감산하는 제2 덧셈기;상기 제2 덧셈기로부터 출력된 값과 기준값을 비교하는 제1 비교기;상기 제1 비교기의 비교 결과에 기초하여 제1 덧셈기의 출력 값 또는 제2 덧셈기의 출력 값 중 하나를 선택하는 제2 다중화기; 및상기 제2 다중화기에 의해 선택되는 값을 저장하는 제1 플립플롭을 포함하는 무선통신 시스템의 채널부호기.
- 제10항에 있어서,상기 플립플롭의 출력값과 상기 제1 다중화기의 출력값을 덧셈하는 제3 뎃셈기;상기 제3 덧셈기의 출력에 상기 제3 값을 감산하는 제4 덧셈기;상기 제4 덧셈기로부터 출력된 값과 상기 기준값을 비교하는 제2 비교기;상기 제2 비교기의 비교 결과에 기초하여 제3 덧셈기의 출력 값 또는 제4 덧셈기의 출력 값 중 하나를 선택하는 제3 다중화기;상기 제3 다중화기에 의해 선택되는 값을 저장하는 제2 플립플롭;상기 제2 플립플롭의 출력 값에 상기 제3 값을 감산하는 제5 덧셈기;상기 제5 덧셈기의 출력값과 상기 기준 값을 비교하는 제3 비교기; 및상기 제3 제2 비교기의 비교 결과에 기초하여 제5 덧셈기의 출력 값 또는 상기 제2 플립플롭의 출력 값 중 하나를 선택하여 인터리빙 주소로서 출력하는 제4 다중화기를 포함하는 무선통신 시스템의 채널부호기.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20050119880 | 2005-12-08 | ||
KR1020050119880 | 2005-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070061437A true KR20070061437A (ko) | 2007-06-13 |
KR101200073B1 KR101200073B1 (ko) | 2012-11-12 |
Family
ID=38357295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060124539A KR101200073B1 (ko) | 2005-12-08 | 2006-12-08 | 무선 통신 시스템의 채널 부호기 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101200073B1 (ko) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100582560B1 (ko) * | 1999-07-13 | 2006-05-23 | 브이케이 주식회사 | 디지털 통신용 채널 부호기 |
KR100525433B1 (ko) * | 2000-12-30 | 2005-11-02 | 엘지전자 주식회사 | 시분할 듀플렉스 모드에서의 채널 코딩 장치 |
JP3628013B2 (ja) * | 2004-05-24 | 2005-03-09 | 富士通株式会社 | 信号送信装置および符号化装置 |
KR100804797B1 (ko) * | 2004-12-21 | 2008-02-20 | 한국전자통신연구원 | 개인 휴대 인터넷 시스템용 컨벌루션 터보 코드 부호화방법 및 그 장치 |
KR100651847B1 (ko) * | 2005-09-05 | 2006-12-01 | 엘지전자 주식회사 | 다중 순환 부호화를 이용한 터보 부호의 부호화/복호 장치및 방법 |
-
2006
- 2006-12-08 KR KR1020060124539A patent/KR101200073B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR101200073B1 (ko) | 2012-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100711326B1 (ko) | 선형 합동 시퀀스들을 이용한 터보 코드 인터리버 | |
JP3546063B2 (ja) | 通信システムのチャネル符号化装置及び方法 | |
CN110999095B (zh) | 用于极化码的按块并行冻结位生成 | |
JP2008219892A (ja) | データを符号化および復号化する方法および装置 | |
JP5231570B2 (ja) | プルーンインタリーバおよびプルーンデインタリーバの効率的なアドレス生成 | |
JP2013048492A (ja) | 通信システムのためのレートマッチングおよびチャネル・インターリービング | |
KR101435830B1 (ko) | 인터리빙 수행 방법 | |
KR101143768B1 (ko) | 맵핑 펑크션의 주기성을 사용하여 메모리 효율적인 인터리빙/디-인터리빙 | |
KR20150050429A (ko) | 데이터 부호화 방법, 인코더, 디코더 및 통신 시스템 | |
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 | |
US20120151295A1 (en) | Device and method for turbo-encoding a block of data | |
CN109327276B (zh) | 安全编码方法、解码方法及设备 | |
US7051261B1 (en) | Turbo encoder with reduced processing delay | |
KR100912600B1 (ko) | 임의 개수의 정보 비트들을 위한 테일바이팅 터보 코드 | |
KR20060121312A (ko) | 컨볼루션 터보 부호 인터리버 | |
KR20020030170A (ko) | 터보 디코딩 방법 | |
KR101200073B1 (ko) | 무선 통신 시스템의 채널 부호기 | |
US6925592B2 (en) | Turbo decoder, turbo encoder and radio base station with turbo decoder and turbo encoder | |
US20070168820A1 (en) | Linear approximation of the max* operation for log-map decoding | |
KR101286019B1 (ko) | 터보 인코더 장치 | |
KR101049947B1 (ko) | 컨볼루셔널 터보 코드 부호화 장치 및 컨볼루셔널 터보 코드를 사용하는 부호화 방법 | |
WO2021044765A1 (ja) | 通信システム及び通信方法 | |
KR101968590B1 (ko) | 순환 구조적 부호화 방법, 이를 이용한 순환 구조적 길쌈 부호화기 및 터보 부호화기 | |
CN101142747A (zh) | 使用包含z系统的两个子系统的两个表的信道编码 |
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 |