KR20000067738A - 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법 - Google Patents
이동 통신 시스템에서 채널 코드의 레이트 매칭 방법 Download PDFInfo
- Publication number
- KR20000067738A KR20000067738A KR19990019477A KR19990019477A KR20000067738A KR 20000067738 A KR20000067738 A KR 20000067738A KR 19990019477 A KR19990019477 A KR 19990019477A KR 19990019477 A KR19990019477 A KR 19990019477A KR 20000067738 A KR20000067738 A KR 20000067738A
- Authority
- KR
- South Korea
- Prior art keywords
- code
- puncturing
- channel code
- bit
- channel
- Prior art date
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
본 발명은 임의의 코드 레이트를 갖는 터보 코드 또는 컨벌루션 코드 등의 채널 코드를 이용하여 전송 멀티플렉싱(Transport multiplexing)을 위한 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법에 관한 것이다. 이와 같은 본 발명에 따른 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법은 주어진 데이터 열에 대해서 이를 부호화하지 않은 제 1 채널 코드 비트열과 상기 데이터 열을 길쌈 부호화 하여 생성된 제 2 코드 비트열과 상기 데이터 열을 인터리빙한 후 길쌈 부호화 하여 생성된 제 3 채널 코드 비트열을 포함하여 구성되는 채널 코드 비트열에 있어서, 하나 또는 그 이상의 코드 심볼을 하나의 단위로 하여 펑쳐링(puncturing) 또는 반복(Repetition) 알고리듬을 수행할 경우에 상기 펑쳐링 또는 반복의 위치를 상기 데이터 열의 목적 코드 레이트에 따라 결정되는 적어도 하나 이상의 범위를 기준으로 판정하여 실시하므로서 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트를 동일한 수로 균일하게 펑쳐링/반복을 수행하여 최적화된 펑쳐링/반복 패턴을 제공할 수 있는 효과가 있다.
Description
본 발명은 차세대 이동 통신에 관한 것으로, 특히 임의의 코드 레이트를 갖는 터보 코드 또는 컨벌루션 코드 등의 채널 코드를 이용하여 차세대 이동 통신 시스템에서 전송 멀티플렉싱(Transport multiplexing)을 위한 채널 코드의 레이트 매칭 방법에 관한 것이다.
일반적으로 터보 코드(Turbo code)는 순환 체계적 길쌈 코드(RSC code : Recursive Systematic Convolutional code)의 병렬 연결 구조를 갖는 코드이다. 이러한 터보 코드는 하나의 시스테매틱(systematic) 정보와 두 개의 순환 시스테매틱 길쌈 부호기(Recursive systematic convolution encoder)의 출력을 통하여 두 개의 패리티(Parity) 정보로 부호화 되며, 각 길쌈 부호기 사이에는 인터리버(Interleaver)를 두어 서로 다른 정보를 포함할 수 있도록 한다. 여기서, 시스테매틱이란 데이터를 부호화 했을 경우에 정보 데이터가 부가 비트(Redundancy 또는 Parity check bit)와 분리되어 나타나는 현상으로서, 일반적으로는 블록 부호 계열에서 주로 시스테매틱한 데이터를 길쌈 부호기의 출력으로 한다. 이와 같은, 터보 코드를 사용하는 시스템에서는 가변 자원에 따른 코드 레이트(Code rate) 변화, 반복 복호의 횟수, 구속장 길이 변화 등에 의한 복호화 절차의 복잡성과 시스템 성능간의 균형을 맞추는 것이 매우 중요하다.
제 3세대 공동 프로젝트(Third Generation Partnership Project, 3GPP)의 W-CDMA 규격 회의에서는 지금까지 설명된 터보 코드를 차세대 이동 통신 시스템의 전송 멀티플렉싱을 위한 레이트 매칭(Rate matching) 방법으로 적용하기 위해 논의하고 있으며, 이와 관련된 특허로는 (주)엘지정보통신에서 1999년 4월 14일에 "터보 코드를 위한 레이트 매칭 방법"을 명칭으로 하여 출원한 바 있다.(출원번호 : 1999-0013120, 발명자 : 홍성권)
기 출원된 "터보 코드를 위한 레이트 매칭 방법"은 다음과 같은 흐름에 따라 실시된다.
1. 초기치를 둔다.
2. 감분값을 계산한다.
3. 비트 단위 또는 한 개 또는 그 이상의 심볼 단위로 다음 루프를 진행시킨다.
4. 초기치에서 계속해서 감분값을 빼주고 '0'보다 작은 경우 펑쳐링/반복을 실시한다.
이러한 흐름에 따라 실시되는 "터보 코드를 위한 레이트 매칭 방법"은 길쌈 부호기의 시스테매틱 성분 비트가 패리티 성분 비트보다 정보 전송의 측면에서 상대적으로 중요한 성질을 가지는 것을 고려하여 펑쳐링/반복을 실시함에 있어서 다음과 같은 규칙을 적용하고 있다.
첫째, 시스테매틱 성분 비트에 대해서는 펑쳐링을 하지 않는다. 즉, 패리티 비트만을 평쳐링 한다. 이때, 터미네이션 비트는 평쳐링하지 않으며 또한, 특정 코드 레이트를 얻기 위해서는 원하는 코드 레이트보다 낮은 코드 레이트의 터보 코드를 펑쳐링한다.
둘째, 패리티 성분 비트간의 균형적인 펑쳐링이 이루어진다. 즉, 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트는 각각의 펑쳐링된 비트수가 같다.
셋째, 각 패리티 성분 비트의 평쳐링에 있어서 균일한(uniform) 펑쳐링이 이루어진다. 즉, 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트는 일정한 거리를 갖는 패턴으로 펑쳐링된다.
넷째, 반복의 경우에는 시스테매틱 성분만을 반복한다.
다섯 째, 1/3 코드 레이트의 터보 코드를 펑쳐링하는 경우에는 1/2 코드 레이트의 터보 코드의 펑쳐링 패턴을 지원한다.
이와 같은 규칙을 가지고 실시되는 "터보 코드를 위한 레이트 매칭 방법"의 구체적인 실시예를 다음에 보인다.
일단 터보 코드의 정보 비트 블록 크기가이고, 부호화 되지 않은 시스티메틱 비트(systematic bit)가이고, 부호화된 패리티 비트(parity bit) 중 첫 번째 패리티 비트가이고, 두 번째 패리티 비트가이라 가정한다.
이 때는 매칭 블록당 비트수는 터보 코드의 정보 비트 블록 크기보다 3배()가 큰 값을 갖는다.
또한,= 블록에서 허용된 수의 순서화된 집합이고( 여기서 Ni〈 Ni+1),= 매칭 블록당 비트수이고,=정보 비트 집합이고,= 가능 최대 펑쳐링 양을 나타낸다.
그러면, "터보 코드를 위한 레이트 매칭 방법"의 펑쳐링 알고리듬은 다음과 같다.
[ 먼저를 만족하는를 구한다.
if()
: 현재 블록 비트크기와 목적 블록 비트크기의 초기 차이: 옵셋값(e)은 유동적이다.
: 현재 블록당 비트의 인덱스
do while
: 차이 갱신
ifthen
puncture bitfrom set: m이 펑쳐링되어야 하는 검사
: 차이 갱신
else if
puncture bitfrom set
else if
puncture bitfrom set
end if
: 다음 블록당 비트의 인덱스
end do
else if
: 현재 브록 비트크기와 목적 블록 비트크기의
초기 차이
: 옵셋값(e)은 유동적이다.
: 현재 블록당 비트의 인덱스
do while
: 차이 갱신
ifthen : m이 펑쳐링되어야 하는 검사
puncture bitfrom set
end if
puncture bitfrom set
end if
: 차이 갱신
end if
: 다음 블록당 비트의 인덱스
end do
else if
: 현재 블록 비트크기와 목적 블록 비트크기의
초기 차이
:옵셋값(e)은 유동적이다.
: 현재 블록당 비트의 인덱스
do while
repeat bitfrom setr times
: 차이 갱신
end do
: 다음 블록당 비트의 인덱스
end do
end if ]
이러한 터보 코드를 위한 레이트 매칭 알고리듬에서, 반복 절차는 복호기(decoder)의 복잡도를 고려하여 바람직하지 않다고 판단되면 부호화 되지 않은 시스티메틱 비트(systematic bit)를 반복하여 낮은 코드 레이트의 터보 코드를 구성하도록 제한한다.
그렇지 않을 경우에는 다음과 같은 변환에 의해 표현될 수 있다.
만약 세 번째 패리티 비트가이고, 네 번째 패리티 비트가이라 가정하여, 1/5 코드 레이트의 터보 코드에서 펑쳐링을 수행한다고 할 경우에, 상기한 레이트 매칭 알고리즘에서 다음의 조건들을 변환하여야 한다.
(이 경우)
(이 경우)
(변환하지 않음)
상기에서 구성한 레이트 매칭 알고리즘은 카운트(count) 변수를 이용하였다. 그러나 아래와 같이 플래그(flag) 변수를 두어 알고리즘을 구성한다면 보다 간단해 질 수 있다.
"
puncture bitfrom set
puncture bitfrom set
end if "
그리고, 상기에서 구성한 터보 코드를 위한 레이트 매칭 알고리듬에서 펑쳐링 및 반복은 종래 3GPP에서 제안하는 레이트 매칭 알고리듬이 비트를 기준으로 해서 처리하는데 반해 코드 심볼을 기준으로 동작한다. 이는 길쌈 코드의 전체 성능에 대한 영향이 전체 코드 비트가 전체 성능에 미치는 영향과 같다는 데서 기인하며 터보 코드는 비트마다 상대적인 중요도가 다르기 때문이다.
또한, 코드 심볼을 기준으로 설계가 진행될 때 다중 코드 심볼을 이용한 설계가 가능하다. 여기서 다중 코드 심볼을 기준으로 한 평쳐링 알고리듬의 일 예를 다음에 나타내었다.
[ if()
: 현재 블록 비트크기와 목적 블록 비트크기의 초기 차이: 옵셋값(e)은 유동적이다.
: 현재 블록당 비트의 인덱스
count = 0
do while
: 차이 갱신
ifthen
if count%2 == 0
puncture bitfrom set: m이 펑쳐링되어야 하는 검사
end if
if count%2 == 0
puncture bitfrom set
end if
: 차이 갱신
count = count + 1
end if
puncture bitfrom set
end if
: 다음 블록당 비트의 인덱스
end do ]
위와 같은 다중 코드 심볼을 기준으로 한 평쳐링 알고리듬은 두 개의 코드 심볼을 기준으로 진행되므로 패리티 비트 사이에서 보다 균일한 설계가 가능한 장점이 있다.
그러나, 기 출원된 "터보 코드를 위한 레이트 매칭 알고리듬"의 규칙을 재고해보면, "터보 코드를 위한 레이트 매칭 방법"은 루프가 심볼 단위로 진행되는 경우에는 원하는 비트수 전체를 펑쳐링할 수 없는 경우가 발생한다. 따라서, 코드 심볼 개수 이상의 펑쳐링/반복이 실시되는 경우에는 따로 범위를 나누어 독립적인 알고리듬을 구성하여 추가하여야 한다.
예를 들어, 코드 레이트가보다 큰 경우에 정보 비트의 블록 크기인 N 보다 큰 개수의 펑쳐링/반복이 요구되면 코드 레이트가범위인 레이트 매칭 알고리듬으로는 전술한 4가지의 규칙을 만족시키지만 추가되는 독립적인 알고리듬에서는 두 번째 규칙인 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트의 균형이 깨지게 된다. 따라서, 이러한 경우에 있어서, "터보코드를 위한 레이트 매칭 알고리듬"은 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트의 펑쳐링된 수가 서로 상이하여 최적화된 평처링/반복 패턴을 제공하지 못하는 문제점이 있다.
또한, " 터보 코드를 위한 레이트 매칭 알고리듬"은 컨벌루션 코드에 대해서는 최적화된 펑쳐링/반복 패턴을 제공하지 못하므로 터보 코드외에 컨벌루션 코드에 대해서도 최적화된 펑쳐링/반복 패턴을 제공할 수 있는 통합된 알고리듬이 필요하다.
따라서, 본 발명의 목적은 이상에서 언급한 종래 기술의 문제점을 감안하여 안출한 것으로서, 기 출원된 "터보 코드를 위한 레이트 매칭 방법"에서 펑쳐링/반복의 위치를 복수개의 범위로 판정하여 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트의 균형을 맞추어 줌으로써 최적화된 펑쳐링/반복 패턴을 제공하는 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법을 제공하기 위한 것이다.
본 발명의 다른 목적은 특정 레이트에 대한 컨벌루션 코드에서의 최적화된 펑쳐링/반복 패턴을 제공하는 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법을 제공하기 위한 것이다.
이상과 같은 본 발명의 일 특징에 따르면, 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법은 주어진 데이터 열에 대해서 이를 부호화하지 않은 제 1 채널 코드 비트열과 상기 데이터 열을 길쌈 부호화 하여 생성된 제 2 코드 비트열과 상기 데이터 열을 인터리빙한 후 길쌈 부호화 하여 생성된 제 3 채널 코드 비트열을 포함하여 구성되는 채널 코드 비트열에 있어서, 하나 또는 그 이상의 코드 심볼을 하나의 단위로 하여 펑쳐링(puncturing) 또는 반복(Repetition) 알고리듬을 수행할 경우에 상기 펑쳐링 또는 반복의 위치를 상기 데이터 열의 목적 코드 레이트에 따라 결정되는 적어도 하나 이상의 범위를 기준으로 판정하여 실시한다.
바람직하게, 상기 펑쳐링은 하나 또는 그 이상의 코드 심볼을 하나의 단위로 하여 번갈아 가면서 연속적으로 상기 제 2 채널 코드 비트열과 제 3 채널 코드 비트열을 펑쳐링하는 단계와, 상기 적어도 하나 이상의 범위에 해당하는 지점에서 동일한 비트 인덱스를 갖는 상기 제 2 채널 코드 비트열과 제 3 채널 코드 비트열을 동시에 펑쳐링한 후 계속하여 상기 제 2 채널 코드 비트열과 제 3 채널 코드 비트열을 번갈아 가면서 연속적으로 펑쳐링하는 단계로 이루어진다.
또한, 상기 반복 알고리듬은 제 1 채널 코드 비트열에 대하여 우선적으로 실시하며, 상기 데이터 열의 코드 심볼 개수 이상으로 실시되는 경우에는 상기 적어도 하나 이상의 범위에 따라 상기 제 3 채널 코드 비트열에 대한 반복을 실시한 후 상기 제 2 채널 코드 비트열에 대한 반복을 실시한다.
이상과 같은 다른 목적을 달성하기 위한 본 발명의 다른 특징에 따르면, 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법은 하나 또는 그 이상의 코드 심볼을 단위로 하는 펑쳐링 또는 반복 알고리듬이 응용 목적에 따라 특정 코드율을 갖는 컨벌루션 코드에 적용된다.
바람직하게, 상기 펑쳐링은 상기 컨벌루션 코드의 특정 코드율에 따라 설정되는 임의의 변수를 모듈로(modulo) 연산하고 그에 따라 결정된 소정 비트 단위의 간격으로 실시한다.
이하 본 발명의 바람직한 일 실시 예에 따른 구성 및 작용을 첨부된 도면을 참조하여 설명한다.
본 발명에서는 임의의 코드 레이트 및 특정한 코드 레이트를 갖는 터보 코드 또는 컨벌루션 코드 등의 채널 코드를 이용하여 전송 멀티플렉싱을 위한 최적화된 펑쳐링/반복 패턴을 제공하는 통합된 알고리듬을 제안한다.
본 발명에서 제안하는 알고리듬은 하나 또는 그이상의 코드 심볼을 단위로 하여 펑쳐링/반복되는 정보 비트들의 균일성 및 균형성을 만족하는 최적화된 펑쳐링/반복 패턴을 제공할 수 있다.
본 발명에 따른 알고리듬을 설명하기에 앞서, 먼저 코드 심볼을 단위로 하여 터보 코드 또는 컨벌루션 코드 등에 최적화된 펑쳐링/반복 패턴을 제공할 수 있는 지식적 기반을 설명한다.
현재 제 3세대 공동 프로젝트(Third Generation Partnership Project, 3GPP)에서 발표한 W-CDMA 규격에 적용되고 있는 레이트 매칭 알고리즘은 다음의 규칙을 가지고 설계되었다.
1. 모든 코드 비트들이 코드 성능에 같은 영향을 미친다.
2. 펑쳐링/반복은 균일하게(즉, 같은 거리로서) 이루어질 때 최적 성능을 나타낸다.
따라서, 펑쳐링/반복은 대상 정보 비트의 블록에서 일정한 비트 단위 거리를 가지고 반복적으로 이루어진다.
전술한 두가지의 규칙을 참조하면, 차세대 이동 통신 시스템에서 컨벌루션 형태의 부호 및 복호가 이루어지는 기본 단위는 코드 심볼(Code Symbol)이다. 이것은 비터비 알고리듬에서 트렐리스의 메트릭값 계산의 기본 단위가 코드 심볼임을 고려해보면 알 수 있다.
따라서, 코드 심볼 내에서 펑쳐링된 비트값의 위치에 관계없이 코드 심볼이 복호기에 제공하는 메트릭값은 동일한 수준을 유지하게 된다. 이는 종래 3GPP에서 제안한 레이트 매칭 알고리즘에서 사용되는 비트 단위의 균일 분포라는 규칙을 코드 심볼 단위의 균일 분포라는 규칙으로 확장시킬 수 있음을 의미한다. 즉, 비트 단위의 균일 분포는 임의의 코드율을 가지는 코드 심볼 단위의 균일 분포를 제공할 수 있는 것이다.
종래 3GPP에서 제안한 레이트 매칭 알고리듬에 따르면 수신측에서는 펑처링/반복의 역과정을 수행하는데 있어서 수신되는 데이터의 코드 레이트는 필요하지 않다. 그러나. 수신측에서 송신측의 코드 레이트를 인지할 수 있는 경우에는 코드 심볼 단위의 균일 분포원칙을 이용하여 보다 개선된 방식의 레이트 매칭 알고리듬을 설계할 수 있다. 이는 코드 심볼내의 펑쳐링/반복의 위치를 변화시킬 수 있는 자유도를 이용하여 컨벌루션 코드 이외의 임의의 다른 부호에 적합한 펑쳐링/반복 패턴을 제공하는 통화된 레이트 매칭 알고리듬을 설계할 수 있음을 의미한다.
따라서, 본 발명에 따른 알고리듬은 하나 또는 그이상의 코드 심볼을 단위로 펑쳐링/반복을 수행할 수 있는 자유도를 이용하여 임의의 코드율과 특정 코드율에 대해서 최적화된 펑쳐링/반복 패턴을 제공할 수 있다.
또한, 코드 심볼 단위의 알고리듬을 수행하는 경우에 있어서, 대상 정보 비트 블록에 대한 코드 심볼 단위의 펑쳐링/반복 위치에 따라 시스템의 성능 차이가 발생한다. 이는 레이트 매칭 알고리듬이 진행되는 코드의 구속장, 코드 레이트 등에 관련된 코드의 독특한 특성에 의한 것이므로, 본 발명에 따른 알고리듬은 대상 정보 비트 블록의 최적화된 펑쳐링/반복 위치를 임의대로 지정하여 줌으로서 종래의 레이트 매칭 알고리듬보다 우수한 시스템 성능을 유지할 수 있다.
지금부터는 본 발명에 따른 이동 통신 시스템에서 코드 채널의 레이트 매칭 방법을 상세히 설명한다.
우선, 본 발명에 따른 코드 채널의 레이트 매칭 알고리듬은 임의의 k/n 코드율을 가지는 기본 부호에서 펑처링/반복이 이루어진다고 가정하고, 또한 설명의 편의를 위해서 다음 세가지를 가정한다.
1, SN= { N1, N2, ..., NL} = 대상 비트 블록당 가능한 수의 순서화된 집합(상향 순서)
2, NC= 레이트 매칭이 되어야할 대상 비트 블록의 크기 = nN (즉, 펑쳐링이 이루어지기 전의 비트 수)
3, S0= { d1, d2, ...., dNc} = Nc데이터 비트 집합
이때, 터보 코드와 컨벌루션 코드에 대해서 최적화된 펑쳐링/반복 패턴을 제공하는 통합된 형태의 알고리듬은 다음과 같다.
[ * Ni〈 Nc〈 Ni+1이 되도록 Ni와 Ni+1을 찾는다.
y = Nc- Ni(반복인 경우에는 y = -y)
e = N
m = 1
count = 0
do while m ≤ N
e = e - 2*y
if e ≤ 0 then
if count % l == 0 : 모듈로 l 연산
puncture or repeat bit f1(m, count) from set S0
endif
...............
if count % l == 0
puncture or repeat bit fn-1(m, count) from set S0
endif
count = count + 1
e = e + 2*N
endif
m = m + 1
end do ]
이러한, 알고리듬은 l 값에 따른 모듈로 l 연산과 fn-1(m, count)의 결과 값과 형태에 따라 해당 응용 목적에 맞는 임의의 코드 레이트를 갖는 터보 코드 및 컨벌루션 코드에 대하여 하나 또는 이상의 코드 심볼 단위로서 최적화된 펑쳐링/반복을 실시할 수 있다.
이때, 해당 목적에 따른 응용의 실시예를 제 1 실시예 및 제 2 실시예로 나누어 설명한다.
제 1 실시예
제 1 실시예는 최적화된 터보 코드의 펑쳐링/반복 패턴을 제공하기 위한 것으로서, 전술한 바와 같이 (주)엘지정보통신에서 출원한 "터보 코드를 위한 레이트 매칭 방법"에서 코드 심볼 개수 이상의 펑쳐링/반복이 실시되는 경우 즉, N 보다 큰 개수의 펑쳐링/반복이 요구되는 경우에 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트의 균형을 맞추기 위하여 초기치에서 계속해서 감분값을 빼주고 0보다 작은 경우이외의 여러 가지 범위를 나누어 해당 범위에 따라 최적화된 펑쳐링/반복 패턴을 실시하도록 하는 것이다.
먼저, 제 1 실시예를 설명하기에 앞서 다음과 같은 가정을 한다.
1, Nc= 레이트 매칭이 되어야할 블록 크기 = 3N
2, P =, (P는 펑쳐링비를 나타낸다.)
이때, 본 발명에 따른 알고리듬은 다음과 같다.
① 펑쳐링의 경우 :
[ Ni≤ Nc〈 Ni+1이 되도록 Ni와 Ni+1을 찾는다.
if ()
y = 3*N - Ni
e = N
m = 1
count = 0
do while m ≤ N
e = e - 2*y
if e ≤ -2*N then : 제 1 범위
if count % 2 == 0 : 모듈로 2 연산
puncture bit 3*m-1 from set S0
endif
if count % 2 == 1
puncture bit 3*m-2 from set S0
endif
count = count + 1
e = e + 2*N
endif
if e≤0 then : 제 2 범위
if count % 2 == 0
puncture bit 3*m-1 from set S0
endif
if count % 2 == 1
puncture bit 3*m-2 from set S0
endif
count = count + 1
e = e + 2*N
endif
m = m + 1
end do
endif ]
이러한 알고리듬을 적용하면 임의의 채널 부호에 대하여 연속 펑쳐링(Consecutive puncturing)이 발생하지 않고, 동시에이상의 코드 레이트에서 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트간의 균형 규칙을 만족할 수 있다.
즉, 펑쳐링은 첫 번째 패리티 비트와 두 번째 패리티 비트가 코드 심볼 단위로 번갈아가며 펑쳐링을 실시하다가 특정 범위에 해당되는 지점(즉, 제 1 범위)에서 동일한 비트 인덱스를 가지는 첫 번째 패리티 비트와 두 번째 패리티 비트를 동시에 펑쳐링하고, 계속하여 첫 번째 패리티 비트와 두 번째 패리티 비트를 번갈아 가며 펑쳐링하게 된다.
따라서, 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트는 서로 동일한 수가 펑쳐링된다.
상기에서 구성한 알고리듬은 카운트(count) 변수를 사용하였으나 플래그(flag)변수를 사용하여 연산을 변형하면 다음과 같이 보다 간단해 진다.
[ if ()
y = 3*N - Ni
e = N
m = 1
flag = 0
do while m ≤ N
e = e - 2*y
if e ≤ -2*N then
puncture bit 3*m-1, 3*m-2 from set S0
e = e + 4*N
endif
if e≤0 then
if flag == 0
puncture bit 3*m-1 from set S0
flag = 1
endif
if flag == 1
puncture bit 3*m-2 from set S0
flag = 0
endif
e = e + 2*N
endif
m = m + 1
end do
endif ]
② 반복의 경우 :
[ y = Ni - 3*N
e = N
m = 1
do while m ≤ N
e = e - 2*y
if e ≤ -4*N then : 제 1 범위
repeat bit 3*m-2 from set S0
e = e + 2*N
endif
if e≤ -2N then : 제 2 범위
repeat bit 3*m-1 from set S0
e = e + 2*N
endif
if e ≤ 0 then : 제 3 범위
repeat bit 3*m-3 from set S0
e = e + 2*N
endif
m = m + 1
end do
endif ]
이러한 반복 알고리듬을 적용하면, 코드 레이트를 고려하여 임의대로 설정된 범위에 따라 시스테메틱 성분 비트를 먼저 반복하고 터보 코드이외의 일반적인 채널코드를 고려하여 코드 심볼 개수 이상의 반복에 대해서는 두 번째 패리티 성분 비트에 대하여 반복한다. 즉, 연속적인 대상 비트 블록에 대한 반복을 피하는 것이다.
이어, 반복이 계속해서 필요하다면 첫 번째 패리티 성분 비트를 반복하고, 대상 코드 비트의 전체적인 크기보다 큰 수의 반복에 대해서는 전술한 순서대로 다시 반복할 수 있도록 설계자가 해당 범위를 조정한다.
제 2 실시예
제 2 실시예는 컨벌루션 코드에 대해서 특정 코드 레이트에 따라 최적화된 펑쳐링/분리 패턴을 제공하기 위한 알고리듬이다.
예를 들어,이고, 구속장의 길이 = 9이며, Ni =인 경우에 코드 레이트가에 맞춰진 최적화된 펑쳐링/분리 패턴을 제공한다.
이러한 알고리듬은 다음과 같다.
[ y = Nc- Ni(반복인 경우 y = -y)
e = N
m = 1
count = 0
do while m ≤ N
e = e - 2*y
if e ≤ 0 then
if count % 3 == 1 : 모듈로 3 연산
puncture bit 2*m-1 from set S0
endif
if count % 3 == 2
puncture bit 2*m-1 from set S0
endif
count = count + 1
e = e + 2 * N
endif
m = m + 1
end do ]
코드 레이트가인 경우에 최적화된 펑쳐링 패턴은 첫 번째 패리티 성분 비트에 대해서 111이고 두 번째 패리티 성분 비트에 대해서 100이 된다. 제 2 실시예에서 제안된 알고리듬은 코드레이트가에 맞춰지면 첫 번째 패리티 성분 비트에 대해서 111이고 두 번째 패리티 성분 비트에 대해서 100의 펑쳐링 패턴을 발생한다.
또한, 제 2 실시예에서 소개한 코드 이외의 다른 코드 레이트를 갖는 펑쳐드 코드에 대해서도 제 2 실시예에서 제안한 바와 같은 알고리듬을 통하여 특정 코드율에 맞도록 최적화된 펑쳐링/반복 패턴을 제공할 수 있다.
한편,이고, 구속장의 길이 = 3이며, 코드 상태수 = 4인 경우의 최적화된 펑쳐링/반복 패턴을 제공하는 알고리듬은 다음과 같다.
[ Ni≤ Nc〈 Ni+1이 되도록 Ni와 Ni+1을 찾는다.
y = Nc- Ni
e = N
m = 1
count = 0
do while m ≤ N
e = e - 2*y
if e ≤ 0 then
puncture bit 2*m-1 from set S0
e = e + 2*N
endif
m = m + 1
end do ]
이상의 설명에서와 같이 본 발명은 다음과 같은 효과가 있다.
첫째, 심볼 단위로 레이트 매칭 알고리듬을 진행하는 경우에 코드 심볼 개수 이상으로 펑쳐링/반복을 행하는 경우에도 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트를 동일한 수로 균일하게 펑쳐링/반복을 수행하여 최적화된 펑쳐링/반복 패턴을 제공할 수 있다.
둘째, 터보 코드 및 컨벌루션 코드 등의 여러 채널 코드에 공통으로 사용하여 해당 코드의 코드 레이트에 따라 최적화된 펑쳐링/반복 패턴을 제공할 수 있다.
셋째, 본 발명의 알고리듬을 적용한 시스템은 구성이 간단해지므로 하드웨어 오버헤드가 줄어든다.
Claims (6)
- 주어진 데이터 열에 대해서 이를 부호화하지 않은 제 1 채널 코드 비트열과 상기 데이터 열을 길쌈 부호화 하여 생성된 제 2 코드 비트열과 상기 데이터 열을 인터리빙한 후 길쌈 부호화 하여 생성된 제 3 채널 코드 비트열을 포함하여 구성되는 채널 코드 비트열에 있어서,하나 또는 그 이상의 코드 심볼을 하나의 단위로 하여 펑쳐링(puncturing) 또는 반복(Repetition) 알고리듬을 수행할 경우에 상기 펑쳐링 또는 반복의 위치를 상기 데이터 열의 목적 코드 레이트에 따라 결정되는 적어도 하나 이상의 범위를 기준으로 판정하여 실시하는 것을 특징으로 하는 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법.
- 제 1항에 있어서, 상기 펑쳐링은 하나 또는 그 이상의 코드 심볼을 하나의 단위로 하여 번갈아 가면서 연속적으로 상기 제 2 채널 코드 비트열과 제 3 채널 코드 비트열을 펑쳐링하는 단계와,상기 적어도 하나 이상의 범위에 해당하는 지점에서 동일한 비트 인덱스를 갖는 상기 제 2 채널 코드 비트열과 제 3 채널 코드 비트열을 동시에 펑쳐링한 후 계속하여 상기 제 2 채널 코드 비트열과 제 3 채널 코드 비트열을 번갈아 가면서 연속적으로 펑쳐링하는 단계로 이루어지는 것을 특징으로 하는 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법.
- 제 1항에 있어서, 상기 반복 알고리듬은 제 1 채널 코드 비트열에 대하여 우선적으로 실시하는 것을 특징으로 하는 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법.
- 제 3항에 있어서, 상기 반복 알고리듬은 상기 데이터 열의 코드 심볼 개수 이상으로 실시되는 경우에는 상기 적어도 하나 이상의 범위에 따라 상기 제 3 채널 코드 비트열에 대한 반복을 실시한 후 상기 제 2 채널 코드 비트열에 대한 반복을 실시하는 것을 특징으로 하는 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법.
- 하나 또는 그 이상의 코드 심볼을 단위로 하는 펑쳐링 또는 반복 알고리듬이 응용 목적에 따라 특정 코드율을 갖는 컨벌루션 코드에 적용되는 것을 특징으로 하는 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법.
- 제 5항에 있어서, 상기 펑쳐링은 상기 컨벌루션 코드의 특정 코드율에 따라 설정되는 임의의 변수를 모듈로(modulo) 연산하고 그에 따라 결정된 소정 비트 단위의 간격으로 실시하는 것을 특징으로 하는 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR19990019477A KR20000067738A (ko) | 1999-04-14 | 1999-05-28 | 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990013120 | 1999-04-14 | ||
KR19990013120 | 1999-04-14 | ||
KR19990019477A KR20000067738A (ko) | 1999-04-14 | 1999-05-28 | 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20000067738A true KR20000067738A (ko) | 2000-11-25 |
Family
ID=26634930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR19990019477A KR20000067738A (ko) | 1999-04-14 | 1999-05-28 | 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20000067738A (ko) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100387058B1 (ko) * | 2000-07-08 | 2003-06-12 | 삼성전자주식회사 | 데이터 통신시스템에서 심볼 삽입에 의한 가변데이터전송율 정합 방법 및 장치 |
KR100464453B1 (ko) * | 2001-02-07 | 2005-01-03 | 삼성전자주식회사 | 통신시스템에서 부호 생성장치 및 방법 |
KR100640910B1 (ko) * | 1999-07-07 | 2006-11-02 | 엘지전자 주식회사 | 이동 통신 시스템에서 레이트 매칭 방법 |
KR100800787B1 (ko) * | 2000-06-03 | 2008-02-01 | 삼성전자주식회사 | 데이터 통신 시스템을 위한 가변 데이터 전송율 정합 방법및 장치 |
KR100830492B1 (ko) * | 2001-11-05 | 2008-05-21 | 엘지전자 주식회사 | 부호 비트 펑처링 방법 |
WO2009025516A2 (en) * | 2007-08-23 | 2009-02-26 | Samsung Electronics Co., Ltd. | Apparatus and method for rate dematching in a communication system |
KR100949959B1 (ko) * | 2002-12-31 | 2010-03-29 | 엘지전자 주식회사 | 부호비트 펑처링/디펑처링 방법 |
-
1999
- 1999-05-28 KR KR19990019477A patent/KR20000067738A/ko not_active Application Discontinuation
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100640910B1 (ko) * | 1999-07-07 | 2006-11-02 | 엘지전자 주식회사 | 이동 통신 시스템에서 레이트 매칭 방법 |
KR100800787B1 (ko) * | 2000-06-03 | 2008-02-01 | 삼성전자주식회사 | 데이터 통신 시스템을 위한 가변 데이터 전송율 정합 방법및 장치 |
KR100387058B1 (ko) * | 2000-07-08 | 2003-06-12 | 삼성전자주식회사 | 데이터 통신시스템에서 심볼 삽입에 의한 가변데이터전송율 정합 방법 및 장치 |
KR100464453B1 (ko) * | 2001-02-07 | 2005-01-03 | 삼성전자주식회사 | 통신시스템에서 부호 생성장치 및 방법 |
KR100830492B1 (ko) * | 2001-11-05 | 2008-05-21 | 엘지전자 주식회사 | 부호 비트 펑처링 방법 |
KR100949959B1 (ko) * | 2002-12-31 | 2010-03-29 | 엘지전자 주식회사 | 부호비트 펑처링/디펑처링 방법 |
WO2009025516A2 (en) * | 2007-08-23 | 2009-02-26 | Samsung Electronics Co., Ltd. | Apparatus and method for rate dematching in a communication system |
WO2009025516A3 (en) * | 2007-08-23 | 2009-04-23 | Samsung Electronics Co Ltd | Apparatus and method for rate dematching in a communication system |
US8510609B2 (en) | 2007-08-23 | 2013-08-13 | Samsung Electronics Co., Ltd | Apparatus and method for rate dematching in a communication system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2341744C (en) | Rate matching device and method for a data communication system | |
US7089480B2 (en) | Rate matching method in mobile communication system | |
US6385752B1 (en) | Method and apparatus for puncturing a convolutionally encoded bit stream | |
KR20000067738A (ko) | 이동 통신 시스템에서 채널 코드의 레이트 매칭 방법 | |
KR100357868B1 (ko) | 데이터 통신시스템의 전송율 정합 장치 및 방법 | |
KR100640910B1 (ko) | 이동 통신 시스템에서 레이트 매칭 방법 | |
KR100672347B1 (ko) | 가변 데이터 레이트 매칭 방법 | |
CA2414363A1 (en) | Method and apparatus for flexible data rate matching by symbol insertion for a data communication system | |
KR100404181B1 (ko) | 상향 링크에서의 레이트 매칭 방법 및 장치 | |
KR100451716B1 (ko) | 이동 통신 시스템의 레이트 매칭 방법 | |
CA2475863C (en) | Rate matching device and method for a data communication system | |
KR20020011499A (ko) | 가변 데이터 레이트 매칭 방법 | |
KR20010001083A (ko) | 터보 코드를 위한 레이트 매칭 방법 | |
KR100317262B1 (ko) | 상향 링크에서의 채널화 코드 레이트 매칭 방법 | |
AU2003204597B2 (en) | Rate matching device and method for a data communication system | |
KR20010001873A (ko) | 터보 펑쳐링의 성능 개선 방법 | |
ZA200101865B (en) | Rate matching device and method for a data communication system. | |
KR20010019383A (ko) | 채널화 코드에 대한 레이트 매칭 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |