이하 본 발명의 바람직한 실시예들의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다.
하기 설명에서 구성부호기들의 부호화율 및 프레임 데이타를 구성하는 비트 수 등과 같은 특정 상세들이 본 발명의 보다 전반적인 이해를 제공하기 위해 나타나 있다. 이들 특정 상세들 없이 또한 이들의 변형에 의해서도 본 발명이 용이하게 실시될 수 있다는 것은 이 기술분야에서 통상의 지식을 가진자에게 자명할 것이다.
하기의 설명에서 "정보비트"라는 용어는 부호화하지 않은 데이타를 의미하며, "패리티 비트"라는 용어는 구성부호기를 통해 부호화된 데이타를 의미한다.
일반적으로 통신시스템에서 송신기는 송신 데이타를 채널부호화하여 전송하고, 수신기는 수신되는 신호를 복호화하여 원래의 신호로 변환한 후 처리한다. 이때 상기 채널 부호화 장치는 송신 데이타를 프레임 단위로 부호화하며, 수신기에 프레임의 종단을 알리기 위한 테일비트들을 생성하여 부가하는 것이 일반적이다. 본 발명의 실시예에서는 상기 채널 부호화장치에서 터미네이션 효과를 갖는 프레임 구조를 제안한다.
상기 채널 부호화장치에서 터미네이션 효과를 갖는 프레임 구조를 구현하는 방법은 크게 3가지로 구현할 수 있다.
그 하나는 채널 프레임 구조 내에서 오류 확률이 큰 테일비트 수 만큼의 위치에 특정 비트를 삽입하여 전송하는 방법이다. 이때 순환구조를 갖는 구성부호기 들은 테일비트들을 발생하지 않는 구성을 갖을 수도 있다. 또한 상기 오류 확률은 실험적으로 구하며, 삽입 위치는 채널 부호화 장치 및 채널 복호화 장치가 서로 알고 있어야 한다. 이때 상기 삽입되는 특정 비트는 전송하거나 말거나 크게 상관 없는 비트가 될 수 있으며, 또한 부호화 비트나 별도로 수신측과 약속된 데이타 정보 등이 될 수 있다. 여기서는 0비트로 가정하기로 한다.
두 번째로 채널 프레임 구조 내에서 오류 확률이 큰 테일 비트의 수 만큼의 위치에 특정 비트를 삽입하여 전송하는 방법은 동일하지만, 채널 프레임 구조 내에 정보비트에 특정 비트를 삽입할 시 설정된 프레임 길이를 초과하는 수로 상기 특정비트들을 삽입하며, 이렇게 특정 비트들이 삽입된 정보비트를 구성 부호기를 이용하여 부호화한다. 그리고 채널부호화 데이타를 출력할 시 채널 부호화 데이타의 설정된 프레임 길이를 초과하는 나머지 비트들을 상기 입력정보 중 삽입비트가 위치된 비트 위치에 천공하여 전송하는 방식이다. 이때 상기 순환구조를 갖는 구성부호기는 테일비트를 발생하지 않으며, 채널복호화 장치도 상기 특정비트가 삽입된 위치를 사전에 알고 있어야 한다.
세 번째로 터미네이션 효과를 갖는 프레임 구조를 이용하여 채널 부호화신호를 발생할 시, 채널 프레임 구조 내에서 오류 확률이 가장 큰 위치에 테일비트의 수 만큼 특정 비트를 삽입하며, 구성부호기는 터미네이션을 위한 테일비트 및 테일비트 부호화 데이타를 발생한 후, 정보비트 내의 특정 삽입 위치에 구성 부호기의 테일비트 및 테일비트 부호화 데이타를 천공하여 전송하는 방식이다.
네 번째로 테일비트를 생성하지 않고 특정 정보비트를 프레임 상에 오류 확률이 큰 비트 위치에 삽입하여 터미네이션 기능을 수행하고, 그 삽입위치에 삽입비트 대신 특정개수의 부호화 데이타들을 반복하여 보내는 방식이다.
다섯 번째로 터미네이션 기능을 수행하기 위하여 오류 발생 확률이 큰 비트 위치에 특정 논리를 갖는 비트를 정보비트들에 삽입하고, 구성부호기에서 특정 비트가 삽입된 정보 비트를 부호화한 후, 한 구성부호기에서 테일비트를 생성하여 부가하는 구성을 갖는다. 즉, 상기 제5실시예의 부호기 장치는 비트 삽입 및 테일비트를 부가하여 터미네이션 기능을 수행하는 방식이다.
여섯 번째로 다섯 번째와 동일하게 진행되고, 비트삽입위치에서 삽입비트들이 천공되고, 그 위치에 제1구성부호기에서의 4비트의 테일 패리티비트들이 반복되어 보내어 지는 방식이다.
일곱 번째로 여섯 번째와 동일하게 진행되고, 비트삽입위치에서 삽입비트들이 천공되고, 그 위치에 제2구성부호기에서의 패리티비트들의 마지막 4비트가 반복되어 보내어 지는 방식이다.
여덟 번째로 터미네이션 기능을 수행하기 위하여 오류 발생 확률이 큰 비트 위치에 특정 논리를 갖는 비트를 정보비트들에 삽입하고, 구성부호기에서 특정 비트가 삽입된 정보 비트를 부호화한 후, 구성부호기에서 독립적으로 테일비트를 생성하여 부가하는 방식이다.
아홉 번째로 터미네이션 기능을 수행하기 위하여 오류 발생 확률이 큰 비트 위치에 특정 논리를 갖는 6비트를 정보비트들에 삽입하고, 비트삽입위치에서 삽입비트들이 천공되고, 그 위치에 제1구성부호기에서의 테일링을 하고, 테일비트들을 포함한 정보비트를 인터리빙하여 그출력비트들을 제2구성부호기에서 복호화 할 때, 프레임크기를 초과하는 6비트들을 천공된 삽입비트위치에 끼워 넣어 보내는 방식이다.
상기와 같은 비트삽입방법을 사용하는 방법에 대한 9개의 실시예의 동작을 살펴본다.
제1실시예 :
본 발명의 제1실시예에 따른 부호기 장치는 테일비트를 생성하지 않고 특정 비트 정보를 설정된 위치에 삽입하여 터미네이션 기능을 수행한다. 상기 제1실시예에서는 1프레임이 16비트로 이루어진 정보부호를 입력하며, 상기 특정 비트가 0로써 8비트의 특정비트를 프레임 상에 오류 확률이 큰 비트 위치에 삽입한다. 여기서 상기 특정 비트의 위치는 부호화된 데이타를 복호할 시 가장 많이 오류가 발생되는 위치를 실험적으로 측정하여 설정한다. 또한 각 부호기는 1/3 부호화율(coding rate)을 사용한다고 가정한다.
상기 제1실시예에 따른 방법은 부호화시 프레임 데이타에 상기 특정 비트들을 삽입한 수의 프레임 데이타(즉, 16비트의 프레임 데이타+8비트의 특정비트들의 수= 24비트)를 1/3 부호화율을 사용하는 터보부호기로 사용할 때, 복호시 오류 확률이 가장 큰 위치를 실험적으로 구한다. 이중 오류 확률이 가장 큰 8개의 위치를 결정하고, 이 위치에 정보 비트를 사용하지 않고 상기 특정 비트를 삽입하여 부호화한다. 이때 복호기는 상기 특정 비트가 삽입되어 부호화된 프레임 데이타를 복호시 부호화 과정에서 상기 특정 비트가 삽입된 위치를 알고 있다.
이때 상기 특정 비트가 0인 경우, 실제 0비트는 채널에서 -1로 전송되기 때문에 이에 대한 신뢰도를 높이기 위하여 -1 측으로 아주 치우쳐진 아주 큰 음의 값(예를 들면 -5)으로 삽입 위치에 있는 비트를 바꾸어주고 복호 동작을 수행한다. 상기와 같은 방법을 사용하면, 실제로 24비트의 정보 부호 중에 1/3인 8비트를 알고 복호하는 것이기 때문에 다른 터미네이션 방법 보다 좋은 성능을 가질 수 있다. 이런 경우 프레임이 작을수록 좋은 성능을 가질 수 있다.
도 3은 본 발명의 제1실시예에 따라 특정 값을 삽입하는 비트삽입기를 구비하는 터보부호의 부호기 구성을 도시하고 있다. 비트삽입기(bit inserter)310은 정보 비트들을 입력하고 특정 비트를 생성하는 비트생성기를 구비하며, 설정된 비트 위치에서 상기 비트생성기에서 생성되는 특정 비트를 삽입하여 프레임 단위의 정보 비트들을 발생한다. 제1구성 부호기320은 상기 비트삽입기310에서 출력되는 정보 비트들을 입력하며, 상기 정보 비트들을 부호화하여 출력한다. 인터리버330은 상기 비트삽입기310에서 출력되는 프레임 단위의 정보 비트들을 설정된 규칙에 따라 인터리빙하여 정보 비트의 순서를 바꾸는 기능을 수행한다. 본 발명의 실시예에서는 대각인터리버를 사용한다고 가정한다. 제2구성 부호기340은 상기 인터리버330에서 출력되는 인터리빙된 프레임 단위의 정보 비트들을 부호화하여 출력한다. 여기서 상기 제1구성부호기320 및 제2구성부호기는 순환 구조를 갖는 길쌈 부호기(recursive systematic convolutional coder)가 될 수 있다. 멀티플렉서350은 상기 비트삽입기310, 제1구성부호기320 및 제2구성부호기340의 출력을 입력하며, 도시하지 않은 제어기에 의해 상기 상기 입력을 선택 출력한다. 여기서 상기 비트삽입기310의 출력은 정보비트Ik가 되고, 제1구성부호기320의 출력은 제1패리티비트P1k가 되며, 제2구성부호기340의 출력은 제2패리티비트P2k가 된다.
도 4는 도 3과 같은 구조를 갖는 부호기에서 비트삽입기310의 구성 예를 도시하고 있다. 상기 도 4를 참조하면, 비트생성기(bit generator)430은 정보 비트들에 삽입하기 위한 특정 비트들을 발생한다. 여기서 상기 특정비트가 0라고 가정한다. 지연기412-426은 플립플롭 등과 같은 메모리 소자로 구성할 수 있으며, 비트 클럭에 의해 입력되는 정보 비트를 쉬프트하는 직렬 쉬프트 레지스터 구조를 가질 수 있다. 스위치432는 도시하지 않은 제어기에 의해 스위칭되어 상기 지연기412-426의 출력을 선택 출력한다. 상기 스위치432는 상기 정보 비트들에 비트생성기430에서 출력되는 특정 비트를 삽입하는 위치에서 도시하지 않은 상기 제어기에 의해 스위칭되어 다음 지연기의 출력단과 연결된다. 즉, 상기 스위치432는 상기 특정 비트가 선택되어 정보비트 사이에 삽입될 시 출력되는 정보비트를 1비트 지연시킨 정보 비트를 선택하는 기능을 수행한다. 상기 스위치432는 멀티플렉서로 구현할 수 있다. 스위치434는 상기 비트생성기430의 출력과 상기 스위치432의 출력단에 연결되며, 도시하지 않은 제어기에 의해 스위칭되어 정보비트들을 발생한다. 상기 스위치434는 상기 제어기에 의해 정보비트들의 설정된 위치에 상기 특정 비트를 삽입하여 출력하는 기능을 수행한다.
상기 도 4를 참조하여 정보비트들에 특정 비트를 삽입하는 동작을 살펴보면, 입력되는 정보 비트들은 비트 클럭에 의해 지연기412-426에서 지연되며, 초기에 스위치432는 입력되는 정보비트를 선택하고 스위치434는 스위치432와 연결된다. 그러면 상기 입력되는 정보비트들은 스위치432 및 434를 통해 출력된다. 상기와 같이 출력되는 과정에서 특정 비트를 삽입될 위치가 되면, 제어기의 제어에 의해 스위치432는 지연기412의 출력단에 연결되며 스위치434는 비트생성기430에 연결된다. 따라서 정보비트의 경로가 단절되고 해당 비트 위치에 비트생성기430에서 출력되는 0비트가 삽입된다. 그리고 상기 0비트를 삽입한 후 정보비트를 출력해야하는 경우, 스위치434는 제어기에 의해 432와 연결된다. 따라서 0비트가 삽입된 후 1비트 지연된 정보비트가 선택되어 출력되므로, 상기 0비트가 설정된 위치에서 정보비트의 손실 없이 삽입됨을 알 수 있다.
상기와 같은 과정을 반복하면서 정보비트들에 0비트를 삽입하며, 상기 0비트를 삽입한 후에는 1비트 지연된 정보비트들을 선택하며, 프레임 단위의 정보비트들에 대한 0비트를 모두 삽입한 후, 다음 프레임의 정보 비트들이 입력되는 경우에는 상기 스위치432는 정보비트 입력단에 연결하여 위와 같은 동작을 반복 수행한다. 상기 정보비트들을 부호화하여 통신하는 경우, 오류 확률은 프레임의 뒷부분에서 크게 발생한다. 따라서 상기 비트생성기430에서 발생되는 0비트들이 삽입되는 위치는 각각의 구성부호기에 입력되는 정보비트열의 뒷부분에 많이 설정될 수 있으며, 정보비트에 특정 비트가 삽입되는 형태는 하기 <표 1>과 같이 표현할 수 있다.
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 Ib1 I12 I13 I14 Ib2 I15 I16 Ib3 Ib4 Ib5 Ib6 Ib7 Ib8 |
상기 <표 1>에서 Ix는 정보비트를 의미하며, Ibx는 삽입비트를 의미한다.
상기한 바와 같이 입력되는 정보비트열에 특정 비트를 삽입하여 전송하는 이유는 수신측에서 복호율을 향상시키기 위함이다. 따라서 상기 특정 비트는 채널 프레임 구조 내에서 오류의 발생 확률이 큰 위치에서 테일비트 수 만큼 삽입하여 전송하는 것이 바람직하다. 이때 오류의 발생 확률이 높은 위치는 구성부호기에 인가되는 정보비트열의 뒤부분이 된다. 따라서 상기 표1에서 표시된 바와 같이, 상기 특정비트가 삽입된되는 위치는 제1구성부호기에 입력되는 정보비트열의 뒤부분과 제2구성부호기에 입력되는 정보비트열의 뒤부분이 될 수 있다. 여기서 상기 제2구성부호기에 입력되는 정보비트열의 뒤부분은 채널부호기에 입력되는 정보비트열을 인터리빙하고 난 후의 뒤부분이 된다. 따라서 상기 제2구성부호기로 입력되는 상기 삽입비트의 위치는 인터리빙을 고려하여 상기 정보비트열의 임의의 위치로 결정 된다.
상기 <표 1>과 같이 비트삽입기310에서 출력되는 정보비트는 제1구성부호기320 및 인터리버330에 인가된다. 그리고 상기 인터리버330에서 출력되는 인터리빙된 프레임 단위 정보 비트들은 제2구성부호기340에 인가되어 부호화된다. 도 5는 도 3의 제1구성부호기320 및 제2구성부호기340의 구성을 도시하고 있다. 상기 구성부호기320 및 340은 도 5에 도시된 바와 같이 순환구조를 갖는 구성 부호기로써 길쌈부호기 이다. 또한 상기 구성부호기320 및 340은 도 5에 도시된 바와 같이 테일비트를 발생하지 않는 구성을 갖고 있음을 알 수 있다.
그러면 상기 제1구성부호기320은 상기 비트삽입기310에서 출력되는 상기 <표 1>과 같은 정보비트들을 부호화하여 출력한다. 이때 상기 제1구성부호기320에서 부호화 출력되는 데이타는 하기 <표 2>와 같다.
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Cb1 C12 C13 C14 Cb2 C15 C16 Cb3 Cb4 Cb5 Cb6 Cb7 Cb8 |
상기 <표 2>에서 Cx는 제1구성부호기320에 의해 부호화된 심볼들을 의미하며, Cbx는 상기 제1구성부호기320에 의해 부호화된 삽입비트들의 심볼을 의미한다. 여기서 상기 터보부호기의 부호화율이 1/3인 경우이다.
상기 <표 2>와 같이 제1구성부호기320이 비트삽입기310의 출력을 부호화할 시, 인터리버330은 상기 비트삽입기310에서 출력되는 정보비트들을 인터리빙하며, 인터리빙된 정보비트들은 제2구성부호기340에 인가된다. 그러면 상기 제2구성부호기340은 상기 인터리버330에서 출력되는 인터리빙된 정보비트들을 부호화하여 출력한다. 이때 상기 제2구성부호기340에서 부호화 출력되는 데이타는 하기 <표 3>과 같다.
D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 Db1 D12 D13 D14 Db2 D15 D16 Db3 Db4 Db5 Db6 Db7 Db8 |
상기 <표 3>에서 Dx는 제2구성부호기340에 의해 부호화된 심볼들을 의미하며, Dbx는 상기 터보부호기에 의해 부호화된 삽입비트들의 심볼을 의미한다. 여기서 상기 제2구성부호기340의 부호화율이 1/3인 경우이다. 상기 <표 3>에서 삽입비트의 위치는 인터리빙에 의해 바뀐 상태이지만 설명의 편의를 위하여 동일 위치로 표시하였다.
이때 상기 비트삽입기310, 제1구성부호기320 및 제2구성부호기340의 출력을 입력하는 멀티플렉서350은 도시하지 않은 제어기의 제어에 의해 정보비트 및 부호화된 데이타들을 선택하여 채널 부호화 데이타로 출력한다.
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 Ib1 I12 I13 I14 Ib2 I15 I16 Ib3 Ib4 Ib5 Ib6 Ib7 Ib8 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Cb1 C12 C13 C14 Cb2 C15 C16 Cb3 Cb4 Cb5 Cb6 Cb7 Cb8D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 Db1 D12 D13 D14 Db2 D15 D16 Db3 Db4 Db5 Db6 Db7 Db8 |
상기의 특정비트의 삽입위치에 따라서 채널부호기의 성능이 달라질 수 있다. 그 예로써 입력정보비트열의 특정간격마다 상기 특정비트를 삽입함으로써 채널부호기의 성능을 개선할 수 있다. 정보비트에 특정 비트가 삽입되는 형태는 하기 <표 5>과 같이 표현할 수 있다.
I1 I2 I3 I4 Ib1Ib2 I5 I6 I7 I8 Ib3 Ib4 I9 I10 I11 I12 Ib5 Ib6 I13 I14 I15 I16 Ib7 Ib8 |
상기 <표 5>에서 Ix는 정보비트를 의미하며, Ibx는 삽입비트를 의미한다.
따라서 상기 표1에서 표시된 바와 같이, 상기 특정비트가 삽입되는 위치는 구성부호기의 메모리 수에 대응되는 수로 특정비트들을 연속적으로 삽입하며(예를들면 구속장이 2인 경우 두 개의 특정 비트들을 연속하여 삽입), 상기 입력되는 정보비트열에 상기 특정비트들이 삽입되는 위치는 상기 정보비트열에 등간격으로 설정하는 것이 바람직하다.
도 6은 상기 도 3과 같은 구성을 갖는 제1실시예의 터보부호기 구조에서 0비트를 삽입하여 부호화한 후 출력되는 타이밍을 도시하는 도면이다. 상기 도 6을 참조하면, 비트삽입기310이 T1구간에서 611과 같이 설정된 프레임 비트 위치에 0비트를 삽입하면서 상기 <표 1>과 같은 정보 비트 Ik를 발생한다. 그리고 상기 0비트가 삽입된 정보비트Ik는 T2 구간에서 멀티플렉서350, 제1구성부호기320 및 인터리버330에 동시에 인가된다. 그러면 상기 제1구성부호기320은 612와 같이 0비트가 삽입된 정보비트 Ik를 부호화하여 제1패리티비트인 제1부호화 데이타 Ck를 발생하며, 인터리버330은 613과 같이 0비트가 삽입된 정보비트 Ik를 설정된 방식으로 인터리빙하여 출력한다. 이후 T3 구간에서 멀티플렉서350은 상기 비트삽입기310에서 출력되는 정보비트 Ik를 1프레임 주기 지연시키고, 제1구성부호기320은 제1부호화 데이타 Ck를 상기 멀티플렉서350에 입력시키며, 상기 제2구성부호기340은 상기 인터리버330에서 출력되는 인터리빙된 정보비트Ik를 부호화하여 제2패리티 비트인 제2부호화데이타Dk를 발생한다. 이때 상기 제2구성부호기340에서 제2패리티비트 Dk를 발생하면, 멀티플렉서350은 상기 정보비트 Ik, 제1패리티비트 Ck 및 제2패리티비트 Dk를 멀티플렉싱하여 출력한다.
상기 도 6은 정보비트 Ik와 패리티비트 Ck 및 Dk를 병렬 처리하는 구조를 예를들어 설명하고 있지만, 발생되는 순서에 따라 비트삽입기310의 출력, 제1구성부호기320의 출력 및 제2구성부호기340의 출력을 순차적으로 선택하여 직렬 출력할 수도 있다.
상기한 바와 같이 본 발명의 제1실시예에 따른 순환구조를 갖는 부호기 장치에서 각 구성 부호기들은 터미네이션을 위한 테일비트를 생성하지 않으며, 오류 확률이 큰 위치의 비트 위치에 특정비트(제1실시예에서는 zero bit)를 삽입하여 전송한다. 또는 등간격으로 특정비트를 삽입한다.
제2실시예 :
본 발명의 제2실시예에 따른 부호기 장치는 오류 발생 확률이 큰 비트 위치에 특정 비트들을 삽입하며, 이때 삽입되는 비트들은 설정된 프레임 크기를 초과하는 비트수로 설정한다.
상기 제2실시예에서는 입력되는 데이타의 비트수 16비트이며, 삽입되는 비트 수가 12비트라고 가정한다. 이때 출력되는 정보비트 Ik 및 패리티비트 Ck 및 Dk는 24비트가 되어야하므로, 상기 정보비트 Ik에서 삽입된 비트를 천공하고 상기 패리티비트 Ck 및 Dk의 나머지 비트들을 천공위치에 삽입하여 출력한다.
상기 삽입비트들의 수는 부호화기의 입력정보비트수, 출력부호심볼의 개수와 코드레이트(Code Rate)에 의해 결정되어진다. 즉, 부호화기의 입력정보비트수가 N, 상기 부호화기의 출력부호심볼의 개수를 M, 코드레이트가 1/K이라 하면, 삽입비트수는 (M-KN)/(K-1)이다. 상기 예를 적용하여 계산해보면 부호화기의 입력정보비트수가 16, 출력부호심볼의 개수를 72 코드레이트가 1/3이라 하면, 삽입비트수는 12이다.
실제로 비트삽입이 많아질수록 성능이 좋아지는데, 상기와 같은 방식의 부호화기는 주어진 부호화기의 입력정보비트수와 출력부호심볼의 개수에 대해서 최대한의 비트삽입을 하여 최대한의 성능개선을 할 수 있다. 상기 실시예에서와 같이 12개의 삽입비트를 사용하고 부호화과정후 부호화 심볼들을 전송할 때, 정보비트부분의 삽입비트들을 보내지 않고, 부호화 심볼들을 전송함으로써 최대한의 비트삽입을 이용한 성능개선을 할 수 있다.
도 7은 본 발명의 제2실시예에 따른 부호기 장치의 구성을 도시하는 도면으로써, 비트삽입기710은 정보 비트들을 입력하고 특정 비트를 생성하는 비트생성기를 구비하며, 설정된 비트 위치에서 상기 비트생성기에서 생성되는 특정 비트를 삽입하여 프레임 크기를 초과하는 정보 비트들을 발생한다. 제1구성 부호기720은 상기 비트삽입기710에서 출력되는 정보 비트들을 입력하며, 상기 정보 비트들을 부호화하여 제1패리티비트 Ck를 발생한다. 인터리버730은 상기 비트삽입기710에서 출력되는 프레임 단위의 정보 비트들을 설정된 규칙에 따라 인터리빙하여 정보 비트의 순서를 바꾸는 기능을 수행한다. 본 발명의 실시예에서는 대각인터리버를 사용한다고 가정한다. 제2구성 부호기740은 상기 인터리버730에서 출력되는 인터리빙된 프레임 단위의 정보 비트들을 부호화하여 제2패리티비트 Dk를 발생한다. 여기서 상기 제1구성부호기720 및 제2구성부호기는 순환 구조를 갖는 길쌈 부호기(recursive systematic convolutional coder)가 될 수 있다. 멀티플렉서750은 상기 비트삽입기710, 제1구성부호기720 및 제2구성부호기740의 출력을 입력하며, 도시하지 않은 제어기에 의해 상기 입력을 선택 출력하여 설정된 크기의 프레임 정보로 출력한다. 여기서 상기 비트삽입기710의 출력은 정보비트Ik가 되고, 제1구성부호기720의 출력은 제1패리티비트P1k가 되며, 제2구성부호기740의 출력은 제2패리티비트P2k가 된다.
상기 도 7을 참조하면, 16개의 입력비트 들은 비트삽입기710에 입력된다. 그러면 상기 비트삽입기710은 상기 제1실시예의 비트삽입기310과 동일하게 동작하지만, 지연기의 수는 12개로 구비한다. 상기 비트삽입기710은 상기 도 4와 같은 구성에서 지연기의 수가 12개로 직렬 연결되는 구조를 갖는다. 따라서 상기 비트삽입기710은 제어기에 의해 내부의 스위치가 제어되어 오류 확률이 큰 프레임 내의 12개 정보 비트 위치에 각각 12개의 0비트가 삽입된다. 따라서 제2실시예에서는 상기 비트삽입기710에서 출력되는 정보비트 Ik는 28 비트로 이루어지며, 상기 비트삽입기710에서 출력되는 정보비트 Ik는 각각 멀티플렉서750, 제1구성부호기720 및 인터리버730에 각각 입력된다. 그리고 상기 인터리버730에서 출력되는 인터리빙된 정보비트Ik를 제2구성부호기740에 인가된다. 여기서 상기 제1구성부호기720 및 740은 도 5와 같이 터미네이션을 위한 테일비트를 생성하지 않는 구조의 부호기를 사용한다.
그러면 상기 제1구성부호기720은 상기 비트삽입기710에서 출력되는 12개의 0비트가 삽입된 28비트의 정보비트 Ik를 제1부호화하여 28비트의 제1패리티 비트 Ck를 출력하고, 출력된 패리티 비트 Ck는 다시 멀티플렉서750에 입력된다. 상기 인터리버730는 상기 비트삽입기710에서 출력되는 28개의 정보비트 Ik를 인터리빙하여 제2구성부호기740에 입력시키며, 상기 제2구성부호기740은 상기 제1구성부호기740과 동일한 방법으로 인터리빙된 정보비트들을 부호화하여 또 다른 28비트의 제2패리티 비트 Dk를 발생한다. 그리고 상기 제2구성부호기740에서 출력되는 제2패리티비트 Dk도 상기 멀티플렉서750에 인가된다.
그러면 상기 멀티플렉서750은 상기 정보비트 Ik에 패리티비트 Ck 및 Dk의 6비트들을 천공하여 출력하고, 나머지 24비트의 패리티비트 Ck 및 Dk를 선택하여 출력한다.
상기 도 8을 참조하면, 상기 멀티플렉서750은 상기 비트삽입기710에서 출력되는 28개의 정보비트들이 제일 먼저 입력한다. 그러면 상기 멀티플렉서750의 스위치812는 상기 비트삽입기710에서 출력되는 28개의 정보비트Ik 중 22개의 정보비트들이 들어올때까지 지연기822에 연결되며, 상기 지연기822는 입력되는 정보비트 Ik를 지연한다. 이후 상기 스위치812는 상기 비트삽입기710에서 출력되는 28개의 정보비트 Ik 중 나머지 6비트의 정보비트들이 입력될 때 지연기824에 연결되며, 상기 지연기824는 상기 정보비트Ik의 나머지 6비트를 지연시킨다.
마찬가지로 그 다음에 상기 멀티플렉서750은 상기 제1구성부호기720에서 출력되는 28개의 제1패리티비트 Ck를 입력한다. 그러면 상기 멀티플렉서750의 스위치814는 상기 제1구성부호기720에서 출력되는 28개의 제1패리티비트 Ck 중 22개의 제1패리티비트 들이 들어올 때까지 지연기826에 연결되며, 상기 지연기826은 입력되는 제1패리티비트 Ck를 지연한다. 이후 상기 스위치814는 상기 제1구성부호기720에서 출력되는 28개의 제1패리티비트 Ck 중 나머지 6비트의 제1패리티비트들이 입력될 때 지연기828에 연결되며, 상기 지연기828은 상기 제1패리티비트 Ck의 나머지 6비트를 지연시킨다.
이후 상기 멀티플렉서750은 상기 제2구성부호기740에서 출력되는 28개의 제2패리티비트 Dk를 입력한다. 그러면 상기 멀티플렉서750의 스위치816은 상기 제2구성부호기740에서 출력되는 28개의 제2패리티비트 Dk 중 24개의 제2패리티비트 들이 들어올 때까지 지연기1230에 연결되며, 상기 지연기1230은 입력되는 제2패리티비트 Dk를 지연한다. 이후 상기 스위치816은 상기 제2구성부호기740에서 출력되는 22개의 제2패리티비트 Dk 중 나머지 6비트의 제2패리티비트들이 입력될 때 지연기1232에 연결되며, 상기 지연기1232는 상기 제2패리티비트 Dk의 나머지 6비트를 지연시킨다.
상기와 같이 순차적으로 발생되는 28비트의 정보비트 Ik, 제1패리티비트 Ck 및 제2패리티비트 Dk는 순차적으로 멀티플렉서750에 입력되며, 상기 멀티플렉서750은 순차적으로 입력되는 28비트의 정보비트 Ik, 제1패리티비트 Ck 및 제2패리티비트 Dk를 입력되는 순서대로 22비트 및 나머지 6비트로 나누어 각각 대응되는 지연기들에 저장한다. 이때 상기 스위치812-816은 도시하지 않은 제어기에 의해 제어된다. 또한 상기 지연기822-1232들은 메모리 소자들이 직렬 연결되는 구성을 가지며, 각 입력된 비트들을 상기와 같은 지연 과정이 종료될 때 까지 저장한다.
상기와 같은 지연 동작이 종료되면, 스위치1244는 스위치1242와 연결된다. 그리고 상기 스위치1242는 상기 지연기822와 연결된다. 따라서 상기 지연기822의 출력이 스위치1242 및 1244를 통해 출력된다. 상기 지연기822에 저장된 1개의 정보비트가 출력되면, 상기 스위치1244는 상기 스위치1242와 연결된 상태를 유지하며 스위치1242는 상기 지연기824와 연결된다. 그러면 상기 스위치1242 및 1244를 통해 상기 지연기824에 저장된 정보비트의 나머지 비트 중 한 비트가 출력된다. 즉, 상기 정보비트를 천공(puncturing)하여 지연기824에 저장된 정보비트를 출력한다. 이후 상기 스위치1244는 계속하여 1242와 연결된 상태를 유지하며, 스위치1242는 다시 지연기822에 연결된다. 상기와 같은 동작을 6회 반복하면서 상기 지연기822에 저장된 정보비트에 상기 지연기824에 저장된 나머지 6비트의 정보비트들을 천공하여 출력한다.
상기와 같이 동작이 수행된 후, 상기 스위치1244는 상기 스위치1242에 연결된 상태를 유지하며, 상기 스위치1242는 상기 지연기822와 연결된다. 그러면 상기 지연기822의 출력이 스위치1242 및 1244를 통해 출력된다. 상기 지연기822에 저장된 1개의 정보비트가 출력되면, 상기 스위치1244는 상기 스위치1242와 연결된 상태를 유지하며, 스위치1242는 상기 지연기828과 연결된다. 따라서 상기 지연기828에 저장된 제1패리티비트의 나머지 6비트 중의 한 비트가 스위치1242 및 1244를 통해 출력된다. 이후 상기 스위치1244는 계속하여 1242와 연결된 상태를 유지하며, 스위치1242는 다시 지연기822에 연결된다. 상기와 같은 동작을 6회 반복하면서 상기 지연기822에 저장된 정보비트에 상기 지연기824에 저장된 나머지 6비트의 제1패리티비트들을 천공하여 출력한다.
상기와 같이 정보비트와 제1패리티비트의 나머지 6비트를 교번적으로 선택하여 출력한다. 상기 스위치1244는 상기 스위치1242에 연결된 상태를 유지하며, 상기 스위치1242는 상기 지연기822와 연결된다. 그러면 상기 지연기822의 출력이 스위치1242 및 1244를 통해 출력된다. 상기 지연기822에 저장된 1개의 정보비트가 출력되면, 상기 스위치1244는 상기 스위치1242와 연결된 상태를 유지하며, 스위치1242는 상기 지연기1232와 연결된다. 따라서 상기 지연기1232에 저장된 제2패리티비트의 나머지 6비트 중의 한 비트가 스위치1242 및 1244를 통해 출력된다. 이후 상기 스위치1244는 계속하여 1242와 연결된 상태를 유지하며, 스위치1242는 다시 지연기822에 연결된다. 상기와 같은 동작을 6회 반복하면서 상기 지연기822에 저장된 정보비트에 상기 지연기1232에 저장된 나머지 6비트의 제2패리티비트들을 천공하여 출력한다.
상기와 같이 동작을 수행하면, 상기 지연기822에 저장된 22비트의 정보비트에 지연기824에 저장된 나머지 6비트의 정보비트, 지연기828에 저장된 나머지 6비트의 제1패리티비트, 지연기1232에 저장된 나머지 6비트의 제2패리티비트들이 교번적으로 천공하여 22비트를 출력한다. 따라서 상기 비트삽입기710에서 출력되는 Ik는 멀티플렉서750에서 삽입비트 위치에 12비트의 패리티비트를 삽입하여 24비트의 정보비트로 출력된다.
상기와 같은 동작의 수행이 완료되면, 상기 스위치1244는 상기 지연기826의 출력을 선택한다. 그러면 상기 지연기826에 저장된 22비트의 제1패리티비트 Ck가 출력된다. 이후 상기 스위치1244는 다시 지연기1230에 스위칭 연결되어 상기 지연기1230에 저장된 22비트의 제2패리티비트 Dk가 출력된다.
상기 도 7과 같은 구조를 갖는 제2실시예에 따른 부호기 장치는 도 9에 도시된 바와 같이 비트삽입기710이 16비트의 데이타에 12비트를 삽입하여 22비트의 정보비트 Ik를 발생하며, 이로인해 제1구성부호기720 및 제2구성부호기740도 각각 28비트의 제1패리티비트 Ck 및 제2패리티비트 Dk를 발생한다. 그러면 멀티플렉서750은 상기 28비트의 정보비트 Ik를 구성하는 12비트의 삽입 비트 위치에 상기 제1패리티비트 Ck 및 제2패리티비트 Dk의 나머지 6비트를 천공하고 삽입하여 출력하고, 이후 제1패리티비트 Ck 및 제2패리티비트 Dk를 순차적으로 선택하여 출력한다.
복호화 과정에서는 위의 멀티플렉서의 출력값들을 멀티플렉서의 역으로 진행시키면 정보비트부분과 제1패리티비트부분과 제2패리티비트 부분이 나오는데 이때 정보비트부분의 비트삽입부분에 -5라는 값을 천공한다. 이과정을 거친 비트들을 기존의 복호기로 복호화 한다[참조 : Claude Berrou,Alain Glavieux and Punya Thitmajshima "Near Shannon Limit Error-Correcting Coding and Decoding : Turbo-Codes(1)"].
제3실시예 :
본 발명의 제3실시예에 따른 부호기 장치는 터미네이션 기능을 수행하기 위하여 오류 발생 확률이 큰 비트 위치에 특정 논리를 갖는 비트를 정보비트들에 삽입하고, 구성부호기에서 특정 비트가 삽입된 정보 비트를 부호화한 후 테일비트를 생성하여 부가하는 구성을 갖는다. 즉, 상기 제3실시예의 부호기 장치는 비트 삽입 및 테일비트를 부가하여 터미네이션 기능을 수행한다.
도 10은 상기 제3실시예에 따른 부호기 장치의 구성을 도시하고 있다. 상기 도 10을 참조하면, 16개의 입력비트 들은 비트삽입기1010에 입력된다. 여기서 상기 비트삽입기1010은 상기 제1실시예의 비트삽입기310과 동일한 구성을 갖는다. 상기 비트삽입기1010은 제어기에 의해 내부의 스위치가 제어되어 오류 확률이 큰 프레임 내의 8개 정보 비트 위치에 각각 8개의 0비트가 삽입된다. 따라서 제3실시예에서는 상기 비트삽입기1010에서 출력되는 정보비트 Ik는 24 비트로 이루어지며, 상기 비트삽입기1010에서 출력되는 정보비트 Ik는 각각 멀티플렉서1050, 제1구성부호기1020 및 인터리버1030에 각각 입력된다. 그리고 상기 인터리버1030에서 출력되는 인터리빙된 정보비트Ik를 제2구성부호기1040에 인가된다. 여기서 제1구성부호기1020은 도 11과 같이 순환 구조를 갖는 구성부호기로써 도 11과 같이 테일비트를 생성하여 부가하는 구조를 갖는다. 그리고 상기 제2구성부호기1040은 상기 제1실시예의 도 5와 같이 터미네이션을 위한 테일비트를 생성하지 않는 구조의 부호기를 사용한다.
상기 도 11을 참조하여 상기 제3실시예의 제1구성부호기1020의 동작을 살펴보면, 먼저 부호화시 스위치1111은 입력단과 배타적 논리합기1131을 연결시키며, 스위치1113은 오프된 상태를 유지하고, 스위치1115는 배타적 논리합기1135에 연결된다. 그러면 상기 24비트의 정보비트 Ik들은 상기 스위치1111 및 배타적 논리합기1131을 통해 입력되는 지연기1121-1127에 순차적으로 입력되고 배타적 논리합기1135에서 부호화되어 출력된다. 상기와 같이 같은 과정으로 정보비트Ik가 모두 지연기 및 배타적 논리합기에 의해 부호화되면, 터미네이션을 위하여 상기 스위치1111은 배타적 논리1133과 1131을 연결하고, 스위치1113은 온되며, 스위치1115는 상기 스위치1113과 연결된다. 그러면 상기 피드백되는 출력의 배타적 논리합 연산에 의해 0비트가 발생되며, 이 값이 지연기1121-1127에 입력되어 저장되는 동시에 스위치1115를 통해 출력된다. 이때 상기 지연기1121-1127에 저장되는 0 값이 테일비트가 되며, 이 값은 스위치1115를 통해 출려된다. 이때 상기 테일비트는 상기 구성부호기1020의 내부에 위치된 지연기들의 수에 대응되도록 발생되며, 도 11과 같은 구조를 갖는 경우에는 프레임 당 4개의 테일비트가 생성되고, 이런 각각의 테일비트들에 대한 부호화된 비트들이 발생된다.
따라서 상기 제1구성부호기1020은 상기 24비트의 제1패리티비트 Ck를 발생하면서, 마지막 24번째 정보가 다 처리되면 스위치1111이 배타적 논리합기1133에 연결되고, 스위치1113이 상기 스위치1111에 연결되며, 스위치1115가 상기 스위치1113에 연결되어 4번 동작되므로써 4비트의 테일 비트를 생성하여 출력한다. 이런 과정을 거쳐 28비트의 제1패리티 비트 Ck들과 4개의 테일비트들을 출력하고, 출력된 비트들은 다시 멀티플렉서1050에 입력된다.
또한 상기 인터리버1030는 상기 비트삽입기1010에서 출력되는 24개의 정보비트 Ik를 인터리빙하여 제2구성부호기1040에 입력시키며, 상기 제2구성부호기1040은 상기 제1구성부호기1020과 동일한 방법으로 인터리빙된 정보비트들을 부호화하여 또 다른 24비트의 제2패리티 비트 Dk를 발생한다. 그리고 상기 제2구성부호기1040에서 출력되는 제2패리티비트 Dk도 상기 멀티플렉서1050에 인가된다.
이때 상기 인터리버1030에서 출력되는 인터리빙된 프레임 단위 정보 비트들은 제2구성부호기1040에 인가되어 부호화된다. 상기 제2구성부호기1040은 상기 제1실시예의 도 5와 같은 구조를 갖는다. 상기 제2구성부호기1040은 도 5에 도시된 바와 같이 순환구조를 갖는 구성 부호기로써 길쌈부호기 이다. 또한 상기 구성부호기1040은 상기 도 5에 도시된 바와 같이 테일비트를 발생하지 않는 구성을 갖고 있음을 알 수 있다.
그러면 상기 멀티플렉서1050은 상기 특정 정보비트를 천공하고, 상기 천공된 정보비트 Ik에 제1패리티비트 Ck의 4비트들을 삽입하여 출력하고, 나머지 24비트의 제1패리티비트 Ck 및 제2패리티비트Dk를 선택하여 출력한다.
도 12는 상기 멀티플렉서1050의 구성을 도시하는 도면이다.
상기 도 12를 참조하면, 상기 멀티플렉서1050은 상기 비트삽입기1010에서 출력되는 24개의 정보비트 Ik들을 제일 먼저 입력한다. 그러면 상기 멀티플렉서1050의 지연기1222는 상기 24비트의 정보비트 Ik를 입력하여 저장한다.
이후 상기 멀티플렉서1050은 상기 제1구성부호기1020에서 출력되는 28개의 제1패리티비트 Ck를 입력한다. 그러면 상기 멀티플렉서1050의 스위치1212는 상기 제1구성부호기1020에서 출력되는 28개의 제1패리티비트 Ck 중 24개의 제1패리티비트 들이 들어올 때까지 지연기1224에 연결되며, 상기 지연기1224는 입력되는 제1패리티비트 Ck를 저장한다. 이후 상기 스위치1212는 상기 제1구성부호기1020에서 출력되는 28개의 제1패리티비트 Ck 중 나머지 8비트의 제1패리티비트들이 입력될 때 지연기1226에 연결되며, 상기 지연기1226은 상기 제1패리티비트 Ck의 나머지 8비트를 저장한다.
다음에 상기 멀티플렉서1050은 상기 제2구성부호기1040에서 출력되는 24개의 제2패리티비트 Dk를 입력한다. 그러면 상기 멀티플렉서1050의 지연기1228은 상기 24비트의 제2패리티비트 Dk를 입력하여 저장한다.
상기와 같이 순차적으로 발생되는 24비트의 정보비트 Ik, 28비트의 제1패리티비트 Ck 및 24비트의 제2패리티비트 Dk는 순차적으로 멀티플렉서1050에 입력되며, 상기 멀티플렉서1050은 순차적으로 입력되는 정보비트 Ik, 제1패리티비트 Ck 및 제2패리티비트 Dk를 입력되는 순서대로 대응되는 지연기에 저장하며, 상기 28비트의 제1패리티비트 Ck 입력시에는 24비트 및 나머지 4비트로 나누어 각각 대응되는 지연기들에 저장한다. 상기 지연기1222-1228들은 메모리 소자들이 직렬 연결되는 구성을 가지며, 각 입력된 비트들을 상기와 같은 지연 과정이 종료될 때 까지 저장한다.
상기와 같은 지연 동작이 종료되면, 스위치1236은 스위치1234와 연결된다. 그리고 상기 스위치1234는 상기 지연기1222와 연결된다. 따라서 상기 지연기1222의 출력이 스위치1234 및 1236을 통해 출력된다. 상기 지연기1222에 저장된 1개의 정보비트가 출력되면, 상기 스위치1236은 상기 스위치1234와 연결된 상태를 유지하며 스위치1234는 상기 지연기1226과 연결된다. 그러면 상기 스위치1234 및 1236을 통해 상기 지연기1226에 저장된 제1패리티비트 Ck의 나머지 비트 중 한 비트가 출력된다. 즉, 상기 삽입된 특정 정보비트를 천공(puncturing)하여 지연기1226에 저장된 제1패리티비트를 출력한다. 이후 상기 스위치1236은는 계속하여 1234와 연결된 상태를 유지하며, 스위치1234는 다시 지연기1222에 연결된다. 상기와 같은 동작을 8회 반복하면서 상기 지연기1222에 저장된 정보비트에 상기 지연기1226에 저장된 나머지 8비트의 제1패리티비트를 천공하여 출력한다. 그러면 24비트의 정보비트 Ik에서 삽입비트의 위치에 8비트의 제1패리티비트가 천공되어 24비트로 출력됨을 알 수 있다.
상기와 같이 동작이 수행된 후, 상기 스위치1236은 상기 지연기1224의 출력을 선택한다. 그러면 상기 지연기1224에 저장된 24비트의 제1패리티비트 Ck가 출력된다. 이후 상기 스위치1236은 다시 지연기1228에 스위칭 연결되어 상기 지연기1228에 저장된 24비트의 제2패리티비트 Dk가 출력된다.
상기 도 10과 같은 구조를 갖는 제3실시예에 따른 부호기 장치는 도 13에 도시된 바와 같이 비트삽입기1010이 16비트의 데이타에 8비트를 삽입하여 24비트의 정보비트 Ik를 발생하며, 구성부호기는 테일비트를 생성하는 순환구조의 구성부호기를 사용한다. 이런 경우 상기 구성부호기는 24비트의 부호화 데이타에 4비트의 테일비트 및 4비트의 테일비트에 따른 부호화 데이타로 이루어지는 총 32비트의 부호화 데이타를 발생한다. 그리고 상기 부호화 데이타를 출력할 시 상기 입력정보 Ik의 비트 삽입 위치에 상기 제1패리티비트의 나머지 8비트를 천공하여 정보비트 Ik를 발생한다.
복호화 과정에서는 위의 멀티플렉서의 출력값들을 멀티플렉서의 역으로 진행시키면 정보비트부분과 제1패리티비트부분과 제2패리티비트 부분이 나오는데 이때 정보비트부분의 비트삽입부분에 -5라는 값을 천공한다. 이과정을 거친 비트들을 기존의 복호기로 복호화 한다[참조 : Claude Berrou,Alain Glavieux and Punya Thitmajshima "Near Shannon Limit Error-Correcting Coding and Decoding : Turbo-Codes(1)"].
상기의 설명에서 삽입비트는 0비트을 예로들어 설명하고 있지만, 부호화 비트나 수신측과 약속된 데이타를 삽입비트로 사용할 수도 있다.
제4실시예
본 발명의 제4실시예에 따른 부호기 장치는 테일비트를 생성하지 않고 특정 비트 정보를 설정된 위치에 삽입하여 터미네이션 기능을 수행하고, 그 삽입위치에 삽입비트 대신 특정개수의 부호화된 비트들을 반복하여 보낸다. 상기 제4실시예에서는 1프레임이 16비트로 이루어진 정보부호를 입력하며, 상기 특정 비트가 0로써 8비트의 특정비트를 프레임 상에 오류 확률이 큰 비트 위치에 삽입한다. 여기서 상기 특정 비트의 위치는 부호화된 데이타를 복호할 시 가장 많이 오류가 발생되는 위치를 실험적으로 측정하여 설정한다. 또한 각 구성부호기는 1/3 부호화율(coding rate)을 사용한다고 가정한다.
상기 제4실시예에 따른 방법은 부호화시 프레임 데이타에 상기 특정 비트들을 삽입한 수의 프레임 데이타(즉, 16비트의 프레임 데이타+8비트의 특정비트들의 수= 24비트)를 1/3 부호화율을 사용하는 터보부호기로 사용할 때, 복호시 오류 확률이 가장 큰 위치를 실험적으로 구한다. 이중 오류 확률이 가장 큰 8개의 위치를 결정하고, 이 위치에 정보 비트를 사용하지 않고 상기 특정 비트를 삽입하여 부호화한다. 부호화 후 각각의 패리티비트의 마지막 4비트들을 반복해서 이를 삽입 특정 비트대신 삽입위치에 넣어서 보낸다. 이때 복호기는 상기 특정 비트가 삽입되어 부호화된 프레임 데이타를 복호시 부호화 과정에서 4개의 반복된 패리티비트가 삽입된 위치를 알고 있다. 그 비트들을 다시 패리티비트에 합쳐서(combining) 복호화한다.
이때 상기 특정 비트가 0인 경우, 실제 0비트는 채널에서 -1로 전송되기 때문에 이에 대한 신뢰도를 높이기 위하여 -1 측으로 아주 치우쳐진 아주 큰 음의 값(예를 들면 -5)으로 삽입 위치에 있는 비트를 바꾸어주고 복호 동작을 수행한다. 상기와 같은 방법을 사용하면, 실제로 24비트의 정보 부호 중에 1/3인 8비트를 알고 복호하고 반복된 비트들의 신뢰도가 높아지기 때문에 다른 터미네이션 방법 보다 좋은 성능을 가질 수 있다.
도 14는 본 발명의 제4실시예에 따라 특정 값을 삽입하는 비트삽입기를 구비하는 터보부호의 부호기 구성을 도시하고 있다. 비트삽입기(bit inserter)1410은 정보 비트들을 입력하고 특정 비트를 생성하는 비트생성기를 구비하며, 설정된 비트 위치에서 상기 비트생성기에서 생성되는 특정 비트를 삽입하여 프레임 단위의 정보 비트들을 발생한다. 제1구성 부호기1420은 상기 비트삽입기1410에서 출력되는 정보 비트들을 입력하며, 상기 정보 비트들을 부호화하여 출력한다. 인터리버1430은 상기 비트삽입기1410에서 출력되는 프레임 단위의 정보 비트들을 설정된 규칙에 따라 인터리빙하여 정보 비트의 순서를 바꾸는 기능을 수행한다. 본 발명의 실시예에서는 대각인터리버를 사용한다고 가정한다. 제2구성 부호기1440은 상기 인터리버1430에서 출력되는 인터리빙된 프레임 단위의 정보 비트들을 부호화하여 출력한다. 여기서 상기 제1구성부호기1420 및 제2구성부호기는 순환 구조를 갖는 길쌈 부호기(recursive systematic convolutional coder)가 될 수 있다. 멀티플렉서1450은 상기 비트삽입기1410, 제1구성부호기1420 및 제2구성부호기1440의 출력을 입력하며, 도시하지 않은 제어기에 의해 상기 상기 입력을 선택 출력한다. 여기서 상기 비트삽입기1410의 출력은 정보비트Ik가 되고, 제1구성부호기1420의 출력은 제1패리티비트P1k가 되며, 제2구성부호기1440의 출력은 제2패리티비트P2k가 된다.
도 15a는 도 14와 같은 구조를 갖는 부호기에서 비트삽입기1410의 구성 예를 도시하고 있다. 상기 도 15a를 참조하면, 비트생성기(bit generator)1530은 정보 비트들에 삽입하기 위한 특정 비트들을 발생한다. 여기서 상기 특정비트가 0라고 가정한다. 지연기1512-1526은 플립플롭 등과 같은 메모리 소자로 구성할 수 있으며, 비트 클럭에 의해 입력되는 정보 비트를 쉬프트하는 직렬 쉬프트 레지스터 구조를 가질 수 있다. 스위치1532는 도시하지 않은 제어기에 의해 스위칭되어 상기 지연기1512-1526의 출력을 선택 출력한다. 상기 스위치1532는 상기 정보 비트들에 비트생성기1530에서 출력되는 특정 비트를 삽입하는 위치에서 도시하지 않은 상기 제어기에 의해 스위칭되어 다음 지연기의 출력단과 연결된다. 즉, 상기 스위치1532는 상기 특정 비트가 선택되어 정보비트 사이에 삽입될 시 출력되는 정보비트를 1비트 지연시킨 정보 비트를 선택하는 기능을 수행한다. 상기 스위치1532는 멀티플렉서로 구현할 수 있다. 스위치1534는 상기 비트생성기1530의 출력과 상기 스위치1532의 출력단에 연결되며, 도시하지 않은 제어기에 의해 스위칭되어 정보비트들을 발생한다. 상기 스위치1534는 상기 제어기에 의해 정보비트들의 설정된 위치에 상기 특정 비트를 삽입하여 출력하는 기능을 수행한다.
상기 도 15a를 참조하여 정보비트들에 특정 비트를 삽입하는 동작을 살펴보면, 입력되는 정보 비트들은 비트 클럭에 의해 지연기1512-1526에서 지연되며, 초기에 스위치1532는 입력되는 정보비트를 선택하고 스위치1534는 스위치1532와 연결된다. 그러면 상기 입력되는 정보비트들은 스위치1532 및 1534를 통해 출력된다. 상기와 같이 출력되는 과정에서 특정 비트를 삽입될 위치가 되면, 제어기의 제어에 의해 스위치1532는 지연기1512의 출력단에 연결되며 스위치1534는 비트생성기1530에 연결된다. 따라서 정보비트의 경로가 단절되고 해당 비트 위치에 비트생성기1530에서 출력되는 0비트가 삽입된다. 그리고 상기 0비트를 삽입한 후 정보비트를 출력해야하는 경우, 스위치1534는 제어기에 의해 1532와 연결된다. 따라서 0비트가 삽입된 후 1비트 지연된 정보비트가 선택되어 출력되므로, 상기 0비트가 설정된 위치에서 정보비트의 손실 없이 삽입됨을 알 수 있다.
상기와 같은 과정을 반복하면서 정보비트들에 0비트를 삽입하며, 상기 0비트를 삽입한 후에는 1비트 지연된 정보비트들을 선택하며, 프레임 단위의 정보비트들에 대한 0비트를 모두 삽입한 후, 다음 프레임의 정보 비트들이 입력되는 경우에는 상기 스위치1532는 정보비트 입력단에 연결하여 위와 같은 동작을 반복 수행한다. 상기 정보비트들을 부호화하여 통신하는 경우, 오류 확률은 프레임의 뒷부분에서 크게 발생한다. 따라서 상기 비트생성기1530에서 발생되는 0비트들이 삽입되는 위치는 프레임의 뒷부분에 많이 설정될 수 있다.
도 1에 비트삽입기1410에서 출력되는 정보비트는 제1구성부호기1420 및 인터리버1430에 인가된다. 그리고 상기 인터리버1430에서 출력되는 인터리빙된 프레임 단위 정보 비트들은 제2구성부호기1440에 인가되어 부호화된다. 도 15b는 도 14의 제1구성부호기1420 및 제2구성부호기1440의 구성을 도시하고 있다. 상기 구성부호기1420 및 1440은 도 15b에 도시된 바와 같이 순환구조를 갖는 구성 부호기로써 길쌈부호기 이다. 또한 상기 구성부호기1420 및 1440은 도 15b에 도시된 바와 같이 테일비트를 발생하지 않는 구성을 갖고 있음을 알 수 있다.
제1구성부호기1420이 비트삽입기1410의 출력을 부호화할 시, 인터리버1430은 상기 비트삽입기1410에서 출력되는 정보비트들을 인터리빙하며, 인터리빙된 정보비트들은 제2구성부호기1440에 인가된다. 그러면 상기 제2구성부호기1440은 상기 인터리버1430에서 출력되는 인터리빙된 정보비트들을 부호화하여 출력한다.
이때 상기 비트삽입기1410, 제1구성부호기1420 및 제2구성부호기1440의 출력을 입력하는 멀티플렉서1450은 도시하지 않은 제어기의 제어에 의해 정보비트 및 부호화된 데이타들을 선택하여 채널 부호화 데이타로 출력한다.
상기와 같이 순차적으로 발생되는 24비트의 정보비트 Ik, 제1패리티비트 Ck 및 제2패리티비트 Dk는 순차적으로 멀티플렉서1450에 입력되며, 상기 멀티플렉서1450은 순차적으로 입력되는 22비트의 정보비트 Ik, 제1패리티비트 Ck 및 제2패리티비트 Dk를 입력되는 순서대로 24비트를 각각 대응되는 지연기들에 저장한고, 각 패리티비트의 마지막 4비트를 한번 더 각각 대응되는 지연기들에 저장한다. 이때 상기 스위치1601-1602은 도시하지 않은 제어기에 의해 제어된다. 또한 상기 지연기1621-1625들은 메모리 소자들이 직렬 연결되는 구성을 가지며, 각 입력된 비트들을 상기와 같은 지연 과정이 종료될 때 까지 저장한다.
상기와 같은 지연 동작이 종료되면, 스위치1640는 스위치1630과 연결된다. 그리고 상기 스위치1630은 상기 지연기1621과 연결된다. 따라서 상기 지연기1621의 출력이 스위치1630 및 1640를 통해 출력된다. 상기 지연기1621에 저장된 1개의 삽입비트가 출력되면, 상기 스위치1640은 상기 스위치1630과 연결된 상태를 유지하며 스위치1630는 상기 지연기1623와 연결된다. 그러면 상기 스위치1630 및 1640을 통해 상기 지연기1623에 저장된 정보비트의 나머지 비트 중 한 비트가 출력된다. 즉, 상기 정보비트를 천공(puncturing)하여 지연기1623에 저장된 제1패리티비트를 출력한다. 이후 상기 스위치1640은 계속하여 1630와 연결된 상태를 유지하며, 스위치1630은 다시 지연기1621에 연결된다. 상기와 같은 동작을 4회 반복하면서 상기 지연기1621에 저장된 정보비트에 상기 지연기1623에 저장된 나머지 4비트의 저장된 나머지 4비트의 제1패리티비트들을 천공하여 출력한다.
상기와 같이 동작이 수행된 후, 상기 스위치1640는 상기 스위치1630에 연결된 상태를 유지하며, 상기 스위치1630는 상기 지연기1621와 연결된다. 그러면 상기 지연기1621의 출력이 스위치1630 및 1640를 통해 출력된다. 상기 지연기1621에 저장된 1개의 삽입비트가 출력되면, 상기 스위치1640는 상기 스위치1630와 연결된 상태를 유지하며, 스위치1630는 상기 지연기1625과 연결된다. 따라서 상기 지연기1625에 저장된 제2패리티비트의 나머지 4비트 중의 한 비트가 스위치1630 및 1640를 통해 출력된다. 이후 상기 스위치1640는 계속하여 1630와 연결된 상태를 유지하며, 스위치1630는 다시 지연기1621에 연결된다. 상기와 같은 동작을 4회 반복하면서 상기 지연기1621에 저장된 정보비트에 상기 지연기1625에 저장된 나머지 4비트의 제2패리티비트들을 천공하여 출력한다.
상기와 같이 동작을 수행하면, 상기 지연기1621에 저장된 24비트의 정보비트에 지연기1623에 저장된 나머지 4비트의 제1패리티비트, 지연기1625에 저장된 나머지 4비트의 제2패리티비트들이 교번적으로 천공하여 24비트를 출력한다. 따라서 상기 비트삽입기1410에서 출력되는 Ik는 멀티플렉서1450에서 삽입비트 위치에 8비트의 패리티비트를 천공하여 24비트의 정보비트로 출력된다.
상기와 같은 동작의 수행이 완료되면, 상기 스위치1640은 상기 지연기1622의 출력을 선택한다. 그러면 상기 지연기1622에 저장된 24비트의 제1패리티비트 Ck가 출력된다. 이후 상기 스위치1640는 다시 지연기1624에 스위칭 연결되어 상기 지연기1624에 저장된 24비트의 제2패리티비트 Dk가 출력된다.
도 17은 상기 도 14와 같은 구성을갖는 제4실시예의 터보부호기 구조에서 0비트를 삽입하여 부호화한 후 출력되는 타이밍을 도시하는 도면이다. 상기 도 16을 참조하면, 비트삽입기1410이 T1구간에서 1711과 같이 설정된 프레임 비트 위치에 0비트를 삽입하면서 상기 <표 1>과 같은 정보 비트 Ik를 발생한다. 그리고 상기 0비트가 삽입된 정보비트Ik는 T2 구간에서 멀티플렉서1450, 제1구성부호기1420 및 인터리버1430에 동시에 인가된다. 그러면 상기 제1구성부호기1420은 1712와 같이 0비트가 삽입된 정보비트 Ik를 부호화하여 제1패리티비트인 제1부호화 데이타 Ck를 발생하며, 인터리버1430은 1713과 같이 0비트가 삽입된 정보비트 Ik를 설정된 방식으로 인터리빙하여 출력한다. 이후 T3 구간에서 멀티플렉서1450은 상기 비트삽입기1410에서 출력되는 정보비트 Ik를 1프레임 주기 지연시키고, 제1구성부호기1420은 제1부호화 데이타 Ck를 상기 멀티플렉서1450에 입력시키며, 상기 제2구성부호기1440은 상기 인터리버1430에서 출력되는 인터리빙된 정보비트Ik를 부호화하여 제2패리티 비트인 제2부호화데이타Dk를 발생한다. 이때 상기 제2구성부호기1440에서 제2패리티비트 Dk를 발생하면, 멀티플렉서1450은 상기 정보비트 Ik, 제1패리티비트 Ck 및 제2패리티비트 Dk를 멀티플렉싱하여 출력한다.
상기 도 17은 정보비트 Ik와 패리티비트 Ck 및 Dk를 병렬 처리하는 구조를 예를들어 설명하고 있지만, 발생되는 순서에 따라 비트삽입기1410의 출력, 제1구성부호기1420의 출력 및 제2구성부호기1430의 출력을 순차적으로 선택하여 직렬 출력할 수도 있다.
상기한 바와 같이 본 발명의 제4실시예에 따른 순환구조를 갖는 부호기 장치에서 각 구성 부호기들은 터미네이션을 위한 테일비트를 생성하지 않으며, 오류 확률이 큰 위치의 비트 위치에 특정비트(제4실시예에서는 zero bit)를 삽입하여 부호화그 위치에 부호화된 비트를 대신 실어 전송한다.
제5실시예
본 발명의 제5실시예에 따른 부호기 장치는 터미네이션 기능을 수행하기 위하여 오류 발생 확률이 큰 비트 위치에 특정 논리를 갖는 비트를 정보비트들에 삽입하고, 구성부호기에서 특정 비트가 삽입된 정보 비트를 부호화한 후, 한 구성부호기에서 테일비트를 생성하여 부가하는 구성을 갖는다. 즉, 상기 제5실시예의 부호기 장치는 비트 삽입 및 테일비트를 부가하여 터미네이션 기능을 수행한다.
상기 삽입비트들의 수는 부호화기의 입력정보비트수, 출력부호심볼의 개수, 구속장(Constraint length)와 코드레이트(Code Rate)에 의해 결정되어진다. 즉, 부호화기의 입력정보비트수가 N, 상기 부호화기의 출력부호심볼의 개수를 M, 코드레이트가 1/K, 구속장이 L이라 하면, 삽입비트수는 (M-KN-2(K-1)(L-1))/(K-1)이다. 상기 예를 적용하여 계산해보면 부호화기의 입력정보비트수가 16, 출력부호심볼의 개수를 72, 코드레이트가 1/3, 구속장이 5라 하면, 삽입비트수는 4이다.
실제로 비트삽입이 많아질수록 성능이 좋아지는데, 상기와 같은 방식의 부호화기는 주어진 부호화기의 입력정보비트수와 출력부호심볼의 개수에 대해서 최대한의 비트삽입을 하여 최대한의 성능개선을 할 수 있다. 상기 실시예에서와 같이 4개의 삽입비트를 사용하고 부호화과정후 부호화 심볼들을 전송할 때, 정보비트부분의 삽입비트들을 보내지 않고, 부호화 심볼들을 전송함으로써 최대한의 비트삽입을 이용한 성능개선을 할 수 있다.
도 18은 상기 제5실시예에 따른 부호기 장치의 구성을 도시하고 있다. 상기 도 18을 참조하면, 16개의 입력비트 들은 비트삽입기1810에 입력된다. 여기서 상기 비트삽입기1810은 메모리를 8개 대신 4개만 사용하고, 나머지는 상기 제4실시예의 비트삽입기1410과 동일한 구성을 갖는다. 상기 비트삽입기1810은 제어기에 의해 내부의 스위치가 제어되어 오류 확률이 큰 프레임 내의 4개 정보 비트 위치에 각각 4개의 0비트가 삽입되며, 도 19와 같이 구성할 수 있다.
따라서 제5실시예에서는 상기 비트삽입기1810에서 출력되는 정보비트 Ik는 20 비트로 이루어지며, 상기 비트삽입기1810에서 출력되는 정보비트 Ik는 각각 멀티플렉서1850, 제1구성부호기1820 및 인터리버1830에 각각 입력된다. 그리고 상기 인터리버1830에서 출력되는 인터리빙된 정보비트Ik를 제2구성부호기1840에 인가된다. 여기서 제1구성부호기1820은 도 20과 같이 순환 구조를 갖는 구성부호기로써 도 20과 같이 테일비트를 생성하여 부가하는 구조를 갖는다. 그리고 상기 제2구성부호기1840은 상기 제4실시예의 도 15b와 같이 터미네이션을 위한 테일비트를 생성하지 않는 구조의 부호기를 사용한다.
상기 도 20을 참조하여 상기 제5실시예의 제1구성부호기1820의 동작을 살펴보면, 먼저 부호화시 스위치2011은 입력단과 배타적 논리합기2031을 연결시키며, 스위치2013은 오프된 상태를 유지한다. 그러면 상기 20비트의 정보비트 Ik들은 상기 스위치2011 및 배타적 논리합기2031을 통해 입력되는 지연기2021-2027에 순차적으로 입력되고 배타적 논리합기2035에서 부호화되어 출력된다. 상기와 같이 같은 과정으로 정보비트Ik가 모두 지연기 및 배타적 논리합기에 의해 부호화되면, 터미네이션을 위하여 상기 스위치2011은 배타적 논리2033과 2031을 연결된다. 그러면 상기 피드백되는 출력의 배타적 논리합 연산에 의해 0비트가 발생되며, 이 값이 지연기2021-2027에 입력되어 저장된다. 이때 상기 지연기2021-2027에 저장되는 0 값이 테일비트가 되며, 이 값은 스위치2015를 통해 출려된다. 이때 상기 테일비트는 상기 구성부호기1820의 내부에 위치된 지연기들의 수에 대응되도록 발생되며, 도 20과 같은 구조를 갖는 경우에는 프레임 당 4개의 테일비트가 생성되고, 이런 각각의 테일비트들에 대한 부호화된 4개의 비트들이 발생된다.
따라서 상기 제1구성부호기1820은 상기 20비트의 제1패리티비트 Ck를 발생하면서, 마지막 20번째 정보가 다 처리되면 스위치2011이 배타적 논리합기2033에 연결되고, 스위치2013이 상기 스위치2011에 연결되며, 스위치2015가 상기 스위치2013에 연결되어 4번 동작되므로써 4비트의 테일 비트를 생성하여 출력한다. 이런 과정을 거쳐 24비트의 제1패리티 비트 Ck들과 4개의 테일비트Tk들을 출력하고, 출력된 제1패리티 비트 Ck들은 다시 멀티플렉서1850에 입력되고 스위치1860은 제1구성부호기 쪽으로 연결되어 테일비트Tk는 인터리버1830에 입력되고 동시에 스위치1870이 멀티플렉서1850으로 연결되어 입력된다.
또한 상기 인터리버1830는 상기 비트삽입기1810에서 출력되는 20개의 정보비트 Ik와 제1구성부호기1820에서 출력되는 4비트의 테일비트등 총 24비트를 인터리빙하여 제2구성부호기1840에 입력시키며, 상기 제2구성부호기1840은 상기 도 14의 제1구성부호기1440과 동일한 방법으로 인터리빙된 정보비트들을 부호화하여 또 다른 24비트의 제2패리티 비트 Dk를 발생한다. 그리고 상기 제2구성부호기1840에서 출력되는 제2패리티비트 Dk도 상기 멀티플렉서1850에 인가된다.
이때 상기 인터리버1830에서 출력되는 인터리빙된 프레임 단위 정보 비트들은 제2구성부호기1840에 인가되어 부호화된다. 상기 제2구성부호기1840은 상기 제4실시예의 도 15b과 같은 구조를 갖는다. 상기 제2구성부호기1840은 도 15b에 도시된 바와 같이 순환구조를 갖는 구성 부호기로써 길쌈부호기 이다. 또한 상기 구성부호기1840은 상기 도 15b에 도시된 바와 같이 테일비트를 발생하지 않는 구성을 갖고 있음을 알 수 있다.
그러면 상기 멀티플렉서1850은 상기 정보비트 Ik에 제1패리티비트 Ck의 4비트들을 천공하여 출력하고, 나머지 24비트의 제1패리티비트 Ck 및 제2패리티비트Dk를 선택하여 출력한다.
도 21은 상기 멀티플렉서1850의 구성을 도시하는 도면이다.
상기 도 21을 참조하면, 상기 멀티플렉서1850은 상기 비트삽입기1810에서 출력되는 20개의 정보비트 Ik들을 제일 먼저 입력한다. 그러면 상기 멀티플렉서1850의 지연기2122는 상기 20비트의 정보비트 Ik를 입력하여 저장한다.
이후 상기 멀티플렉서1850은 상기 제1구성부호기1820에서 출력되는 24개의 제1패리티비트 Ck를 입력되어 지연기2124에 저장되고, 4개의 테일비트Tk가 입력되어 지연기2122에 저장된다. 다음에 상기 멀티플렉서1850은 상기 제2구성부호기1840에서 출력되는 24개의 제2패리티비트 Dk를 입력한다. 그러면 상기 멀티플렉서1850의 지연기2126은 상기 24비트의 제2패리티비트 Dk를 입력하여 저장한다.
상기 지연기2122-2126들은 메모리 소자들이 직렬 연결되는 구성을 가지며, 각 입력된 비트들을 상기와 같은 지연 과정이 종료될 때 까지 저장한다.
상기와 같은 지연 동작이 종료되면, 스위치2101은 지연기2122와 연결되어 지연기2122에 있는 비트들이 출력되며, 상기 스위치2101는 상기 지연기2124와 연결된다. 상기 지연기2124의 출력이 스위치2101을 통해 출력되면 상기 스위치2101는 상기 지연기2126와 연결되고, 상기 지연기2126의 출력이 스위치2101을 통해 출력된다.
제6실시예
본 발명의 제6실시예에 따른 부호기 장치는 제6실시예와 동일하게 진행되고, 비트삽입위치에서 삽입비트들이 천공되고, 그 위치에 제1구성부호기에서의 4비트의 테일 패리티비트들이 반복되어 보내어 진다. 도 22는 본 발명의 제5실시예에 따른 부호기 장치의 구성을 도시하는 도면으로써,멀티플렉서2250이전까지의 동작은 제5실시예와 동일하다.
상기 도 23을 참조하면, 상기 멀티플렉서2250은 상기 비트삽입기2210에서 출력되는 20개의 정보비트 Ik들을 제일 먼저 입력한다. 그러면 상기 멀티플렉서2250의 지연기2321는 상기 20비트의 정보비트 Ik를 입력하여 저장한다. 이후 상기 멀티플렉서2250은 상기 제1구성부호기2220에서 출력되는 24개의 제1패리티비트 Ck를 입력되어 지연기2322에 저장되고 제1패리티비트의 마지막 4비트를 한 번더 지연기2323에 저장하며, 4개의 테일비트Tk가 입력되어 지연기2321에 저장된다. 다음에 상기 멀티플렉서2250은 상기 제2구성부호기2240에서 출력되는 24개의 제2패리티비트 Dk를 입력한다. 그러면 상기 멀티플렉서2250의 지연기2324는 상기 24비트의 제2패리티비트 Dk를 입력하여 저장한다.
이때 상기 스위치2301은 도시하지 않은 제어기에 의해 제어된다. 또한 상기 지연기2321-2324들은 메모리 소자들이 직렬 연결되는 구성을 가지며, 각 입력된 비트들을 상기와 같은 지연 과정이 종료될 때 까지 저장한다.
상기와 같은 지연 동작이 종료되면, 스위치2340는 스위치2330과 연결된다. 그리고 상기 스위치2330은 상기 지연기2321과 연결된다. 따라서 상기 지연기2321의 출력이 스위치2330 및 2340를 통해 출력된다. 상기 지연기2321에 저장된 1개의 삽입비트가 출력되면, 상기 스위치2340은 상기 스위치2330과 연결된 상태를 유지하며 스위치2330는 상기 지연기2323와 연결된다. 그러면 상기 스위치2330 및 2340을 통해 상기 지연기2323에 저장된 제1패리티비트의 나머지 비트 중 한 비트가 출력된다. 즉, 상기 정보비트를 천공(puncturing)하여 지연기2323에 저장된 제1패리티비트를 출력한다. 이후 상기 스위치2340은 계속하여 2330와 연결된 상태를 유지하며, 스위치2330은 다시 지연기2321에 연결된다. 상기와 같은 동작을 4회 반복하면서 상기 지연기2321에 저장된 정보비트에 상기 지연기2323에 저장된 나머지 4비트의 저장된 나머지 4비트의 제1패리티비트들을 천공하여 출력한다.
상기와 같이 동작을 수행하면, 상기 지연기2321에 저장된 24비트의 정보비트에 지연기2323에 저장된 나머지 4비트의 제1패리티비트들이 교번적으로 천공하여 24비트를 출력한다. 따라서 상기 비트삽입기2210에서 출력되는 Ik는 멀티플렉서2250에서 삽입비트 위치에 4비트의 패리티비트를 천공하여 24비트의 정보비트로 출력된다.
상기와 같은 동작의 수행이 완료되면, 상기 스위치2340은 상기 지연기2322의 출력을 선택한다. 그러면 상기 지연기2322에 저장된 24비트의 제1패리티비트 Ck가 출력된다. 이후 상기 스위치2340는 다시 지연기2324에 스위칭 연결되어 상기 지연기2324에 저장된 24비트의 제2패리티비트 Dk가 출력된다.
제7실시예
본 발명의 제7실시예에 따른 부호기 장치는 제5실시예와 동일하게 진행되고, 비트삽입위치에서 삽입비트들이 천공되고, 그 위치에 제2구성부호기에서의 패리티비트들의 마지막 4비트가 반복되어 보내어 진다. 도 24는 본 발명의 제7실시예에 따른 부호기 장치의 구성을 도시하는 도면으로써, 멀티플렉서2450이전까지의 동작은 제5실시예와 동일하다.
상기 도 24를 참조하면, 상기 멀티플렉서2450은 상기 비트삽입기2410에서 출력되는 20개의 정보비트 Ik들을 제일 먼저 입력한다. 그러면 상기 멀티플렉서2450의 지연기2521는 상기 20비트의 정보비트 Ik를 입력하여 저장한다. 이후 상기 멀티플렉서2450은 상기 제1구성부호기2420에서 출력되는 24개의 제1패리티비트 Ck를 입력되어 지연기2522에 저장하며, 4개의 테일비트Tk가 입력되어 지연기2521에 저장된다. 다음에 상기 멀티플렉서2450은 상기 제2구성부호기2440에서 출력되는 24개의 제2패리티비트 Dk를 입력한다. 그러면 도 25와 같은 구성을 갖는 상기 멀티플렉서2450은 상기 비트삽입기2410, 제1구성부호기2420 및 제2구성부호기2440에서 출력되는 정보비트 및 패리티비트 Ck, Dk를 멀티플렉싱하여 출력한다.
도 25는 본 발명의 제7실시예에 따라 입력되는 비트들을 출력하는 멀티플렉서2450의 구성을 도시하고 있다.
상기 도 25를 참조하면, 상기 멀티플렉서2450의 지연기2523는 상기 24비트의 제2패리티비트 Dk를 입력하여 저장하고, 제2패리티비트의 마지막 4비트를 한 번 더 지연기2524에 저장한다. 이때 상기 스위치2501은 도시하지 않은 제어기에 의해 제어된다. 또한 상기 지연기2521-2524들은 메모리 소자들이 직렬 연결되는 구성을 가지며, 각 입력된 비트들을 상기와 같은 지연 과정이 종료될 때 까지 저장한다.
상기와 같은 지연 동작이 종료되면, 스위치2540은 스위치2530과 연결되고, 상기 스위치2530은 상기 지연기2521과 연결된다. 따라서 상기 지연기2521의 출력이 스위치2530 및 2540를 통해 출력된다. 상기 지연기2521에 저장된 1개의 삽입비트가 출력되면, 상기 스위치2540은 상기 스위치2530과 연결된 상태를 유지하며 스위치2530은 상기 지연기2524와 연결된다. 그러면 상기 스위치2530 및 2540을 통해 상기 지연기2524에 저장된 제2패리티비트의 나머지 비트 중 한 비트가 출력된다. 즉, 상기 정보비트를 천공(puncturing)하여 지연기2524에 저장된 제2패리티비트를 출력한다. 이후 상기 스위치2540은 계속하여 2530과 연결된 상태를 유지하며, 스위치2530은 다시 지연기2521에 연결된다. 상기와 같은 동작을 4회 반복하면서 상기 지연기2521에 저장된 정보비트에 상기 지연기2524에 저장된 나머지 4비트의 저장된 나머지 4비트의 제2패리티비트들을 천공하여 출력한다.
상기와 같이 동작을 수행하면, 상기 지연기2521에 저장된 24비트의 정보비트에 지연기2524에 저장된 나머지 4비트의 제2패리티비트들이 교번적으로 천공하여 24비트를 출력한다. 따라서 상기 비트삽입기2410에서 출력되는 Ik는 멀티플렉서2450에서 삽입비트 위치에 4비트의 제2패리티비트를 천공하여 24비트의 정보비트로 출력된다.
상기와 같은 동작의 수행이 완료되면, 상기 스위치2540은 상기 지연기2522의 출력을 선택한다. 그러면 상기 지연기2522에 저장된 24비트의 제1패리티비트 Ck가 출력된다. 이후 상기 스위치2540는 다시 지연기2524에 스위칭 연결되어 상기 지연기2523에 저장된 24비트의 제2패리티비트 Dk가 출력된다.
제8실시예
본 발명의 제8실시예에 따른 부호기 장치는 터미네이션 기능을 수행하기 위하여 오류 발생 확률이 큰 비트 위치에 특정 논리를 갖는 비트를 정보비트들에 삽입하고, 구성부호기에서 특정 비트가 삽입된 정보 비트를 부호화한 후, 구성부호기에서 독립적으로 테일비트를 생성하여 부가하는 구성을 갖는다. 즉, 상기 제8실시예의 부호기 장치는 비트 삽입 및 테일비트를 부가하여 터미네이션 기능을 수행한다.
도 26은 상기 제8실시예에 따른 부호기 장치의 구성을 도시하고 있다. 상기 도 26을 참조하면, 16개의 입력비트 들은 비트삽입기2610에 입력된다. 여기서 상기 비트삽입기2610은 상기 제5실시예의 비트삽입기1810(도 19)과 동일한 구성을 갖는다. 상기 비트삽입기2610은 제어기에 의해 내부의 스위치가 제어되어 오류 확률이 큰 프레임 내의 4개 정보 비트 위치에 각각 4개의 0비트가 삽입된다. 따라서 제8실시예에서는 상기 비트삽입기2610에서 출력되는 정보비트 Ik는 20 비트로 이루어지며, 상기 비트삽입기2610에서 출력되는 정보비트 Ik는 각각 멀티플렉서2650, 제1구성부호기2620 및 인터리버2630에 각각 입력된다. 그리고 상기 인터리버2630에서 출력되는 인터리빙된 정보비트Ik를 제2구성부호기2640에 인가된다. 여기서 제1구성부호기2620과 제2구성부호기2640은 도 20과 같이 순환 구조를 갖는 구성부호기로써 테일비트를 생성하여 부가하는 구조를 갖는다.
상기 제1구성부호기2620는 24비트의 제1패리티 비트 Ck들과 4개의 테일비트Tk들을 출력하고, 출력된 제1패리티 비트 Ck들은 다시 멀티플렉서2650에 입력되고 테일비트Tk는 스위치2670에 입력된다. 상기 스위치2670은 상기 비트삽입기2610에서 출력되는 정보비트 Ik와 상기 제1구성부호기2620에서 출력되는 테일비트Tk를 입력하며, 도시하지 않은 제어기에 의해 상기 정보비트Ik 및 상기 테일비트Tk를 스위칭 출력한다. 스위치2670은 상기 정보비트 Ik에서 삽입비트가 위치되는 구간에서 상기 제1구성부호기2620에서 출력되는 테일비트Tk를 천공하여 멀티플렉서2650에 출력한다.
상기 인터리버2630은 상기 비트삽입기2610에서 출력되는 20개의 정보비트 Ik를 인터리빙하여 제2구성부호기2640에 입력시키며, 상기 제2구성부호기2640은 24비트의 제2패리티비트 Dk들은 멀티플렉서2650에 입력되고, 상기 제2구성부호기2640은 4비트의 테일비트Tk를 발생한다. 스위치2660은 상기 제2구성부호기2640에서 출력되는 제2패리티비트Dk와 테일비트Tk를 스위칭하여 멀티플렉서2650에 인가한다.
도 27은 상기 멀티플렉서2650의 구성을 도시하는 도면이다.
상기 도 27을 참조하면, 상기 멀티플렉서2650은 상기 비트삽입기2610에서 출력되는 20개의 정보비트 Ik들을 제일 먼저 입력한다. 그러면 상기 멀티플렉서2650의 지연기2721은 상기 20비트의 정보비트 Ik를 입력하여 저장한다.
이후 상기 멀티플렉서2650은 상기 제1구성부호기2620에서 출력되는 24개의 제1패리티비트 Ck를 입력되어 지연기2722에 저장되고, 4개의 테일비트Tk가 입력되어 지연기2721에 저장된다. 다음에 상기 멀티플렉서2650은 상기 제2구성부호기2640에서 출력되는 24개의 제2패리티비트 Dk를 입력한다. 그러면 상기 멀티플렉서2650의 지연기2723은 상기 24비트의 제2패리티비트 Dk를 입력하여 저장하고 지연기2724은 상기 4비트의 테일비트 Tk를 입력하여 저장한다.
상기 지연기2721-2724들은 메모리 소자들이 직렬 연결되는 구성을 가지며, 각 입력된 비트들을 상기와 같은 지연 과정이 종료될 때 까지 저장한다.
상기와 같은 지연 동작이 종료되면, 스위치2740는 스위치2730과 연결된다. 그리고 상기 스위치430은 상기 지연기2721과 연결된다. 따라서 상기 지연기2721의 출력이 스위치2730 및 2740를 통해 출력된다. 상기 지연기2721에 저장된 1개의 삽입비트가 출력되면, 상기 스위치2740은 상기 스위치2730과 연결된 상태를 유지하며 스위치2730는 상기 지연기2724와 연결된다. 그러면 상기 스위치2730 및 2740을 통해 상기 지연기2724에 저장된 정보비트의 나머지 비트 중 한 비트가 출력된다. 즉, 상기 정보비트를 천공(puncturing)하여 지연기2724에 저장된 테일비트를 출력한다. 이후 상기 스위치2740은 계속하여 스위치2730과 연결된 상태를 유지하며, 스위치2730은 다시 지연기2721에 연결된다. 상기와 같은 동작을 4회 반복하면서 상기 지연기2721에 저장된 정보비트에 상기 지연기2724에 저장된 상기 제2구성부호기2640의 테일비트들을 천공하여 출력한다.
상기와 같이 동작이 수행된 후, 상기 스위치2740는 상기 스위치2730에 연결된 상태를 유지하며, 상기 스위치2730는 상기 지연기2722와 연결된다. 그러면 상기 지연기2722의 출력이 스위치2730 및 2740를 통해 출력된다. 상기와 같이 동작이 수행된 후, 상기 스위치2740는 상기 스위치2730에 연결된 상태를 유지하며, 상기 스위치2730는 상기 지연기2723와 연결된다. 그러면 상기 지연기2723의 출력이 스위치2730 및 2740를 통해 출력된다.
상기한 바와 같이 본 발명의 제8실시예에 따른 순환구조를 갖는 부호기 장치에서 각 구성 부호기들은 터미네이션을 테일비트를 생성하며, 오류 확률이 큰 위치의 비트 위치에 특정비트(제4실시예에서는 zero bit)를 삽입하여 그 위치에 테일 비트를 대신 실어 전송한다.
제9실시예
본 발명의 제9실시예에 따른 부호기 장치는 터미네이션 기능을 수행하기 위하여 오류 발생 확률이 큰 비트 위치에 특정 논리를 갖는 6비트를 정보비트들에 삽입하고, 비트삽입위치에서 삽입비트들이 천공되고, 그 위치에 제1구성부호기에서의 테일링을 하고, 테일비트들을 포함한 정보비트를 인터리빙하여 그출력비트들을 제2구성부호기에서 복호화 할 때, 프레임크기를 초과하는 6비트들을 천공된 삽입비트위치에 끼워 넣어 보낸다.
도 28은 상기 제9실시예에 따른 부호기 장치의 구성을 도시하고 있다. 상기 도 28을 참조하면, 16개의 입력비트들은 비트삽입기2810에 입력된다. 여기서 상기 비트삽입기2810은 메모리를 6개를 사용하고 나머지는 상기 제4실시예의 비트삽입기1430(도 14)과 동일한 구성을 갖는다. 상기 비트삽입기2810은 제어기에 의해 내부의 스위치가 제어되어 오류 확률이 큰 프레임 내의 6개 정보 비트 위치에 각각 6개의 0비트가 삽입하며, 그 구성은 도 29와 같이 구성할 수 있다.
따라서 제9실시예에서는 상기 비트삽입기2810에서 출력되는 정보비트 Ik는 22 비트로 이루어지며, 상기 비트삽입기2810에서 출력되는 정보비트 Ik는 각각 멀티플렉서2850, 제1구성부호기2820 및 인터리버2830에 각각 입력된다.
그리고 상기 인터리버2830에서 출력되는 인터리빙된 정보비트Ik를 제2구성부호기2840에 인가된다.
여기서 제1구성부호기2820은 도 20과 같이 순환 구조를 갖는 구성부호기로써 도 20과 같이 테일비트를 생성하여 부가하는 구조를 갖는다. 그리고 상기 제2구성부호기2820은 상기 제4실시예의 도 15b과 같이 터미네이션을 위한 테일비트를 생성하지 않는 구조의 부호기를 사용한다.
도 20과 같은 구조를 갖는 제1구성부호기2820은 프레임 당 4개의 테일비트가 생성되고, 각각의 테일비트들에 대한 부호화된 4개의 비트들을 발생한다. 따라서 상기 제1구성부호기2820은 상기 26비트의 제1패리티비트 Ck를 발생하면서, 마지막 22번째 정보가 다 처리되면 스위치2011이 배타적 논리합기2033에 연결되고, 스위치2013가 상기 스위치2011에 연결되며, 스위치2015가 상기 스위치2013에 연결되어 4번 동작되므로써 4비트의 테일 비트를 생성하여 출력한다. 이런 과정을 거쳐 24비트의 제1패리티 비트 Ck들과 4개의 테일비트Tk들을 출력하고, 출력된 제1패리티 비트 Ck들은 다시 멀티플렉서2850에 입력되고 스위치2860은 제1구성부호기2820 측에 연결되어 테일비트Tk는 인터리버2830에 입력되고 동시에 스위치2870이 멀티플렉서2850으로 연결되어 입력된다.
또한 상기 인터리버2830는 상기 비트삽입기2810에서 출력되는 22개의 정보비트 Ik와 제1구성부호기620에서 출력되는 4비트의 테일비트등 총 26비트를 인터리빙하여 제2구성부호기640에 입력시키며, 상기 제2구성부호기2840은 상기 도 26의 제1구성부호기2820과 동일한 방법으로 인터리빙된 정보비트들을 부호화하여 또 다른 26비트의 제2패리티 비트 Dk를 발생한다. 그리고 상기 제2구성부호기2840에서 출력되는 제2패리티비트 Dk도 상기 멀티플렉서2850에 인가된다. 즉, 상기 인터리버2830에서 출력되는 인터리빙된 프레임 단위 정보 비트들은 제2구성부호기2840에 인가되어 부호화된다. 상기 제2구성부호기2840은 상기 제4실시예의 도 15b과 같은 구조를 갖는다. 상기 제2구성부호기2840은 도 15b에 도시된 바와 같이 순환구조를 갖는 구성 부호기로써 길쌈부호기 이다. 또한 상기 구성부호기2840은 상기 도 15b에 도시된 바와 같이 테일비트를 발생하지 않는 구성을 갖고 있음을 알 수 있다.
도 30은 상기 멀티플렉서2850의 구성을 도시하는 도면이다.
상기 도 30은 참조하면, 상기 멀티플렉서2850은 상기 비트삽입기2810에서 출력되는 22개의 정보비트 Ik들을 제일 먼저 입력한다. 그러면 상기 멀티플렉서2850의 지연기3022는 상기 22비트의 정보비트 Ik를 입력하여 저장한다.
이후 상기 멀티플렉서2850은 상기 제1구성부호기2820에서 출력되는 26개의 제1패리티비트 Ck를 입력되어 앞의 24비트만 지연기3026에 저장되고, 스위치3014가 지연기3028에 연결되면서 마지막 2비트가 지연기3028에 저장되어진다. 4개의 테일비트Tk가 입력되어 앞의 2비트는 지연기3022에 저장되고, 다음 2비트는 스위치 3012가 지연기3024로 연결되면서 입력되어 저장된다. 다음에 상기 멀티플렉서2850은 상기 제2구성부호기2840에서 출력되는 26개 제2패리티비트 Dk중 앞의 24비트만 지연기3030으로 입력되고 다음 2비트는 스위치 3016가 지연기3032로 연결되면서 입력되어 저장된다.
상기 지연기3022-3032들은 메모리 소자들이 직렬 연결되는 구성을 가지며, 각 입력된 비트들을 상기와 같은 지연 과정이 종료될 때 까지 저장한다.
상기와 같은 지연 동작이 종료되면, 스위치3042는 스위치3044과 연결된다. 그리고 상기 스위치3042은 상기 지연기3022과 연결된다. 따라서 상기 지연기3022의 출력이 스위치3042 및 3044를 통해 출력된다. 상기 지연기3022에 저장된 1개의 삽입비트가 출력되면, 상기 스위치3044은 상기 스위치3042과 연결된 상태를 유지하며 스위치3042는 상기 지연기3024와 연결된다. 그러면 상기 스위치3042 및 3044을 통해 상기 지연기3024에 저장된 정보비트의 나머지 비트 중 한 비트가 출력된다. 즉, 상기 정보비트를 천공(puncturing)하여 지연기3024에 저장된 제1패리티비트를 출력한다. 이후 상기 스위치3044은 계속하여 3042와 연결된 상태를 유지하며, 스위치3042은 다시 지연기3022에 연결된다. 상기와 같은 동작을 2회 반복하면서 상기 지연기3022에 저장된 정보비트에 상기 지연기3024에 저장된 나머지 2비트의 정보비트들을 천공하여 출력한다.
상기와 같이 동작이 수행된 후, 상기 스위치3044는 상기 스위치3042에 연결된 상태를 유지하며, 상기 스위치3042는 상기 지연기3022와 연결된다. 그러면 상기 지연기3022의 출력이 스위치3042 및 3044를 통해 출력된다. 상기 지연기3022에 저장된 1개의 삽입비트가 출력되면, 상기 스위치3044는 상기 스위치3042와 연결된 상태를 유지하며, 스위치3042는 상기 지연기3028과 연결된다. 따라서 상기 지연기3022에 저장된 제2패리티비트의 나머지 2비트 중의 한 비트가 스위치3042 및 3044를 통해 출력된다. 이후 상기 스위치3044는 계속하여 3042와 연결된 상태를 유지하며, 스위치3042는 다시 지연기3022에 연결된다. 상기와 같은 동작을 2회 반복하면서 상기 지연기3022에 저장된 정보비트에 상기 지연기3028에 저장된 나머지 2비트의 제1패리티비트들을 천공하여 출력한다.
상기와 같이 동작이 수행된 후, 상기 스위치3044는 상기 스위치3042에 연결된 상태를 유지하며, 상기 스위치3042는 상기 지연기3022와 연결된다. 그러면 상기 지연기3022의 출력이 스위치3042 및 3044를 통해 출력된다. 상기 지연기3022에 저장된 1개의 삽입비트가 출력되면, 상기 스위치3044는 상기 스위치3042와 연결된 상태를 유지하며, 스위치3042는 상기 지연기3032와 연결된다. 따라서 상기 지연기3022에 저장된 제2패리티비트의 나머지 2비트 중의 한 비트가 스위치3042 및 3044를 통해 출력된다. 이후 상기 스위치3044는 계속하여 3042와 연결된 상태를 유지하며, 스위치3042는 다시 지연기3022에 연결된다. 상기와 같은 동작을 2회 반복하면서 상기 지연기3022에 저장된 정보비트에 상기 지연기3032에 저장된 나머지 2비트의 제2패리티비트들을 천공하여 출력한다.
상기의 설명에서 삽입비트는 0비트을 예로들어 설명하고 있지만, 부호화 비트나 수신측과 약속된 데이타를 삽입비트로 사용할 수도 있다.