Patent Description:
In a typical modern communication system, the manner in which a transmitter forms its signals can be varied to account for operational factors such as the expected characteristics of the channel it is using, the reliability with which transmitted data is required to be decoded and the required data rate. Some examples of the factors that can be varied include the encoding scheme, the amount of error correction encoding and the message length. In order for a receiver to interpret the signal correctly it needs to be aware of the parameters used at the transmitter. If the transmitter is able to vary its parameters then the transmitter and the receiver need to align their parameters in order to exchange messages. In some systems, the parameters are exchanged over a separate channel. That channel is often called the control channel. The data defining the parameters is often called the control information, control message or control data. The control data may, for example, be a few bytes long.

Normally, the data defining the exchanged parameters is smaller in size than the user message that is to be transmitted. The user message is often called the payload. The data of the user message is transmitted over a data (or payload) channel. When the control data is sent on a control channel separate from the data channel, the control and user data are generally encoded and decoded separately.

It is known that the performance of channel codes generally decreases with decreasing message length. For illustration, consider an AWGN channel with BPSK modulation and a certain target block error rate (BLER). <FIG> shows an estimate of the required SNR to achieve a BLER of <NUM> for different message lengths if the code rate is ½. It can be seen that with decreasing message length, the required SNR increases. In other words, the cost of transmitting a bit is reduced by using longer channel codes. It follows that, since a control message typically has a small size, the cost per bit (e.g. in terms of SNR to achieve a target BLER) of conveying control data is typically higher than that of the payload data if they are encoded and decoded separately.

As indicated above, a known encoding mechanism is to assign separate channels for transmitting the control message and the payload data. The control message and the payload data are encoded and decoded separately. For example, in the LTE protocol, Turbo codes are used to encode the payload. Multiple modulation and coding schemes (MCSs) can be used. The current choice of MCS is signaled over the control channel with a separate channel code, namely the convolutional code (CC). After decoding the control message, the receiver can start decoding the payload. Without decoding the control message the receiver would not know which coding and modulation scheme was used for the payload transmission.

The disadvantages of this solution are twofold. First, the receiver needs to run two decoding processes: one for the control channel and one for the actual payload. Second, because the control message typically contains a small amount of information and because FEC schemes perform poorly with short block lengths, the available resources are used in an inefficient way.

One way to improve performance is to concatenate the payload data and the control data and encode them together. However, in this approach it generally is only possible to transmit a control message that relates to payload data other than the payload data with which it is concatenated. For instance, the control message might relate to some future payload data. Otherwise, the content of the control data would be needed to decode the control data itself.

<CIT> discloses a data transmission method. At a transmitting side, if a frame contains transmission data, frame data containing the transmission data and a calculated error-detecting code is generated. If the frame contains no transmission data, frame data containing neither transmission data nor an error-detecting code is generated. At a receiving side, one or more final bit positions of the frame data are assumed in the frame, transmission data and an error-detecting code are assumed in the frame, and the error-detecting code of the assumed transmission data is calculated. If there is a position where the assumed error-detecting code matches the error-detecting code calculated based on the assumed transmission data, it is decided that the position is the final bit position. Otherwise, it is decided that the frame contains no transmission data or that the received frame data contains an error.

<CIT> discloses methods for wireless communications. Packets sent between devices using the IEEE802.11ad standard use a modulation and coding scheme where each modulation scheme uses a certain code rate. An indication of a code rate of an LDPC code used to encode the packets is inserted at predetermined positions in the packet headers. The method provides further code rates per modulation scheme, and sends an indication of a revised code rate to be used with a particular modulation scheme in unused bits of a packet header. The revised code rate may be based on measured transmission link quality.

It would be advantageous to be able to send control data more efficiently.

The invention provides a signal receiver, a signal encoder, a communication system, a method for interpreting a received codeword, and a method for encoding a data signal to form a codeword as defined in the attached set of claims.

According to one aspect, there is provided a signal receiver for interpreting a received message, the receiver being configured to perform the steps of: decoding a first part of the message using a channel decoding scheme with a predefined set of decoding parameters to form a first data block; and subsequently decoding a second part of the message using the channel decoding scheme with decoding parameters that are at least partially dependent on the content of the first data block.

One or more decoding parameters that is/are dependent on the content of the first data block may be any one or more of the following: an indicator of the length of the second part of the message, a rate adaptation scheme for the second part of the message, a puncturing scheme for the second part of the message, a modulation order for the second part of the message, an error detection scheme for the first and/or the second part of the message and a set of frozen bits for the second part of the message. According to the claimed solution, the decoding parameters that are dependent on the content of the first data block comprise one or more of a set of frozen bits for the second part of the codeword, and error detection bits.

The channel decoding scheme may be such that the first part of the message can be decoded independently of the second part of the message. Then at least some state data for the decoding process can be discarded between decoding the first and second parts, and decoding can readily be suspended between decoding the first and second parts if required.

The signal receiver may be configured to perform the step of decoding the first part of the message using trellis decoding and/or sliding window decoding. These approaches are amendable to performing decoding when not all the encoding parameters are known.

The receiver may store the predefined set of decoding parameters. Then they can be available for decoding when required.

The predefined set of decoding parameters may include one or more of: a length of the first part of the message, a rate adaptation scheme for the first part of the message, a puncturing scheme for the first part of the message, a modulation order for the first part of the message, an error detection scheme for the first part of the message and a set of frozen bits for the first part of the message. These may be useful in decoding the first part of the message. According to the claimed solution, the predefined set of decoding parameters comprises a set of predetermined frozen bits.

The channel decoding scheme may be one of: convolutional decoding, low-density parity check decoding, Wi-Turbo decoding, successive cancellation polar decoding, and successive cancellation list polar decoding. These are amendable to decoding when a limited amount of control information is known. According to the claimed solution, the channel decoding scheme is one of: successive cancellation polar decoding, and successive cancellation list polar decoding.

The first part of the message may precede the second part of the message. This makes it efficient to decode the first part before the second part.

The first part of the message may be a leading part of the message. This can allow the remainder of the message to be encoded as for the second part.

According to another aspect, there is provided a signal encoder for encoding a data signal to form a message, the signal encoder storing a set of predetermined encoding parameters and being configured to form the message as: a first part that is encoded according to the predetermined encoding parameters, the first part comprising data defining further encoding parameters; and a second part that is encoded according to the further encoding parameters; the encoder being configured to encode the message by an encoding scheme that permits the first part of the message to be decoded independently of the second part of the message.

The encoder may be configured to encode the message by an encoding scheme such that knowledge of the further encoding parameters is required to permit the second part of the message to be decoded. The receiver can then decode the second part once control information has been extracted from the first part.

The signal encoder may be configured to select the further encoding parameters. The signal encoder may be configured to select at least one of the further encoding parameters at the time of encoding the message. Then it can adapt them to suit the current circumstances.

The further encoding parameters may include one or more of a length of the second part of the message, a rate adaptation scheme for the second part of the message, a puncturing scheme for the second part of the message, a modulation order for the second part of the message, an error detection scheme for the second part of the message and a set of frozen bits for the second part of the message. Then these parameters can be adapted to suit the current circumstances.

According to the claimed solution, the further encoding parameters comprise one or more of a set of frozen bits for the second part of the codeword, and error detection bits.

The signal encoder may be configured to cause the first part of the message to be transmitted before the second part of the message. This makes it efficient to decode the first part before the second part.

According to a third aspect, there is provided a communication system comprising a signal encoder as set out above and a signal receiver as set out above, the signal receiver being arranged to interpret a message formed by the signal encoder.

According to a fourth aspect, there is provided a method for interpreting a received message, the method comprising: decoding a first part of the message using a channel decoding scheme with a predefined set of decoding parameters to form a first data block; and subsequently decoding a second part of the message using the channel decoding scheme with decoding parameters that are at least partially dependent on the content of the first data block.

According to a fifth aspect, there is provided a method for encoding a data signal to form a message, the method comprising: storing a set of predetermined encoding parameters; and
forming the message as: a first part encoded according to the predetermined encoding parameters, the first part comprising data defining further encoding parameters; and a second part encoded according to the further encoding parameters; the method comprising encoding the message by an encoding scheme that permits the first part of the message to be decoded independently of the second part of the message.

The encoding mechanisms to be described below involve transmitting a payload and the control data needed to decode it (or at least to decode it efficiently) together in a single message. The raw or literal content of the message represents a codeword which, when correctly decoded, will yield the original payload and control data. The encoding of the message is such that the control data can be decoded efficiently even when the receiver is not in possession of enough information to decode the payload efficiently or at all. Once the control data has been decoded it can be used to decode the payload.

The control data and the payload may be encoded at substantially the same time as each other, or one may be encoded a substantially time after the other.

Conveniently, the control data and the payload data are encoded according to the same high-level encoding scheme. The control data may be encoded using default, fixed, or predetermined parameters for that coding scheme. Those parameters may be stored by the encoder and the decoder. The encoder may adaptively select the parameters to be used to encode the payload data, for instance so as to improve throughput and/or decoding accuracy. Those parameters can be conveyed in the control data. The high-level encoding scheme itself may be selected to facilitate a receiver decoding part of the message (i.e. the control data) without decoding the whole message.

