WO2012134678A2 - Apparatus and methods for selective block decoding - Google Patents

Apparatus and methods for selective block decoding Download PDF

Info

Publication number
WO2012134678A2
WO2012134678A2 PCT/US2012/026376 US2012026376W WO2012134678A2 WO 2012134678 A2 WO2012134678 A2 WO 2012134678A2 US 2012026376 W US2012026376 W US 2012026376W WO 2012134678 A2 WO2012134678 A2 WO 2012134678A2
Authority
WO
WIPO (PCT)
Prior art keywords
code block
received code
received
decoder
quality indicator
Prior art date
Application number
PCT/US2012/026376
Other languages
French (fr)
Other versions
WO2012134678A3 (en
Inventor
Amir Rubin
Original Assignee
Intel Corporation
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to EP12765908.4A priority Critical patent/EP2692138A4/en
Priority to CN201280016151.5A priority patent/CN103597769B/en
Publication of WO2012134678A2 publication Critical patent/WO2012134678A2/en
Publication of WO2012134678A3 publication Critical patent/WO2012134678A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0046Code rate detection or code type detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/201Frame classification, e.g. bad, good or erased

Definitions

  • the present disclosure generally relates to digital communications. More specifically, the technology of the present disclosure is applicable to the decoding of code blocks by a digital receiver.
  • Digital communication technologies have become an integral part of everyday modern life. For example, digital communication technologies enable wired and/or wireless data reception and/or transmission to and/or from a wide range of computing and other devices such as mobile telephones, other mobile devices, televisions, computer systems, telemetry systems, and/or the like. Likewise, digital communications technologies are employed to provide voice and/or data communications for a wide range of business and consumer applications. For many of these and other digital communication devices and applications, engineers often strive to design systems of relatively low complexity and that consume relatively little power.
  • Signals within and/or between digital communication devices are often encoded for transmission, for example, with forward error correction coding (e.g., block coding, Hamming coding, Golay coding, etc.).
  • Decoders are often included in digital communication devices to decode signals after reception. While use of coding typically improves the ability of receiving devices to re-create a transmitted signal in spite of channel non-idealities (e.g., signal degradations due to environmental loss, noise, interference, etc.), many encoding/decoding processes are mathematically/processor intensive. Accordingly, inclusion of a decoder in a device increases the complexity of the device - especially if the decoder is a high- performance decoder.
  • typically known decoders offer only finite error correcting capabilities. In other words, these decoders may only be able to decode signals that are degraded by less than a correctable amount of degradation. For example, if a signal has been degraded by more than the correctable amount of degradation, the decoder may be unable to decode the signal.
  • bit error rate (BER) and code strength are metrics that can be used to characterize the decodablilty of a received signal.
  • Figure 1 is a block diagram of a computing device in accordance with an embodiment of the present disclosure.
  • Figure 2 is a block diagram of a decode unit in accordance with an embodiment of the present disclosure.
  • Figure 3 is a block diagram of a decoder control unit in accordance with an embodiment of the present disclosure.
  • FIG. 4 is a block diagram of another decoder control unit in accordance with an embodiment of the present disclosure.
  • Figure 5 is a logical flow diagram of a process for selectively decoding code blocks in accordance with an embodiment of the present disclosure.
  • circuit means at least either a single component or a multiplicity of components, either active and/or passive, that are coupled together to provide a desired function or functions.
  • signal means at least one current, voltage, charge, temperature, data, or other signal.
  • a “signal” may be used to communicate using active high, active low, time multiplexed, synchronous, asynchronous, differential, complementary, single-ended, or any other digital or analog signaling or modulation technique.
  • various signals may be illustrated in the figures using a single line. However, any such illustration should not be construed as limiting such a signal to being a single-bit signal.
  • An example method includes receiving a code block, determining information relevant to decoding received code blocks (e.g., a code block quality indicator for a received code block), and selectively attempting to decode the received code block if the relevant information is greater than or equal to a threshold. If the relevant information is less than the threshold, the received code block is discarded without decoding attempts.
  • information relevant to decoding received code blocks e.g., a code block quality indicator for a received code block
  • disclosed embodiments attempt to decode code blocks which are expected to be decodable, but discard other code blocks without attempting to decode them if the code blocks are not expected to be decodable by the decoder. In this way, resources are not expended to perform potentially unjustified decoding attempts on code blocks that are unlikely to be successfully decoded. By preventing the potentially unjustified decoding attempts, less decoder bandwidth may be needed and thus a less complex, lower speed, and/or less sophisticated decoder may be employed.
  • a static or dynamic threshold may be employed to determine whether or not to attempt decoding of code blocks.
  • a dynamic threshold that is based on an available decoding capacity of the decoder (e.g., a presently available decoder bandwidth) may be suitably employed. The available decoding capacity of the decoder may be determined based on real-time or near- real-time feedback. Further, use of such a dynamic threshold may enable decoding attempts on a greater percentage of code blocks if the decoder is operating at a relatively light load and more stringently reserve decoder bandwidth for likely decodable code blocks if the decoder is operating at a relatively high load.
  • the technology disclosed herein may be employed in computing and/or other devices having digital communications interfaces.
  • the disclosed technology may be employed in the receiver of a mobile device, in a wide or local area network interface of a computer system, in a television receiver system, in a global positioning system (GPS) receiver, and/or the like.
  • GPS global positioning system
  • FIG. 1 is a block diagram of system 190.
  • system 190 includes receiver 100 and optionally includes back end unit 130.
  • system 190 may be employed with computing and/or other devices having digital communications interfaces.
  • system 190 may be employed in other types of systems and/or devices.
  • receiver 100 includes front end unit 1 10 and decode unit 120.
  • receiver 100 is configured to receive a code block, to demodulate the received code block, and to selectively attempt to decode the received code block based on a likelihood of successfully decoding the received code block, if attempted.
  • receiver 100 may be further configured to pass decoded code blocks and/or the data contained therein to back end unit 130.
  • Receiver 100 may be virtually any type of digital receiver.
  • receiver 100 may be a wireless receiver (e.g., a receiver configured to receive and process wireless signals based on any one or more wireless protocols or standards such as Bluetooth, Long Term Evolution (LTE), Global System for Mobile Communications (GSM), code-division multiple access (CDMA), IEEE 802.1 1 (Wi-Fi), Advanced Television Systems Committee (ATSC), etc.).
  • receiver 100 may also be a wired or optical receiver (e.g., a digital subscriber line (DSL) receiver, a Data Over Cable Service Interface Specification (DOCSIS) receiver, Fibre Channel (FC) receiver, Synchronous Optical Networking (SONET) receiver, an IEEE 802.3 receiver (Ethernet) receiver, etc.).
  • receiver 100 may be configured to receive signals from within a device, e.g., such as for use with error correcting code (ECC) memories.
  • ECC error correcting code
  • front end unit 1 10 is configured to receive an input signal and to preprocess the input signal before providing an output to decode unit 120.
  • front end unit 1 10 is configured to receive a bit stream, to demodulate the received bit stream, and to generate the received code block from the demodulated bit stream.
  • front end unit 1 10 may be configured to simply receive code blocks from a digital communications interface.
  • Front end unit 1 10 may also include any suitable components or combinations thereof.
  • front end unit 1 10 may include a physical layer interface and/or a demodulator.
  • front end unit 1 10 includes a demodulator configured to determine a log-likelihood ratio (LLR) for each of bit of a received code block, or a subset of the bits, based on a soft- decision demodulation of the corresponding received bit.
  • LLR log-likelihood ratio
  • decode unit 120 is configured to selectively attempt to decode the received code block based on a likelihood of successfully decoding the received code block, if attempted. Further details regarding decode unit 120 are discussed below with reference to Figure 2.
  • Back end unit 130 may include any component and/or combination of components configured to use or otherwise interact with decoded code blocks and/or the data contained therein.
  • back end unit 130 may include components typically associated with application layer, presentation layer, session layer, transport layer, network layer, or Internet layer functionality.
  • back end unit 130 may be configured to enable user interaction with data from one or more decoded code blocks and may include, for example, a display, a user input device, and/or the like.
  • receiver 100 and/or back end unit 130 may be fabricated into or onto an integrated circuit, implemented in a field programmable gate array (FPGA), implemented in software (e.g., with a processor and a processor readable medium), implemented with discrete gates or components, and/or the like.
  • FPGA field programmable gate array
  • receiver 100 and back end unit 130 are fabricated into an integrated circuit.
  • FIG. 2 is a block diagram of decode unit 220.
  • Decode unit 220 may be employed as an embodiment of decode unit 120 of Figure 1 . As illustrated, decode unit 220 includes decoder control unit 250 and decoder 260.
  • decoder control unit 250 is configured to selectively control decoder 260 by determining whether or not decoder 260 will attempt to decode a given code block.
  • decoder control unit 250 is configured to determine a code block quality indicator for each code block and to compare the code block quality indicator to a threshold. Based on the outcome of the comparison, decoder control unit 250 may enable or disable decoder 260, selectively place the received code block into a queue for decoding by decoder 260, flag the received code block for decoding, flag the received code block to be discarded, and/or the like.
  • decoder control unit 250 Further details regarding decoder control unit 250 are discussed below with reference to Figures 3 and 4.
  • decoder 260 is configured to, based on an output of the comparison unit, selectively attempt to decode the received code block.
  • decoder 260 may be configured to receive an enable/disable signal from decoder control unit 250 and to attempt to decode a received code block if enabled but not to attempt to decode the received code block if disabled. In this example, received code blocks may be discarded without any attempt to decode the received code block if decoder 260 is disabled.
  • decoder control unit 250 and decoder 260 are configured to attempt to decode the received code block if the code block quality indicator is greater than or equal to the threshold and to discard the received code block without attempting to decode it if the code block quality indicator is less than the threshold.
  • Decoder 260 may include any decoder suitable for decoding the received code blocks.
  • decoder 260 may include a linear block decoder, a cyclic decoder, a Golay decoder, a Reed-Solomon decoder, and/or the like.
  • other suitable decoders may be employed as decoder 260.
  • FIG. 3 is a block diagram of decoder control unit 350.
  • Decoder control unit 350 may be employed as an embodiment of decoder control unit 250 of Figure 2. As illustrated, decoder control unit 350 includes quality determination unit 352, threshold unit 356, and comparison unit 358. As discussed above, decoder control unit 350 may be configured to determine whether or not to attempt to decode a received and/or demodulated code block.
  • quality determination unit 352 is configured to determine a code block quality indicator for a received code block based on a likelihood of successfully decoding the received code block, for example, if attempted by a given decoder (e.g., a decoder designed to be employed with quality determination unit 352).
  • a given decoder e.g., a decoder designed to be employed with quality determination unit 352.
  • Quality determination unit 352 may also be configured to determine the code block quality indicator by any suitable process, based on any suitable metric, or by any suitable combination of processes and/or metrics. As one example, quality determination unit 352 may be configured to determine a code block quality indicator based on an LLR calculated from the received code block and/or a portion thereof. In this example, the LLR may be a maximum or minimum LLR value from bits of the received code block, an average of LLRs from the bits of the received code block, an absolute value of an LLR/LLRs from one or more bits of the received code block, an absolute value of an average of LLRs from bits of the received code block, and/or the like.
  • quality determination unit 352 may be configured to determine a code block quality indicator based on error vector magnitude (EVM) of the received code block, based on a Hamming distance between the received code block and a potential matching code block of a code book, or based on a distribution (e.g., an average or minimal Hamming distance between different code words) of Hamming distances between code blocks in an employed code book.
  • EVM error vector magnitude
  • quality determination unit 352 may be configured to determine the code block quality indicator based on other metrics such as a received signal strength indication (RSSI), a signal-to-noise ratio (SNR), a received power spectral density (PSD), feedback regarding prior decode attempts, a characteristic (e.g., length, coding rate, or coding strength) of the received code block, and/or the like. Moreover, quality determination unit 352 may be configured to determine a code block quality indicator based on any combination of metrics and/or other factors, including those discussed above.
  • RSSI received signal strength indication
  • SNR signal-to-noise ratio
  • PSD received power spectral density
  • quality determination unit 352 may be configured to determine a code block quality indicator based on a combination of (1 ) LLRs of a received code block, (2) an EVM of the received code block, and (3) soft-decision demodulation information from the received code block.
  • threshold unit 356 is configured to provide a threshold to comparison unit 358 to enable comparison between a code block quality indicator for a received code block and the threshold.
  • Threshold unit 356 may include any one or more of a variety of components for generating and/or storing the threshold.
  • threshold unit 356 may include volatile or non-volatile memory, a micro-processor interface, a micro-processor, a register, and/or the like.
  • the threshold may be either a static or a dynamic threshold.
  • threshold unit 356 may provide a dynamic threshold based on a real-time operational characteristic of the computing device which embodies receiver 100.
  • An available decoding capacity of the decoder is one example of a real-time operational characteristic upon which the threshold may be based.
  • the available decoding capacity may be determined based on realtime or near-real-time feedback.
  • other embodiments may employ different and/or additional operational characteristics and/or variables to provide the threshold.
  • the dynamic threshold of yet another embodiment is based on a characteristic (e.g., length or coding strength) of the received code block and a real-time operational characteristic of the computing device embodying receiver 100.
  • comparison unit 358 is configured to compare the code block quality indicator to a threshold and to selectively enable a decode attempt of the received code block (e.g., by decoder 260 of Figure 2) based on an output of the comparison.
  • comparison unit 358 includes a digital comparator. However, any other suitable components or processes may be employed in comparison unit 358.
  • FIG 4 is a block diagram of decoder control unit 450.
  • Decoder control unit 450 may be employed as an embodiment of decoder control unit 250 of Figure 2 or as an embodiment of decoder control unit 350 of Figure 3.
  • decoder control unit 450 includes quality determination unit 452, threshold unit 456, and comparison unit 458.
  • quality determination unit 452 includes bit quality determination unit 452a and block quality determination unit 452b.
  • Quality determination unit 452 is also an example of quality determination unit 352 of Figure 3, and can be employed as an embodiment thereof.
  • bit quality determination unit 452a is configured to determine bitwise quality information on the bits of a received code block (either all bits or a subset of the bits of the received code block) while block quality determination unit 452b is determined to determine a code block quality indicator for a received code block based on the bitwise quality information from bit quality determination unit 452a.
  • bit quality determination unit 452a may be configured to determine bit quality indicators for each bit of the received code block based on the LLRs for each bit of the received code block and block quality determination unit 452b is configured to determine the code block quality indicator based on an average of the LLRs for each received bit of the received code block.
  • the LLRs for the bits of the received code block are based on a soft-decision demodulation of the corresponding received bits.
  • Threshold unit 456 and comparison unit 458 may be employed as respective embodiments of threshold unit 356 and comparison unit 358 of Figure 3.
  • FIG 5 is a logical flow diagram of process 500 for selectively decoding code blocks.
  • process 500 is described as being performed by particular elements shown in Figures 1 to 4. However, process 500 may also be, for example, performed by other components, by other elements, or in other systems, whether or not such components, elements, or systems are described herein.
  • Operation 510 Flowing from a start block, processing begins at operation 510 where a code block is received, for example, by front end unit 1 10. Operation 510 may also include receiving a bit stream, demodulating the received bit stream, and generating the received code block from the demodulated bit stream.
  • operation 530 it is determined whether the code block quality indicator is greater than or equal to the threshold, for example, by comparison unit 358 of Figure 3.
  • operation 530 may instead include determining whether the code block quality indicator is greater than the threshold, whether the code block quality indicator is less than the threshold, or whether the code block quality indicator is less than or equal to the threshold.
  • the determination of operation 530 may correspond to a determination of a likelihood of successfully decoding a received code block if decoding were attempted. For the illustrated embodiment, if the code block quality indicator is not greater than or equal to the threshold, processing returns to operation 510. Otherwise, processing flows to operation 540.
  • an attempt to decode the received code block is performed, for example, by decoder 260 of Figure 2. From operation 540 processing returns to operation 510. While not shown in Figure 5, if decoding of the received code block is successful, the decoded code block may be provided, for example, to back end unit 130 of Figure 1 before processing returns to operation 510.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Apparatus and methods for selective decoding of received code blocks are disclosed. An example method includes receiving a code block, determining a code block quality indicator for the received code block, and attempting to decode the received code block if the code block quality indicator is greater than or equal to a threshold. If the code block quality indicator is less than the threshold, the received code block is discarded without decoding attempts. The threshold may be a static or dynamic threshold.

Description

APPARATUS AND METHODS FOR SELECTIVE BLOCK DECODING
TECHNICAL FIELD
The present disclosure generally relates to digital communications. More specifically, the technology of the present disclosure is applicable to the decoding of code blocks by a digital receiver.
BACKGROUND
Digital communication technologies have become an integral part of everyday modern life. For example, digital communication technologies enable wired and/or wireless data reception and/or transmission to and/or from a wide range of computing and other devices such as mobile telephones, other mobile devices, televisions, computer systems, telemetry systems, and/or the like. Likewise, digital communications technologies are employed to provide voice and/or data communications for a wide range of business and consumer applications. For many of these and other digital communication devices and applications, engineers often strive to design systems of relatively low complexity and that consume relatively little power.
Signals within and/or between digital communication devices are often encoded for transmission, for example, with forward error correction coding (e.g., block coding, Hamming coding, Golay coding, etc.). Decoders are often included in digital communication devices to decode signals after reception. While use of coding typically improves the ability of receiving devices to re-create a transmitted signal in spite of channel non-idealities (e.g., signal degradations due to environmental loss, noise, interference, etc.), many encoding/decoding processes are mathematically/processor intensive. Accordingly, inclusion of a decoder in a device increases the complexity of the device - especially if the decoder is a high- performance decoder.
Moreover, typically known decoders offer only finite error correcting capabilities. In other words, these decoders may only be able to decode signals that are degraded by less than a correctable amount of degradation. For example, if a signal has been degraded by more than the correctable amount of degradation, the decoder may be unable to decode the signal. As examples, bit error rate (BER) and code strength are metrics that can be used to characterize the decodablilty of a received signal. BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the present disclosure will be described by way of exemplary illustrations, but not limitations, shown in the accompanying drawings in which like references denote similar elements, and in which:
Figure 1 is a block diagram of a computing device in accordance with an embodiment of the present disclosure.
Figure 2 is a block diagram of a decode unit in accordance with an embodiment of the present disclosure.
Figure 3 is a block diagram of a decoder control unit in accordance with an embodiment of the present disclosure.
Figure 4 is a block diagram of another decoder control unit in accordance with an embodiment of the present disclosure.
Figure 5 is a logical flow diagram of a process for selectively decoding code blocks in accordance with an embodiment of the present disclosure.
DETAILED DESCRIPTION
The following description provides specific details for a thorough understanding of, and enabling description for, various embodiments of the technology. One skilled in the art will understand that the technology may be practiced without many of these details. In some instances, well-known structures and functions have not been shown or described in detail to avoid unnecessarily obscuring the description of the embodiments of the technology. It is intended that the terminology used in the description presented below be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain embodiments of the technology.
Although certain terms may be emphasized below, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section. The terms "based on," "based upon," "according to," and/or the like are not exclusive and are equivalent to the term "based, at least in part, on" or similar and include being based on/according to additional factors, some of which are not described herein. References in the singular are made merely for clarity of reading and include plural references unless plural references are specifically excluded. The term "or" is an inclusive "or" operator and is equivalent to the term "and/or" unless specifically indicated otherwise. The term "coupled" means at least either a direct electrical connection between the items connected, or an indirect connection through one or more passive or active intermediary devices. The term "circuit" means at least either a single component or a multiplicity of components, either active and/or passive, that are coupled together to provide a desired function or functions. The term "signal" means at least one current, voltage, charge, temperature, data, or other signal. A "signal" may be used to communicate using active high, active low, time multiplexed, synchronous, asynchronous, differential, complementary, single-ended, or any other digital or analog signaling or modulation technique. For clarity of illustration, various signals may be illustrated in the figures using a single line. However, any such illustration should not be construed as limiting such a signal to being a single-bit signal. Rather, such signals may be multi-bit signals, unless specifically described in this Detailed Description as being only a single-bit signal. Likewise, interconnecting lines as shown in the figures are merely provided to illustrate one or many possible data flow arrangements between interconnected elements. Other data flow arrangements are possible. In the description that follows, the scope of the term "some embodiments" is not to be so limited as to mean more than one embodiment, but rather, the scope may include one embodiment, more than one embodiment, or perhaps all embodiments. Various operations may be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the claimed subject matter. However, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation. Operations described may be performed in a different order than the described embodiment. Various additional operations may be performed and/or described operations may be omitted in additional embodiments.
Apparatus and methods for selective decoding of received code blocks are disclosed. An example method includes receiving a code block, determining information relevant to decoding received code blocks (e.g., a code block quality indicator for a received code block), and selectively attempting to decode the received code block if the relevant information is greater than or equal to a threshold. If the relevant information is less than the threshold, the received code block is discarded without decoding attempts. The technology of the present disclosure may be employed to simplify the design of data receivers, for example, by enabling the use of less complex, lower speed, and/or less sophisticated decoders. In particular, disclosed embodiments attempt to decode code blocks which are expected to be decodable, but discard other code blocks without attempting to decode them if the code blocks are not expected to be decodable by the decoder. In this way, resources are not expended to perform potentially unjustified decoding attempts on code blocks that are unlikely to be successfully decoded. By preventing the potentially unjustified decoding attempts, less decoder bandwidth may be needed and thus a less complex, lower speed, and/or less sophisticated decoder may be employed.
In addition, a static or dynamic threshold may be employed to determine whether or not to attempt decoding of code blocks. As one example, a dynamic threshold that is based on an available decoding capacity of the decoder (e.g., a presently available decoder bandwidth) may be suitably employed. The available decoding capacity of the decoder may be determined based on real-time or near- real-time feedback. Further, use of such a dynamic threshold may enable decoding attempts on a greater percentage of code blocks if the decoder is operating at a relatively light load and more stringently reserve decoder bandwidth for likely decodable code blocks if the decoder is operating at a relatively high load.
The technology disclosed herein may be employed in computing and/or other devices having digital communications interfaces. For example, the disclosed technology may be employed in the receiver of a mobile device, in a wide or local area network interface of a computer system, in a television receiver system, in a global positioning system (GPS) receiver, and/or the like.
Figure 1 is a block diagram of system 190. As illustrated, system 190 includes receiver 100 and optionally includes back end unit 130. As discussed above, system 190 may be employed with computing and/or other devices having digital communications interfaces. However, system 190 may be employed in other types of systems and/or devices.
As illustrated, receiver 100 includes front end unit 1 10 and decode unit 120. In addition, receiver 100 is configured to receive a code block, to demodulate the received code block, and to selectively attempt to decode the received code block based on a likelihood of successfully decoding the received code block, if attempted. In addition, receiver 100 may be further configured to pass decoded code blocks and/or the data contained therein to back end unit 130.
Receiver 100 may be virtually any type of digital receiver. For example, receiver 100 may be a wireless receiver (e.g., a receiver configured to receive and process wireless signals based on any one or more wireless protocols or standards such as Bluetooth, Long Term Evolution (LTE), Global System for Mobile Communications (GSM), code-division multiple access (CDMA), IEEE 802.1 1 (Wi-Fi), Advanced Television Systems Committee (ATSC), etc.). However, receiver 100 may also be a wired or optical receiver (e.g., a digital subscriber line (DSL) receiver, a Data Over Cable Service Interface Specification (DOCSIS) receiver, Fibre Channel (FC) receiver, Synchronous Optical Networking (SONET) receiver, an IEEE 802.3 receiver (Ethernet) receiver, etc.). In yet other embodiments, receiver 100 may be configured to receive signals from within a device, e.g., such as for use with error correcting code (ECC) memories.
As shown, front end unit 1 10 is configured to receive an input signal and to preprocess the input signal before providing an output to decode unit 120. In one embodiment, front end unit 1 10 is configured to receive a bit stream, to demodulate the received bit stream, and to generate the received code block from the demodulated bit stream. However, in another embodiment, front end unit 1 10 may be configured to simply receive code blocks from a digital communications interface.
Front end unit 1 10 may also include any suitable components or combinations thereof. For example, front end unit 1 10 may include a physical layer interface and/or a demodulator. In one embodiment, front end unit 1 10 includes a demodulator configured to determine a log-likelihood ratio (LLR) for each of bit of a received code block, or a subset of the bits, based on a soft- decision demodulation of the corresponding received bit.
In one embodiment, decode unit 120 is configured to selectively attempt to decode the received code block based on a likelihood of successfully decoding the received code block, if attempted. Further details regarding decode unit 120 are discussed below with reference to Figure 2.
As shown in Figure 1 , system 190 also optionally includes back end unit 130. Back end unit 130 may include any component and/or combination of components configured to use or otherwise interact with decoded code blocks and/or the data contained therein. For example, back end unit 130 may include components typically associated with application layer, presentation layer, session layer, transport layer, network layer, or Internet layer functionality. As one specific example, back end unit 130 may be configured to enable user interaction with data from one or more decoded code blocks and may include, for example, a display, a user input device, and/or the like.
Elements of receiver 100 and/or back end unit 130 may be fabricated into or onto an integrated circuit, implemented in a field programmable gate array (FPGA), implemented in software (e.g., with a processor and a processor readable medium), implemented with discrete gates or components, and/or the like. In one embodiment, receiver 100 and back end unit 130 are fabricated into an integrated circuit.
Figure 2 is a block diagram of decode unit 220. Decode unit 220 may be employed as an embodiment of decode unit 120 of Figure 1 . As illustrated, decode unit 220 includes decoder control unit 250 and decoder 260.
In one embodiment, decoder control unit 250 is configured to selectively control decoder 260 by determining whether or not decoder 260 will attempt to decode a given code block. As one example, decoder control unit 250 is configured to determine a code block quality indicator for each code block and to compare the code block quality indicator to a threshold. Based on the outcome of the comparison, decoder control unit 250 may enable or disable decoder 260, selectively place the received code block into a queue for decoding by decoder 260, flag the received code block for decoding, flag the received code block to be discarded, and/or the like.
Further details regarding decoder control unit 250 are discussed below with reference to Figures 3 and 4.
In one embodiment, decoder 260 is configured to, based on an output of the comparison unit, selectively attempt to decode the received code block. For example, decoder 260 may be configured to receive an enable/disable signal from decoder control unit 250 and to attempt to decode a received code block if enabled but not to attempt to decode the received code block if disabled. In this example, received code blocks may be discarded without any attempt to decode the received code block if decoder 260 is disabled. As one specific example, decoder control unit 250 and decoder 260 are configured to attempt to decode the received code block if the code block quality indicator is greater than or equal to the threshold and to discard the received code block without attempting to decode it if the code block quality indicator is less than the threshold.
Decoder 260 may include any decoder suitable for decoding the received code blocks. For example, decoder 260 may include a linear block decoder, a cyclic decoder, a Golay decoder, a Reed-Solomon decoder, and/or the like. However, other suitable decoders may be employed as decoder 260.
Figure 3 is a block diagram of decoder control unit 350. Decoder control unit 350 may be employed as an embodiment of decoder control unit 250 of Figure 2. As illustrated, decoder control unit 350 includes quality determination unit 352, threshold unit 356, and comparison unit 358. As discussed above, decoder control unit 350 may be configured to determine whether or not to attempt to decode a received and/or demodulated code block.
In one embodiment, quality determination unit 352 is configured to determine a code block quality indicator for a received code block based on a likelihood of successfully decoding the received code block, for example, if attempted by a given decoder (e.g., a decoder designed to be employed with quality determination unit 352).
Quality determination unit 352 may also be configured to determine the code block quality indicator by any suitable process, based on any suitable metric, or by any suitable combination of processes and/or metrics. As one example, quality determination unit 352 may be configured to determine a code block quality indicator based on an LLR calculated from the received code block and/or a portion thereof. In this example, the LLR may be a maximum or minimum LLR value from bits of the received code block, an average of LLRs from the bits of the received code block, an absolute value of an LLR/LLRs from one or more bits of the received code block, an absolute value of an average of LLRs from bits of the received code block, and/or the like.
In other examples, quality determination unit 352 may be configured to determine a code block quality indicator based on error vector magnitude (EVM) of the received code block, based on a Hamming distance between the received code block and a potential matching code block of a code book, or based on a distribution (e.g., an average or minimal Hamming distance between different code words) of Hamming distances between code blocks in an employed code book. In yet other examples, quality determination unit 352 may be configured to determine the code block quality indicator based on other metrics such as a received signal strength indication (RSSI), a signal-to-noise ratio (SNR), a received power spectral density (PSD), feedback regarding prior decode attempts, a characteristic (e.g., length, coding rate, or coding strength) of the received code block, and/or the like. Moreover, quality determination unit 352 may be configured to determine a code block quality indicator based on any combination of metrics and/or other factors, including those discussed above. As one particular example, quality determination unit 352 may be configured to determine a code block quality indicator based on a combination of (1 ) LLRs of a received code block, (2) an EVM of the received code block, and (3) soft-decision demodulation information from the received code block.
In one embodiment, threshold unit 356 is configured to provide a threshold to comparison unit 358 to enable comparison between a code block quality indicator for a received code block and the threshold. Threshold unit 356 may include any one or more of a variety of components for generating and/or storing the threshold. For example, threshold unit 356 may include volatile or non-volatile memory, a micro-processor interface, a micro-processor, a register, and/or the like.
In addition, the threshold may be either a static or a dynamic threshold. For example, threshold unit 356 may provide a dynamic threshold based on a real-time operational characteristic of the computing device which embodies receiver 100. An available decoding capacity of the decoder is one example of a real-time operational characteristic upon which the threshold may be based. In this example, the available decoding capacity may be determined based on realtime or near-real-time feedback. However, other embodiments may employ different and/or additional operational characteristics and/or variables to provide the threshold. For example, the dynamic threshold of yet another embodiment is based on a characteristic (e.g., length or coding strength) of the received code block and a real-time operational characteristic of the computing device embodying receiver 100. In one embodiment, comparison unit 358 is configured to compare the code block quality indicator to a threshold and to selectively enable a decode attempt of the received code block (e.g., by decoder 260 of Figure 2) based on an output of the comparison. In one possible embodiment, comparison unit 358 includes a digital comparator. However, any other suitable components or processes may be employed in comparison unit 358.
Figure 4 is a block diagram of decoder control unit 450. Decoder control unit 450 may be employed as an embodiment of decoder control unit 250 of Figure 2 or as an embodiment of decoder control unit 350 of Figure 3. As illustrated, decoder control unit 450 includes quality determination unit 452, threshold unit 456, and comparison unit 458. As shown in Figure 4, quality determination unit 452 includes bit quality determination unit 452a and block quality determination unit 452b. Quality determination unit 452 is also an example of quality determination unit 352 of Figure 3, and can be employed as an embodiment thereof.
In quality determination unit 452, bit quality determination unit 452a is configured to determine bitwise quality information on the bits of a received code block (either all bits or a subset of the bits of the received code block) while block quality determination unit 452b is determined to determine a code block quality indicator for a received code block based on the bitwise quality information from bit quality determination unit 452a. As one specific example, bit quality determination unit 452a may be configured to determine bit quality indicators for each bit of the received code block based on the LLRs for each bit of the received code block and block quality determination unit 452b is configured to determine the code block quality indicator based on an average of the LLRs for each received bit of the received code block. In this example, the LLRs for the bits of the received code block are based on a soft-decision demodulation of the corresponding received bits.
Threshold unit 456 and comparison unit 458 may be employed as respective embodiments of threshold unit 356 and comparison unit 358 of Figure 3.
Figure 5 is a logical flow diagram of process 500 for selectively decoding code blocks. For clarity, process 500 is described as being performed by particular elements shown in Figures 1 to 4. However, process 500 may also be, for example, performed by other components, by other elements, or in other systems, whether or not such components, elements, or systems are described herein.
Flowing from a start block, processing begins at operation 510 where a code block is received, for example, by front end unit 1 10. Operation 510 may also include receiving a bit stream, demodulating the received bit stream, and generating the received code block from the demodulated bit stream.
From operation 510, processing flows to operation 520 where a code block quality indicator for the received code block is determined, for example, by quality determination unit 352 of Figure 3. Determining the code block quality indicator may include or be based on any of the features discussed in conjunction with the preceding figures.
Processing then flows to operation 530 where it is determined whether the code block quality indicator is greater than or equal to the threshold, for example, by comparison unit 358 of Figure 3. In other embodiments, operation 530 may instead include determining whether the code block quality indicator is greater than the threshold, whether the code block quality indicator is less than the threshold, or whether the code block quality indicator is less than or equal to the threshold. The determination of operation 530 may correspond to a determination of a likelihood of successfully decoding a received code block if decoding were attempted. For the illustrated embodiment, if the code block quality indicator is not greater than or equal to the threshold, processing returns to operation 510. Otherwise, processing flows to operation 540.
At operation 540, an attempt to decode the received code block is performed, for example, by decoder 260 of Figure 2. From operation 540 processing returns to operation 510. While not shown in Figure 5, if decoding of the received code block is successful, the decoded code block may be provided, for example, to back end unit 130 of Figure 1 before processing returns to operation 510.
While the above Detailed Description describes certain embodiments of the invention, and describes the best mode contemplated, no matter how detailed the above appears in text, the invention can be practiced in many ways. Details of the system may vary in implementation, while still being encompassed by the invention disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the invention should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the invention with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed in the specification, unless the above Detailed Description explicitly defines such terms. Accordingly, the actual scope of the invention encompasses not only the disclosed embodiments, but also all equivalent ways of practicing or implementing the invention under the claims.

Claims

CLAIMS What is claimed is:
1 . An apparatus for selectively decoding data, comprising:
a quality determination unit configured to determine a code block quality indicator for a received code block;
a decoder control unit configured to compare the code block quality indicator to a threshold, wherein a value of the code block quality indicator corresponds to a likelihood of successfully decoding the received code block; and a decoder configured to, based on a comparison output of the decoder control unit, selectively attempt to decode the received code block.
2. The apparatus of claim 1 , wherein the decoder control unit and decoder are configured to attempt to decode the received code block if the code block quality indicator is greater than or equal to the threshold and to discard the received code block without attempting to decode the received code block if the code block quality indicator is less than the threshold.
3. The apparatus of claim 1 , wherein the quality determination unit includes:
a bit quality determination unit configured to determine the code block quality indicator based on log-likelihood ratios (LLRs) of bits of the received code block.
4. The apparatus of claim 1 , wherein the front end unit includes:
a demodulator configured to determine log-likelihood ratios (LLRs) for individual bits of the received code block based on a soft-decision
demodulation of a corresponding received bit, and
wherein the quality determination unit includes:
a block quality determination unit configured to determine the code block quality indicator based on an average of LLRs for each received bit of the received code block.
5. The apparatus of claim 3, wherein the quality determination unit is further configured to determine the code block quality indicator based on an error vector magnitude (EVM) of the received code block or soft-decision demodulation information of the received code block.
6. The apparatus of claim 1 , wherein the quality determination unit is further configured to determine the code block quality indicator based on at least one of a Hamming distance between the received code block and a potential matching code block of a code book, a length of the received code block, and a coding rate of the received code block.
7. The apparatus of claim 1 , wherein the threshold is a dynamic threshold based on available decoding capacity of the decoder.
8. The apparatus of claim 7, wherein the dynamic threshold is further based on a length of the received code block and a coding strength of the received code block.
9. The apparatus of claim 1 , wherein the decoder is at least one of a linear block decoder, a cyclic decoder, a Golay decoder, and a Reed-Solomon decoder.
10. The apparatus of claim 1 , further comprising:
a front end unit configured to receive a bit stream, to demodulate the received bit stream, and to generate the received code block from the
demodulated bit stream.
1 1 . A method for selectively decoding data, comprising:
receiving, by a computing device, a code block;
determining, by the computing device, a code block quality indicator that represents a decodablilty of the received code block;
comparing the code block quality indicator against a threshold that is based on an operational characteristic of the computing device or a characteristic of the received code block; and
based on an outcome of the comparison, selectively attempting to decode, by the decoder, the received code block.
12. The method of claim 1 1 , further comprising:
if the code block quality indicator is greater than or equal to the threshold, selectively attempting to decode the received code block; and
if the code block quality indicator is less than the threshold, discarding the received code block without attempting to decode the received code block.
13. The method of claim 1 1 , wherein the code block quality indicator is based on log-likelihood ratios (LLRs) of bits of the received code block.
14. The method of claim 13, wherein the code block quality indicator is further based on an average of LLRs for individual bit of the received code block, and wherein the LLRs are based on a soft-decision demodulation of
corresponding bits.
15. The method of claim 13, wherein the code block quality indicator is based on an error vector magnitude (EVM) of the received code block or soft- decision demodulation information of the received code block.
16. The method of claim 1 1 , wherein the code block quality indicator is based on at least one of a Hamming distance between the received code block and a potential matching code block of a code book, a length of the received code block, and a coding rate of the received code block.
17. The method of claim 1 1 , wherein the threshold is a dynamic threshold based on a real-time operational characteristic of the computing device.
18. The method of claim 17, wherein the real-time operational characteristic of the computing device is an available decoding capacity of a decoder of the computing device, and wherein the dynamic threshold is further based on a length of the received code block and a coding strength of the received code block.
19. A computing device having a digital communications interface, the computing device comprising:
a receiver configured to receive a code block, to demodulate the received code block, and to selectively attempt to decode the received code block based on a likelihood of successfully decoding the received code block if decoding of the code block is attempted; and
a back end unit configured to enable user interaction with data from one or more decoded code blocks.
20. The computing device of claim 19, wherein the receiver comprises: a front end unit configured to receive the code block from the digital communications interface, the front end unit including:
a demodulator configured to determine log-likelihood ratios (LLRs) associated with individual bits of the received code block based on a soft- decision bit demodulation;
a quality determination unit configured to determine whether or not to attempt to decode the demodulated code block, wherein the quality determination unit includes: a bit quality determination unit configured to determine bit quality indicators for individual bits of the received code block based on the LLRs;
a block quality determination unit configured to determine the code block quality indicator based on an average of the bit quality indicators; and
a comparison unit configured to compare the code block quality indicator to a threshold and to selectively enable a decode attempt of the received code block based on the comparison, wherein the threshold is a dynamic threshold based on available decoding capacity of a decoder, a length of the received code block, and a coding strength of the received code block; and
the decoder configured to, based on an output of the comparison unit, selectively attempt to decode the received code block.
PCT/US2012/026376 2011-03-29 2012-02-23 Apparatus and methods for selective block decoding WO2012134678A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP12765908.4A EP2692138A4 (en) 2011-03-29 2012-02-23 Apparatus and methods for selective block decoding
CN201280016151.5A CN103597769B (en) 2011-03-29 2012-02-23 Apparatus and methods for selectively decoding data, and computing device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/075,078 US8595603B2 (en) 2011-03-29 2011-03-29 Apparatus and methods for selective block decoding
US13/075,078 2011-03-29

Publications (2)

Publication Number Publication Date
WO2012134678A2 true WO2012134678A2 (en) 2012-10-04
WO2012134678A3 WO2012134678A3 (en) 2012-11-22

Family

ID=46928960

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2012/026376 WO2012134678A2 (en) 2011-03-29 2012-02-23 Apparatus and methods for selective block decoding

Country Status (4)

Country Link
US (1) US8595603B2 (en)
EP (1) EP2692138A4 (en)
CN (1) CN103597769B (en)
WO (1) WO2012134678A2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10440644B2 (en) 2012-06-29 2019-10-08 Qualcomm Incorporated Methods and apparatus for turbo decoder throttling
US9100115B1 (en) * 2014-03-28 2015-08-04 Freescale Semiconductor, Inc. Processor unit for determining a quality indicator of a communication channel and a method thereof
US9735845B2 (en) * 2015-05-20 2017-08-15 Lg Electronics Inc. Parallel processing in a distributed antenna system
US9806921B2 (en) * 2015-12-24 2017-10-31 Intel Corporation Communication device and method for signal determination in radio communication
WO2018157927A1 (en) * 2017-03-01 2018-09-07 Nokia Technologies Oy Decoding
DE102018206159B3 (en) * 2018-04-20 2019-09-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Packet detector / decoder for a radio transmission system
CN110519199A (en) * 2019-09-06 2019-11-29 重庆金美通信有限责任公司 One kind being based on SC-FDMA broadband system anti-interference method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223524A1 (en) 2009-02-27 2010-09-02 Research In Motion Limited Forward Error Correction Decoding Avoidance Based on Predicted Code Block Reliability

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926489A (en) 1996-11-22 1999-07-20 Lsi Logic Corporation Non-equalized digital receiver using block decoding with erasure and error correction
US5936972A (en) * 1997-06-18 1999-08-10 Motorola, Inc. Syndrome-based channel quality or message structure determiner
US6526531B1 (en) 2000-03-22 2003-02-25 Agere Systems Inc. Threshold detection for early termination of iterative decoding
US6553536B1 (en) * 2000-07-07 2003-04-22 International Business Machines Corporation Soft error correction algebraic decoder
KR100424460B1 (en) * 2000-10-05 2004-03-26 삼성전자주식회사 Apparatus and method for detecting transmitting rate of turbo decoder
US6611795B2 (en) * 2000-12-06 2003-08-26 Motorola, Inc. Apparatus and method for providing adaptive forward error correction utilizing the error vector magnitude metric
KR100566241B1 (en) * 2001-11-19 2006-03-29 삼성전자주식회사 Apparatus and method for soft combining symbol in mobile communication system
US20060013181A1 (en) * 2002-07-31 2006-01-19 Victor Stolpman Apparatus, and associated method, for allocating communications in a multi-channel communication system
US7010731B2 (en) * 2002-08-14 2006-03-07 Intel Corporation Method and apparatus of generating a quality indicator
EP1717959A1 (en) * 2005-04-29 2006-11-02 STMicroelectronics N.V. Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords
EP2280506A3 (en) 2006-01-23 2015-03-11 Motorola Mobility LLC Apparatus and methods for handling a message difference prior to decoding based on apriori knowledge of modified codeword transmission
JP2008131601A (en) * 2006-11-24 2008-06-05 Matsushita Electric Ind Co Ltd Communication terminal apparatus, communication system, communication method and program
US8086928B2 (en) * 2007-08-15 2011-12-27 Broadcom Corporation Methods and systems for terminating an iterative decoding process of a forward error correction block
US8077809B2 (en) * 2007-09-28 2011-12-13 Cisco Technology, Inc. Link adaptation based on generic CINR measurement according to log-likelihood ratio distribution
US8238499B2 (en) * 2008-08-29 2012-08-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for low-complexity interference cancellation in communication signal processing
KR101566967B1 (en) * 2009-09-10 2015-11-06 삼성전자주식회사 Method and apparatus for decoding packet in digital broadcasting system
US8497787B2 (en) * 2010-11-12 2013-07-30 Marvell World Trade Ltd. Systems and methods for performing efficient decoding using a hybrid decoder

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223524A1 (en) 2009-02-27 2010-09-02 Research In Motion Limited Forward Error Correction Decoding Avoidance Based on Predicted Code Block Reliability

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2692138A4

Also Published As

Publication number Publication date
EP2692138A2 (en) 2014-02-05
WO2012134678A3 (en) 2012-11-22
EP2692138A4 (en) 2014-08-06
US8595603B2 (en) 2013-11-26
CN103597769B (en) 2017-02-22
CN103597769A (en) 2014-02-19
US20120254703A1 (en) 2012-10-04

Similar Documents

Publication Publication Date Title
US8595603B2 (en) Apparatus and methods for selective block decoding
WO2005064841A1 (en) Method and device for calculating the bit error rate of received signal
US20150092894A1 (en) Receiving device and receiving method
JP2006174437A (en) Receiver and signal processing method thereof
EP2398175B1 (en) Method and circuit for BER estimation
US20110216857A1 (en) Receiver for a wireless telecommunication system with a channel deinterleaver
EP1056212A2 (en) Viterbi decoding using single-wrong-turn correction
US20100091909A1 (en) Systems and methods for unequal error protection and soft decision calculations
TWI528731B (en) Apparatus and method for mapping and demapping signals in a system using a low density parity check code
Arshad et al. Implementation and analysis of convolutional codes using MATLAB
US9042856B2 (en) Method and apparatus for using erasure to improve signal decoding during an interference event
CN101141229A (en) Apparatus and method for detecting puncture position
JP2008054235A (en) Modulation method decision unit, receiver, modulation method decision method, and modulation method decision program
US20080195918A1 (en) Preferential transmission of non-coded data over forward error correction code data for efficient power management of a remote device
JP3981490B2 (en) Error correction circuit
US20030101386A1 (en) Method for detecting errors in a real-time data entity comprising at least two bit protions having different relevance and corresponding receiver
US7844279B2 (en) Method for measuring radio channel quality and related equipment
Wymeersch et al. Analysis of an ML data-aided phase ambiguity resolution algorithm for M-PSK
JP2006345475A (en) Network data transmission error detection/correction architecture and method
Ma et al. Enhanced multiple description decoder for error-prone channels
JP2003101601A (en) Modulation mode selector and modulation mode selection method, base station device and mobile station device quipped with modulation mode selectors, radio communication system, and modulation mode selection program
Schrieber et al. Field trial of a redundancy on demand DVB-T2 system
WO2015039521A1 (en) Decoding method and device
KR101713063B1 (en) Parity frame transmission and decoding method in mult-frame transmission system
Kim et al. Power efficient Viterbi decoder based on pre-computation technique for portable digital multimedia broadcasting receiver

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12765908

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE