Estimated Random Additive Noise Decoding Using Quantized Soft-Decision Information (GRAND)

DSGRAND addresses the limitations of existing decoding methods by using quantized soft decision information to enhance block error rate performance, enabling efficient decoding and hardware implementation for diverse code types.

JP2025512782APending Publication Date: 2025-04-22MASSACHUSETTS INST OF TECH +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024556171
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-03-24
Filing Date
2023-01-24
Publication Date
2025-04-22

AI Technical Summary

Technical Problem

Existing decoding methods for error correction codes are limited by their reliance on specific code structures, making them inefficient for universal decoding and hardware implementation, especially in applications requiring Ultra-Reliable Low-Latency Communication (URLLC).

Method used

The development of the DSGRAND (Discretized Soft-Information for GRAND) algorithm, which utilizes quantized soft decision information to adjust its quantization level for improved block error rate performance, allowing for efficient decoding of various code types and hardware implementation.

Benefits of technology

DSGRAND achieves improved block error rate performance comparable to ORBGRAND with five or more soft bits per bit, providing efficient and accurate decoding suitable for hardware implementation and future code introductions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025512782000001_ABST
    Figure 2025512782000001_ABST
Patent Text Reader

Abstract

We present a soft-decision version of Guessing Random Additive Noise Decoding (GRAND), called discretized soft-information for GRAND (DSGRAND), that is capable of efficiently decoding any moderately redundant block code with an algorithm that is amenable to highly parallel implementation in hardware. DSGRAND provides near maximum likelihood decoding performance when provided with 5 or more bits of soft information per received bit by discretizing the soft information into noise-contributed sequences and assigning those sequences into bins according to weights. The use of these bins provides a discrete and simplified way of ordering the noise estimates.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH

[0001] This invention was made with Government support under HR0011-2-12-0008 awarded by the Defense Advanced Research Projects Agency. The Government has certain rights in this invention.

[0002]

[0002] Since Maximum Likelihood (ML) error-correcting decoding of linear codes is NP-complete, the engineering paradigm has been to co-design a restricted class of linear code-books with code-specific decoding methods that exploit the code structure to enable computationally efficient approximate ML decoding. Examples include Bose-Chaudhuri-Hocquenghem (BCH) codes with hard-decision Berlekamp-Massey decoding, low-density parity-check codes and Belief Propagation, CRC-Assisted Polar (CA-Polar) codes adopted for all control channel communications in 5G New Radio (NR), and CRC-Assisted Successive Cancellation List (CA-SCL) decoding.

[0003]

[0003] Modern applications, including augmented and virtual reality, vehicle-to-vehicle communication, Internet of Things, and machine-based communication, are accelerating the demand for Ultra-Reliable Low-Latency Communication (URLLC). To enable these technologies, the use of short, fast codes is required, reviving the possibility of creating accurate universal decoders that are suitable for hardware implementation. Accurate and practically realizable universal decoders offer the possibility of reduced hardware footprint, providing hard or soft decision decoding for codes that currently only have one class of decoders, and future-proofing devices against the introduction of new codes.

[0004]

[0004] Guessing Random Additive Noise Decoding (GRAND) is a recently introduced universal decoder originally established for hard-decision demodulation systems, see US Pat. Nos. 10,608,673 and 11,095,314. The GRAND algorithm works by sequentially removing the estimated noise contribution from the demodulated received sequence and querying if what remains is in the codebook. The first instance where a codebook member is found is the decoding. The pseudocode for GRAND can be found in Table 1 below, as reproduced in the flow chart of FIG. 1. It can be easily established that GRAND identifies ML decoding methods if it queries binary noise contributions from most likely to least likely based on available hard or soft information. In the hard-decision setting, GRAND is amenable to mathematical analysis and can be used to determine error exponents for a wide class of additive noise models.

[0005] [Table 1]

[0006] For an [n,k] code (where k information bits are converted into n coded bits for communication), the GRAND algorithm (i.e., an algorithm implemented according to the GRAND concept) in a binary symmetric channel has an average of 2 n-k After an approximately geometrically distributed number of codebook queries, GRAND identifies erroneous decodings and correctly decodes them if they have previously identified the codeword. As a result, the upper bound on the complexity of the GRAND algorithms is determined by the number of redundant bits rather than directly by the code length or rate, making them suitable for decoding any moderately redundant code of any length. Performance differences between GRAND variants generally arise from the fact that they utilize statistical noise models or soft information to improve the targeting of their queries prior to identifying erroneous decodings.

[0007]

[0006] The obvious parallelizability of the codebook queries of the hard-decision GRAND has already led to the proposal and realization of efficient circuit implementations for binary symmetric channels. Algorithms for channels subject to bursty noise with statistics known to the receiver have also been introduced, again leading to proposed circuit implementations.

[0008]

[0007] In accordance with the concepts described herein, it is recognized that one problem is how to use soft decision information, if available, to change, adjust, modify, or otherwise alter (ideally improve) the query order of GRAND. Several techniques have been proposed to use the soft decision information. One technique, called Symbol Reliability GRAND (SRGRAND), uses the most limited quantized soft information, where one additional bit tags each demodulated symbol as being reliably or unreliably received. SRGRAND is mathematically analyzable and hardware implementable, providing a gain of 0.5-0.75 dB over hard decision GRAND. One technique, called Soft GRAND (SGRAND), uses real-valued soft information for each demodulated bit to construct a custom-made noise-impacted query order for each received signal. Using a dynamic max heap data structure, it is possible to create a semi-parallelizable implementation in software that provides a benchmark for optimal decoding precision performance, but the implementation is not well suited to hardware implementation.

[0009]

[0008] A technique called Ordered Reliability Bits GRAND (ORBGRAND) aims to bridge the gap between SRGRAND and SGRAND by obtaining the decoding accuracy of SGRAND with an algorithm that is suitable for implementation in circuits. See U.S. Patent Publication No. 2002 / 0302931. For a block code of length n, the ORBGRAND technique achieves a maximum of

number

[0010]

[0009] As new applications drive the demand for shorter and faster error-correcting codes, computationally efficient universal decoding is becoming a possibility. Universal decoders have many practical advantages, including the ability to support a virtually infinite number of distinct codes with a single efficient software or hardware, allowing the best selection of codes for each application and future-proofing devices to the introduction of new codes.

[0011]

[0010] GRAND, only recently introduced, is one promising approach to realizing this possibility. Hard-decision GRAND algorithms enable accurate decoding of codes that only have dedicated soft-decision decoders (such as CA-Polar codes). Moreover, they upgrade codes that only have hard-decision decoders (such as BCH codes) or no error-correction decoders at all (such as CRCs) to soft-decision decoding methods. Much of the existing literature reporting results from GRAND algorithms (both hard-decision and soft-decision) shows that the decoding performance depends heavily on the quality of the decoder, not the code, and that good randomly selected CRCs and codes provide performance as good as highly structured codes.

[0012]

[0011] As mentioned above, one soft-decision version of GRAND that has proven suitable for hardware implementation is ORBGRAND. Described herein is an alternative version of GRAND called DSGRAND (discretized soft-information for GRAND). The DSGRAND technique utilizes explicitly quantized soft-decision information. The DSGRAND technique can tailor its quantization level to the needs of the application to provide improved block error rate performance because the quantization is finer (which corresponds to more bits of soft information). DSGRAND inherits all the desirable features of the GRAND algorithm, including generality, parallelizability, and reduced algorithmic effort as the SNR increases. DSGRAND has increasingly accurate performance as the number of soft information bits per received bit increases. With five or more soft bits per bit, DSGRAND provides block error rate performance comparable to ORBGRAND in an algorithmically discrete package that is also suitable for hardware implementation. Summary of the Invention

[0013]

[0012] Therefore, a first embodiment of the concepts, techniques, and structures disclosed herein is a method of decoding a plurality of received symbols. The method includes further receiving up to log2(Q) bits of associated soft information for one or more of the received symbols, where log2(Q) is an integer. The method also includes allocating one or more noise impact symbols having respective weights determined by the up to log2(Q) bits of associated soft information to at least one of the one or more of the received symbols. The method then includes forming a noise impact sequence from the noise impact symbols. The method then includes determining a noise impact sequence estimation order according to the respective weights. The method requires forming one or more words by reversing a set of sequences of noise impact symbols for the plurality of received symbols according to the noise impact sequence estimation order. The method then requires determining whether each of the formed one or more words is a code word. The method is terminated by terminating according to a termination condition.

[0014]

[0013] In some embodiments, the step of determining the noise impact sequence estimation order includes the steps of determining a total weight for each noise impact sequence and assigning the noise impact sequences to bins according to their respective total weights.

[0015] In some embodiments, assigning the noise affected sequences to bins includes assigning noise affected sequences having larger confidence values ​​to bins having smaller total weights.

[0016] In some embodiments, the step of assigning the noise affected sequences to a given bin includes solving an integer division problem associated with the total weight of the given bin.

[0017]

[0016] Some embodiments further include a step of determining, for one or more of the noise-affected symbols, one of up to Q confidence levels by discretizing confidence values ​​for one or more of the noise-affected symbols.

[0018] In some embodiments, the received symbols are binary symbols, and one or more of the received symbols each have one noise contribution symbol.

[0019] In some embodiments, the selection of a noise impact symbol in a particular noise impact sequence is determined by the proximity of the noise impact sequence to the received signal.

[0020] In some embodiments, the proximity measure comprises a Hamming weight.

[0021] Another embodiment is a system for decoding a plurality of received symbols. The system includes a receiver for receiving a plurality of received symbols from a data channel and further receiving up to log2(Q) bits of associated soft information for one or more of the received symbols, where log2(Q) is an integer. The system also includes a discretization system for allocating one or more noise impact symbols having respective weights determined by the up to log2(Q) bits of associated soft information to at least one of the one or more of the received symbols and for forming a noise impact sequence from the noise impact symbols. The system also includes a noise estimator for iteratively estimating the noise impact sequence according to a noise impact sequence estimation order determined according to the respective weights. And the system includes an estimated code word buffer for temporarily storing estimated code words formed by reversing a set of sequences of the noise impact symbols for the plurality of received symbols according to the noise impact sequence estimation order. The system further includes a code word verifier for determining whether each of the formed one or more words is a code word.

[0022] In some embodiments, the receiver includes a network interface card.

[0023] In some embodiments, the estimated codeword buffer includes primary storage or volatile memory.

[0024] Some embodiments further include a codebook for use by the codeword verifier to determine whether the words stored in the estimated codeword buffer are valid codewords.

[0025] Some embodiments include a noise output device for outputting the channel noise impact sequence determined by the codeword verifier.

[0026]

[0025] In some embodiments, the noise estimator is configured to determine a noise impact sequence estimation order by determining a total weight of each noise impact sequence assigned by the discretization system and assigning the noise impact sequences to bins according to their respective total weights.

[0027] In some embodiments, assigning the noise affected sequences to bins includes assigning noise affected sequences having larger confidence values ​​to bins having smaller total weights.

[0028] In some embodiments, assigning the noise affected sequence to a given bin includes solving an integer division problem associated with the total weight of the given bin.

[0029]

[0028] In some embodiments, the discretization system is configured to determine, for one or more of the noise-affected symbols, one of up to Q confidence levels by discretizing confidence values ​​for one or more of the noise-affected symbols.

[0030] In some embodiments, the receiver is configured to receive the received symbols as binary symbols.

[0031] In some embodiments, the discretization system uses the proximity of a particular noise contribution sequence to the received signal to shape the noise contribution symbols into that noise contribution sequence.

[0032] In some embodiments, the proximity measure includes a Hamming weight.

[0033]

[0032] The manner and process of making and using the disclosed embodiments can be understood by reference to the accompanying drawing figures. It should be understood that the components and structures shown in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the concepts described herein. Like reference numerals refer to corresponding parts throughout the different figures. Moreover, the embodiments are illustrated in the figures by way of example and not by way of limitation. [Brief description of the drawings]

[0034] [Figure 1] FIG. 1 illustrates an algorithm for Guessing Random Additive Noise Decoding (GRAND). [Diagram 2]

[0034] A block diagram of a communication system having a receiving system including a receiver, a binning (i.e., discretization) system, and a decoder according to one embodiment of the concepts, techniques, devices, and systems disclosed in this specification. [Figure 3A]

[0035] 1 is a block diagram of an example receiving system that utilizes the estimation techniques described herein. [Figure 3B]

[0036] FIG. 2 is a block diagram of an alternative embodiment of an exemplary receiving system utilizing the estimation techniques described herein. [Figure 4]

[0037] 4 is a flow chart of a method for decoding received symbols according to one embodiment. [Figure 4A]

[0038] 4 is a flow chart of a method for decoding received symbols according to an alternative embodiment. [Diagram 5]

[0039] FIG. 1 is a plot of block error rate (BLER) versus signal-to-noise ratio per bit (Eb / N0) for decoding a rate 0.97 BCH [255,247] code in a binary phase-shift keyed (BPSK) channel subjected to additive white Gaussian noise (AWGN) using embodiments disclosed herein of GRAND, ORBGRAND, and DSGRAND with various levels of quantized soft information. [Figure 6]

[0040] 1 is a plot of BLER versus Eb / N0 for a rate 0.91 CA-Polar[128,116] code in an AWGN BPSK channel. [Figure 7]

[0041] 1 is a plot of BLER versus Eb / N0 for a rate 0.98 CA-Polar[512,500] code in an AWGN BPSK channel. [Figure 8]

[0042] FIG. 8(a) is a plot of the real-valued soft information per bit versus the sequence number of the received bit in an example simulation, FIG. 8(b) is a plot of demodulating the soft information in FIG. 8(a) into a single bit according to GRAND, and FIG. 8(c) is a plot of the absolute value of the real-valued soft information in FIG. 8(a), which is a measure of the reliability of the received bit. [Figure 9(a)]

[0045] Figure 8(c) is repeated for visual comparison with Figures 9(b)-9(d) to emphasize that the real-valued confidence values ​​are not quantized (i.e., they take values ​​on a continuum). [Figure 9(b)] FIG. 9( a) illustrates 1-bit quantization of the confidence values ​​of FIG. 9( a) according to one embodiment of DSGRAND, in which the continuum is quantized into ranges and confidence values ​​that fall into each range are assigned a respective quantization level (i.e., 1 or 2). [Figure 9(c)]FIG. 9( a) illustrates 2-bit quantization of the confidence values ​​of FIG. 9( a) according to one embodiment of DSGRAND, in which the continuum is quantized into ranges and confidence values ​​that fall into each range are assigned a respective quantization level (i.e., 1 to 4). [Figure 9(d)] FIG. 9( a) illustrates 3-bit quantization of the confidence values ​​of FIG. 9( a) according to one embodiment of DSGRAND, in which the continuum is quantized into ranges and confidence values ​​that fall into each range are assigned a respective quantization level (i.e., 1 to 8). [Figure 10(a)] FIG. 9(a) is repeated for visual comparison with FIGS. 10(b)-10(d). [Figure 10(b)] FIG. 10(b) illustrates 1-bit quantization of the confidence values ​​of FIG. 10(a) according to one embodiment of DSGRAND, where the confidence thresholds used for quantization are selected such that each range has a width that is a multiple of the base confidence value. [Figure 10(c)] FIG. 10(b) illustrates 2-bit quantization of the confidence values ​​of FIG. 10(a) according to one embodiment of DSGRAND, in which the confidence thresholds used for quantization are selected such that each range has a width that is a multiple of the base confidence value. [Figure 10(d)] FIG. 10(b) illustrates 3-bit quantization of the confidence values ​​of FIG. 10(a) according to one embodiment of DSGRAND, where the confidence thresholds used for quantization are selected such that each range has a width that is a multiple of the base confidence value. [Figure 11]

[0053] For example, a diagram showing the Hamming weight of the estimated noise versus position in the noise impact estimation order for a sequence of 16 batches of noise impact estimates in one embodiment of DSGRAND with 1-bit quantization (i.e., two ranges of confidence per bit), as shown in Figure 9(b). DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0035]

[0054] Before describing the broad concepts, devices, systems, and techniques that are sought to be protected herein, some introductory concepts are explained.

[0036]

[0055] In many systems, particularly communication systems where a channel includes one or more communication channels, there may be information available regarding the characteristics of one or more of those channels. Such characteristics may affect information (e.g., analog and / or digital signals) propagating in the channel (and accordingly such effects are referred to herein as "channel effects"). Information regarding (i.e., information describing) channel effects may include (1) information related to the general nature of noise and / or (2) information related to a specific perception of noise on a channel.

[0037]

[0056] With respect to information related to a specific knowledge of the noise affecting the channel, this may be referred to as "soft information." Soft information may include instantaneous information. For example, soft information may include instantaneous detection confidence information, log-likelihood ratio (discussed below), signal-to-noise ratio information, signal-to-interference ratio information, information about inter-symbol information (e.g., from a Rake receiver), information about possible noise behavior (e.g., if the timing information is old or may be approaching staleness, then it is more likely to have noise at the end of the transmission), or the interaction between the modulation (e.g., a particular type of modulation) and the physical channel.

[0038]

[0057] Such soft information is difficult to take into account in decoding schemes. So-called "turbo" decoding implicitly preserves certain soft information in its decoding process, but other schemes typically require custom modifications that add significant complexity. Therefore, despite progress in theoretical improvements regarding the general behavior of noise, current decoding schemes typically ignore the impact of soft information.

[0039]

[0058] In one embodiment of the concepts, devices, systems, and techniques disclosed herein, consider a system that uses a binary [n,k] block code. Binary data is modulated and transmitted as symbols and is subject to additive continuous noise. The modulated channel output Y n is then demodulated to give the hard decision output:

number

[0040] In contrast to continuous noise affecting a channel, "noise contribution" refers to

number

[0041]

[0059] Processing techniques (or "algorithms" in general) based on the GRAND concept are used to estimate the noise contribution z based on the information available to them. n The noise contribution Z is calculated by ranking the noise contributions Z from most likely to least likely and querying the codebook for what remains when the estimated noise contributions are removed from the demodulated signal. n Therefore, for the case of binary symbols, the reliability of the signal Y is expressed as

[0042]

number

[0043]

number

[0044] For this reason,

number

[0045]

[0060] The resulting likelihood-ranked binary noise-impact sequence z n To create

number

[0046]

[0061] In the absence of soft decision information, the approximation is i ) is a constant for all i, and therefore the noise-affected sequences are given by their Hamming weights

number

number

number

[0047]

[0062] In contrast to the above techniques, DSGRAND assumes the quantization of real-valued confidences L(Y) into a limited number of categories determined by the quantization levels as shown in Figures 9 and 10. Before dealing with the upper bound restrictions, consider the following unbounded quantization of confidences starting from the origin and parameterized by β>0:

number

[0048]

[0063] For a given block of n bits and the corresponding discretized reliability, R(Y i )=βq, then s(i,q)=1, otherwise 0.

number

[0049]

number

[0050]

[0064] Given log2(Q) bits of soft information per bit, DSGRAND calculates the real-valued confidence L(Y i ), so that the last category covers β[Q-1,∞) and is assigned R(Y)=Q. Therefore, Q =(m1,...,m Q For a received block of symbols with ≠ 0 1 ) bits and total Hamming weight W, we wish to identify the next set of noise-affected sequences (sometimes referred to herein as "bins"):

[0051]

number

[0052]

[0065] w Q =(w1,w2,...,w Q ) (and therefore each w q represents the number of bits at the corresponding quantization level q that will be inverted for a given sequence weight W),

number

[0053]

number

[0054]

[0066] For the total weight W=0, ω(0,m Q )=(0,...,0), and the most likely noise effect is no bit flips. Q ) = (1,...,0), and therefore all noise-affected sequences with any one bit flipped with s(i,1) = 1 are binned together. For a total weight of W = 2, if m1 ≥ 2, then ω(2,m Q ) consists of two vectors, (2,0,...,0) and (0,1,0...,0), such that any sequence that has two bits (say i and j) with s(i,1)=1 and s(j,1)=1 being inverted, or any sequence that has one bit s(i,2)=1 being inverted, will be binned together, and so on.

[0055]

[0067] In practice, the set ω(W,m Q ) is an integer partitioning problem that can be solved efficiently. Q ∈ω(W,m Q ) for all noise-affected sequences

number

[0056]

[0068] For the simulated performance evaluation, we used binary phase-shift keying (BPSK) modulation and variance σ 2From the above discussion, L(Y)=2|Y| / σ 2 and choose to quantize it into bins with the following parameters:

number

[0057] The first term is 2 / σ 2 normalizes for the increase in reliability using the SNR, while the second term (1-σ / 2) / Q ensures that approximately 30% of the least reliable bits are quantized correctly while the 70% most reliable bits are grouped together. For comparison with DSGRAND at different levels of quantization, GRAND is used as the ML hard-decision decoder and ORBGRAND is used as the state-of-the-art universal soft-decision decoder.

[0058]

[0069] Referring now to FIG. 2, a communication system includes a transmission system having an encoder configured to receive and encode a stream of digital bits.

[0059]

[0070] The encoded digital bitstream (or, more simply, a "coded bitstream") is provided to a transmitter, which receives the encoded bitstream and modulates it for transmission over a channel as is commonly known. It should be understood that any encoding and / or modulation scheme (including any combination of encoding and modulation) may be used (e.g., any linear or nonlinear modulation scheme may be used).

[0060]

[0071] The channel may be implemented as a wired channel (e.g., including one or more of twisted pair wires, coaxial cable, and fiber optic cable) and / or a wireless channel (e.g., utilizing transmission of radio frequency, microwave, satellite, acoustic, or infrared signals). As is commonly known, multiple coded bit streams may be multiplexed over a channel.

[0061]

[0072] The coded modulated bit stream propagates through a channel and is received in whole or in part by a receiving system. The receiving system includes a receiver configured to receive and demodulate the provided coded modulated bit stream signal. The receiver may include a demodulator / demapper that converts the received raw channel data into coded data symbols, which may be bits (e.g., coded via QAM or other techniques), and provides the demodulated data symbols to a decoder that operates according to a noise impact estimation technique. The decoder is thus capable of decoding any string of symbols provided, regardless of the technique used to encode the symbols. The decoder therefore acts as a universal decoder (i.e., a decoder capable of decoding any coded data symbols).

[0062]

[0073] The receiving system further includes a binning system. The binning system receives and processes the provided soft information on noise impact. The soft information on noise impact may be per-symbol soft information (i.e., soft information related to a particular symbol). The soft information on noise impact may be provided to the binning system from one or more sources. For example, the binning system may receive quantized soft information from the channel (i.e., directly from the channel) and / or from the demodulator / demapper and / or from any other source. The binning system processes the soft information on noise impact provided on a sequence of symbols and provides a binned estimated sequence of noise impacts to the decoder. An example of the manner in which the binning system processes the soft information will be described in detail hereinafter. However, in general, the soft information on noise impact associated with a symbol may be used to create a set of quantized weights for noise impacts that may affect that symbol. A sequence of noise contributions (where each noise contribution in the sequence is selected from a set of possible noise contributions for a corresponding symbol) is binned in such a way that all strings of noise contributions in a bin have equal or similar total weights, where the total weights are a function of the quantized soft information of the noise contributions for the symbols in the sequence of strings.

[0063]

[0074] The design of the bins is related to the soft information quantization described herein, however, in a general overview, once the quantization is selected, it is possible to have scenarios where the quantization is fixed and different binnings with the same quantized soft information are created.

[0064]

[0075] A decoder receives the quantized soft information and creates a corresponding binning of the estimated noise contribution sequence. The decoder decodes the provided coded bits using a noise estimation technique based on the binning of the sequence of the estimated noise contribution sequence.

[0065]

[0076] It should be understood that the various embodiments of the binning systems and decoders described herein can be implemented in one or more processors, and / or the functionality performed by the binning systems and decoders can be in the same processor or distributed across multiple processors. After reading the disclosure provided herein, a person of ordinary skill in the art will understand how to implement the systems and techniques described herein in actual circuits and devices.

[0066]

[0077] Referring now to Figure 3A, a receiver is configured to receive and demodulate (demap) a modulated coded sequence of symbols affected by channel noise. This receiver may be the same as or similar to the receiver described above in connection with Figure 2 (as described above in connection with Figure 2, the receiver may act as a demodulator / demapper). The receiver provides the demodulated symbols and soft information to a decoder.

[0067]

[0078] The decoder operates according to a noise estimation technique and also makes use of the soft information provided to it, and is able to decode any symbol provided to it, regardless of the technique used to encode the bits.

[0068]

[0079] In this exemplary embodiment, the decoder includes a binning system that receives and processes the demodulated symbols and the provided quantized soft information. This binning system can be the same as or similar to the binning system described above in connection with FIG. 2. As described above, the soft information can be per-symbol soft information (i.e., soft information associated with a particular symbol), and the binning is performed on a sequence of symbols. In general, the soft information associated with a symbol can be used to generate a quantized set of possible noise contributions for that symbol. That is, the symbol contributions are assigned a quantized weight associated with the soft information associated with the respective symbol.

[0069]

[0080] The decoder provides the quantized noise contributions and associated symbols to an estimation processor that operates according to a noise estimation technique that uses the quantized noise contributions to generate a binning of an estimated noise contribution sequence for the associated symbol sequence, and using the bins to order the estimates, the estimation processor provides the symbols to an output processor.

[0070]

[0081] The receiver may also provide channel information (e.g., signal-to-noise ratio) and, optionally, symbol-specific soft information about noise perception to the end processor. In some embodiments, the end processor may determine a termination condition based on the received information. Typically, the end processor provides information to the output processor indicating that a termination (or stop) condition exists.

[0071]

[0082] As shown in the exemplary embodiment of FIG. 3A, the end processor may determine the termination condition based on information from the receiver and / or based on soft information. In the exemplary embodiment of FIG. 3A, the soft information is shown as being provided to the end processor from the receiver. However, after reading the disclosure provided herein, one of ordinary skill in the art will understand that the soft information may be provided to the end processor from a source other than the receiver. For example, the soft information may be provided to the end processor from a binning system, or directly from the channel, or from an estimation processor (as indicated by the dashed lines in FIG. 3A), or the end processor may receive the soft information by some other means.

[0072]

[0083] In some embodiments, the end processor determines whether or not the receiver SNR exceeds a threshold SNR; the number of iterations has reached a threshold; a determination that the codebook rate is exceeding capacity due to a temporary decrease in channel capacity (e.g., caused by temporary noise); and / or the codeword verifier has declared an erasure for the code; based on the estimation processor providing a first codeword; based on the estimation processor providing a predetermined number of codewords; when a predetermined number of estimations has been reached; after a number of estimations determined according to the SNR has been reached; when some total number of estimations has been reached; when a time limit has been reached; the likelihood that the correct symbol has been found (i.e., the likelihood of accuracy or probability of correct decoding has been reached); the likelihood that the correct symbol has been found exceeds a threshold likelihood value; some threshold probability value P LISTor the existence of a set of codewords that all have a probability of correctness greater than 0. In some embodiments, the end processor may determine the termination condition based on soft information. In some embodiments, the end processor may determine the termination condition based on a combination of receiver information and soft information. In some embodiments, the use of soft information may be optional (as indicated by the dashed soft information line leading to the end processor in FIG. 3A). The end processor receives and processes the provided information and provides an output signal (e.g., related to one or more termination conditions) to the output processor.

[0073]

[0084] The output processor can operate in a variety of different ways according to the needs of a particular application. In an exemplary embodiment, the output processor receives the decoded symbols from the estimation processor and the termination conditions from the termination processor, in response to which the output processor provides an output. The output can correspond, for example, to a fixed-size list of decoded symbols, a list of the symbols according to their probabilities, and a decision to abandon the decoding process for one or more symbols. The output processor can process the provided information in parallel or serially.

[0074]

[0085] It will be understood that the estimation processor, termination processor, and output processor (and any of the processors described herein) may include multiple processors (or processing devices) and that the functions of the estimation, termination, and output processor may be distributed among one or more processors or processing devices.

[0075]

[0086] Referring now to FIG. 3B, an exemplary device 30, which may be the same as or similar to the receiving system described above in connection with FIG. 2, for example, includes functional components that implement the process shown in the algorithm of FIG. 1, improved by the process described hereinafter and shown in FIG. 4.

[0076]

[0087] The device 30 includes a receiver 31 for receiving channel output blocks from a data channel. The receiver 31 may be, for example, a network interface card (NIC) as described below, or similar means. The receiver 31 may in some embodiments be configured to receive data from the data channel as data blocks.

[0077]

[0088] The device 30 includes a noise estimator 32 for iteratively estimating the noise contribution sequence. The noise estimator 32 can be implemented, for example, using a CPU and primary storage, a custom integrated circuit, or similar means.

[0078]

[0089] The device 30 includes an estimated codeword buffer 33 for temporarily storing estimated codewords (i.e., a sequence of symbols input to the channel). The estimated codeword buffer 33 can be, for example, a primary storage, a volatile memory, or a similar means. Thus, the estimated codeword buffer 33 stores the channel output block, which in turn stores a sequence of symbols demodulated by the receiver 31. The estimated codeword buffer 33 is also used to store the channel output block after inverting the estimated noise contribution using the estimated noise contribution sequence (i.e., a sequence of noise contribution symbols) received from the noise estimator 32, as shown in FIG. 3B. Hereinafter, a block of received symbols with the noise contribution inverted is referred to as a "word" to distinguish it from a received block without the noise contribution inverted.

[0079]

[0090] The device 30 includes a code word verifier 34 for verifying the word. The code word verifier 34 can be implemented, for example, using a CPU and primary storage, a custom integrated circuit, or similar means. Thus, if the code word verifier 34 determines that the word stored in the estimated code word buffer 33 is a valid code word, the code word verifier 34 can transmit a "success" signal to the noise estimator 32 and to a transmitted code word output 36 and a noise output 37, which are described below. Otherwise, the code word verifier 34 can transmit a "continue" signal to the noise estimator 32, which should estimate the second most likely sequence of noise symbols.

[0080]

[0091] In some embodiments, the code word verifier 34 may determine that the device 30 should cease further attempts to estimate the noise impact sequence. If so, the code word verifier 34 may transmit a “fail” signal to the noise estimator 32, the transmitted code word output 36, and the noise output 37.

[0081]

[0092] The device 30 may include an optional codebook 35 for use by the codeword verifier 34. The codebook 35 may be implemented, for example, using primary storage, volatile or non-volatile or programmable memory, or similar means. In some embodiments, the codeword verifier 34 uses the codebook 35 to determine whether the word stored in the estimated codeword buffer 33 is a valid codeword. If so, the codeword verifier 34 transmits a "success" signal as described above. In other embodiments, the optional codebook 35 is not present and the codeword verifier 34 performs a computational verification to determine whether the word stored in the estimated codeword buffer 33 is valid. If so, the codeword verifier 34 generates a "success" signal as described above.

[0082]

[0093] Device 30 includes a transmit code word output 36 for outputting the channel input code word transmitted by the data sender as determined by code word verifier 34. Transmit code word output 36 may be any coupling to another circuit or device (not shown) that performs further processing on the channel input code word as determined by device 30. Thus, transmit code word output 36 outputs the word stored in estimated code word buffer 33 upon receiving a “success” signal from code word verifier 34.

[0083]

[0094] In some embodiments, the transmit code word output 36 performs the error handling process 27. Thus, upon receiving a "fail" signal from the code word verifier 34, the transmit code word output 36 indicates the failure to the coupled circuitry. The failure may be indicated, for example, by generating a high or low voltage error signal on the coupled circuitry. Alternatively, or in addition, the transmit code word output 36 may transmit "soft" information about the erasure (e.g., a block of all 0s or all 1s) or error to the coupled circuitry to enable the coupled circuitry to diagnose the error. Such soft information may include, for example, data indicative of how many decoding attempts were performed or the ordering of the noise-affected sequence.

[0084]

[0095] The device 30 includes a noise output 37 for outputting the channel noise contribution sequence determined by the codeword verifier 34. The noise output 37 may be an optional coupling to another circuit or device (not shown) that performs further processing on the estimated sequence of noise contributions. The noise output 37 outputs the estimated sequence of noise contributions upon receiving a "success" signal from the codeword verifier 34.

[0085]

[0096] The noise estimator 32 optionally includes functionality for analyzing the noise impact sequence, as indicated by the dashed line 38 from the noise output 37 to the noise estimator 32. Hence, the noise output 37 can output the estimated noise impact sequence to the noise estimator 32 in addition to outputting the estimated sequence of noise symbols to any coupled circuitry. The noise estimator 32 can then analyze the estimated noise impact sequence to learn patterns of channel noise, for example using machine learning. The noise estimator 32 can then use these noise patterns to update its noise model and reorder the noise impact sequence. Such reordering can be performed, for example, according to likelihood order (e.g., maximum likelihood order) and can be done using estimation techniques or direct computation techniques. In some embodiments, the analysis includes training, in which known input blocks are used to train the receiver on the channel noise. Alternatively or additionally, the analysis can include external information, such as feedback from the sender or from other decoders, to enable on-the-fly machine learning. The analysis, or a portion thereof, may be performed by circuitry coupled to the noise output 37, and the reordered noise impact estimates may be fed back to the noise estimator 32. Such a design advantageously simplifies the design of the noise estimator 32.

[0086]

[0097] The device 30 further includes a binning (or discretization or quantization) system 39. The binning system 39 may be implemented using, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or similar device. In one embodiment, the binning system 39 divides a continuum of reliability values ​​up to 2 based on a number Q of bits of soft information associated with each data symbol received from the channel, as described below and shown in connection with Figures 9 and 10. Qand assigning each noise contribution associated with a received data symbol to one of the confidence levels according to soft information associated with the symbol. In some embodiments, the method further comprises: dividing each noise contribution associated with a received symbol into a confidence level of up to 2 Q Assigning one of the reliability levels includes discretizing the reliability value for the received data symbol.

[0087]

[0098] Moreover, the noise impact estimator 32 is configured to determine the noise impact estimation order according to the confidence levels provided by the binning system 39. In particular, in some embodiments, determining the noise impact estimation order includes ordering the sequences of noise impacts by increasing confidence values, each confidence value corresponding to a weight associated with a bin, the weights of all noise impact sequences in a bin being equal or similar to the bin weight, and the weights of the noise impact sequences being derived from quantized soft information associated with the noise impacts of the symbols in the corresponding sequence. In some embodiments, the allocation of the noise impact sequences to the bins is determined by solving an integer division problem on the total weight associated with that bin.

[0088]

[0099] In the embodiments disclosed above, quantization is performed by a quantization system external to the decoder to reduce the amount of data transferred internally in the decoder, however, it is contemplated that quantization may be performed in the decoder in some embodiments rather than as a separate function within the device.

[0089]

[0100] It should be appreciated that in various embodiments, quantization is performed symbol-by-symbol, while determining the noise contribution sequence is performed block-by-block.

[0090]

[0101] Fig. 4 is a flow chart of a method 40 for decoding a plurality of received symbols according to one embodiment. The method shown in Fig. 4 can be exemplarily performed by the communication system shown in Fig. 2, in particular by the receiving system, or by the device 30 shown in Figs. 3A, 3B.

[0091]

[0102] Prior to receiving the symbols, the method 40 includes two processes. A first process 41 scales a continuum of reliability values ​​up to 2 in accordance with the techniques described above. Q Possessing Q bits of soft information divides the continuum of trust values ​​by up to 2 Q It is understood that it is possible to divide the number of levels into several levels, although fewer levels may be used.

[0092]

[0103] The second process 42 determines a noise impact estimation order according to the confidence level. One such noise impact estimation order is illustrated in Figure 11 and described hereinafter.

[0093]

[0104] The method 40 next includes a process 43 for receiving data symbols (e.g., bits or points in a constellation such as QAM) in a block of data symbols. In some embodiments, the process 43 receives the data symbols to the receiver 31.

[0094]

[0105] Either simultaneously or at a later point in time, the method 40 includes a process 44 for receiving the reliability values ​​of the Q bits as soft information related to, i.e., associated with, the data symbol. In some embodiments, the process 44 receives the reliability values ​​to the quantization processor 39. For example, if the data symbol is intended to represent a point in a constellation, the reliability value may indicate the distance from the symbol to the closest point in the constellation. Alternatively, the reliability value may indicate the signal-to-noise ratio (SNR) of the channel at the time the symbol was transmitted. It is understood that other soft information may be included in the reliability values ​​of the Q bits as known in the art. If the soft information is received at a later point in time, the method 40 applies a mechanism for associating the received soft information with its corresponding data symbol, for example through the use of a timestamp or other techniques known in the art.

[0095]

[0106] Method 40 further calculates the confidence value by 2 Q The process includes a process 45 for allocating the confidence values ​​to one of the levels. The allocation can be performed by the quantization processor 39, or by the noise estimator 32, or by some electronic circuitry for that purpose. The allocation of confidence values ​​to levels is shown in Figures 9 and 10 and is discussed in more detail below.

[0096]

[0107] Method 40 also includes a decision process 46 for determining whether there are more data symbols in the block. Process 46 may be performed by receiver 31, or noise estimator 32, or a combination of the two. If there are more symbols to receive, method 40 returns to process 43.

[0097]

[0108] However, if there are no more symbols to receive, method 40 continues to process 47, which forms one or more words by reversing the noise impact sequence for the received block according to the noise impact estimation order determined in process 42. Note that process 44 receives soft information associated with each data symbol, while process 47 reverses the noise impact for the entire received block to form a sequence of "words" (i.e., estimated code words). In particular, the soft information is applied at a finer granularity level than that of the received block, while the reversing of the estimated noise impact is applied at a coarser granularity level of the entire block via the binned noise impact sequence.

[0098]

[0109] Thus, to complete method 40, process 48 determines whether each of the formed words is a code word. Process 48 may in some embodiments be performed by code word verifier 34 using codebook 35. It will be appreciated that process 47 may form a sequence of words using a most likely (or approximately most likely) ordering of noise according to the received soft information determined as described hereinafter, and thus process 48 generates a sequence that decodes the received data symbols into code words in order of decreasing likelihood.

[0099]

[0110] Shown in Fig. 4A is a flow chart of a method 50 for decoding received symbols according to an alternative embodiment. The method shown in Fig. 4 can be exemplarily performed by the communication system shown in Fig. 2, in particular by the receiving system, or by the device 30 shown in Figs. 3A, 3B.

[0100]

[0111] The method 50 includes a first process 51 for further receiving up to log2(Q) bits of associated soft information for one or more of the received symbols, where log2(Q) is an integer.

[0101]

[0112] The method 50 then includes a second process 52 of assigning to each of one or more of the received symbols one or more noise impact symbols having respective weights determined by up to log2(Q) bits of associated soft information. The weights for each noise impact symbol can illustratively be the Hamming weights of the noise impact symbols. In this manner, each received symbol can be associated with a list of possible noise impacts weighted by their relative likelihoods.

[0102]

[0113] The method 50 continues with a third process 53 of forming a noise impact sequence from the noise impact symbols. As described above, each noise impact sequence will have a total weight equal to the summed weights of its noise impact symbols. Therefore, the total weight of a noise impact sequence can be considered as a measure of the proximity of the noise impact sequence to the received signal.

[0103]

[0114] The method 50 then continues with a fourth process 54 of determining a noise impact sequence estimation order according to their respective weights. This can be done by arranging the noise impact sequences into bins according to their respective total weights, as described above. That is, each bin holds one or more noise impact sequences, and all of the noise impact sequences in each bin have an equal total weight or range of total weights.

[0104]

[0115] The method 50 further continues with a fifth process 55 of forming one or more words by reversing a set of sequences of noise impact symbols for a plurality of received symbols according to the noise impact sequence estimation order. Hence, a noise impact sequence is selected according to the noise impact sequence estimation order, and an estimated code word is formed at the receiver by reversing the effect of the selected sequence. Note that soft information is applied to each received symbol, but the effect of noise is reversed block by block using the noise impact sequence.

[0105]

[0116] Method 50 then includes a decision process 56 that determines whether each of the one or more formed words is a code word. Due to the determination of the noise-impacted sequence estimation order using the techniques described herein, each of the formed words is expected to be a code word at the first such determination a majority of the time. In such a case, method 50 terminates at process 57, which terminates according to an exit condition (e.g., all symbols have been received and correctly decoded).

[0106]

[0117] In the case where one or more of the formed words are not code words, the entire decoding is deemed incorrect, and the method 50 continues to process 58, which selects the next noise-impacted sequence according to the noise-impacted sequence estimation order. In various embodiments described above, the noise-impacted sequence is estimated according to maximum likelihood (i.e., the most likely noise-impacted sequence without bit flips is estimated first, followed by the noise-impacted sequence with any one-bit errors, and so on). The method 50 then returns to process 55 to form the next set of estimated code words. The method continues in this manner either until all formed words are code words, or until another termination condition is reached (e.g., a fixed number of sets of noise-impacted sequences have been tried without success). In this case, an erasure can be output.

[0107]

[0118] Figure 5 shows the decoding results for BCH codes. BCH codes traditionally only have Berlekamp-Massey hard-decision decoders, and previous results show that hard-decision GRAND provides the same block error rate performance. Both ORBGRAND, known in the art, and DSGRAND, disclosed herein, allow soft-decision decoding of BCH codes with comparable performance.

number

[0108]

[0119] The embodiments of DSGRAND disclosed herein advantageously assign received bits to ordered reliability ranges based on soft information, thereby forming groups of bits with similar reliability. In contrast, in ORBGRAND, received bits are individually ordered by their absolute reliability. Although quantization in DSGRAND discretizes the reliability of individual bits, the estimated noise impact sequence is queried in ascending order of their bit weights, which are calculated as the sum of the quantized reliability times the number of bits in that estimated noise impact sequence that have that quantized reliability.

[0109]

[0120] We also compare the performance of the GRAND algorithm with the CA-Polar code, which will be used for control channel communication in 5G NR. The CA-Polar code is a concatenation of a polar inner code and a CRC outer code. The polar bits are used in their dedicated decoder, CA-SCL, for soft-decision list decoding, typically of length 8, and the CRC bits are used to select a decoding method from the list. As a basis for comparison, we also show results for the dedicated soft-decision decoder CA-SCL implemented in the AFF3CT toolbox for the CA-Polar code. Since the product of a linear code and a linear code is a linear code, the GRAND algorithm uses both the CRC bits and the polar bits of the CA-Polar code for error correction.

[0110]

[0121] Figure 6 shows the block error rate (BLER) performance for the CA-Polar[128,116] code with a rate of 0.91. Again, DSGRAND offers incrementally improved performance from GRAND to ORBGRAND with increasing levels of quantization. With log2(Q) = 1 bit of soft information per received bit, DSGRAND achieves 10 -4 At block error rates of 1000 MHz, it sees a gain of 0.7 dB over GRAND, which is similar to the gain reported for SRGRAND. Each additional bit gives roughly an additional 0.3 dB gain. ORBGRAND, using 7=log2(128) bits of soft information per received bit, sees a gain of about 2 dB over its hard-decision detection equivalent. At 6 bits of soft information per bit, DSGRAND slightly outperforms ORBGRAND. CA-SCL gives comparable performance to DSGRAND with 2 bits of soft information per bit, since the error correction capability of the CRC is not fully utilized.

[0111]

[0122] Figure 7 provides similar results for the higher rate (0.98), longer CA-Polar[512,500] code. Soft-decision decoding improves by 10 -4At a target BLER of 1, DSGRAND allows for a 1.5 dB gain over optimal hard-decision decoding. DSGRAND allows for a stepwise improvement in performance, from 0.5 dB at 1 bit to over 1.5 dB at 6 bits, again outperforming ORBGRAND and significantly outperforming CA-SCL.

[0112]

[0123] 8(a)-8(c) (collectively "FIG. 8") show soft information per bit versus sequence number of received bits in an exemplary simulation. In FIG. 8(a), the soft information for a signal Y is shown in raw form as the log-likelihood ratio LLR(Y), defined above, which is real-valued (i.e., between -∞ and +∞).

[0113]

[0124] Shown in Figure 8(b) is the demodulation of the soft information in Figure 8(a) into a single bit, where the real-valued soft information is demodulated to 0 if the signal is positive and to 1 if the signal is negative. That is, if the LLR of a given bit is positive, there is a greater than 50% chance that the bit was a 0, which is how it is demodulated, whereas if the LLR of a given bit is negative, there is a greater than 50% chance that the bit was a 1.

[0114]

[0125] Shown in Fig. 8(c) is the absolute value of the real-valued soft information of Fig. 8(a). This absolute value is L(Y) defined above, which is a measure of the reliability of the received bits. In this figure, larger numbers represent higher reliability, as can be seen by looking at the formula for the demodulation error rate B(Y) above.

[0115]

[0126] FIG. 9(a) repeats FIG. 8(c) for visual comparison with FIG. 9(b)-FIG. 9(d) to emphasize that the real-valued confidence values ​​L(Y), shown as diamonds, are not quantized. In contrast, FIG. 9(b) shows a 1-bit quantization of the confidence values ​​of FIG. 9(a) according to one embodiment of DSGRAND, where the continuum is discretized into ranges, and confidence values ​​falling into each range are assigned a respective quantization level (i.e., 1 or 2). In accordance with the above discussion, confidences below a level 1 threshold are marked as belonging to level 1 (i.e., not more reliable than level 1), and confidences below level 2 are marked as belonging to level 2. That is, each confidence value (shown as a diamond) is quantized by adjusting its value to lie on the quantized confidence line (shown as a square) directly above it.

[0116]

[0127] Demodulation of bits with confidence levels above level 2 may be treated as certain in some embodiments, and no noise estimation is required for those bits. Such embodiments may advantageously result in fast demodulation of those bits. However, in an alternative embodiment, noise estimation may also be performed for those bits if they are placed with the other bits in the quantization level representing the highest confidence (i.e., quantization level 2 in this figure), as shown in FIG. 9(b). That is, they may be placed in quantization levels covering β[Q-1,∞). Specifically, the raw soft information for received bits 1-7 and 10 is quantized as having confidence level 2 (i.e., higher confidence), and the raw soft information for bits 8 and 9 is quantized as having confidence level 1 (i.e., lower confidence).

[0117]

[0128] FIG. 9(c) shows a two-bit quantization of the confidence values ​​of FIG. 9(a) according to one embodiment of DSGRAND, where the continuum is discretized into ranges and confidence values ​​falling into each range are assigned a respective quantization level (i.e., 1 to 4). For the same soft information, using two bits of quantization provides more information for use by the noise estimator than using only one bit as in FIG. 9(b). Specifically, the soft information for bits 1-7 and 10 is now split between higher confidence levels 3 and 4, while the soft information for bits 8 and 9 is split between lower confidence levels 1 and 2. Nevertheless, the relationship between the relative confidences of the bits remains the same, with bit 1 being more reliable than bit 8 under both scenarios, but the quantization of bit 8 captures more information about the magnitude of the difference.

[0118]

[0129] FIG. 9(d) shows a 3-bit quantization of the confidence values ​​of FIG. 9(a) according to one embodiment of DSGRAND, in which the continuum is quantized into ranges, and confidence values ​​that fall into each range are assigned a respective quantization level (i.e., 1 to 8). It can be seen from this figure that increasing the number of bits of quantization does not always have to lead to an improvement in the captured information for the noise estimator. In particular, the total number of quantization levels has doubled between FIG. 9(c) and FIG. 9(d), but the number of quantization levels on which separate bits are placed has not increased, with each figure placing the bits on four different quantization levels. As will be seen from the subsequent discussion of FIG. 11, the noise estimation in DSGRAND depends on the number of separate levels on which the bits are placed, and not necessarily on the relative magnitude of the confidence of those bits. Therefore, FIG. 9(c) and FIG. 9(d) will be decoded using the same noise impact estimation order.