The mechanisms may involve encoding and subsequently decoding payload data and control data by using certain classes of channel codes that allow retrieving part of the information from a received codeword without decoding the whole codeword. Control data partly or wholly defining the channel coding scheme for the payload is encoded within the same codeword as the payload. Any parameters usable to decode the payload that are not contained in the codeword may be predetermined and stored by the receiver and/or determined by the receiver through trial and error. One example of a decoding scheme that is compatible with this approach is using sliding window decoding.

Embodiments of this approach can provide several advantages. First, since the message/codeword in which the control data is contained also contains the payload, it is longer than a message containing only the control data. As a result, the control data is transmitted with less cost in terms of energy per bit as compared to transmitting them over a separate control channel. Second, this method allows encoding a control message carrying channel coding parameters for decoding part of a codeword inside that very same codeword. That means the parameters can be conveyed in a prompt manner, allowing quick adaptation of coding parameters. Third, if an error detecting code (such as a CRC) is used over the control message, this allows transmission errors to be detected and responded to promptly. If the control data is not decoded correctly, the receiver can send a non-acknowledgement (NACK) message, e.g. as a retransmission request, without having decoding the rest of the codeword. Fourth, if an error detecting code is used over the control data the decoding of the rest of the codeword can be improved if the control data is decoded correctly. For example, by setting L-values for soft decoding to +/-infinity according to the decoded control message.

In order that the same high-level encoding scheme can be applied to both parts of the message, it is preferred that the encoding scheme is one that permits reliable decoding of the control data using predetermined parameters. Otherwise, the receiver might have to try multiple options for the parameters to be used to decode the control data until it finds the right one. Some examples of preferred encoding schemes will be described. It will be appreciated that for each encoding scheme there is a corresponding decoding scheme for recovering the message data.

When data has been encoded using a convolutional code it is possible to decode the k-th bit of the convolutionally encoded data if code bits corresponding to k+t trellis segments are received, where t is the trace-back length. The reason for this is that later data influences the decoding of the earlier data only slightly. Typically, t is a few integer multiples of the constraint length of the convolutional code, for example <NUM> to <NUM>. The first kc bits of a message block can be assigned to carry the control message. Once kc+t trellis segments of the message have been received, the control data can be recovered even if the whole message has not yet been received. The control data can be encoded with, e.g. a fixed puncturing pattern known to the receiver.

When convolutional encoding is used, examples of the parameters for decoding the payload data that can be carried in the control data are any one or more of:.

Each of these may be predetermined for the portion of the message carrying the control data. Data defining each predetermined parameter can be stored by the receiver for use as default encoding parameter(s) for decoding the control data.

These are also known as Spatially Coupled LDPC codes (SC-LDPC).

