KR20010009145A - Method for rate matching in mobile communication system - Google Patents
Method for rate matching in mobile communication system Download PDFInfo
- Publication number
- KR20010009145A KR20010009145A KR1019990027352A KR19990027352A KR20010009145A KR 20010009145 A KR20010009145 A KR 20010009145A KR 1019990027352 A KR1019990027352 A KR 1019990027352A KR 19990027352 A KR19990027352 A KR 19990027352A KR 20010009145 A KR20010009145 A KR 20010009145A
- Authority
- KR
- South Korea
- Prior art keywords
- code
- puncturing
- bit
- rate matching
- codes
- Prior art date
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65H—HANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
- B65H23/00—Registering, tensioning, smoothing or guiding webs
- B65H23/04—Registering, tensioning, smoothing or guiding webs longitudinally
- B65H23/048—Registering, tensioning, smoothing or guiding webs longitudinally by positively actuated movable bars or rollers
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65H—HANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
- B65H2301/00—Handling processes for sheets or webs
- B65H2301/40—Type of handling process
- B65H2301/44—Moving, forwarding, guiding material
- B65H2301/443—Moving, forwarding, guiding material by acting on surface of handled material
- B65H2301/4431—Moving, forwarding, guiding material by acting on surface of handled material by means with operating surfaces contacting opposite faces of material
- B65H2301/44318—Moving, forwarding, guiding material by acting on surface of handled material by means with operating surfaces contacting opposite faces of material between rollers
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65H—HANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
- B65H2404/00—Parts for transporting or guiding the handled material
- B65H2404/10—Rollers
- B65H2404/15—Roller assembly, particular roller arrangement
- B65H2404/152—Arrangement of roller on a movable frame
- B65H2404/1521—Arrangement of roller on a movable frame rotating, pivoting or oscillating around an axis, e.g. parallel to the roller axis
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B65—CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
- B65H—HANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
- B65H2701/00—Handled material; Storage means
- B65H2701/30—Handled filamentary material
- B65H2701/37—Tapes
- B65H2701/377—Adhesive tape
Landscapes
- Error Detection And Correction (AREA)
Abstract
Description
본 발명은 이동 통신 시스템에 관한 것으로, 특히 W-CDMA 이동 통신 시스템의 레이트 매칭 방법에 있어서 컨벌루션 코드와 터보 코드에 대하여 공통으로 사용할 수 있는 이동 통신 시스템에서 레이트 매칭 방법에 관한 것이다.The present invention relates to a mobile communication system, and more particularly, to a rate matching method in a mobile communication system which can be commonly used for a convolutional code and a turbo code in a rate matching method of a W-CDMA mobile communication system.
우선, 레이트 매칭 알고리즘에 대하여 간략히 언급한다.First, the rate matching algorithm is briefly mentioned.
레이트 매칭 알고리즘(Rate matching algorithm)은 채널 부호기로부터 출력되는 비트열의 코드율(Code rate)을 임의의 값에 맞추기 위해서 채널 부호기의 출력 비트열을 펑처링(Puncturing) 또는 반복(Repetition)하는 알고리즘으로 현재 차세대 이동 통신 시스템의 기술적인 표준을 규정하고 있는 제 3세대 공동 프로젝트(3GPP, Third Generation Partnership Project)에서 연구되고 있다.Rate matching algorithm is an algorithm that punctures or repetitions an output bit string of a channel encoder in order to match a code rate of a bit string output from the channel encoder to an arbitrary value. It is being studied in the Third Generation Partnership Project (3GPP), which defines technical standards for next-generation mobile communication systems.
현재 제 3세대 공통 프로젝트에서는 W-CDMA 이동 통신 시스템의 전송 멀티플렉싱(Transport multiplexing)을 위한 레이트 매칭 방법으로서 컨벌루션 코드(Convolution code) 또는 터보 코드(Turbo code)에 대한 펑처링/반복 알고리즘을 규정하여 W-CDMA 규격에 제안하고 있다. 이러한 W-CDMA 규격에 제안되어 있는 레이트 매칭 알고리즘은 비트 단위를 기본으로 하여 펑처링/반복이 수행되는 것으로 컨벌루션 코드 또는 터보 코드에 대하여 동일한 알고리즘이 적용된다.Currently, the third generation common project defines a puncturing / repetition algorithm for convolution code or turbo code as a rate matching method for transport multiplexing of a W-CDMA mobile communication system. It is proposed in the CDMA standard. In the rate matching algorithm proposed in the W-CDMA standard, puncturing / repetition is performed on a bit basis, and the same algorithm is applied to a convolution code or a turbo code.
지금부터는 W-CDMA 규격에 제안되어 있는 컨벌루션 코드 또는 터보 코드의 레이트 매칭 방법에 대하여 보다 상세히 설명한다.The rate matching method of the convolutional code or turbo code proposed in the W-CDMA specification will now be described in more detail.
먼저, 컨벌루션 코드에 대한 펑처링은 펑처링 되는 비트들의 위치를 고려하여 가능한 등간격으로 균일하게 실시된다. 따라서, 컨벌루션 코드에 대한 균일 펑처링 조건을 만족하기 위하여 전체 시퀀스에 대하여 비트 단위로 펑처링 거리 n 을 구하고, 구해진 n 번째 비트마다 펑처링이 실시된다.First, puncturing for the convolutional code is performed uniformly at equal intervals as possible considering the positions of the punctured bits. Therefore, in order to satisfy the uniform puncturing condition for the convolutional code, a puncturing distance n is calculated in bits for the entire sequence, and puncturing is performed for each of the obtained nth bits.
예를 들어, 펑처링 거리가 5 라면 전체의 시퀀스에 대하여 5의 거리마다 한번씩 펑처링이 수행된다. 그러나, 펑처링 거리가 5.5 라면 5의 거리를 갖는 펑처링이 절반만큼 실시되고 나마지 절반은 6의 거리를 갖도록 펑처링이 실시된다.For example, if the puncturing distance is 5, puncturing is performed once every 5 distances for the entire sequence. However, if the puncturing distance is 5.5, puncturing with a distance of 5 is performed by half and puncturing with a distance of 6 is performed by half.
이때, 터보 코드에 대하여 현재 제안되어 있는 펑처링 알고리즘에 따르면 터보 코드는 비트 단위가 아닌 코드 심볼(Code symbol) 단위를 기준으로 하여 각 펑처링되는 코드 심볼들간에 균일성이 유지되도록 펑처링이 실시된다. 따라서, 터보 코드에 대한 펑처링 알고리즘은 먼저 펑처링이 일어날 코드 심볼의 위치를 정한 후, 첫 번째 패리티 성분과 두 번째 패리티 성분을 교대로 펑처링 되도록 동작한다.At this time, according to the puncturing algorithm currently proposed for the turbo code, the puncturing is performed to maintain uniformity among the punctured code symbols on the basis of the code symbol unit rather than the bit unit. do. Therefore, the puncturing algorithm for the turbo code operates to first determine the location of the code symbol to be punctured and then puncture the first parity component and the second parity component alternately.
이와는 달리 코드 심볼 단위로 펑처링이 일어날 수 있는 위치를 이전 위치로부터 2배의 거리만큼 차이가 나도록 정한 후, 각각의 펑처링이 일어나는 코드 심볼마다 첫 번째 패리티 성분과 두 번째 패리티 성분을 동시에 펑처링하는 방법도 제안되어 있다.In contrast, the puncturing can occur in code symbol units at a distance of 2 times from the previous position, and then the first parity component and the second parity component are simultaneously punctured for each code symbol where each puncturing occurs. A method of making is also proposed.
그러나, 이와 같은 종래 컨벌루션 코드 또는 터보 코드에 대한 레이트 매칭 방법은 알고리즘의 파라미터에 따라 변하는 코드 심볼내에서의 펑처링/반복 패턴에 대한 최적화가 고려되지 않음으로서 다음과 같은 문제점이 발생한다.However, such a rate matching method for a convolutional code or a turbo code does not consider optimization for puncturing / repetition patterns in code symbols that vary according to the parameters of an algorithm, resulting in the following problems.
첫 째, 터보 코드는 각각의 코드 비트 성분들이 서로 다른 중요도를 갖는다는 점을 고려하지 않고 펑처링/반복이 수행된다. 즉, 시스테메틱 비트 성분들이 패리티 비트 성분들에 비하여 중요한 역할을 수행하는 점을 고려하여 시스테메틱 비트 성분들에 대한 펑처링을 배재하는 것이 보다 우수한 성능을 제공할 수 있으나 종래의 레이트 매칭 방법에서는 시스테메틱 비트 성분의 펑처링에 대한 보호 매카니즘이 제공되지 않아 코드 성능의 열화가 발생한다.First, the turbo code is punctured / repeated without considering that each code bit component has a different importance. That is, considering that the systematic bit components play an important role as compared to the parity bit components, excluding puncturing for the systematic bit components may provide better performance, but the conventional rate matching method Does not provide a protection mechanism for puncturing the systematic bit components, resulting in degradation of code performance.
또한, 터보 코드는 펑처링에 의하여 1/2 코드율을 구성할 수 있으나 종래의 방법으로는 1/2 코드율에 대한 최적화된 펑처링/반복 패턴을 제공하지 못한다.In addition, the turbo code may configure a 1/2 code rate by puncturing, but the conventional method does not provide an optimized puncturing / repetition pattern for the 1/2 code rate.
둘 째, 컨벌루션 코드의 경우, 컨벌루션 코드는 터보 코드와 마찬가지로 코드 심볼내에서 상대적으로 중요한 역할을 수행하는 비트들이 존재하는데 반하여 종래의 레이트 매칭 방법에서는 이에 대한 펑처링/반복 패턴을 제공하지 못한다. 예를 들어, 이동 통신 시스템에서 많이 사용되고 있는 256 상태 1/3 코드율을 갖는 컨벌루션 코드를 고려해보면, 컨벌루션 코드의 세 번째 비트열은 첫 번째 및 두 번째의 비트열에 비하여 상대적으로 가장 중요한 역할을 수행하는 비트들이나 종래의 레이트 매칭 방법에서는 구성 파라미터에 따라 세 번째 비트열 만을 펑처링하는 경우가 발생하여 코드 성능의 저하가 발생한다.Second, in the case of convolutional codes, convolutional codes, like turbo codes, have bits that play relatively important roles in code symbols, whereas conventional rate matching methods do not provide puncturing / repetition patterns for them. For example, considering a convolutional code with 256 state 1/3 code rates, which are widely used in mobile communication systems, the third bitstream of the convolutional code plays the most important role relative to the first and second bitstreams. In the bits or the conventional rate matching method, only a third bit string is punctured according to a configuration parameter, thereby causing a decrease in code performance.
따라서, 본 발명의 목적은 이상에서 언급한 종래 기술의 문제점을 감안하여 안출한 것으로서, 컨벌루션 코드와 터보 코드에서 공통으로 사용할 수 있도록 통합된 형태로 구성되며 또한 해당 코드의 코드율에 따라 최적화된 펑처링/반복 패턴을 발생할 수 있는 이동 통신 시스템에서 레이트 매칭 방법을 제공하기 위한 것이다.Accordingly, an object of the present invention has been made in view of the above-mentioned problems of the prior art, it is configured in an integrated form to be commonly used in convolutional code and turbo code, and also optimized according to the code rate of the code It is to provide a rate matching method in a mobile communication system that can generate a processing / repeating pattern.
또한, 이상과 같은 다른 목적을 달성하기 위한 본 발명의 다른 특징에 따르면, 컨벌루션 코드에 대하여 심볼 단위로서 펑처링/반복을 실시할 경우에 펑처링/반복이 발생하는 코드 심볼의 위치를 코드율 및 각 코드 심볼의 중요도에 따라 다르게 변화시킴으로서 코드 성능을 높일 수 있는 이동 통신 시스템에서 레이트 매칭 방법을 제공하기 위한 것이다.In addition, according to another aspect of the present invention for achieving the other object as described above, the code rate and the position of the code symbol that puncturing / repetition occurs when puncturing / repetition as a symbol unit with respect to the convolution code The purpose of the present invention is to provide a rate matching method in a mobile communication system that can improve code performance by varying the importance of each code symbol.
이상과 같은 목적을 달성하기 위한 본 발명의 일 특징에 따르면, 이동 통신 시스템에서 레이트 매칭 방법은 임의의 코드율을 갖는 소정 비트열에 대하여 코드 심볼을 기준으로 하여 펑처링 또는 반복 알고리즘이 수행되는 것을 특징으로 하는 이동 통신 시스템에서, 주어진 식별 정보에 따라 상기 비트열의 채널 코드를 식별하고, 상기 식별된 채널 코드에 따라 상기 코드 심볼내의 펑처링 또는 반복 위치를 각각 다르게 결정하여 수행된다.According to an aspect of the present invention for achieving the above object, a rate matching method in a mobile communication system is characterized in that a puncturing or iterative algorithm is performed on the basis of code symbols for a predetermined bit string having an arbitrary code rate. In the mobile communication system, a channel code of the bit string is identified according to given identification information, and a puncturing or repeating position in the code symbol is determined differently according to the identified channel code.
바람직하게, 상기 식별된 채널 코드의 형태가 컨벌루션 코드일 경우, 상기 펑처링은 상기 컨벌루션 코드의 비트열 중에서 가장 낮은 중요도를 갖는 비트열의 코드 심볼부터 순차적으로 실시한다.Preferably, when the type of the identified channel code is a convolutional code, the puncturing is performed sequentially from the code symbol of the bit string having the lowest importance among the bit sequences of the convolutional code.
도 1은 본 발명에 따른 이동 통신 시스템에서 레이트 매칭 방법을 설명하기 위한 개념도.1 is a conceptual diagram illustrating a rate matching method in a mobile communication system according to the present invention.
이하 본 발명의 바람직한 일 실시 예에 따른 구성 및 작용을 첨부된 도면을 참조하여 설명한다.Hereinafter, a configuration and an operation according to an exemplary embodiment of the present invention will be described with reference to the accompanying drawings.
본 발명에서는 컨벌루션 코드 및 터보 코드에 대하여 공통으로 사용할 수 있는 통합된 형태의 레이트 매칭 방법을 제안한다. 이때, 본 발명에 따른 레이트 매칭 방법은 코드 심볼을 단위로 하며, 각 코드에 대한 펑처링/반복의 위치는 알고리즘이 적용되는 채널 부호의 형태에 따라 각각 다르게 구성된다.The present invention proposes an integrated rate matching method that can be commonly used for convolutional codes and turbo codes. In this case, the rate matching method according to the present invention is a code symbol unit, and the puncturing / repetition position for each code is configured differently according to the type of channel code to which the algorithm is applied.
도 1은 본 발명에 따른 이동 통신 시스템에서 레이트 매칭 방법을 설명하기 위한 개념도 이다.1 is a conceptual diagram illustrating a rate matching method in a mobile communication system according to the present invention.
도 1을 참조하면, 본 발명에 따른 레이트 매칭 방법에서는 펑처링/반복 수행시 코드 심볼 단위를 기준으로 하여 실시되며, 이때 알고리즘에 적용되는 채널 부호의 식별 정보 파라미터(100)에 따라 펑처링/반복의 심볼내 위치를 변화시킨다.Referring to FIG. 1, in the rate matching method according to the present invention, the puncturing / repetition is performed based on a code symbol unit, and at this time, the puncturing / repetition is performed according to the identification information parameter 100 of the channel code applied to the algorithm. Change the position in the symbol.
따라서, 레이트 매칭이 이루어지야할 블록(102)은 채널 부호의 식별 정보 파라미터(100)에 따라 채널 부호가 식별되며, 그에 따라 코드 심볼을 단위로 하는 레이트 매칭 알고리즘(101)은 펑처링/반복을 수행한다(102).Accordingly, in block 102 to be rate matched, the channel code is identified according to the identification information parameter 100 of the channel code. Accordingly, the rate matching algorithm 101 based on the code symbol performs puncturing / repetition. Perform 102.
이러한 코드 심볼을 단위 하는 컨벌루션 코드 및 터보 코드에 대한 레이트 매칭 방법은 다음과 같은 흐름에 따라 실시된다.The rate matching method for the convolutional code and the turbo code in units of such code symbols is implemented according to the following flow.
1 단계, 초기치를 정한다.Step 1, determine the initial value.
2 단계, 감분값을 계산한다.Step 2, calculate the decrement value.
3 단계, 한 개 또는 그 이상의 심볼 단위로 다음 루프를 진행시킨다.Step 3 proceeds to the next loop in units of one or more symbols.
4 단계, 초기치에서 계속해서 감분값을 빼주어 그 결과값이 '0' 보다 작은 값을 가질 경우 펑처링/반복 알고리즘을 실시한다. 이때, 결과값의 범위를 '0' 이외의 범위를 갖도록 알고리즘을 구성할 수 있다. 그리고, 이하의 실시예에서 제시할 알고리즘에서는 초기치를 'e' 로서 나타내고, 2 단계는 'e = e - 감분값'으로 나타내도록 한다.Step 4, Subtract the decrement value continuously from the initial value, and if the result value is smaller than '0', execute the puncturing / repeat algorithm. In this case, the algorithm may be configured to have a range other than '0'. In the algorithm to be presented in the following examples, the initial value is represented as 'e', and the second step is represented by 'e = e-decrement value'.
지금부터는 본 발명에 따른 레이트 매칭 방법을 컨벌루션 코드와 터보 코드일 경우로 각각 나누어서 설명한다.The rate matching method according to the present invention will now be described by dividing into a case of a convolutional code and a turbo code.
제 1 실시예First embodiment
제 1 실시예에서는 256 상태수를 갖으며 1/2 또는 1/3 코드율을 갖는 컨벌루션 코드에 대한 레이트 매칭 방법을 설명한다. (컨벌루션 코드의 발생 다항식은 (561, 753), (557, 663, 711) 이며 터미네이션이 이루어지는 것으로 가정한다.)The first embodiment describes a rate matching method for convolutional codes having 256 state numbers and having 1/2 or 1/3 code rates. (The convolutional polynomials of the convolution code are (561, 753), (557, 663, 711) and are assumed to be terminated.)
우선, 1/2 코드율을 갖는 컨벌루션 코드의 경우, 코드 심볼내의 비트 위치에서 첫 번째와 두 번째의 순서로 중요도를 갖는다. 이때, 컨벌루션 코드에 대한 중요도의 결정은 해밍 거리(Hamming distance)로서 결정한다. 즉, 첫 번째 비트열의 해밍 거리와 두 번째 비트열의 해밍 거리를 산출하여 해밍 거리가 높은 비트열이 중요도가 높은 것으로 판단한다.First, in the case of a convolutional code having a 1/2 code rate, it has priority in the order of the first and second in the bit position in the code symbol. At this time, the importance of the convolution code is determined as the Hamming distance. That is, the Hamming distance of the first bit string and the Hamming distance of the second bit string are calculated to determine that the bit string having the high hamming distance is of high importance.
따라서, 1/2 코드율을 갖는 컨벌루션 코드에서는 코드 심볼 내에서 첫 번째에 위치한 비트 성분들의 해밍 거리가 두 번째에 위치한 비트 성분들의 해밍 거리에 비하여 높으므로 첫 번째에 위치한 비트 성분들이 두 번째에 위치한 비트 성분들 보다 중요한 역할을 수행하고 있는 것으로 판단할 수 있다.Therefore, in a convolutional code with a 1/2 code rate, the first bit components are positioned second because the hamming distance of the first bit components in the code symbol is higher than that of the second bit components. It can be judged that it plays an important role than the bit components.
그러므로, 두 번째에 위치한 비트 성분에 대하여 우선적으로 펑처링하고, 이어 첫 번째에 위치한 비트 성분들을 펑처링한다. 이는 코드 심볼내에서 펑처링의 발생 위치를 각 성분 비트의 중요도에 따라 다르게 변화하고 있음을 알 수 있다.Therefore, the first and second bit components are punctured first, followed by the first and second bit components. It can be seen that the position of puncturing in the code symbol is changed differently according to the importance of each component bit.
한편, 반복은 펑처링을 실시할 경우와는 반대로 첫 번째에 위치한 비트 성분에 대하여 우선적으로 실시하고, 이어 두 번째에 위치한 비트 성분들을 반복한다. 이는 중요한 비트 성분에 대하여 우선적으로 반복을 실시하기 위함이다.On the other hand, the repetition is performed first with respect to the first bit component, as opposed to the case of puncturing, and then repeats the second bit components. This is to first iterate over important bit components.
한편, 1/3 코드율을 갖는 컨벌루션 코드의 경우에는 코드 심볼내의 비트 위치에서 세 번째, 두 번째 그리고 첫 번째의 순서로 중요도를 갖는다. 이것은 첫 번째 비트열의 해밍 거리가 5이고, 두 번째 비트열은 6 그리고 세 번째 비트열은 7의 해밍 거리를 갖는 것으로 중요도를 판단할 수 있다.On the other hand, in the case of a convolutional code having a 1/3 code rate, the order of importance is the third, second and first order of the bit position in the code symbol. This may be determined by the fact that the first bit string has a Hamming distance of 5, the second bit string has a Hamming distance of 6, and the third bit string has a Hamming distance of 7.
따라서, 코드 심볼 내에서 세 번째에 위치한 비트 성분들이 두 번째 및 첫 번째에 비하여 보다 중요한 역할을 수행하므로 중요도가 가장 낮은 첫 번째에 위치한 비트 성분에 대하여 우선적으로 펑처링하고, 이어 두 번째 그리고 세 번째에 위치한 비트들을 순차적으로 펑처링한다.Therefore, since the third bit components in the code symbol play a more important role than the second and first, the first and second most significant bit components are punctured first, followed by the second and third Sequentially puncture the bits located at.
한편, 반복은 펑처링을 실시할 경우와는 반대로 중요한 코드 심볼에 대하여 우선적으로 실시하므로 세 번째에 위치한 비트 성분을 먼저 반복하고, 이어 두 번째 그후 첫 번째에 위치한 비트 성분들을 반복한다.On the other hand, the repetition is performed first with respect to the important code symbol as opposed to the case of puncturing, so that the third bit component is repeated first, followed by the second and first bit components.
위의 경우는 비터비 복호 과정이 터미네이션 정보를 이용하여 구성되는 경우에 해당하고 터미네이션 정보를 이용하지 않는 경우에 있어서의 심볼내 펑처링 패턴은 다른 양상을 보이고 이러한 패턴을 시뮬레이션을 통하여 얻어진다. 위의 경우와 다른 상황을 나타내는 경우는 1/3 컨벌루션 코드에 관한 경우로 터미네이션 정보를 이용하지 않는 경우 심볼내 두 번째 비트를 펑처링하는 것이 최적의 성능을 나타낸다.The above case corresponds to a case where the Viterbi decoding process is configured by using the termination information, and the puncturing pattern in the symbol in the case of not using the termination information shows another aspect and the pattern is obtained through simulation. If the situation is different from the above case, it is related to the 1/3 convolution code. If the termination information is not used, puncturing the second bit in the symbol shows the best performance.
이와 같은 순서를 갖도록 구성되는 컨벌루션 코드에 대한 레이트 매칭 알고리즘은 다음과 같이 구성된다.The rate matching algorithm for the convolution code configured to have such an order is configured as follows.
우선, 컨벌루션 코드에 대한 레이트 매칭 알고리즘에 대한 설명의 편의를 위해서 다음과 같이 정의한다. (코드율 = 1/n)First, for convenience of explanation of the rate matching algorithm for the convolution code, the following definition is made. (Code rate = 1 / n)
1. SN= { N1, N2, ..... , NL} = 블록당 가능한 수의 순서화된 집합(상향 순서로)1.S N = {N 1 , N 2 , ....., N L } = an ordered set of possible numbers per block (in ascending order)
2. NC= 레이트 매칭이 이루어져야 할 블록 크기 = nN2. N C = block size for rate matching = nN
3. S0= { d1, d2, ..... , dNc} = NC데이터 비트 집합3.S 0 = {d 1 , d 2 , ....., d Nc } = N C data bit set
그러면, 컨벌루션 코드에 대한 레이트 매칭 알고리즘은 다음과 같다.Then, the rate matching algorithm for the convolution code is as follows.
- 펑처링의 경우-For puncturing
y = Nc- Ni y = N c -N i
e = Ne = N
m = lm = l
count = 0count = 0
if(n == 2)if (n == 2)
Xn= 0X n = 0
endifendif
if(n == 3)if (n == 3)
Xn= 2X n = 2
endifendif
do while m ≤ Ndo while m ≤ N
e = e - 2 * ye = e-2 * y
if e ≤ 0 thenif e ≤ 0 then
puncture bit n * m - Xnfrom set S0 puncture bit n * m-X n from set S 0
count = count + 1count = count + 1
e = e + 2 * Ne = e + 2 * N
endifendif
m = m + 1m = m + 1
end doend do
- 반복의 경우-For repetition
y = Ni- Nc y = N i -N c
e = Ne = N
m = 1m = 1
if(n==2)if (n == 2)
Xn1= 1, Xn2= 0X n1 = 1, X n2 = 0
endifendif
if(n==3)if (n == 3)
Xn1= 0, Xn2= 1, Xn3= 2X n1 = 0, X n2 = 1, X n3 = 2
endifendif
do while m≤ Ndo while m≤ N
e = e - 2 * ye = e-2 * y
if(e ≤ - 4 * N)&&(n==3) thenif (e ≤-4 * N) & (n == 3) then
repeat bit n*m - Xn3from set S0 repeat bit n * m-X n3 from set S 0
e = e + 2 * Ne = e + 2 * N
end ifend if
if e ≤ -2 * N thenif e ≤ -2 * N then
repeat bit n * m - Xn2from set S0 repeat bit n * m-X n2 from set S 0
e = e + 2 * Ne = e + 2 * N
endifendif
if e ≤ 0 thenif e ≤ 0 then
repeat bit n * m - Xn1from set S0 repeat bit n * m-X n1 from set S 0
e = e + 2 * Ne = e + 2 * N
end ifend if
m = m + 1m = m + 1
end doend do
end ifend if
한편, 터미네이션 정보를 이용하지 않은 경우, 위의 알고리즘에서 심볼내 첫 번째 비트위치를 펑쳐링하는 것이 두 번째 비트 위치로 바뀌면 적절하게 알고리즘이 변환된다.On the other hand, when the termination information is not used, the algorithm is appropriately transformed when puncturing the first bit position in the symbol is changed to the second bit position in the above algorithm.
종래의 알고리즘을 고려하면, 초기치의 값을 A라고 할때 A/(6*n) (n=1보다 큰 자연수)의 펑처링이 발생하는 경우 항상 세 번째 비트가 펑처링 된다. 세 번째 비트의 펑처링은 성능의 열화를 가져오므로 이러한 문제를 완전히 방지하기 위해서 초기치를 1로서 설정한다.Considering the conventional algorithm, the third bit is always punctured when puncturing of A / (6 * n) (a natural number greater than n = 1) occurs when the initial value is A. The puncturing of the third bit causes performance degradation, so the initial value is set to 1 to completely prevent this problem.
제 2 실시예Second embodiment
제 2 실시예에서는 임의의 코드율을 갖는 터보 코드에 대한 레이트 매칭 방법을 설명한다.The second embodiment describes a rate matching method for turbo codes having arbitrary code rates.
터보 코드는 길쌈 부호기로부터 출력되는 비트 성분 중에서 부호화 되지 않은 시스테메틱 성분 비트가 패리티 성분 비트보다 정보 전송의 측면에서 상대적으로 중요한 성질을 가지는 것을 고려하여 다음과 같은 규칙을 가지며 펑처링/반복이 실시된다.The turbo code has the following rules in consideration of the fact that the uncoded systemic component bits among the bit components output from the convolutional encoder have a more important property in terms of information transmission than the parity component bits. do.
첫째, 시스테매틱 성분 비트는 펑처링하지 않는다.First, the cystic component bits do not puncture.
둘째, 패리티 성분 비트간의 균형적인 펑쳐링이 실시된다. 즉, 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트는 각각 펑처링된 비트수가 같다.Second, balanced puncturing between the parity component bits is performed. That is, the first parity component bit and the second parity component bit have the same number of punctured bits.
셋째, 각 패리티 성분 비트간에 균일한 펑처링이 실시된다. 이는 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트가 일정한 거리를 갖는 패턴으로 펑처링됨을 의미한다.Third, uniform puncturing is performed between each parity component bit. This means that the first parity component bit and the second parity component bit are punctured in a pattern having a constant distance.
넷째, 반복의 경우에는 시스테매틱 성분 비트만을 반복한다.Fourth, in the case of repetition, only the cymatic component bits are repeated.
이때, 코드 심볼 개수 이상의 펑처링/반복이 실시되는 경우에는 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트의 균형을 맞추기 위하여 초기치에서 계속해서 감분값을 빼주고 '0'보다 범위 이외의 여러 가지 범위를 추가로 설정하여 해당 범위에 따라 최적화된 펑처링/반복을 실시한다.In this case, when puncturing / repetition more than the number of code symbols is performed, in order to balance the first parity component bit and the second parity component bit, the decrement value is continuously subtracted from the initial value and various ranges other than '0' are added. Set additionally to perform the puncturing / repeat optimized according to the applicable range.
따라서, 이러한 코드 심볼 개수 이상의 펑처링/반복이 실시되는 경우, 펑처링은 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트를 번갈아가며 실시하며, 이후 특정 범위에 해당하는 지점에서 동일한 비트 인덱스를 가지는 첫 번째 패리티 성분 비트와 두 번째 패리티 성분 비트를 동시에 펑처링한다. 그리고, 반복은 시스테메틱 성분 비트를 먼저 반복하고, 코드 심볼 개수 이상의 반복에 대해서는 두 번째 패리티 성분 비트, 이후 첫 번째 패리티 성분 비트에 대하여 반복한다.Therefore, when puncturing / repetition of more than this number of code symbols is performed, puncturing alternates between the first parity component bit and the second parity component bit. The first parity component bit and the second parity component bit are punctured simultaneously. The repetition repeats the cymatic component bits first, and repeats the second parity component bit and the first parity component bit after the repetition of the number of code symbols or more.
또한, 터보 코드에서는 터미네이션 비트(Termination bit)들이 상대적으로 중요한 역할을 수행하므로 본 발명에 따른 레이트 매칭 방법에서는 터미네이션 비트 부분에 대하여 펑처링이 발생하지 않도록 펑처링 알고리즘의 초기치를 조절한다. 바람직하게는 초기치를 '1'로 설정하여 가능한 한 터미네이션 비트 부분에서의 펑처링을 배제한다.In addition, since termination bits play a relatively important role in the turbo code, the rate matching method according to the present invention adjusts the initial value of the puncturing algorithm so that puncturing does not occur in the termination bit portion. Preferably, the initial value is set to '1' to eliminate puncturing in the termination bit portion as much as possible.
이러한, 코드 심볼 단위의 펑처링/반복 패턴을 제공하는 터보 코드에 대한 레이트 매칭 방법은 컨벌루션 코드와 통합하여 구성할 수 있으며 다음과 같다.The rate matching method for a turbo code that provides a puncturing / repetition pattern in units of code symbols can be configured by convolutional code and is as follows.
우선, 컨벌루션 코드와 터보 코드의 통합된 레이트 매칭 알고리즘에 대하여 설명의 편의를 위해 다음과 같이 정의한다. (코드율 = 1/n)First, an integrated rate matching algorithm of a convolution code and a turbo code is defined as follows for convenience of description. (Code rate = 1 / n)
1. SN= { N1, N2, ..... , NL} = 블록당 가능한 수의 순서화된 집합(상향 순서로)1.S N = {N 1 , N 2 , ....., N L } = an ordered set of possible numbers per block (in ascending order)
2. NC= 레이트 매칭이 이루어져야 할 블록 크기 = nN2. N C = block size for rate matching = nN
3. S0= { d1, d2, ..... , dNc} = NC데이터 비트 집합3.S 0 = {d 1 , d 2 , ....., d Nc } = N C data bit set
그러면, 컨벌루션 코드와 터보 코드에 대한 통합된 레이트 매칭 알고리즘은 다음과 같다.Then, the integrated rate matching algorithm for the convolutional code and the turbo code is as follows.
- 펑처링의 경우-For puncturing
y = Nc- Ni y = N c -N i
e = Ne = N
m = lm = l
flag = 0flag = 0
if(n == 2)if (n == 2)
Xn= 0X n = 0
endifendif
if(n == 3)if (n == 3)
Xn= 2X n = 2
do while m ≤ Ndo while m ≤ N
e = e - 2 * ye = e-2 * y
if e ≤ -2 * N thenif e ≤ -2 * N then
puncture bit n * m, n * m-1 from set S0 puncture bit n * m, n * m-1 from set S 0
e = e + 4 * Ne = e + 4 * N
endifendif
if e ≤ 0 thenif e ≤ 0 then
if(convolutional code)if (convolutional code)
puncture bit n * m - Xn from set S0 puncture bit n * m-Xn from set S 0
endifendif
if(turbo code)if (turbo code)
if flag == 0if flag == 0
puncture bit n*m from set S0 puncture bit n * m from set S 0
flag = 1flag = 1
endifendif
if flag == 1if flag == 1
puncture bit n * m-1 from set S0 puncture bit n * m-1 from set S 0
flag = 0flag = 0
endifendif
endifendif
e = e + 2 * Ne = e + 2 * N
endifendif
m = m + 1m = m + 1
end doend do
- 반복의 경우-For repetition
y = Ni- Nc y = N i -N c
e = Ne = N
m = lm = l
if(n == 2)if (n == 2)
Xn1= 1, Xn2= 0X n1 = 1, X n2 = 0
endifendif
if(n == 3)if (n == 3)
Xn1= 0, Xn2= 1, Xn3= 2X n1 = 0, X n2 = 1, X n3 = 2
endifendif
if(turbo code)if (turbo code)
Xn1= 2, Xn2= 0, Xn3= 1 or Xn1= 2, Xn2= 1, Xn3= 0X n1 = 2, X n2 = 0, X n3 = 1 or X n1 = 2, X n2 = 1, X n3 = 0
endifendif
do while m ≤ Ndo while m ≤ N
e = e - 2 * ye = e-2 * y
if(e ≤ -4N)&&(n==3) thenif (e ≤ -4N) && (n == 3) then
repeat bit n * m - Xn3from set S0 repeat bit n * m-X n3 from set S 0
e = e + 2 * Ne = e + 2 * N
end ifend if
if e ≤ -2 * N thenif e ≤ -2 * N then
repeat bit n * m - Xn2from set S0 repeat bit n * m-X n2 from set S 0
e = e + 2 * Ne = e + 2 * N
end ifend if
if e ≤ 0 thenif e ≤ 0 then
repeat bit n * m - Xn1from set S0 repeat bit n * m-X n1 from set S 0
e = e + 2 * Ne = e + 2 * N
end ifend if
m = m + 1m = m + 1
end doend do
end ifend if
제 3 실시예Third embodiment
제 3 실시예에서는 컨벌루션 코드에 대하여 펑처링/반복시 다수의 코드 심볼을 기준으로 심볼내의 위치를 다르게 하여 실시하는 경우를 설명한다.In the third embodiment, a case in which the convolutional code is performed by different positions within the symbol based on a plurality of code symbols during puncturing / repetition will be described.
즉, 종래의 컨벌루션 코드에 대한 펑처링은 비트열의 코드 심볼내 한 위치에서만 균일하게 실시하였으나 본 발명에서는 이를 확장하여 다른 비트열의 코드 심볼을 기준으로 번갈아가며 펑처링을 실시할 수 있다. 이는 터보 코드에 대한 레이트 매칭 알고리즘을 컨벌루션 코드에서도 적용할 수 있음을 의미한다.That is, the conventional puncturing of the convolutional code is uniformly performed only at one position within the code symbol of the bit string, but in the present invention, the puncturing may be alternately performed based on the code symbol of the other bit string. This means that the rate matching algorithm for the turbo code can be applied to the convolutional code.
이러한 컨벌루션 코드에 대한 레이트 매칭 알고리즘을 다음에 나타낸다. 이하에서 나타낸 알고리즘은 1/2 코드율을 갖는 컨벌루션 코드를 기준으로 한다.The rate matching algorithm for this convolutional code is shown below. The algorithm shown below is based on a convolutional code with a half code rate.
- 펑처링의 경우-For puncturing
y = Nc- Ni y = N c -N i
e = Ne = N
m = lm = l
flag = 0flag = 0
do while m ≤ Ndo while m ≤ N
e = e - 2 * ye = e-2 * y
if e ≤ 0 thenif e ≤ 0 then
if flag == 0if flag == 0
puncture bit 2 * m from set S0 puncture bit 2 * m from set S 0
flag = 1flag = 1
end ifend if
if flag == 1if flag == 1
puncture bit 2 * m - 1 from set S0 puncture bit 2 * m-1 from set S 0
flag = 0flag = 0
end ifend if
e = e + 2 * Ne = e + 2 * N
endifendif
m = m + 1m = m + 1
end doend do
이와 같은 경우에 있어서 컨벌루션 코드와 터보 코드의 통합된 레이트 매칭 알고리즘은 다음과 같다.In this case, the integrated rate matching algorithm of the convolutional code and the turbo code is as follows.
- 펑처링의 경우-For puncturing
y = Nc- Ni y = N c -N i
e = Ne = N
m = lm = l
flag = 0flag = 0
if(n == 3)if (n == 3)
Xn= 2X n = 2
do while m ≤ Ndo while m ≤ N
e = e - 2 * ye = e-2 * y
if e ≤ -2 * N thenif e ≤ -2 * N then
puncture bit n * m, n * m-1 from set S0 puncture bit n * m, n * m-1 from set S 0
e = e + 4 * Ne = e + 4 * N
endifendif
if e ≤ 0 thenif e ≤ 0 then
if((convolutional code)&&(n=3))if ((convolutional code) && (n = 3))
puncture bit n * m - Xn from set S0 puncture bit n * m-Xn from set S 0
endifendif
if((turbo code))∥((convolutional code)&&(n=2))))if ((turbo code)) ∥ ((convolutional code) && (n = 2)))
if flag == 0if flag == 0
puncture bit n*m from set S0 puncture bit n * m from set S 0
flag = 1flag = 1
endifendif
if flag == 1if flag == 1
puncture bit n * m-1 from set S0 puncture bit n * m-1 from set S 0
flag = 0flag = 0
endifendif
endifendif
e = e + 2 * Ne = e + 2 * N
endifendif
m = m + 1m = m + 1
end doend do
이상의 설명에서와 같이 본 발명은 코드 심볼을 단위로 하여 채널 코드에 따라 최적화된 패턴을 갖는 펑처링/반복을 실시하므로 다음과 같은 효과가 있다.As described above, the present invention performs the puncturing / repetition having an optimized pattern according to the channel code in units of code symbols, and thus has the following effects.
첫째, 컨벌루션 코드 및 터보 코드에서 공통으로 사용할 수 있는 통합된 레이트 매칭 알고리즘을 제공하여 코드율에 따른 최적화된 펑처링/반복 패턴을 제공하여 코드의 성능 저하를 방지할 수 있다.First, by providing an integrated rate matching algorithm that can be commonly used in convolutional code and turbo code, an optimized puncturing / repetition pattern according to the code rate can be provided to prevent performance degradation of the code.
둘째, 컨벌루션 코드 및 터보 코드에 대한 레이트 매칭시 코드 심볼의 중요도에 따라 최적화된 펑처링/반복 패턴을 제공할 수 있다.Second, it is possible to provide an optimized puncturing / repetition pattern according to the importance of code symbols in rate matching for convolutional codes and turbo codes.
셋째, 레이트 매칭 알고리즘의 계산량과 복잡도면에서 요구량 감소를 가져온다.Thirdly, the required amount is reduced in the computational complexity and complexity of the rate matching algorithm.
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990027352A KR100640910B1 (en) | 1999-07-07 | 1999-07-07 | Method for rate matching in mobile communication system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990027352A KR100640910B1 (en) | 1999-07-07 | 1999-07-07 | Method for rate matching in mobile communication system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010009145A true KR20010009145A (en) | 2001-02-05 |
KR100640910B1 KR100640910B1 (en) | 2006-11-02 |
Family
ID=19600079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990027352A KR100640910B1 (en) | 1999-07-07 | 1999-07-07 | Method for rate matching in mobile communication system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100640910B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100379385B1 (en) * | 1999-12-24 | 2003-04-10 | 엘지전자 주식회사 | parameter determining method for fixed position rate matching in downlink |
KR100918765B1 (en) * | 2001-10-20 | 2009-09-24 | 삼성전자주식회사 | Apparatus and method for coding and rate mating in cdma mobile communication |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3371309B2 (en) * | 1995-06-27 | 2003-01-27 | ソニー株式会社 | Code division multiplex transmission apparatus, code division multiplex reception apparatus, and code division multiplex transmission / reception system |
US5691992A (en) * | 1995-10-12 | 1997-11-25 | Ericsson Inc. | Punctured coding system for providing unequal error protection in a digital communication system |
KR100315708B1 (en) * | 1998-12-31 | 2002-02-28 | 윤종용 | Apparatus and method for puncturing a turbo encoder in a mobile communication system |
KR20000067738A (en) * | 1999-04-14 | 2000-11-25 | 서평원 | Rate matching Method for channel code in mobile communication system |
KR20010001083A (en) * | 1999-06-01 | 2001-01-05 | 서평원 | Rate matching method for turbo code |
-
1999
- 1999-07-07 KR KR1019990027352A patent/KR100640910B1/en not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100379385B1 (en) * | 1999-12-24 | 2003-04-10 | 엘지전자 주식회사 | parameter determining method for fixed position rate matching in downlink |
KR100918765B1 (en) * | 2001-10-20 | 2009-09-24 | 삼성전자주식회사 | Apparatus and method for coding and rate mating in cdma mobile communication |
Also Published As
Publication number | Publication date |
---|---|
KR100640910B1 (en) | 2006-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2341744C (en) | Rate matching device and method for a data communication system | |
KR20040081785A (en) | Improved turbo code based incremental redundancy | |
KR20020064199A (en) | Method and apparatus for error correction | |
KR100640910B1 (en) | Method for rate matching in mobile communication system | |
EP1537673A2 (en) | Method of interleaving/deinterleaving in a communication system | |
JP4847679B2 (en) | Method and communication device for matching data rates in a communication device | |
KR20000067738A (en) | Rate matching Method for channel code in mobile communication system | |
KR100387058B1 (en) | Method and apparatus for flexible data rate matching by symbol insertion for a data communication system | |
KR100357868B1 (en) | Rate matching device and method for dada communication system | |
US20120326898A1 (en) | Coding and Decoding by Means of a Trellis Coded Modulation System | |
KR100451716B1 (en) | Rate matching method of mobile communication system | |
JP2005167513A (en) | Decoding device and decoding method | |
KR100404181B1 (en) | Method and Apparatus of Rate Matching for Channelization Code On up-link | |
KR100672347B1 (en) | Flexible data rate Matching Method in 3GPP2 | |
KR20010001083A (en) | Rate matching method for turbo code | |
KR100472678B1 (en) | Method for early stopping of parallel iterative decoding in turbo codes | |
KR20010044941A (en) | method for calculating shifting parameter of parallel puncturing algorithm | |
KR100317377B1 (en) | Encoding and decoding apparatus for modulation and demodulation system | |
KR100444830B1 (en) | Apparatus and method for rate matching in data telecommunication system | |
KR20030082699A (en) | Turbo internal interleaving method and device based on golden sequence | |
KR20010009158A (en) | Rate matching method for channelization code on up-link | |
Katsiotis | Channel Coding Techniques with Emphasis on Convolutional and Turbo Codes | |
KR20010019383A (en) | Rate matching method for channelization code | |
ZA200101865B (en) | Rate matching device and method for a data communication system. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120926 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130924 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20140924 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20150924 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20160923 Year of fee payment: 11 |
|
EXPY | Expiration of term |