[0119]

[0130] It is understood that the confidence thresholds that define the quantization levels need not be selected to be uniformly spaced, as shown in Figures 9(b)-9(d). Rather, it is only important that the thresholds are selected to be multiples of a base confidence value. This broader view of the quantization levels is shown in Figures 10(a)-10(d) (collectively "Figure 10"). Figure 10(a) repeats Figure 9(a) for visual comparison with Figures 10(b)-10(d).

[0120]

[0131] Figure 10(b) shows a 1-bit quantization of the confidence values ​​of Figure 10(a) according to one embodiment of DSGRAND, where the confidence thresholds used for quantization are selected such that each range has a width that is a multiple of the base confidence value, i.e. the first or base confidence value (quantization level 1) is just below 5, while the second or higher confidence value is just 4 times this number (quantization level 4). Hence, 1-bit quantization as used here simply means that two quantization levels are selected.

[0121]

[0132] FIG 10(c) shows a 2-bit quantization of the confidence values ​​of FIG 10(a) according to one embodiment of DSGRAND, where the confidence thresholds used for quantization are selected to have respective ranges with widths that are multiples of the base confidence value. The four quantization levels are 1x, 4x, 6x, and 8x the base confidence value, as shown. Similarly, FIG 10(d) shows a 3-bit quantization of the confidence values ​​of FIG 10(a) according to one embodiment of DSGRAND, with eight quantization levels ranging from 1x up to 16x the base confidence value.

[0122]

[0133] Once the soft information is quantized, the noise impact estimation proceeds as described herein. Figure 11 shows the estimated noise Hamming weight versus position in the noise impact estimation order for a sequence of 16 sequences of noise impact estimates in an embodiment of DSGRAND with 1-bit quantization (i.e., two ranges of confidence per bit), e.g., as shown in Figure 9(b) or Figure 10(b). The noise impact estimation proceeds according to increasing error weights, as described above, with a weight of 0 representing no noise error.

[0123]

[0134] Weight 1 represents 1 bit in the least reliable quantization level (i.e. level 1) and 0 bit in the second least reliable bit (i.e. level 2), i.e. 1=1*1+0*2. Weight 2 represents 0 bit in level 1 and 1 bit in level 2, i.e. 2=0*1+1*2. Weight 3 represents 1 bit in level 1 and 1 bit in level 2, i.e. 3=1*1+1*2. Higher weights are distributed similarly.

[0124]

[0135] It should be understood that the allocation in Figures 9(b) and 10(b) is 2 bits at level 1 and 8 bits at level 2. Thus, the integer division given by the above formulas can have coefficients representing only 0, 1, or 2 bits for the first term (i.e., the term multiplied by quantization level 1), and can have coefficients representing up to 8 bits for the second term (i.e., the term multiplied by quantization level 2).

[0125]

[0136] The noise impact estimation proceeds by first selecting more bits with lower confidence levels, since these bits are more likely to be in error than bits with higher confidence levels. Hence, the noise estimation labeled 0 in FIG. 11 is "no error", no bits from either level 1 or level 2. Estimate 1 is "1 bit error taken from level 1". Estimate 2 is "1 bit error taken from level 2". Estimate 3 is "2 bit errors, both taken from level 1". Estimate 4 is "2 bit errors, 1 bit from level 1 and 1 bit from level 2". Estimate 5 is "2 bit errors, both from level 2". Estimates 6-8 represent 3 bit errors, estimates 9-11 represent 4 bit errors, and so on.

[0126]

[0137] It is understood that DSGRAND advantageously allows any number of bits in each received block to be placed at each quantization level of noise impact, and thus the noise impact sequence level and associated noise impact sequence estimation pattern for the received block will change if different numbers of bits are settled on different quantization levels. It is further understood that the example of Figure 11 applies to 1-bit quantization, and that if a higher number of bits is used (e.g., as shown in Figures 9(c), 9(d), 10(c), or 10(d)), the noise impact sequence estimation pattern will be further modified.

[0127]

[0138] In an exemplary implementation of the concepts described herein, one or more computers (e.g., integrated circuits, microcontrollers, controllers, microprocessors, processors, field programmable gate arrays, personal computers, on-board computers, remote computers, servers, network hosts, or client computers) may be programmed and specially adapted to (1) perform any of the calculations, operations, programs, or algorithms described or implied above, (2) receive signals indicative of human input, (3) output signals to control transducers to output information in a human perceivable format, (4) process data to perform calculations and execute any algorithms or software, and (5) control the reading or writing of data to a memory device. The one or more computers may be connected to each other or to other components in the system either (a) wirelessly, (b) by wired or fiber optic connections, or (c) by any combination of wired, fiber optic, or wireless connections.

[0128]

[0139] In an exemplary implementation of the concepts described herein, one or more computers can be programmed to perform each and every calculation, operation, program, and algorithm described or implied above, and each and every function described in the immediately preceding paragraph. Similarly, in an exemplary implementation of the concepts described herein, one or more non-transitory machine-accessible media can be encoded with instructions for one or more computers to perform each and every calculation, operation, program, and algorithm described or implied above, and each and every function described in the immediately preceding paragraph.

[0129]

[0140] For example, in some cases, (a) a machine-accessible medium may be encoded with instructions that specify steps in a software program, and (b) a computer may access the instructions encoded on the machine-accessible medium to determine steps to perform in the software program. In an exemplary embodiment, the machine-accessible medium may include a tangible, non-transitory medium. In some cases, the machine-accessible medium may include (a) a memory unit or (b) an auxiliary memory storage device. For example, in some cases, while a program is running, a control unit in the computer may fetch the next encoded instruction from memory.

[0130]

[0141] In some cases, one or more computers are programmed for communication over a network. For example, in some cases, one or more computers are programmed for network communication over (a) the Internet Protocol Suite or (b) any other industry standard for communication, including any USB standard, Ethernet standard (e.g., IEEE 802.3), Token Ring standard (e.g., IEEE 802.5), or wireless communication standard (including IEEE 802.11 (Wi-Fi®), IEEE 802.15 (Bluetooth® / Zigbee®), IEEE 802.16, IEEE 802.20, global system for mobile communications (GSM), universal mobile telecommunication system (UMTS), code division multiple access (CDMA, including IS-95, IS-2000, and WCDMA), long term evolution (LTE), or 5G (e.g., ITU IMT-2020)).

[0131]

[0142] As used herein, "including" means including without limitation. As used herein, the terms "a" and "an", when modifying a noun, do not imply that only one of the noun is present. As used herein, unless the context clearly indicates otherwise, "or" means "and / or, and / or, and / or, and / or." For example, A or B is true if A is true, or if B is true, or if both A and B are true. As used herein, "for example," "for instance," "eg," and "such as" refer to non-limiting examples that are not exclusive examples. The word "consists" (and variations thereof) is to be given the same meaning as the words "comprises" or "includes" (or variations thereof).

[0132]

[0143] The above description (including any accompanying drawings and figures) illustrates exemplary implementations of the concepts described herein. However, the concepts described herein may be implemented in other ways. The methods and apparatus described above are merely exemplary applications of the principles of the concepts described. Many modifications may be made by those skilled in the art without departing from the scope of the invention. The concepts described also include, but are not limited to, respective combinations, subcombinations, and permutations of one or more of the above-described implementations, embodiments, and features.

[0133]

[0144] Various embodiments of the concepts, systems, devices, structures, and techniques sought to be protected are described herein with reference to the associated drawings. Alternative embodiments may be devised without departing from the scope of the concepts, systems, devices, structures, and techniques described herein. It should be noted that various connections and relationships (e.g., above, below, adjacent, etc.) are shown between elements in the following description and in the drawings. These connections and / or relationships may be direct or indirect unless otherwise specified, and the described concepts, systems, devices, structures, and techniques are not intended to be limiting in this respect. Thus, coupling between entities may refer to either direct or indirect coupling, and relationships between entities may be direct or indirect.

[0134]

[0145] As an example of an indirect positional relationship, reference in this description to forming a layer "A" on a layer "B" includes the situation where one or more intermediate layers (e.g., layer "C") are between layers "A" and "B" as long as the relevant properties and functionality of layers "A" and "B" are not substantially altered by the intermediate layer. The following definitions and abbreviations will be used for the interpretation of this specification. The terms "comprises," "comprising," "includes," "including," "has," "having," "contains," or "containing," or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a composition, mixture, process, method, article, or device that includes a list of elements is not necessarily limited to only those elements and can include other elements not expressly listed or inherent to such composition, mixture, process, method, article, or device.

[0135]

[0146] Additionally, the term "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The terms "one or more" and "one or more" are understood to include any integer number greater than or equal to one, i.e., 1, 2, 3, 4, etc. The term "multiple" is understood to include any integer number greater than or equal to two, i.e., 2, 3, 4, 5, etc. The term "connected" can include indirect and direct "connected."

[0136]

[0147] References herein to "one embodiment," "embodiment," "exemplary embodiment," and the like indicate that the embodiment being described may include a particular feature, structure, or characteristic, but that any embodiment may include that particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Furthermore, it is submitted that when a particular feature, structure, or characteristic is described in connection with one embodiment, it is within the knowledge of one of ordinary skill in the art to affect such feature, structure, or characteristic in connection with other embodiments, whether or not expressly stated.

[0137]

[0148] For purposes of the following description, the terms "upper", "lower", "right", "left", "vertical", "horizontal", "top", "bottom" and their derivatives shall refer to the described structures and methods as oriented in the drawings. The terms "on", "on top", "on top of", "disposed on" or "disposed on top of" mean that a first element, such as a first structure, is on a second element, such as a second structure, and there may be an intervening element, such as an interface structure, between the first and second elements. The term "direct contact" means that a first element, such as a first structure, and a second element, such as a second structure, are connected without any intermediate elements.

[0138]

[0149] The use of ordinal terms such as "first," "second," "third," etc., herein to modify elements does not, in and of itself, imply any priority, precedence, or ordering of one element over another, or the temporal order in which acts of a method are performed, but rather is merely used as a label to distinguish one element having a particular name from another element having the same name (apart from the use of the ordinal terminology) for the purposes of distinguishing between the elements.

[0139]

[0150] The terms "approximately" and "about" can be used to mean within ±20% of a target value in some embodiments, within ±10% of a target value, in some embodiments within ±5% of a target value, and even in some embodiments within ±2% of a target value. The terms "approximately" and "about" can include the target value. The term "substantially equal" can be used to refer to values ​​that are within ±20% of each other in some embodiments, within ±10% of each other in some embodiments, within ±5% of each other, and even in some embodiments within ±2% of each other.

[0140]

[0151] The term "substantially" can be used to refer to values ​​that are within ±20%, in some embodiments within ±10%, in some embodiments within ±5%, and even in some embodiments within ±2% of the comparison measurement. For example, a first direction that is "substantially" perpendicular to a second direction can refer to a first direction that is within ±20% of a 90° angle with the second direction in some embodiments, within ±10% of a 90° angle with the second direction in some embodiments, within ±5% of a 90° angle with the second direction, and even in some embodiments within ±2% of a 90° angle with the second direction.

[0141]

[0152] It is to be understood that the disclosed subject matter is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. The disclosed subject matter is capable of other embodiments and of being practiced and carried out in various ways. It is also to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting. Thus, those skilled in the art will appreciate that the conception on which the present disclosure is based may readily be utilized as a basis for the design of other structures, methods and systems for carrying out some of the purposes of the disclosed subject matter.

[0142]

[0153] Thus, while the disclosed subject matter has been described and illustrated in the foregoing exemplary embodiments, it will be understood that the disclosure is made by way of example only, and that many changes in the details of the implementation of the disclosed subject matter can be made without departing from the spirit and scope of the disclosed subject matter.

Claims

1. 1. A method for decoding a plurality of received symbols, comprising the steps of: For one or more of the received symbols, at most log 2 (Q) bits of associated soft information, 2 (Q) is an integer; The maximum log 2 allocating one or more noise impact symbols having respective weights determined by associated soft information of (Q) bits to at least one of the one or more of the received symbols; forming a noise affected sequence from the noise affected symbols; determining a noise impact sequence estimation order according to the respective weights; forming one or more words by reversing a set of sequences of noise contributed symbols for the plurality of received symbols in accordance with the noise contributed sequence estimation order; determining whether each of the formed one or more words is a code word; A step of terminating according to a termination condition; The method includes:

2. 2. The method of claim 1, wherein determining the noise contribution sequence estimation order comprises determining a total weight for each noise contribution sequence and assigning the noise contribution sequences to bins according to their respective total weights.

3. The method of claim 2 , wherein assigning the noise affected sequences to bins comprises assigning noise affected sequences having larger confidence values ​​to bins having smaller total weights.

4. The method of claim 3 , wherein assigning a noise-affected sequence to a given bin comprises solving an integer division problem associated with the total weight of the given bin.

5. 2. The method of claim 1 , further comprising: determining, for one or more of the noise affected symbols, one of up to Q confidence levels by discretizing confidence values ​​for the one or more of the noise affected symbols.

6. The method of claim 1 , wherein the received symbols are binary symbols, and the one or more of the received symbols each have one noise impact symbol.

7. 2. The method of claim 1, wherein the selection of a noise affected symbol in a particular noise affected sequence is determined by the proximity of the noise affected sequence to the received signal.

8. The method of claim 7 , wherein the proximity measure comprises a Hamming weight.

9. 1. A system for decoding a plurality of received symbols, comprising: Receive the plurality of received symbols from a data channel, and for one or more of the received symbols, 2 (Q) bits of associated soft information, 2 a receiver, where (Q) is an integer; The maximum log 2 a discretization system for allocating one or more noise impact symbols having respective weights determined by associated soft information of (Q) bits to at least one of the one or more of the received symbols and for forming a noise impact sequence from the noise impact symbols; a noise estimator for iteratively estimating the noise impact sequence according to a noise impact sequence estimation order determined according to the respective weights; an estimated code word buffer for temporarily storing estimated code words formed by reversing a set of sequences of noise contributed symbols for the plurality of received symbols in accordance with the noise contributed sequence estimation order; a code word verifier for determining whether each of the formed one or more words is a code word; A system including:

10. The system of claim 9 , wherein the receiver comprises a network interface card.

11. The system of claim 9 , wherein the estimated code word buffer comprises primary storage or volatile memory.

12. 10. The system of claim 9, further comprising a codebook for use by the codeword verifier to determine whether the words stored in the estimated codeword buffer are valid codewords.

13. 10. The system of claim 9, further comprising a noise output for outputting a channel noise impact sequence determined by the codeword verifier.

14. 10. The system of claim 9, wherein the noise estimator is configured to determine the noise impact sequence estimation order by determining a total weight of each noise impact sequence assigned by the discretization system and assigning the noise impact sequences to bins according to their respective total weights.

15. The system of claim 14 , wherein assigning the noise affected sequences to bins comprises assigning noise affected sequences having larger confidence values ​​to bins having smaller total weights.

16. The system of claim 15 , wherein assigning a noise-affected sequence to a given bin comprises solving an integer division problem associated with the total weight of the given bin.

17. 10. The system of claim 9, wherein the discretization system is configured to determine, for one or more of the noise affected symbols, one of up to Q confidence levels by discretizing confidence values ​​for the one or more of the noise affected symbols.

18. The system of claim 9 , wherein the receiver is configured to receive the received symbols as binary symbols.

19. 10. The system of claim 9, wherein the discretization system uses a proximity of a particular noise impact sequence to the received signal to form noise impact symbols into the noise impact sequence.

20. The system of claim 19 , wherein the proximity measure comprises a Hamming weight.