KR101531184B1 - A decoding method and apparatus using interworking between upper and lower layers, and a data transmission / reception system using the same - Google Patents
A decoding method and apparatus using interworking between upper and lower layers, and a data transmission / reception system using the same Download PDFInfo
- Publication number
- KR101531184B1 KR101531184B1 KR1020080119927A KR20080119927A KR101531184B1 KR 101531184 B1 KR101531184 B1 KR 101531184B1 KR 1020080119927 A KR1020080119927 A KR 1020080119927A KR 20080119927 A KR20080119927 A KR 20080119927A KR 101531184 B1 KR101531184 B1 KR 101531184B1
- Authority
- KR
- South Korea
- Prior art keywords
- lower layer
- bit
- bits
- layer decoder
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title abstract description 25
- 230000005540 biological transmission Effects 0.000 title abstract description 17
- 238000012937 correction Methods 0.000 abstract description 11
- 238000004891 communication Methods 0.000 description 9
- 125000004122 cyclic group Chemical group 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 238000005562 fading Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007430 reference method Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/20—Arrangements for detecting or preventing errors in the information received using signal quality detector
- H04L1/203—Details of error rate determination, e.g. BER, FER or WER
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 상하위 계층 간의 연동을 이용한 복호화 방법 및 장치와 그를 이용하여 데이터 송수신 시스템에 관한 것이다.The present invention relates to a decoding method and apparatus using interworking between upper and lower layers and a data transmission / reception system using the same.
본 발명은 소스 정보가 부호화된 데이터를 복호화하는 장치에 있어서, 하위 계층 코드를 이용하여 데이터를 복호화하되, 복호화된 데이터의 각 비트의 신뢰도가 기 설정된 신뢰도 문턱값 이상인 비트를 출력하는 하위 계층 복호화기; 및 상위 계층 코드를 이용하여 하위 계층 복호화기로부터 출력된 비트를 복호화하여 소스 정보를 복원하는 상위 계층 복호화기를 포함하는 것을 특징으로 하는 복호화 장치를 제공한다.According to another aspect of the present invention, there is provided an apparatus for decoding data encoded with source information, the apparatus comprising: a lower layer decoder for decoding data using a lower layer code and outputting a bit whose reliability of each bit of the decoded data is equal to or greater than a predetermined reliability threshold; ; And an upper layer decoder for decoding the bits output from the lower layer decoder using the upper layer code to recover the source information.
본 발명에 의하면, 주어진 채널 환경에서 데이터를 더욱 적은 에러율을 송수신할 수 있으며, 같은 목표 에러율을 달성하기 위해 필요한 총 수신된 데이터의 비트 수를 상당히 줄일 수 있으므로, 같은 비트 수의 데이터를 송수신하는 데 소요되는 줄일 수 있다.According to the present invention, it is possible to transmit / receive data with a smaller error rate in a given channel environment and to significantly reduce the number of bits of the total received data required to achieve the same target error rate, It can be reduced.
무선, 채널, 방송, 데이터, 오류, 정정, 계층, MBMS, Rateless, Turbo, CRC Wireless, channel, broadcast, data, error, correction, layer, MBMS, Rateless, Turbo, CRC
Description
본 발명은 상하위 계층 간의 연동을 이용한 복호화 방법 및 장치와 그를 이용하여 데이터 송수신 시스템에 관한 것이다. 더욱 상세하게는, 하위 계층 코드와 상위 계층 코드를 이용하여 부호화된 데이터를 더욱 정확하게 복호화하는 방법 및 장치와 그를 이용한 데이터의 송수신 시스템에 관한 것이다.The present invention relates to a decoding method and apparatus using interworking between upper and lower layers and a data transmission / reception system using the same. More particularly, the present invention relates to a method and apparatus for more accurately decoding encoded data using a lower layer code and an upper layer code, and a data transmission / reception system using the same.
3GPP에서는 여러 명의 사용자에게 동시에 같은 정보를 효율적으로 보낼 수 있는 MBMS(Multimedia Broadcast Multicast Service)라는 방송용 데이터의 전송 서비스를 제안하고 있다. MBMS는 순방향 오류 정정(FEC: Forward Error Correction, 이하 'FEC'라 칭함) 기술을 응용한 것인데, FEC 기술은 전송되는 데이터에 리던던시(Redundancy)를 추가하여 함께 전송함으로써, 무선 채널을 통해 데이터가 전송될 때의 페이딩(Fading) 및 잡음에 의하여 발생하는 오류를 제거할 수 있다. FEC는 수신기가 수신한 데이터에서 오류가 발견되었을 때, 재전송을 요구하지 않고 수신기가 스스로 정정할 수 있기 때문에, 방송용 데이터의 전송과 같은 단방향 전송 서비 스에서 필수적으로 사용되는 오류 정정 기술이다. 특히, 방송 서비스를 제공할 때에는 서비스 제공자가 특별히 목표하는 사용자가 아닌 모든 사용자들에게 정보를 제공하기 때문에, 서비스 제공자와 사용자 양측의 정보 소통 없이 단방향으로 정보를 전송하는 것이 요구된다. 따라서, 방송 서비스를 제공하기 위한 기술 중에서 FEC 기술은 반드시 필요하다고 할 수 있다.3GPP proposes a broadcast data transmission service called a Multimedia Broadcast Multicast Service (MBMS) which can efficiently transmit the same information to a plurality of users at the same time. MBMS is an application of Forward Error Correction (FEC) technology. The FEC technique adds redundancy to the transmitted data and transmits the data together. Thus, It is possible to eliminate an error caused by fading and noise when the signal is generated. FEC is an error correction technique, which is essential in unidirectional transmission services such as transmission of broadcast data, because an error can be corrected by the receiver itself without requiring retransmission when an error is found in the data received by the receiver. In particular, when providing a broadcasting service, since the service provider provides information to all users, which is not a specifically targeted user, it is required to transmit information unidirectionally without communicating information between the service provider and the user. Therefore, FEC technology is indispensable for providing a broadcasting service.
기존에 잘 알려진 FEC 기술을 위한 알고리즘(이하, 'FEC 알고리즘'이라 약칭함)으로는 콘볼루션 코드(Convolutional Code), 리드솔로몬 코드(Reed-Solomon Code), 터보 코드(Turbo Code), 저밀도 패리티 체크 코드(LDPC Code: Low-Density Parity-Check Code), 토네이도 코드(Tornado Code), 루비 트랜스폼 코드(LT Code: Luby Transform Code), 랩터 코드(Raptor Code) 등을 사용하여 오류를 정정하는 알고리즘이 있다. 각각의 코드를 사용하는 알고리즘은 각각 다른 방식으로 리던던시를 생성하며, 원래의 정보에 리던던시를 추가하여 코드워드(Codeword)를 생성하는데, 코드워드의 길이의 비를 코딩 레이트(Coding Rate)라 한다.The well known FEC algorithm (hereinafter abbreviated as FEC algorithm) includes Convolutional Code, Reed-Solomon Code, Turbo Code, Low Density Parity Check An algorithm for correcting errors using LDPC codes (Low-Density Parity-Check Code), Tornado Code, LT Code (Lombard Transform Code), Raptor Code have. Algorithms using each code generate redundancy in different ways, and redundancy is added to the original information to generate a codeword. The ratio of the length of the codeword is called a coding rate.
FEC 알고리즘 중에서는 코딩 레이트가 정해져 있어서 수신기가 사용하는 채널을 알고 있는 유니캐스트(Unicast) 전송에 적합한 FEC 알고리즘이 있는 반면, 코딩 레이트가 정해지지 않고 리던던시를 계속해서 생성하고 전송하여 그 중 일부만 수신해도 원래의 정보를 복호화할 수 있는 FEC 알고리즘이 있는데, 이러한 FEC 알고리즘에서 사용하는 코드를 레이트리스 코드(Rateless Code)라 한다. 레이트리스 코드는 수신기가 데이터를 수신할 수 있는지 여부를 송신기에서 알지 못해도 높은 신뢰도로 전송할 수 있으므로, 사용자가 분명하지 않은 방송에 적합한 FEC 알고리 즘이라 할 수 있다. 대표적인 레이트리스 코드로서는 루비 트랜스폼 코드, 랩터 코드 등이 있으며, 실제로 방송용 FEC 알고리즘으로 사용되고 있다.Among the FEC algorithms, there is an FEC algorithm suitable for unicast transmission in which a coding rate is fixed and a channel used by a receiver is known. On the other hand, if a coding rate is not fixed and continuous generation and transmission of redundancy is performed, There is an FEC algorithm that can decode information of the FEC algorithm. The code used in the FEC algorithm is called a rateless code. The rateless code can be a FEC algorithm suitable for a broadcast which the user is unclear because the transmitter can transmit whether or not the receiver can receive data with high reliability without knowing it at the transmitter. A typical rateless code is a ruby transform code, a raptor code, etc., and is actually used as a broadcast FEC algorithm.
4G 등 차세대 데이터 전송에 있어서 어떤 모바일 사용자에게도 시간, 장소에 관계없이 데이터를 전송할 수 있도록 하는 FEC 알고리즘을 비롯한 방송 서비스를 위한 기술의 개발이 예상되지만, 계속해서 증가하는 전송 요구량으로 인하여 높은 대역폭(Bandwidth)과 더 많은 범위 내의 사용자에게 전송할 수 있는 기술이 보장되어야 한다. 이러한 환경에서 개선된 방송용 코드의 개발이 중요시된다. In the next generation data transmission such as 4G, it is expected to develop a technology for a broadcasting service including an FEC algorithm that enables data to be transmitted regardless of time or place to any mobile user. However, due to an increase in transmission requirement, ) And a technology that can be transmitted to a larger range of users. The development of improved broadcasting codes in this environment is important.
또한, 무선 채널 환경에 최적화된 코드의 개발이 필요하다. 현재 3GPP MBMS 에서 사용되고 있는 코드는 유선 환경에서 최적화되어 있으며, 무선 상황에서 동작시키기 위하여 물리 계층에 이미 있는 물리 계층 FEC를 이용한다. 즉, 물리 계층에 있는 복호화기가 일단 무선 상황에 맞추어져 동작하면서 오류를 정정하고 그 정정된 정보를 상위 계층에 있는 레이트리스 코드 복호화기에 올려 보내면 레이트리스 코드 복호화기가 정정된 정보로부터 다시 추가적인 오류 정정을 실행한다. 이때, 추가적인 오류 정정이 필요한 이유는 물리 계층에서 채널 환경이 나쁜 경우, 복호화에 실패하게 되며 그로 인해 복호화되지 않은 블록은 레이트리스 코드 복호화기로 전달되지 않는다. 이와 같이 전달되지 않는 블록이 있으면, 레이트리스 코드 복호화기 입장에서는 그 블록이 지워진 것으로 보게 된다. 이렇게 지워진 블록이 있을 때 레이트리스 코드 복호화기는 지워진 정보를 복원해 낼 수 있다.In addition, it is necessary to develop a code optimized for a wireless channel environment. Currently, the code used in the 3GPP MBMS is optimized in the wired environment and uses physical layer FEC already in the physical layer to operate in a wireless environment. That is, once the decoder in the physical layer operates in accordance with the wireless situation and corrects the error and sends the corrected information to the rateless code decoder in the upper layer, the rateless code decoder can perform additional error correction from the corrected information . At this time, the reason why additional error correction is required is that if the channel environment is bad in the physical layer, the decoding fails and the decoded block is not transmitted to the rateless code decoder. If there is a block that is not transmitted in this manner, the block is erased from the state of the rateless code decoder. When the erased block is present, the rateless code decoder can recover the erased information.
이와 같이, 오류 정정 부호를 이용하여 복호화하는 계층이 하위 계층 및 상위 계층의 두 단계로 되어 있는 시스템에서는 물리 계층에 있는 오류 정정 부호를 이용하여 페이딩 환경을 고려한 오류 정정을 하게 되고 상위 계층에 있는 레이트리스 코드를 이용하여 추가적인 오류 정정을 하게 된다. 그런데 이렇게 두 단계로 오류 정정을 할 때, 물리 계층의 복호화기는 통상적으로 복호화된 정보만을 상위 계층의 레이트리스 코드 복호화기에 올려 보내게 되며, 그로 인해 성능 저하가 발생하는 문제점이 있다. 즉, 물리 계층에서 페이딩이 있는 경우, 블록이 복호화되지는 않지만 여전히 유용한 정보가 그 블록에 포함될 수 있다. 이러한 정보를 상위 계층의 레이트리스 코드가 이용할 수 있다면, 더욱 향상된 성능을 낼 수 있는 가능성이 있다. 따라서, 물리 계층에서 복호화되지 않은 블록에 포함된 유용한 정보를 상위 계층에서 이용할 수 있도록 하는 새로운 기술의 개발이 요구되는 실정이다.In this way, in a system in which a layer to be decoded using an error correcting code is composed of a lower layer and an upper layer, an error correction is performed considering an fading environment using an error correction code in the physical layer, Additional error correction is done using the lease code. However, when error correction is performed in two steps, the decoders of the physical layer typically send only the decoded information to the upper layer rithless code decoder so that the performance degrades. That is, if there is fading in the physical layer, the block is not decoded but still useful information may be included in the block. If such information is available in the upper layer of the rateless code, there is a possibility of achieving further improved performance. Therefore, there is a need to develop a new technique that enables useful information contained in blocks that are not decoded in the physical layer to be used in an upper layer.
전술한 문제점을 해결하고 새로운 요구에 부응하기 위해 본 발명은, 물리 계층에서 복호화된 비트를 이용하여 추가적인 오류 정정을 수행하는 데 있어서, 물리 계층에서 올바르게 복호화되지 않았지만 신뢰도가 높은 비트를 전달하고 상위 계층에서 올바르게 복호화되지 않았지만 신뢰도가 높은 비트를 이용하여 더욱 정확하게 오류 정정을 수행하는 데 주된 목적이 있다.In order to solve the above-mentioned problems and to meet new demands, the present invention provides a method and apparatus for performing additional error correction using decoded bits in a physical layer, The main goal is to perform more accurate error correction using highly reliable bits that are not decoded correctly.
전술한 목적을 달성하기 위해 본 발명은, 소스 정보가 부호화된 데이터를 복호화하는 장치에 있어서, 하위 계층 코드를 이용하여 데이터를 복호화하되, 복호화된 데이터의 각 비트의 신뢰도가 기 설정된 신뢰도 문턱값 이상인 비트를 출력하는 하위 계층 복호화기; 및 상위 계층 코드를 이용하여 하위 계층 복호화기로부터 출력된 비트를 복호화하여 소스 정보를 복원하는 상위 계층 복호화기를 포함하는 것을 특징으로 하는 복호화 장치를 제공한다.According to an aspect of the present invention, there is provided an apparatus for decoding data encoded with source information, the apparatus comprising: a decoder for decoding data using a lower layer code, wherein reliability of each bit of the decoded data is equal to or higher than a predetermined reliability threshold A lower layer decoder for outputting a bit; And an upper layer decoder for decoding the bits output from the lower layer decoder using the upper layer code to recover the source information.
또한, 본 발명의 다른 목적에 의하면, 소스 정보가 부호화된 데이터를 복호화하는 방법에 있어서, 하위 계층 복호화기가 하위 계층 코드를 이용하여 데이터를 복호화하는 하위 계층 복호화 단계; 하위 계층 복호화기가 복호화된 데이터의 각 비트에 대해 순환 잉여 검사를 수행하는 순환 잉여 검사 단계; 하위 계층 복호화기가 순환 잉여 검사를 통과하지 못한 비트의 신뢰도를 평가하는 신뢰도 평가 단계; 하위 계층 복호화기가 순환 잉여 검사를 통과하지 못한 비트 중에서 신뢰도가 기 설정된 신뢰도 문턱값 이상인 비트와 순환 잉여 검사를 통과한 비트를 출력하는 비트 출력 단계; 및 상위 계층 복호화기가 상위 계층 코드를 이용하여 하위 계층 복호화기로부터 출력된 비트를 복호화하는 단계를 포함하는 것을 특징으로 하는 복호화 방법을 제공한다.According to another aspect of the present invention, there is provided a method of decoding data encoded with source information, the method comprising: a lower layer decoding step of decoding data using a lower layer code by a lower layer decoder; A cyclic redundancy check step of performing a cyclic redundancy check on each bit of data decoded by a lower layer decoder; A reliability evaluation step of evaluating a reliability of a bit for which the lower layer decoder has not passed the cyclic redundancy check; A bit output step of outputting a bit whose reliability is equal to or higher than a predetermined reliability threshold value and a bit that has passed a cyclic redundancy check among the bits for which the lower layer decoder has not passed the cyclic redundancy check; And decoding the bits output from the lower layer decoder using an upper layer code by an upper layer decoder.
또한, 본 발명의 또 다른 목적에 의하면, 데이터를 송수신하는 시스템에 있어서, 상위 계층 코드를 이용하여 소스 정보를 부호화하여 비트를 출력하는 상위 계층 부호화기와 하위 계층 코드를 이용하여 상위 계층 부호화기로부터 출력되는 비트를 부호화하여 부호화 데이터를 생성하는 하위 계층 부호화기를 포함하되, 부호화 데이터를 송신하는 송신기; 및 부호화 데이터를 수신하되, 하위 계층 코드를 이용하여 수신된 부호화 데이터를 복호화하고 복호화된 부호화 데이터의 각 비트에 대해 순환 잉여 검사를 수행하여 순환 잉여 검사에 통과하지 못한 비트 중 신뢰도 가 기 설정된 신뢰도 문턱값 이상인 비트와 순환 잉여 검사에 통과한 비트를 출력하는 하위 계층 복호화기와 상위 계층 코드를 이용하여 하위 계층 복호화기로부터 출력되는 비트를 복호화하여 소스 정보를 복원하는 상위 계층 복호화기를 포함하는 수신기를 포함하는 것을 특징으로 하는 데이터 송수신 시스템을 제공한다.According to another aspect of the present invention, there is provided a system for transmitting and receiving data, comprising: an upper layer encoder for encoding source information using upper layer codes and outputting bits; A transmitter for transmitting encoded data, the encoder comprising: a transmitter for transmitting encoded data; And decodes the received coded data using a lower layer code and performs a cyclic redundancy check on each bit of the decoded coded data to determine whether reliability among the bits that have not passed the cyclic redundancy check exceeds a predetermined reliability threshold Layer decoders for outputting bits having a value equal to or greater than a predetermined value and bits passed through a cyclic redundancy check, and an upper layer decoder for decoding the bits output from the lower layer decoder using an upper layer code to recover source information And a data transmission / reception system.
이상에서 설명한 바와 같이 본 발명에 의하면, 주어진 채널 환경에서 데이터를 더욱 적은 에러율을 송수신할 수 있다. 또한, 같은 목표 에러율을 달성하기 위해 필요한 총 수신된 데이터의 비트 수를 상당히 줄일 수 있어, 같은 비트 수의 데이터를 송수신하는 데 소요되는 줄일 수 있다. 또한, 더욱 적은 정보를 처리해도 되기 때문에 소비 전력을 감소시킬 수 있다.As described above, according to the present invention, it is possible to transmit and receive data with a smaller error rate in a given channel environment. In addition, the number of bits of the total received data required to achieve the same target error rate can be considerably reduced, and it is possible to reduce the transmission and reception of data of the same bit number. In addition, since less information can be processed, the power consumption can be reduced.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. It should be noted that, in adding reference numerals to the constituent elements of the drawings, the same constituent elements are denoted by the same reference numerals even though they are shown in different drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순 서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In describing the components of the present invention, terms such as first, second, A, B, (a), and (b) may be used. These terms are intended to distinguish the components from other components, and the term does not limit the nature, order or order of the components. When a component is described as being "connected", "coupled", or "connected" to another component, the component may be directly connected or connected to the other component, Quot; may be "connected," "coupled," or "connected. &Quot;
도 1은 상위 계층의 FEC와 물리 계층의 FEC를 나타낸 예시도이다.1 is an exemplary view showing an FEC of an upper layer and an FEC of a physical layer.
도 1에서는 상위 계층(High Layer)과 물리 계층(Physical Layer) 간의 코드의 연동을 보여준다. 도 1을 참조하면, 소스 정보(Source Information), 즉 전송하고자 하는 m 비트의 정보는 몇 개의 열과 행으로 나누어진 배열(도 1에서 A 블록으로 표시된 배열)에 배치된다. 예를 들어, 5,000 비트의 정보가 있다면, 이것이 50 비트 × 100 비트의 행렬로 재배치된다, 여기서, 100 비트는 각 행에 있는 비트의 수이다. 각 행에 있는 100 비트의 정보는 레이트리스 코드(Rateless Code)에 의하여 부호화(Encoding)되어 임의의 개수를 가지는 패리티 정보(Parity Information)가 생성된다. 도 1에서 B 블록에 나타낸 각 행의 비트열이 패리티 정보이다.FIG. 1 shows interworking of codes between an upper layer and a physical layer. Referring to FIG. 1, source information, that is, information of m bits to be transmitted is arranged in an array (an array denoted by A block in FIG. 1) divided into several columns and rows. For example, if there is 5,000 bits of information, it is relocated to a matrix of 50 bits by 100 bits, where 100 bits is the number of bits in each row. The information of 100 bits in each row is encoded by a rateless code to generate parity information having an arbitrary number. In Fig. 1, the bit stream of each row shown in the B block is parity information.
이때, B 블록의 각 행에 들어갈 수 있는 패리티 비트의 수는 미리 정해져 있지 않다. 채널 환경이 나쁘다면 더욱 많은 패리티 정보가 생성될 수 있고, 채널 환경이 좋다면 적은 수의 패리티(Parity) 정보만으로도 원래의 정보를 복원할 수 있다. 이와 같이, 미리 정해지지 않은 수의 패리티 비트를 생성하는 코드를 레이트리스 코드라 한다. 이때, 레이트리스 코드는 각 행에 따로 적용된다.At this time, the number of parity bits that can enter each row of the B block is not predetermined. If the channel environment is bad, more parity information can be generated, and if the channel environment is good, the original information can be restored with only a small number of parity information. The code for generating a predetermined number of parity bits in this way is called a rateless code. At this time, the rateless code is applied to each row separately.
A 블록에 나타낸 원래의 소스 정보의 각 행에 레이트리스 코드를 적용하여 생성된 패리티 정보는 물리 계층의 FEC에 의하여 다시 부호화된다. 즉, B 블록에 나타낸 각 열에 있는 비트에 물리 계층 FEC가 적용되어 패리티 부호를 생성한다. 이렇게 생성된 패리티 부호는 도 1에서 C 블록으로 나타내었다. 물리 계층 FEC로는 터보 코드(Turbo Code) 또는 저밀도 패리티 체크 코드(LDPC Code: Low-Density Parity-Check Code) 등이 사용된다. 이렇게 물리 계층 FEC가 각 열 별로 적용된 후 C 블록에 있는 각 열의 비트가 정해진 시간에 전송된다. 이때, C 블록에 있는 패리티 비트만 전송되는 경우는 비체계적 코드(Non-Systematic Code)라 불리고, B 블록에 있던 정보와 C 블록에 있는 정보가 함께 전송되는 경우는 체계적 코드(Systematic Code)라 불린다. 많은 경우에 체계적 코드가 사용된다. 전송되는 단위는 C 또는 B와 C 블록의 열이다. 즉, 슬롯마다 한 열에 있는 비트들이 전송된다.The parity information generated by applying the rateless code to each row of the original source information shown in the A block is encoded again by the FEC of the physical layer. That is, the physical layer FEC is applied to bits in each column shown in the B block to generate a parity code. The generated parity code is represented by C block in FIG. Turbo code or LDPC code (Low-Density Parity-Check Code) is used as the physical layer FEC. After the physical layer FEC is applied to each column, bits of each column in the C block are transmitted at a predetermined time. In this case, when only the parity bit in the C block is transmitted, it is called a non-systematic code, and when the information in the B block and the information in the C block are transmitted together, it is called a systematic code . Systematic code is used in many cases. The unit to be transmitted is a column of C or B and C blocks. That is, the bits in one column are transmitted per slot.
수신기에서는 송신된 데이터를 복호화한다. 즉, 물리 계층 복호화기(Physical Layer DeCoder)가 C 또는 B와 C 블록의 한 열을 수신하면, 복호화를 시작한다. 이때, 송신된 데이터에 노이즈, 간섭, 페이딩(Fading) 등의 여러 가지 이유로 변형이 발생하여, 수신된 데이터는 송신된 데이터와 같지 않게 된다. 이와 같이 송신된 데이터로부터 원래의 소스 정보를 복원하는 것(즉, B 블록의 비트들을 복원하는 것)을 복호화라 한다. 물리 계층 복호화기에 의해 복호화된 정보는 레이트리스 코드 복호화기(Rateless Code DeCoder)로 전달된다. 이때, 통상적으로 물리 계층 복호화기에서 복호화에 실패 한 경우, 그 열에 있는 비트는 전부 복호화에 실패한 것으로 간주하여 레이트리스 코드 복호화기에 전달되지 않는다. 레이트리스 코드 복호화기는 물리 계층 복호화기에서 복호화에 성공한 비트들만을 전달받고, 이것을 이용하여 원래의 소스 정보를 복원한다. 레이트리스 코드 복호화기는 A와 B 블록에서 각 행 별로 따로 진행된다.The receiver decodes the transmitted data. That is, when a physical layer decoder receives a row of C or B and C blocks, it starts decoding. At this time, the transmitted data is deformed due to various reasons such as noise, interference, fading, etc., and the received data is not the same as the transmitted data. Recovering the original source information from the transmitted data (i.e., restoring the bits of the B block) is called decryption. The information decoded by the physical layer decoder is transferred to a Rateless Code Decoder. At this time, when decryption is normally unsuccessful in the physical layer decoder, all bits in the column are regarded as unsuccessful in decryption and are not transmitted to the rateless code decoder. The rateless code decoder receives only decoded bits in the physical layer decoder, and uses the decoded bits to recover original source information. The rateless code decoder is performed separately for each row in the A and B blocks.
본 발명의 일 실시예에서는 물리 계층 복호화기에서 복호화가 완벽하게 되지 않은 경우에도 일부의 정보를 활용할 수 있게 한다. 물리 계층 복호화기에서 복호화가 완벽하게 되지 않는 경우, 어떤 비트는 에러가 없고 어떤 비트는 에러가 있게 된다. 이때, 어떤 비트들이 에러가 없다는 것을 알게 되면, 이것을 레이트리스 코드 복호화기에서 복호화에 이용할 수 있다. 이렇게 되면, 레이트리스 코드 복호화기에서는 더 많은 비트에 대한 정보를 얻게 되어 더 이른 시간에 복호화할 수 있다. 이때, 어떤 비트들이 에러가 없고 어떤 비트들이 에러가 있을 가능성이 있는가를 물리 계층 복호화기에서 구별하는 것이 중요해진다. 물리 계층 복호화기에서 어떤 비트들이 에러가 있을 가능성이 있는가를 완벽하게 구별하는 것은 불가능하지만, 매우 정확하게 구별하는 것은 가능하다. 이를 위해, 제안하는 기술에서는 물리 계층 복호화기에서 복호화를 수행할 때 생성되는 신뢰도 정보를 이용한다.In an embodiment of the present invention, some information can be utilized even when the physical layer decoder does not completely decode the information. If decoding in the physical layer decoder is not perfect, some bits are error free and some bits are error free. At this time, if some bits are found to be error free, they can be used for decoding in a rateless code decoder. In this way, the rateless code decoder obtains information on more bits, and can decode at an earlier time. At this time, it becomes important to distinguish in the physical layer decoder whether certain bits are error-free and which bits are likely to be erroneous. Although it is impossible to completely distinguish which bits are likely to be erroneous in the physical layer decoder, it is possible to distinguish very precisely. To this end, the proposed technique uses reliability information generated when a physical layer decoder performs decoding.
물리 계층 복호화기에서 사용하는 물리 계층 코드로는 주로 터보 코드가 사용된다. 터보 코드는 통상적으로 2개의 콘볼루션 코드(Convolutional Code)와 인터리버(Interleaver)로 구성된다.A turbo code is mainly used as a physical layer code used in a physical layer decoder. A turbo code typically consists of two convolutional codes and an interleaver.
도 2는 터보 코드를 나타낸 예시도이다.2 is an exemplary view showing a turbo code.
u는 송신하고자 하는 k비트의 입력 정보이다. G0와 G1은 레이트(Rate)-1의 콘볼루션 코드이다. 즉, 각 비트가 입력될 때 G0는 현재 입력된 비트인 현재 입력 비트와 과거에 입력된 모든 과거 입력 비트의 함수로서, 현재 출력되는 비트인 현 재 출력 비트를 만들어 낸다. G1도 마찬가지의 역할을 수행한다. G0와 G1 사이에는 랜덤한 인터리버 p가 존재한다. 인터리버 p는 k비트의 입력 정보를 랜덤하게 치환(Permutation)하여 k비트의 출력을 생성한다. 이와 같이, 출력된 k비트의 정보가 G1의 입력이 된다.and u is k-bit input information to be transmitted. G 0 and G 1 are convolutional codes with a rate of -1. That is, when each bit is input, G 0 is a function of the current input bit, which is the current input bit, and all past input bits that were input in the past, to produce the current output bit, which is the current output bit. G 1 also plays a similar role. There is a random interleaver p between G 0 and G 1 . The interleaver p randomly permits k bits of input information to generate k bits of output. Thus, the outputted information of k bits becomes the input of G 1 .
이 과정이 끝나면 k비트의 원래 정보 u와 k비트의 G0의 출력 v(0)과 k비트의 G1의 출력 v(1)의 총 3k비트가 출력된다. 이것이 채널을 통과하여 수신기에 도착하면, 수신기는 3k 비트에 노이즈가 더해진 데이터를 수신한다. 이와 같이, 노이즈가 더해져도 그 양이 매우 크지 않다면 원래의 k비트보다 많은 3k비트가 수신되기 때문에, 2k비트의 부가적인 정보(패리티 정보)를 이용하여 원래의 k비트의 정보를 복원할 수 있다. 이때의 코딩 레이트, 즉 송신하고자 하는 정보의 비트 수를 송신하는 비트 수로 나눈 것은 1/3이 된다. 송신하고자 하는 데이터의 비트수를 송신하는 비트 수로 나눈 값인 1/3은 펑처링(Puncturing)이라는 과정을 수행함으로써 1/2로 만들어질 수 있다. 즉, v(0)와 v(1)에서 각 한 비트씩 번갈아 가면서 송신하지 않으면, 전체적으로 송신하는 비트 수는 2k 개가 되며 코딩 레이트를 1/2로 만들 수 있다.Once this is done a total of 3k bits of the output k of the original information bits u k and a bit of the G 0 v (0) and the output of G 1 k bits of v (1) is output. When it arrives at the receiver through the channel, the receiver receives 3k bits of noise-added data. As described above, if the amount of added noise is not very large, more than 3 k bits of the original k bits are received, so that the original k bits of information can be restored by using additional information (parity information) of 2 k bits . The coding rate at this time, that is, the number of bits of the information to be transmitted divided by the number of bits to be transmitted is 1/3. A
도 3은 터보 코드를 복호화하는 과정을 나타낸 예시도이다.3 is an exemplary diagram illustrating a process of decoding a turbo code.
도 3에서, Lc는 채널에 의존하는 임의의 상수이고, y는 채널로부터 수신한 벡터이다. 3k비트가 채널로 송신될 때 각 비트가 +1 또는 -1로 매핑(Mapping)된다고 가정하면, y=x+z가 되는데, 이때 x는 3k 비트의 벡터이고, z는 3k 개의 노이즈 벡터이다.In Fig. 3, Lc is a constant depending on the channel, and y is a vector received from the channel. Assuming that each bit is mapped to +1 or -1 when 3k bits are transmitted on the channel, then y = x + z, where x is a vector of 3k bits and z is a 3k noise vector.
도 3에서는 두 개의 콘볼루션 코드 G0와 G1에 해당되는 복호화기 블록을 보여주고 있다. 왼쪽에 있는 블록에서는 G0에 해당되는 콘볼루션 코드 복호화가 수행된다. 이때. L(0)는 k 개 비트의 원래 정보에 대한 로그 우도율(LLR: Log Likelihood Ratio, 이하 'LLR'이라 칭함), 즉 log[p(xi=1)/p(xi=-1)]가 첫 번째 복호화기로부터 계산된다. 여기서, xi는 x의 i번째 비트이다. 마찬가지로, L(1)은 두 번째 복호화기로부터 계산된 원래 정보에 대한 LLR이다. L(0) 벡터는 채널로부터 수신한 정보인 Lcy 값이 빼지고 다른 복호화기에서 온 외부(Extrinsic) 정보 Le(1)이 역 치환(Inverse Permutation) (π-1)된 것이 빼져서 생성된다. 이것은 첫 번째 복호화기가 두 번째 복호화기로 전달하는 외부 정보(Extrinsic Information)이다. 외부 정보는 다시 치환되어 두 번째 복호화기로 입력된다.FIG. 3 shows a decoder block corresponding to two convolutional codes G 0 and G 1 . In the block on the left, convolutional code decoding corresponding to G 0 is performed. At this time. L (0) is the log likelihood ratio (LLR) for the original information of k bits, that is, log [p (xi = 1) / p (xi = -1)] Is calculated from the first decoder. Here, xi is the i-th bit of x. Similarly, L (1) is the LLR for the original information calculated from the second decoder. The L (0) vector is generated by subtracting the Lcy value received from the channel and subtracting the extrinsic information Le (1) from the other decoder from the inverse permutation (pi -1 ). This is the extrinsic information that the first decoder delivers to the second decoder. The extrinsic information is replaced and input to the second decoder.
두 번째 복호화기에서는 첫 번째 복호화기와 유사한 방식으로 복호화를 수행한다. 이와 같이, 복호화가 여러 번의 루프(Loop)를 돌면서 반복(Iteration)되면, 점점 더 정확하게 원래의 정보를 복원할 수 있다. 통상적으로 10 회 정도의 반복이 수행된다. 이때, 10 번의 반복이 끝나면, L(0) 값을 바탕으로 원래의 데이터를 복원할 수 있다. 즉, L(0)의 i 번째 원소가 양수이면, xi 가 +1로 복호화되고, 음수이면 -1로 복호화된다.In the second decoder, decoding is performed in a manner similar to the first decoder. As described above, when the decoding is repeated while repeating several loops, original information can be restored more and more accurately. Typically, about ten iterations are performed. At this time, after 10 iterations, the original data can be restored based on the value of L (0). That is, if the i-th element of L (0) is positive, xi is decoded to +1, and if it is negative, it is decoded to -1.
하지만, 이와 같이 복호화된 비트가 원래의 비트와 같다는 보장은 없다. 복호화가 성공적인가를 정확하게 판단하기 위해서는 후술하는 과정에서 도 5를 통해 설명하는 바와 같이, 통상적인 순환 잉여 검사(CRC: Cyclic Redundancy Check, 이하 'CRC'라 칭함)가 사용된다. 즉, 32-비트 CRC가 사용된다고 가정하면, 각 행의 k 비트 중에서 (k-32) 비트는 송신하고자 하는 비트(즉, 랩터 코드(Raptor Code)에서 발생된 패리티 비트)를 포함하고 있고, 나머지 32 비트는 이 (k-32) 비트에 대한 CRC 비트를 포함하고 있다. 도 5에 도시한 바와 같이, k 비트에 대하여 물리 계층 코드가 패리티 비트(레이트가 1/2이면 패리티 비트의 수도 k 비트임)를 생성한다.However, there is no guarantee that the decoded bits are the same as the original bits. In order to accurately determine whether decryption is successful, a conventional CRC (Cyclic Redundancy Check) is used as described with reference to FIG. 5 in the following process. That is, assuming that a 32-bit CRC is used, (k-32) bits among the k bits of each row include bits to be transmitted (i.e., parity bits generated in the Raptor Code) The 32 bits contain the CRC bits for this (k-32) bits. As shown in Fig. 5, the physical layer code generates parity bits (k bits of the number of parity bits if the rate is 1/2) with respect to k bits.
도 4는 레이트리스 코드를 나타낸 예시도이다.4 is an exemplary view showing a rateless code.
도 4에서, 정보 비트(Information Bits)는 도 1에서 도시한 A 블록에 해당되는 비트이고, 패리티 비트(Parity Bits)는 도 1에서 도시한 B 블록에 해당되는 비트들이다. 도 4에 나타낸 코드는 A 블록과 B 블록에 있는 하나의 레이트리스 코드이다. 레이트리스 코드는 m 개의 입력 비트를 사용하여 임의의 개수의 패리티 비트를 만들어 내기에 레이트리스 코드라 불린다. 도 4에서, 원형 노드를 변수 노드라고 하고 사각형 노드를 패리티 체크 노드라고 한다. 패리티 체크 노드는 여러 변수의 패리티의 합을 계산한다.In FIG. 4, the information bits correspond to the A block shown in FIG. 1, and the parity bits correspond to the B block shown in FIG. The code shown in FIG. 4 is one rateless code in the A block and the B block. A rateless code is called a rateless code for generating an arbitrary number of parity bits using m input bits. 4, a circular node is referred to as a variable node, and a rectangular node is referred to as a parity check node. The parity check node computes the sum of the parities of several variables.
도 5는 본 발명의 일 실시예에 따라 부분적으로 복호화된 정보를 활용하는 과정을 나타낸 예시도이다.FIG. 5 is a diagram illustrating a process of using partially decoded information according to an exemplary embodiment of the present invention. Referring to FIG.
물리 계층 복호화기에서 복호화가 성공적으로 수행되어 CRC를 통과한 경우, 모든 비트는 100% 신뢰도로 복호화된 것으로 간주한다. 잘못된 비트가 CRC를 통과할 확률은 약 10-10으로 매우 작기 때문에, 우려할 수준은 아니다. 하지만, 잘못된 비트가 CRC를 통과하는 경우, 상위 계층에서 다양한 방법으로 원래 정보를 복원하거나 정보의 손실을 감추는 콘실링(Concealing) 방식이 사용될 수 있다. CRC를 통과하지 않은 비트는 통상적으로 버려지게 되고, 상위 계층의 레이트리스 복호화기에 전달되지 않는다.If the decoding is successfully performed in the physical layer decoder and passes the CRC, all bits are considered to be decoded with 100% reliability. The probability that a bad bit will pass a CRC is very small, about 10 -10 , so it is not a concern. However, if an erroneous bit passes the CRC, a concealing method may be used in which the upper layer restores the original information in various ways or hides the loss of information. Bits that have not passed the CRC are typically discarded and are not delivered to the higher layer hierarchical rate decoder.
본 발명의 일 실시예에서는 통상적으로 버려지는 비트들 중에 신뢰도가 높은 비트에 대하여는 상위 계층에서 하드 디시전(Hard Decision)을 수행함으로써 비트 값을 결정하여 전달한다. 이때, 잘못된 비트값을 전달하면, 그 뒤를 따르는 복호화 과정에 모두 영향을 줄 수 있기 때문에, 매우 신뢰도가 높은 비트들만 전달한다. 이와 같이, 추가적인 비트들에 대하여 그 값들을 전달받게 되면, 상위 계층에서는 더욱 많은 비트를 복호화할 수 있고, 추가로 디코딩된 비트들에 의하여 B 블록에서 신뢰도가 낮았던 몇 개의 비트들에 대하여 높은 신뢰도로 값들을 결정할 수 있다. 이와 같이, B 블록에서 몇 개의 비트가 상위 계층 복호화기에 의하여 신뢰도가 높아지게 되면, 물리 계층 복호화기는 이를 이용하여 다시 복호화를 수행할 수 있게 되고, 이것으로부터 물리 계층 디코더가 높은 신뢰도로 복호화할 수 있는 비트 수가 더 늘어나게 된다. 이와 같이, 레이트리스 코드 복호화기와 물리 계층 복호화기 간에 부가적인 정보를 주고 받는 것을 반복적으로 수행함으로써, 결과적으로 더 많은 비트들을 복원할 수 있게 된다.In one embodiment of the present invention, a bit having a high reliability among the discarded bits is determined by performing hard decision in an upper layer, and the bit value is determined and transmitted. At this time, if a wrong bit value is transmitted, only bits with high reliability are transmitted because it may affect the decoding process following the wrong bit value. As described above, when the values are received for the additional bits, more bits can be decoded in the upper layer, and a plurality of bits, which are less reliable in the B block due to the decoded bits, Values can be determined. As described above, when the reliability of a certain number of bits in the B block is increased by the upper layer decoder, the physical layer decoder can perform decoding again, and from this, a bit that can be decoded with high reliability by the physical layer decoder The number will increase more. As described above, by repeatedly exchanging additional information between the rateless code decoder and the physical layer decoder, more bits can be restored as a result.
이때. 한가지 추가로 할 수 있는 일은 물리 계층 복호화기에서 복호화에 성공한 것으로 간주하는 비트의 신뢰도 문턱값을 반복 회수가 늘어갈수록 점차 낮출 수 있다는 것이다. 여기서, 신뢰도 문턱값을 복호화의 반복 회수가 늘어감에 따라 어떻게 감소하는지에 대해서는 테이블 참조 방식으로 구현할 수 있다.At this time. One additional thing that can be done is that the reliability threshold of the bit that is considered to be decoded successfully by the physical layer decoder can be gradually lowered as the number of iterations increases. Here, how the reliability threshold value is reduced as the number of repetition of decoding is increased can be implemented by a table reference method.
도 6은 본 발명의 일 실시예에 따른 동작 플로우를 나타낸 예시도이다.6 is an exemplary diagram illustrating an operational flow according to an embodiment of the present invention.
각 비트의 신뢰도는 해당 비트의 로그 우도율(LLR: Log Likelihood Ration)의 절대값으로 나타낼 수 있다. 즉, L(0)의 i 번째 로그 우도율의 절대값은 xi의 신뢰도를 나타낸다. 이때, 터보 복호화는 통상의 Log-MAP이나 Max-Log-MAP 방식으로 인터레이티브(Iterative)하게 진행되며, 레이트리스 코드 복호화는 말소(Erasure)만을 가정하기 때문에, 훨씬 간단한 메시지 패싱 이터레이티브 복호화(Message Passing Iterative Decoding)로 구현할 수 있다, 즉 0, 1, 또는 말소의 세 가지 중의 한 값이 메시지로 패리티 체크 노드와 변수 노드 사이에서 전달된다.The reliability of each bit can be expressed by the absolute value of the log likelihood ratio (LLR) of the corresponding bit. That is, the absolute value of the i-th log likelihood ratio of L (0) represents the reliability of xi. At this time, the turbo decoding is performed intermittently in the usual Log-MAP or Max-Log-MAP method. Since the rateless code decoding assumes only erasure, the much simpler message passing- (Message Passing Iterative Decoding). That is, one of three values of 0, 1, or erasure is transmitted between the parity check node and the variable node as a message.
이상에서 도 1 내지 도 6을 통해 전술한 본 발명의 일 실시예는 후술하는 본 발명의 다른 실시예와 같이 일반화될 수 있다.The above embodiment of the present invention described above with reference to FIGS. 1 to 6 can be generalized as another embodiment of the present invention described below.
도 7은 본 발명의 다른 실시예에 따른 데이터 송수신 시스템을 간략하게 나타낸 블록 구성도이다.FIG. 7 is a block diagram of a data transmission / reception system according to another embodiment of the present invention.
본 발명의 다른 실시예에 따른 데이터 송수신 시스템(700)은 송신기(710)와 수신기(720)로 구성될 수 있다. 이러한 데이터 송수신 시스템(700)은 유무선 통신 시스템이 될 수 있으며, 유무선 통신 시스템은 HSDPA(High-Speed Downlink Packet Access) 시스템, CDMA2000 1x-EV-DO 시스템, CDMA2000 1x-EV-DV(Evolution in Data and Voice) 시스템, IEEE 802.16e 시스템, 3GPP MBMS(Multimedia Broadcast Multicast Service) 시스템 등과 같은 무선 통신 시스템 및 인터넷, 인트라넷과 같은 유선 통신 시스템이 될 수 있다.The data transmission /
송신기(710)는 유무선 통신 시스템에서 데이터를 송신하는 장치를 말한다. 수신기(720)는 유무선 통신 시스템에서 데이터를 수신하는 장치를 말한다. 예를 들어, 유무선 통신 시스템이 HSDPA 시스템으로 구현되는 경우, 송신기(710)는 Node-B 또는 무선망 제어기(RNC: Radio Network Controller) 등으로 구현될 수 있으며, 수신기(720)는 UE(User Equipment)와 같은 단말기 등으로 구현될 수 있다.The
또한, 송신기(710)는 상위 계층 코드를 이용하여 소스 정보를 부호화하여 비트를 출력하는 상위 계층 부호화기(712)와 하위 계층 코드를 이용하여 상위 계층 부호화기(712)로부터 출력되는 비트를 부호화하여 부호화 데이터를 생성하는 하위 계층 부호화기(714)를 포함하며, 부호화 데이터를 수신기(720)로 송신한다.The
또한, 수신기(720)는 부호화 데이터를 수신하며, 하위 계층 코드를 이용하여 송신기(710)로부터 수신된 부호화 데이터를 복호화하고 복호화된 부호화 데이터의 각 비트에 대해 CRC를 수행하여 CRC에 통과하지 못한 비트 중 신뢰도가 기 설정된 신뢰도 문턱값(Threshold) 이상인 비트와 CRC에 통과한 비트를 출력하는 하위 계층 복호화기(722)와 상위 계층 코드를 이용하여 하위 계층 복호화기(722)로부터 출력되는 비트를 복호화하여 원래의 소스 정보를 복원하는 상위 계층 복호화기(724)를 포함한다.The
여기서, 유무선 통신 시스템이 3GPP MBMS 시스템으로 구현되는 경우, 송신기(710)에 의해 부호화되고 수신기(720)에 의해 복원되는 소스 정보는 방송 데이터일 수 있으며, 송신기(710)와 수신기(720)는 무선 채널을 통해 부호화 데이터를 송수신할 수 있다.Here, when the wired / wireless communication system is implemented as a 3GPP MBMS system, the source information encoded by the
또한, 수신기(720)는 송신기(710)와 통신을 수행하기 위한 통신 장치를 제외하면, 소스 정보가 부호화된 데이터를 복호화하는 복호화 장치로서 구현될 수도 있다. 이 경우, 수신기(720)는 하위 계층 복호화기(722)와 상위 계층 복호화기(724)를 포함하여 구성될 수 있으며, 하위 계층 복호화기(722)는 하위 계층 코드를 이용하여 부호화된 데이터를 복호화하되, 복호화된 데이터의 각 비트의 신뢰도가 기 설정된 신뢰도 문턱값 이상인 비트를 출력할 수 있으며, 상위 계층 복호화기(724)는 상위 계층 코드를 이용하여 하위 계층 복호화기(722)로부터 출력된 비트를 복호화하여 원래의 소스 정보를 복원할 수 있다.In addition, the
여기서, 하위 계층 복호화기(722)는 물리 계층 복호화기일 수 있으며, 상위 계층 복호화기(724)는 레이트리스 코드 복호화기일 수 있다. 또한, 하위 계층 코드는 터보 코드일 수 있으며, 상위 계층 코드는 레이트리스 코드일 수 있다.Here, the
또한, 하위 계층 복호화기(722)는 하위 계층 코드를 이용하여 부호화된 데이터를 복호화하여 생성되는 각 비트에 대해 CRC를 수행하여 CRC에 통과한 비트를 신뢰도가 기 설정된 임계값 이상인 비트인 것으로 판단할 수 있으며, 하위 계층 코드를 이용하여 부호화된 데이터를 복호화하여 생성되는 각 비트에 대해 CRC를 수행하고 CRC에 통과하지 못한 비트의 신뢰도를 평가하여, CRC에 통과하지 못한 비트의 신뢰도가 기 설정된 신뢰도 문턱값 이상인 비트를 출력할 수 있다.Also, the
또한, 하위 계층 복호화기(722)는 CRC에 통과하지 못한 비트 중 신뢰도가 기 설정된 신뢰도 문턱값 이상인 비트에 대해 하드 디시전을 수행하여 비트값을 결정하고 출력할 수 있다. 여기서, 신뢰도는 복호화된 데이터의 각 비트의 로그 우도율 의 절대값일 수 있다.In addition, the
도 8은 본 발명의 다른 실시예에 따른 부호화 방법을 설명하기 위한 순서도이다.8 is a flowchart illustrating an encoding method according to another embodiment of the present invention.
하위 계층 복호화기(722)는 하위 계층 코드를 이용하여 데이터를 복호화하고(S810), 복호화된 데이터의 각 비트에 대해 CRC를 수행한다(S820). 여기서, 복호화된 데이터의 각 비트에 대해 CRC를 수행하는 것이 각 비트에 대한 신뢰도를 평가하는 것일 수 있다. 이는, 하위 계층 복호화기(722)에서 복호화된 데이터의 각 비트 중 CRC를 통과한 비트는 100%의 신뢰도를 갖는 것으로 간주할 수 있기 때문이다. 실제로, 복호화된 데이터의 임의의 비트가 올바르지 않게 복호화되었는데, CRC를 통과할 확률은 약 10-10으로 매우 작기 때문에, 우려할 만한 수준은 아니다. 따라서, 하위 계층 복호화기(722)는 CRC를 통과한 비트에 대해서는 신뢰도를 평가하지 않고서도 신뢰도가 기 설정된 신뢰도 문턱값 이상인 것으로 판단할 수 있다.The
한편, 통상적인 복호화에서는 복호화된 데이터의 각 비트에 대해 CRC를 수행한 결과 CRC를 통과하지 못한 비트는 상위 계층 복호화기(724)로 출력되지 못하고 버려졌다. 해당 비트가 올바르게 복호화되었는지 여부를 보장할 수 없기 때문이다. 하지만, 본 발명의 일 실시예에서는 CRC를 통과하지 못한 비트의 신뢰도를 평가하여 일정 이상의 신뢰도를 갖는 비트에 대해서는 상위 계층 복호화기(724)로 출력하여 더욱 정확하게 복호화할 수 있도록 한다.On the other hand, in the normal decoding, the CRC is performed on each bit of the decoded data. As a result, the bit that has not passed the CRC is discarded without being outputted to the
이를 위해, 하위 계층 복호화기(722)는 CRC를 통과하지 못한 비트의 신뢰도 를 평가하며(S830), CRC를 통과하지 못한 비트 중에서 신뢰도가 기 설정된 신뢰도 문턱값 이상인 비트와 CRC를 통과한 비트를 출력한다(S840). 상위 계층 복호화기(724)는 상위 계층 코드를 이용하여 하위 계층 복호화기(722)로부터 출력되는 비트를 복호화한다(S850).For this, the
이와 같이, 상위 계층 복호화기(724)로부터 출력되는 비트가 소스 정보로서 복원될 수도 있지만, 후술하는 바와 같이, 하위 계층 복호화기(722)와 상위 계층 복호화기(724) 간의 연동을 통해 복호화 과정을 반복할 수도 있다. 즉, 하위 계층 복호화기(722)는 상위 계층 복호화기(724)로부터 출력되는 복호화된 비트에 대해 단계 S810 내지 단계 S850을 다시 수행하고, 상위 계층 복호화기(724)는 다시 수행되어 하위 계층 복호화기(722)로부터 출력되는 비트를 상위 계층 코드를 이용하여 다시 복호화할 수 있다. 또한, 하위 계층 복호화기(722)와 상이 계층 복호화기(724)는 이 과정을 계속해서 반복할 수도 있지만, 기 설정된 최대 반복 회수만큼만 반복할 수 있다. 즉, 하위 계층 복호화기(722)가 단계 S810 내지 단계 S850을 반복하여 수행할 때마다 반복하여 수행한 회수가 기 설정된 최대 반복 회수를 초과하는지 여부를 판단하여 반복 수행 여부를 결정할 수 있다.In this way, the bits output from the
이와 같이, 하위 계층 복호화기(722)로부터 전달되는 비트들(CRC를 통과한 비트들보다 상대적으로 낮은 신뢰도의 비트들)을 상위 계층 복호화기(724)가 복호화하여 비트의 신뢰도를 높인 후, 이를 다시 하위 계층 복호화기(722)에서 복호화하고 다시 상위 계층 복호화기(724)에서 다시 복호화는 과정을 반복함으로써, 반복하는 회수가 증가할수록 하위 계층 복호화기(722)가 높은 신뢰도로 복호화할 수 있 는 비트의 수가 증가하여 궁극적으로는 복호화의 정확도가 더욱 향상될 수 있다.The
또한, 하위 계층 복호화기(722)는 단계 S810 내지 단계 S850을 반복하여 수행할 때마다, 기 설정된 신뢰도 문턱값을 기 설정된 값만큼 감소시킬 수 있다. 즉, 반복하는 회수가 증가할수록 비트의 신뢰도가 증가하기 때문에, 하위 계층 복호화기(722)는 기 설정된 신뢰도 문턱값에서 소정의 값만큼을 감소시켜 설정할 수 있다.Further, the
이상에서 설명한 본 발명의 일 실시예에 따르면, 주어진 채널 환경에서 더욱 적은 에러율을 달성할 수 있다. 또한, 같은 목표 에러율을 달성하기 위해 필요한 총 수신된 데이터 블록의 수를 상당히 줄일 수 있다. 더욱 적은 에러율은 데이터의 손실이 적음을 의미하고, 총 수신된 데이터 블록의 수를 줄일 수 있다는 것은 같은 데이터를 받는데 걸리는 시간을 줄일 수 있음을 의미하며, 더욱 적은 정보를 처리해도 되기 때문에 소비 전력의 감소로도 이어진다.According to the embodiment of the present invention described above, a lower error rate can be achieved in a given channel environment. In addition, the number of total received data blocks needed to achieve the same target error rate can be significantly reduced. Less error rate means less data loss, and reducing the total number of received data blocks means less time to receive the same data, and because less information can be processed, .
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼 트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 캐리어 웨이브 매체 등이 포함될 수 있다.While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments. That is, within the scope of the present invention, all of the components may be selectively coupled to one or more of them. In addition, although all of the components may be implemented as one independent hardware, some or all of the components may be selectively combined to perform a part or all of the functions in one or a plurality of hardware. As shown in FIG. The codes and code segments constituting the computer program may be easily deduced by those skilled in the art. Such a computer program can be stored in a computer-readable storage medium, readable and executed by a computer, thereby realizing an embodiment of the present invention. As the storage medium of the computer program, a magnetic recording medium, an optical recording medium, a carrier wave medium, or the like may be included.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Furthermore, the terms "comprises", "comprising", or "having" described above mean that a component can be implanted unless otherwise specifically stated, But should be construed as including other elements. All terms, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs, unless otherwise defined. Commonly used terms, such as predefined terms, should be interpreted to be consistent with the contextual meanings of the related art, and are not to be construed as ideal or overly formal, unless expressly defined to the contrary.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석 되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present invention, and various changes and modifications may be made by those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.
이상에서 설명한 바와 같이 본 발명은 상하위 계층 간의 연동을 이용하여 데이터를 복호하고 복호화된 데이터의 오류를 정정하는 방법 및 장치와 그를 이용한 데이터 송수신 시스템에 관한 분야에 적용되어, 주어진 채널 환경에서 데이터를 더욱 적은 에러율을 송수신할 수 있으며, 같은 목표 에러율을 달성하기 위해 필요한 총 수신된 데이터의 비트 수를 상당히 줄일 수 있으므로, 같은 비트 수의 데이터를 송수신하는 데 소요되는 줄일 수 있는 효과를 발생하는 매우 유용한 발명이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, It is possible to transmit and receive a small error rate and considerably reduce the number of bits of the total received data required to achieve the same target error rate so that a very useful invention to be.
도 1은 상위 계층의 FEC와 물리 계층의 FEC를 나타낸 예시도,1 is an exemplary view showing an FEC of an upper layer and an FEC of a physical layer,
도 2는 터보 코드를 나타낸 예시도,Fig. 2 is an illustration showing a turbo code,
도 3은 터보 코드를 복호화하는 과정을 나타낸 예시도,3 is a diagram illustrating a process of decoding a turbo code,
도 4는 레이트리스 코드를 나타낸 예시도,4 is an illustration showing a rateless code,
도 5는 본 발명의 일 실시예에 따라 부분적으로 복호화된 정보를 활용하는 과정을 나타낸 예시도,5 is a diagram illustrating a process of utilizing partially decoded information according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 동작 플로우를 나타낸 예시도,6 is an exemplary diagram illustrating an operational flow according to an embodiment of the present invention;
도 7은 본 발명의 다른 실시예에 따른 데이터 송수신 시스템을 간략하게 나타낸 블록 구성도,FIG. 7 is a block diagram schematically showing a data transmission / reception system according to another embodiment of the present invention.
도 8은 본 발명의 다른 실시예에 따른 부호화 방법을 설명하기 위한 순서도이다.8 is a flowchart illustrating an encoding method according to another embodiment of the present invention.
< 도면의 주요 부분에 대한 부호의 설명 >Description of the Related Art
710: 송신기 712: 상위 계층 부호화기710: Transmitter 712: Upper layer coder
714: 하위 계층 부호화기 720: 수신기714: Lower layer encoder 720: Receiver
722: 하위 계층 복호화기 724: 상위 계층 복호화기722: Lower layer decoder 724: Upper layer decoder
Claims (14)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080119927A KR101531184B1 (en) | 2008-11-28 | 2008-11-28 | A decoding method and apparatus using interworking between upper and lower layers, and a data transmission / reception system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080119927A KR101531184B1 (en) | 2008-11-28 | 2008-11-28 | A decoding method and apparatus using interworking between upper and lower layers, and a data transmission / reception system using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100061051A KR20100061051A (en) | 2010-06-07 |
KR101531184B1 true KR101531184B1 (en) | 2015-06-24 |
Family
ID=42361894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080119927A Active KR101531184B1 (en) | 2008-11-28 | 2008-11-28 | A decoding method and apparatus using interworking between upper and lower layers, and a data transmission / reception system using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101531184B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080041605A (en) * | 2005-10-21 | 2008-05-13 | 삼성전자주식회사 | Digital broadcasting system and method |
KR20080100455A (en) * | 2006-02-21 | 2008-11-18 | 디지털 파운튼, 인크. | Multiple Field-Based Code Generators and Decoders in Communication Systems |
-
2008
- 2008-11-28 KR KR1020080119927A patent/KR101531184B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080041605A (en) * | 2005-10-21 | 2008-05-13 | 삼성전자주식회사 | Digital broadcasting system and method |
KR20080100455A (en) * | 2006-02-21 | 2008-11-18 | 디지털 파운튼, 인크. | Multiple Field-Based Code Generators and Decoders in Communication Systems |
Also Published As
Publication number | Publication date |
---|---|
KR20100061051A (en) | 2010-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107026709B (en) | Data packet coding processing method and device, base station and user equipment | |
US20060107176A1 (en) | Concatenated iterative and algebraic coding | |
US10200149B2 (en) | Parity frame | |
US8806288B2 (en) | Systems and methods for providing unequal error protection code design from probabilistically fixed composition codes | |
US11088780B2 (en) | Low complexity blind detection of code rate | |
Wang et al. | Free-ride feedback and superposition retransmission over LDPC coded links | |
Luyi et al. | Forward error correction | |
US8386877B2 (en) | Communication system, transmitter, error correcting code retransmitting method, and communication program | |
US10122496B2 (en) | Method for dynamic and selective FD-DSDF transmission of a digital signal for a MARC system with a full-duplex relay, and corresponding program product and relay device | |
KR101531502B1 (en) | Method of Error control | |
Yuan et al. | Introduction of forward error correction and its application | |
JP5248085B2 (en) | Data processing method, data processing apparatus, and program | |
JP2006094012A (en) | Encoding method, decoding processing method, and communication apparatus | |
KR101145673B1 (en) | The method of encoding using lt code with specific structure and the method of encoding using raptor code based thereof | |
JP4444755B2 (en) | Concatenated code system, concatenated code processing method, and decoding apparatus | |
KR101531184B1 (en) | A decoding method and apparatus using interworking between upper and lower layers, and a data transmission / reception system using the same | |
Kim et al. | Performance analysis of forward error correcting codes in IPTV | |
KR20150004489A (en) | Ldpc encoding, decoding method and device using the method | |
Logeshwaran et al. | Performance study on the suitability of Reed Solomon Codes in WiMAX | |
Chen | Analysis of forward error correcting codes | |
Di | The evaluation and application of forward error coding | |
Williamson | Reliability-output decoding and low-latency variable-length coding schemes for communication with feedback | |
Yao et al. | Turbo codes-based image transmission for channels with multiple types of distortion | |
CN113366872B (en) | LPWAN communication protocol design using parallel concatenated convolutional codes | |
Bhargava et al. | Coding theory and its applications in communication systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20081128 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20131029 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20081128 Comment text: Patent Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20141223 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20150616 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20150618 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20150618 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20190502 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20190502 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20200330 Start annual number: 6 End annual number: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20210401 Start annual number: 7 End annual number: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20240321 Start annual number: 10 End annual number: 10 |