SC-LDPC codes are built by coupling smaller LDPC codes. They have a parity check matrix with a diagonal structure. (See the applicant's co-pending patent application entitled "Communication System with Latency-Controlled Forward Error Correction" (<CIT>, which does not form part of the prior art for this disclosure)). The structure of the parity check matrix allows a sliding window decoder to be used. By suitable choice of the decoder's window length, part of the codeword can be decoded without processing the rest of the codeword.

When LDPC convolutional encoding is used, examples of the parameters for decoding the payload data that can be carried in the control data are any one or more of:.

Each of these (with the exception of the error detection bits) may be predetermined for the portion of the message carrying the control data. Data defining each predetermined parameter can be stored by the receiver for use as default encoding parameter(s) for decoding the control data.

Where error detection bits (e.g. for a CRC mechanism) are provided, these may be used to support a decision to reject the message, e.g. by the receiver transmitting a NACK in respect of the message, the receiver transmitting a retransmission request in respect of the message. The receiver may terminate its decoding of the message if the error detection bits recovered for the control data do not match a CRC computed by the receiver over some or all of the recovered control data.

Wi-turbo codes are turbo codes with an interleaver (a window interleaver) that allows using a window decoder (See the applicant's co-pending patent application entitled "Window-Interleaved Turbo (Wi-Turbo) Codes" (<CIT> A1, which does not form part of the prior art for this disclosure)). <FIG> shows the interleaving function f(j) of a Wi-turbo code. Similarly to convolutional LDPC codes, under this scheme a control message contained in a codeword can be decoded without processing the whole codeword.

When Wi-turbo encoding is used, examples of the parameters for decoding the payload data that can be carried in the control data are any one or more of:.

If decoded with a successive cancellation (SC) or SC-List decoder, polar decoders make an estimate of the transmitted sequence bit-by-bit. , first a decision is made on the first bit, followed by the second bit, and so on (See <NPL>). As a result, the first kc non-frozen bits of a codeword encoded using polar codes can be used to transmit control data, and that control data can be decoded even if the whole codeword is not yet capable of being decoded.

When polar coding is used, examples of the parameters for decoding the payload data that can be carried in the control data are any one or more of:.

<FIG> illustrate a transmitter and a receiver for implementing the methods described above.

<FIG> is a schematic view of the transmitter/receiver architecture. The transmitter <NUM> comprises a source <NUM> of payload data. That may, for example be a user interface input device such as a keyboard or touchscreen. Data from the source <NUM> is passed to a processor <NUM> which packages it for transmission. Chunks of data for transmission as payload data are passed to an encoder <NUM>. The encoder selects any non-default parameters for encoding of the payload data and forms control data representing those parameters. Then the encoder encodes the control data and the payload data to form a codeword. The control data is encoded according to a set of predefined default parameters. The payload data is encoded according to the parameters included in the control data. The codeword is passed to a transmitter front end <NUM>, which transmits the codeword as a message. In this example the message is transmitted from an antenna <NUM> over a wireless channel <NUM>. At receiver <NUM> the message is received at an antenna <NUM> which provides input to a receiver front end <NUM>. Note that the idea is not limited to wireless channels but applicable to any communication system. Message data received by the receiver front end is passed to a decoder <NUM>. The decoder <NUM> decodes the control data in a message using stored default decoding parameters. Conveniently the control data is contained in the leading part of the message. The decoder extracts other decoding parameters from the control data and uses them to decode the payload part of the message. Conveniently the payload part comes after the control data part. The recovered payload data is passed to a processor <NUM> which performs any necessary processing on the received data and then passes it to a consumer <NUM>. The consumer may, for example, be a display or loudspeaker. Each device <NUM>, <NUM> may be capable of acting as both a transmitter and a receiver.

<FIG> illustrates the encoder <NUM> in more detail. The encoder <NUM> first concatenates the bits of control data and the bits of payload data in block <NUM>. They are then encoded together in block <NUM> using a selected high-level encoding scheme, but with potentially different parameters being used for encoding the two sets of data.

<FIG> illustrates the decoder <NUM> in more detail. Received data is divided into a portion representing the control data and a portion representing the payload data by demultiplexer <NUM>. The portions are decoded by decoder <NUM> using stored parameters and/or parameters recovered from the control data. When the control data includes CRC data, error detection may be performed on the control data in block <NUM>. If a CRC calculated by the receiver over the control data does not match the received CRC value then a NACK message can be sent to the transmitter.

As an example not covered by the claims, a Wi-turbo code may be used as the high-level encoding scheme. The control data may be encoded using a default puncturing pattern, whereas the payload data may be encoded using a puncturing pattern selected by the transmitter. The control data may, for instance, have a length of <NUM> bits. The control data may include an indication of (a) the message length and (b) the puncturing pattern for the payload bits. When a message is received at the receiver, first the channel output corresponding to the <NUM> control bits is extracted. The obtained values are decoded using a suitable decoder (in this example that may be a sliding window decoder) which can decode the first <NUM> bits without requiring knowledge of the content of the control message. After the control message is decoded, error detection is performed on the decoded control bits. If those bits are decoded successfully, the decoder parameters are adjusted according to this information and the rest of the codeword is decoded, which contains the payload data. In this step, the decoder can also make use of the hard decisions of the decoded control bits to further improve the decoding performance of the rest of the codeword. If an error is detected, there is no need to decode the rest of the codeword and a NACK to the transmitter can already be sent. The same embodiment can also be employed with convolutional codes, convolutional LDPC codes and any other coding scheme allowing a sliding window decoder.

Claim 1:
A signal receiver (<NUM>) for interpreting a received codeword, which when correctly decoded yields payload data and control data, and wherein a first part of the codeword can be decoded independently of a second part of the codeword, the receiver (<NUM>) being configured to perform the steps of:
decoding the first part of the codeword using a channel decoding scheme with a predefined set of decoding parameters to form a first data block, wherein the first data block includes the control data comprising at least one decoding parameter for decoding payload data, and the predefined set of decoding parameters is stored by the receiver (<NUM>) and comprises a set of predetermined frozen bits for the first part of the codeword, and subsequently
decoding the second part of the codeword using the channel decoding scheme with decoding parameters that are at least partially dependent on the content of the first data block as obtained by decoding the first part of the codeword to decode the payload data, wherein the decoding parameters that are dependent on the content of the first data block comprise one or more of a set of frozen bits for the second part of the codeword, and error detection bits,
wherein the codeword is encoded using a polar code and is decoded with a successive cancellation, SC or SC-List decoder, which estimates the codeword bit-by-bit, and first kc non-frozen bits of the codeword are used to transmit the control data.