Embodiments of the present technology presented herein generally relate to decoding and corresponding encoding. More particularly, the embodiments presented herein relate to methods, a transmitter and a receiver for decoding data from a message received from the transmitter, wherein the receiver uses a decoding matrix in the decoding.
Radio communication networks are widely deployed to provide various communication services such as telephony, video, data, messaging, broadcasts, and so on. Such communication networks generally support communications for multiple user equipments (UEs) by sharing available network resources. One example of such a network is the Universal Mobile Telecommunications System (UMTS), a third generation (3G) mobile phone technology standardized by the 3rd Generation Partnership Project (3GPP). UMTS includes a definition for a Radio Access Network (RAN), referred to as Universal Terrestrial Radio Access Network (UTRAN). The UMTS, which is the successor to Global System for Mobile Communications (GSM) technologies, supports various air interface standards, such as Wideband Code Division Multiple Access (WCDMA), Time Division-Code Division Multiple Access (TD-CDMA), and Time Division-Synchronous Code Division Multiple Access (TD-SCDMA). The UMTS also supports enhanced 3G data communications protocols, such as High Speed Packet Access (HSPA), which provides higher data transfer speeds and capacity to associated UMTS networks. As the demand for mobile broadband access continues to increase, research and development continue to advance the UMTS technologies not only to meet the growing demand for mobile broadband access, but to advance and enhance the user experience with wireless communications. For example, UMTS based on WCDMA has been deployed in many places around the world. To ensure that this system remains competitive in the future, 3GPP began a project to define the long-term evolution of UMTS cellular technology. The specifications related to this effort are formally known as Evolved UMTS Terrestrial Radio Access (EUTRA) and Evolved UMTS Terrestrial Radio Access Network (EUTRAN), but are more commonly referred to by the name Long Term Evolution (LTE).
Transmissions over communication channels are generally subject to errors, for example due to variations in the received signal quality. To some degree, such variations may be counteracted through link adaptation, which deals with how to set transmission parameters of a radio link to handle variations in radio link quality. However, receiver noise and unpredictable interference variations may not be counteracted by link adaptation. Therefore, virtually all wireless communication systems including those described hereinabove employ some form of Forward Error Correction (FEC). Another approach to handle transmission errors is to use Automatic Repeat Request (ARQ). Most modern radio communication networks employ a combination of FEC and ARQ, known as Hybrid ARQ (HARQ). Optionally, hybrid ARQ may also use soft combining. More detailed descriptions of advanced retransmission schemes may be found in literature, such as in chapters 6.3 and 6.4 of the reference book 4G LTE/LTE-Advanced for Mobile Broadband by Erik Dahlman, Stefan Parkvall and Johan Skold, Academic Press, 2011, ISBN:978-0-12-385489-6.
With the continuing development of radio communication networks, the radio communication networks are getting more and more automated. To this end, Machine Type Communication (MTC) (also known as machine-to-machine communication) has been introduced. One example scenario using MTC may be found in vehicle-to-vehicle communications where autonomous MTC devices of the vehicles communicate their state (e.g. position, velocity, etc.) in order to maintain a safe distance between each other to avoid collisions. This scenario and other future scenarios will typically demand a low communication delay over a communication channel. In turn, this will impose demands on the performance of the communication of messages between transmitters and receivers in terms of low latency.
It is in view of the above considerations and others that the various embodiments disclosed herein have been made. A general object of embodiments presented herein is therefore to reduce, and thus improve, the latency when a message is transmitted from a transmitter to a receiver.
According to one aspect, there is provided a decoding method performed by a receiver for decoding data from a message M received from a transmitter. The decoding method is preferably, but not necessarily, a fountain-code based decoding method. The receiver typically uses a decoding matrix C in the decoding. Furthermore, the above-mentioned message M is split into a pre-defined number n of sub-messages M1, . . . , Mn. The method comprises receiving data packets P1, . . . , Pn from the transmitter. The received data packets P1, . . . , Pn are formed by a linear combination of the sub-messages according to Pn=Cn1*M1+Cn2*M2+Cn3*M3+ . . . +Cnn*Mn. Pn is a n:th data packet, C is the decoding matrix with element Cij at position (i,j) and Mn is a n:th sub-message. The method further comprises decoding the received data packets P1, . . . , Pn according to Mn=Cnn̂(−1)*(Pn−C(N−1)*M(N−1)− . . . −C(1)*M(1)) as the data packets P1, . . . , Pn are received. Also, the decoding is performed sequentially with the arrival (i.e. reception) of the data packets.
Preferably, but not necessarily, the decoding of the received data packets P1, . . . , Pn is performed until a decoding of a received packet is unsuccessful. The method may then further comprise receiving all remaining data packets of the n data packets, and decoding said remaining data packets in response to that all remaining data packets have been received.
According to another aspect, there is provided a corresponding encoding method performed by a transmitter for encoding data of a message M to be transmitted to a receiver. The encoding method is preferably, but not necessarily, a fountain-code based encoding method. The method comprises splitting said message M into a pre-defined number n of sub-messages M1, . . . , Mn. Also, the method comprises forming data packets by means of a linear combination of said sub-messages according to Pn=Cn1*M1+Cn2*M2+Cn3*M3+ . . . +Cnn*Mn. Pn is a n:th data packet, C is an encoding matrix with element Cij at position (i,j) and Mn is a n:th sub-message. Moreover, the method comprises transmitting the formed data packets (P1, . . . , Pn) to the receiver.
According to yet another aspect, there is provided a receiver for decoding data from a message M receivable from a transmitter. The receiver may be suitable for fountain-code based decoding. The receiver is configured to use a decoding matrix C in the decoding. Furthermore, the message (M) is split into a pre-defined number (n) of sub-messages M1, . . . , Mn. The receiver comprises a receiving module configured to receive data packets P1, . . . , Pn from the transmitter. The received data packets are formed by a linear combination of said sub-messages according to Pn=Cn1*M1+Cn2*M2+Cn3*M3+ . . . +Cnn*Mn, where Pn is a n:th data packet, C is the decoding matrix with element Cij at position (i,j) and Mn is a n:th sub-message. Also, the receiver comprises a decoder configured to decode the received data packets P1, . . . , Pn according to Mn=Cnn̂(−1)*(Pn−C(N−1)*M(N−1)− . . . −C(1)*M(1)) as the data packets P1, . . . , Pn are received. Moreover, the decoder is configured to perform the decoding sequentially with the arrival of the data packets.
In an embodiment, the decoder is configured to perform the decoding of received data packets P1, . . . , Pn until a decoding is unsuccessful. In an embodiment, the receiving module is configured to receive all remaining data packets of the n data packets and the decoder is configured to decode said remaining data packets in response to that all remaining data packets have been received.
According to still another aspect, there is provided a transmitter for encoding data of a message M to be transmitted to a receiver. The transmitter may be suitable for fountain-code based decoding. The transmitter comprises an encoder configured to split said message into a pre-defined number n of sub-messages M1, . . . , Mn and to form data packets by means of a linear combination of said sub-messages according to Pn=Cn1*M1+Cn2*M2+Cn3*M3+ . . . +Cnn*Mn, where Pn is an n:th data packet, C is an encoding matrix with element Cij at position (i,j) and Mn is a n:th sub-message. Also, the transmitter comprises a transmitting module configured to transmit the formed data packets P1, . . . , Pn to the receiver.
According to a further aspect, there is provided a system comprising the above-mentioned transmitter and the above-mentioned receiver.
The various embodiments described herein may provide advantages. By allowing for performing the decoding sequentially with the arrival of the data packets it is possible to perform a significant portion of the calculations associated with the decoding already at the reception of the data packets. Thus, it is not necessary to wait for the reception of all data packets before the message M is decoded. Thus, any potential decoding delay may be reduced. This reduces the total waiting time and, consequently, the latency is reduced.
These and other aspects, features and advantages will be apparent and elucidated from the following description of various embodiments, reference being made to the accompanying drawings, in which:
The technology will now be described more fully hereinafter with reference to the accompanying drawings, in which certain embodiments are shown. The technology may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and will fully convey the scope of the technology to those persons skilled in the art. Like reference numbers refer to like elements or method steps throughout the description.
In one of its aspects, this disclosure relates to a fountain-code based decoding method and a corresponding fountain-code based encoding method. The inventor has realized that fountain-code based encoding/decoding may be particularly advantageous in radio communication networks where there is a demand or requirement for low latency over the communication channel. Fountain codes (such as Raptor codes) are so called rate-less codes where the main idea is to transmit a continuous stream of smaller packets without requiring non-acknowledgement (NACK) signals from the receiver in order to minimize the latency caused from the transmitter waiting for the receiver to ask for acknowledge or asking for retransmission. More detailed information on fountain codes may be found in literature, such as “Fountain Codes” by Gauri Joshi, et al. published on Dec. 7, 2010. The following detailed description will focus on fountain-code based encoding/decoding. However, persons skilled in the art will appreciate that the principles of the described technology are not necessarily limited to fountain-code based encoding/decoding.
The data packets may be formed by a linear combination of the original pieces M1, . . . , Mn:
P1=C11*M1+ . . . +C1n*Mn
P2=C21*M1+ . . . +C2n*Mn
. . . = . . .
Pn=Cn1*M1++Cnn*Mn
Considering the vectors P=(P1, . . . , Pn) and M=(M1, . . . , Mn), it is possible to write the system of equations above as P=C*M, where C is a decoding matrix with element Cij in position (i,j). C is often randomly generated, and thus, the elements Cij are most likely nonzero. C should preferably be constructed such that it is invertible, see e.g. “Fountain Codes” by Gauri Joshi, et al. published on Dec. 7, 2010.
The receiver generally needs at least n packets to be able to decode the message M (and hence the original message). This means that the receiver generally needs to wait for all the n packets to arrive before it starts decoding. Also, it needs to perform O(n̂3) operations in order to invert the decoding matrix C to obtain the message M from the arrived data packets P. This is illustratively shown in
For binary alphabets, it has been proposed in the publication “Triangular Codes: Systematic Erasure Codes for Finite Length Input Symbols” by Jalaluddin Qureshi et al. that the computational complexity could be reduced to O(k̂2) for decoding the message M from the data packets P if the decoding matrix C is chosen to have the following structure:
Nevertheless, this corresponds to taking the bits of the message pieces Mi, i=1, . . . , k, and making shifts (multiplication of a binary number with 2̂s is equivalent to shifting s steps to the right). However, it is not clear how this extends to symbol alphabets other than the binary. Also, there is no delay reduction as we still need to wait for at least n packets to be received and decoded correctly. In view of the above, the inventor has realized that there is still a need for further decoding delay reduction, or latency reduction. First, it generally takes too long to wait for all packets to arrive without doing anything at the receiver with the already arrived packets, thus causing unnecessary delay. For instance, the receiver generally needs to wait for all n packets to arrive, until it may decode M and then forward M1, . . . , Mn. Secondly, The n×n matrix C generally requires O(n̂3) operations, which is generally too big, requiring both more time and processing power for computation. The method using binary C matrix does not extend to larger alphabets. Neither does it reduce the latency in traditional fountain codes. In one of its aspects, this disclosure therefore suggests fountain-code based encoding/decoding methods.
In some embodiments, the decoder 320 is also configured to perform the decoding of received data packets P1, . . . , Pn until a decoding is unsuccessful. For instance, the receiving module 310 may be configured to receive all remaining data packets of the n data packets and the decoder 320 may be further configured to decode said remaining data packets in response to that all remaining data packets have been received.
With reference to
According to this example embodiment, data packets are formed with a following structure:
P1=C11*M1
P2=C21*M1+C22*M2
P3=C31*M1+C32*M2+C33*M3
. . . = . . .
Pn=Cn1*M+Cn2*M2+Cn3*M3+ . . . +Cnn*Mn
In the above formulas, Pn is the n:th data packet, C is the decoding matrix with element Cij at position (i,j) and Mn is a n:th sub-message of the message M, see
The method 400 comprises receiving 410 data packets P1, . . . , Pn from the transmitter 100. The received data packets P1, . . . , Pn are formed by a linear combination of said sub-messages according to Pn=Cn1*M1+Cn2*M2+Cn3*M3+ . . . +Cnn*Mn, as illustrated hereinabove. Next, the received data packets P1, . . . , Pn are decoded according to Mn=Cnn̂(−1)*(Pn−C(N−1)*M(N−1)− . . . −C(1)*M(1)) as the data packets P1, . . . , Pn are received, wherein the decoding may be performed sequentially with the arrival of the data packets P1, . . . , Pn. Preferably, but not necessarily, the decoding 420 of the received data packets P1, . . . , Pn is performed until a decoding of a received packet is unsuccessful. If, or when, the decoding 420 of a received data packet P1, . . . , Pn is unsuccessful, the method may comprise receiving 440 all remaining data packets of the n data packets, and decoding said remaining data packets when all remaining data packets have been received. That is, the method 400 may comprise waiting for the reception of all remaining data packets and once all remaining data packets have been received the method 400 may continue by decoding the received remaining data packets.
As a mere example, suppose that all n packets are arrived (i.e. received) correctly. The conventional fountain codes will require O(n̂3) operations to decode the message M. Thus, the decoding would require relatively much time and energy for computations, or calculations. Assume for instance n=1000. Then, n̂3=1000 000 000. Time is proportional to the number of operations, so it would take O(n̂3) time steps before the receiver decodes the message M. On the other hand, when applying the method 400 when the n:th packet arrives, it is only needed to perform one last operation to decode Mn, since M1, M(n−1) were already decoded on the fly. This only consumes time in the order of O(1). Also, the total number of operations to invert the matrix C is O(n̂2) (as opposed to O(n̂3) for a general matrix C), making it more energy efficient and faster to compute, or calculate.
With reference to
As may be seen in
With reference to
As will be appreciated by persons skilled in the art, the described embodiments and their equivalents may be realized in software or hardware or a combination thereof. They may be performed by general purpose circuits associated with or integral to a communication device, such as digital signal digital signal processors (DSP), central processing units (CPU), co-processor units, field programmable gate arrays (FPGA) or other programmable hardware, or by specialized circuits such as for example application-specific integrated circuits (ASIC). Embodiments described herein may appear within an electronic apparatus, such as a wireless communication device.
According to some embodiments, computer programs are provided. In one embodiment, a computer program comprises instructions which, when executed on at least one processor, cause the at least one processor to split a message M into a pre-defined number n of sub-messages M1, . . . , Mn and to form data packets by means of a linear combination of said sub-messages according to Pn=Cn1*M1+Cn2*M2+Cn3*M3+ . . . +Cnn*Mn, where Pn is a n:th data packet, C is an encoding matrix with element Cij at position (i,j) and Mn is a n:th sub-message. Furthermore, a carrier containing the computer program may be provided. The carrier may e.g. be an electronic signal, an optical signal, a radio signal or a computer-readable storage medium.
In an embodiment, a computer program comprises instructions which, when executed on at least one processor, cause the at least one processor to decode received data packets P1, . . . , Pn according to Mn=Cnn̂(−1)*(Pn−C(N−1)*M(N−1)− . . . −C(1)*M(1)) as the data packets P1, . . . , Pn are received. Furthermore, a carrier containing the computer program may be provided. The carrier may e.g. be an electronic signal, an optical signal, a radio signal or a computer-readable storage medium.
The various embodiments that have been described in this disclosure are advantageous. By allowing for performing the decoding sequentially with the arrival (i.e. reception) of the data packets it is possible to perform a significant portion of the calculations, or computations, associated with the decoding already at the arrival (i.e. reception) of the data packets at the receiver. Thus, it is not necessary to wait for the reception of all data packets before the whole message M is decoded. Thus, any potential decoding delay may be reduced. This reduces the total waiting time and, consequently, the latency may be reduced. In some embodiments, the decoding of the received data packets is performed only until a decoding of a received packet is unsuccessful. The method may then further comprise receiving all remaining data packets of the n data packets, and decoding said remaining data packets in response to that all remaining data packets have been received. This will typically also improve the latency compared to the conventional case where all received data packets are received before the decoding of the message M is started.
Modifications and other variants of the described embodiments will come to mind to one skilled in the art having benefit of the teachings presented in the foregoing description and associated drawings. Therefore, it is to be understood that the embodiments are not limited to the specific example embodiments disclosed and that modifications and other variants are intended to be included within the scope of this disclosure. Although specific terms may be employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation. Therefore, a person skilled in the art would recognize numerous variations to the described embodiments that would still fall within the scope of the appended claims. As used herein, the terms “comprise/comprises” or “include/includes” do not exclude the presence of other elements or steps. Furthermore, although individual features may be included in different claims, these may possibly advantageously be combined, and the inclusion of different claims does not imply that a combination of features is not feasible and/or advantageous. Also, it should be noted that in the description of embodiments, the partition of functional blocks into particular units is by no means limiting. Contrarily, these partitions are merely examples. Functional blocks described herein as one unit may be split into two or more units. In the same manner, functional blocks that are described herein as being implemented as two or more units may be implemented as a single unit without departing from the scope of the claims. In addition, singular references do not exclude a plurality. Finally, reference signs in the claims are provided merely as a clarifying example and should not be construed as limiting the scope of the claims in any way.
O(n´k)=A number of order n´k.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/SE2013/051542 | 12/17/2013 | WO | 00 |