WO2017164817A1 - Joint detector/decoder devices and joint detection/decoding methods - Google Patents

Joint detector/decoder devices and joint detection/decoding methods Download PDF

Info

Publication number
WO2017164817A1
WO2017164817A1 PCT/SG2017/050146 SG2017050146W WO2017164817A1 WO 2017164817 A1 WO2017164817 A1 WO 2017164817A1 SG 2017050146 W SG2017050146 W SG 2017050146W WO 2017164817 A1 WO2017164817 A1 WO 2017164817A1
Authority
WO
WIPO (PCT)
Prior art keywords
survivor
metric
survivors
bit sequence
soft information
Prior art date
Application number
PCT/SG2017/050146
Other languages
French (fr)
Inventor
Vintu Jose Alappat
Kheong Sann CHAN
Original Assignee
Agency For Science, Technology And Research
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 Agency For Science, Technology And Research filed Critical Agency For Science, Technology And Research
Publication of WO2017164817A1 publication Critical patent/WO2017164817A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6331Error control coding in combination with equalisation

Definitions

  • Embodiments relate generally to joint detector/decoder devices and joint detection/decoding methods.
  • IDD Iterative detector/decoder
  • ML maximum likelihood decoder
  • SOVA soft output Viterbi algorithm
  • BCJR Bahl, Cocke, Jelinek and Raviv
  • SPA Sum Product Algorithm
  • the IDD is sub-optimal.
  • the sub-optimality can be mainly attributed to the SPA and the iterative process itself.
  • SPA is sub-optimal whenever there are short cycles in the factor graph (FG).
  • FG factor graph
  • iterations both within the SPA decoder and between the SPA decoder and the detector are several open issues for such an IDD scheme, such as severe detection/decoding delay especially for codes with short block lengths or high computational complexity associated with IDD systems in general.
  • the IDD scheme has a performance gap with optimal maximum likelihood (ML) decoder for any code structure.
  • ML decoder works on the principle of minimizing the Euclidean distance between the received symbols and valid codewords. It is independent of the class of codes used for decoding.
  • the performance of ML decoder has been extensively analyzed for two broad classes of codes, namely, block codes and convolutional codes.
  • An efficient trellis-based algorithm known as Viterbi algorithm (VA) can be employed to perform ML decoding for convolutional codes by returning the minimum metric path (or minimum metric sequence (MMS)) through the code trellis.
  • VA Viterbi algorithm
  • MMS minimum metric sequence
  • optimal ML decoding of linear block codes has proven to be an NP-hard (non- deterministic polynomial-time hard) problem, whose complexity grows exponentially with increasing code word length. Research has focused developing optimal and sub- optimal decoding algorithms with moderate complexity for such classes of codes.
  • JVDD Joint Viterbi detector decoder
  • the JVDD performs a metric thresholding operation to filter out survivors (survivor paths) during the course of trellis traversal based on a predefined threshold parameter, whereby survivors with metric (metric value) above a threshold value determined based on the predefined threshold parameter are filtered out (discarded) from the trellis.
  • the threshold parameter may be predefined in view of the performance and the complexity trade-off associated with the JVDD algorithm.
  • choosing a small threshold parameter may increase the risk of discarding the MMLC while reducing the average number of survivors in the trellis structure, leading to lower complexity at the expense of performance.
  • choosing a large threshold parameter may retain more survivors which in turn minimizes the probability of discarding the MMLC, leading to better performance at the cost of higher complexity.
  • a joint detector/decoder device comprising:
  • an input circuit configured to receive an input signal comprising a bit sequence;
  • a soft information determining circuit configured to determine soft information with respect to the received bit sequence;
  • a survivor splitting circuit configured to produce a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence
  • a threshold parameter controlling circuit configured to control a threshold parameter based on the soft information determined
  • a survivor discarding circuit configured to discard one or more survivors based on a set of predetermined criteria, the set of predetermined criteria comprising a first predetermined criterion based on the threshold parameter
  • each survivor has an associated bit sequence.
  • the soft information comprises least metric parameters at respective time instances.
  • the soft information determining circuit is configured to determine a maximum likelihood path through a first trellis structure and the soft information associated to the maximum likelihood path, wherein the first trellis structure represents a time evolution of the received bit sequence, and the least metric parameters of the soft information are metrics associated with the maximum likelihood path at the respective time instances of the first trellis structure.
  • the maximum likelihood path is determined based on a path metric associated thereto, and the maximum likelihood path is a survivor path through the first trellis structure determined to have a minimum path metric based on a Viterbi algorithm.
  • the threshold parameter controlling circuit is configured to control the threshold parameter for a state at a time instance based on a minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at a corresponding time instance.
  • the threshold parameter controlling circuit is configured to control the threshold parameter for the state at the time instance based on a deviation between the minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at the corresponding time instance.
  • the survivor discarding circuit is configured to discard a survivor of the plurality of survivors at the state if the survivor has a metric associated thereto which exceeds a threshold value determined based on the threshold parameter for the state and the minimum metric parameter associated with the state.
  • the set of predetermined criteria further comprises a second predetermined criterion based on a parity check, and wherein based on the second predetermined criterion, the survivor discarding circuit is configured to discard a survivor of the plurality of survivors if the survivor fails the parity check.
  • the metric associated with the survivor is a path metric and is determined based on a sum of branch metrics associated with each branch of a survivor path through which the survivor has propagated.
  • the joint detector/decoder device is configured to detect and decode the received bit sequence based on a second trellis structure representing the time evolution of the received bit sequence, the trellis structure comprising a plurality of nodes, each node corresponding to a particular state associated with the received bit sequence at a particular time instance, wherein the survivor splitting circuit is configured to produce the plurality of survivors and the survivor discarding circuit is configured to discard the one or more survivors at each of the plurality of nodes.
  • a joint detection/decoding method comprising:
  • a threshold parameter based on the soft information determined; and discarding one or more survivors based on a set of predetermined criteria, the set of predetermined criteria comprising a first predetermined criterion based on the threshold parameter,
  • each survivor has an associated bit sequence.
  • the soft information comprises least metric parameters at respective time instances.
  • said determining soft information comprises determining a maximum likelihood path through a first trellis structure and the soft information associated to the maximum likelihood path, wherein the first trellis structure represents a time evolution of the received bit sequence, and the least metric parameters of the soft information are metrics associated with the maximum likelihood path at the respective time instances of the first trellis structure.
  • the maximum likelihood path is determined based on a path metric associated thereto, and the maximum likelihood path is a survivor path through the first trellis structure determined to have a minimum path metric based on a Viterbi algorithm.
  • said controlling a threshold parameter comprises controlling a threshold parameter for a state at a time instance based on a minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at a corresponding time instance.
  • said controlling a threshold parameter for a state at a time instance comprises controlling the threshold parameter for the state at the time instance based on a deviation between the minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at the corresponding time instance.
  • said discarding one or more survivors comprises discarding a survivor of the plurality of survivors at the state if the survivor has a metric associated thereto which exceeds a threshold value determined based on the threshold parameter for the state and the minimum metric parameter associated with the state.
  • the metric associated with the survivor is a path metric and is determined based on a sum of branch metrics associated with each branch of a survivor path through which the survivor has propagated.
  • the joint detection/decoding method is configured to detect and decode the received bit sequence based on a second trellis structure representing the time evolution of the received bit sequence, the trellis structure comprising a plurality of nodes, each node corresponding to a particular state associated with the received bit sequence at a particular time instance, wherein said producing a plurality of survivors and said discarding one or more survivors are performed at each of the plurality of nodes .
  • a computer program product embodied in one or more computer-readable storage mediums, comprising instructions executable by one or more computer processors to perform a joint detection/decoding method comprising:
  • a threshold parameter based on the soft information determined; and discarding one or more survivors based on a set of predetermined criteria, the set of predetermined criteria comprising a first predetermined criterion based on the threshold parameter,
  • each survivor has an associated bit sequence.
  • FIGs. 1A and IB depict schematic drawings of joint detector/decoder devices according to various embodiments of the present invention
  • FIG. 2 depicts a flow diagram of a joint detection/decoding method according to various embodiments of the present invention
  • FIG. 3 depicts a schematic drawing of an exemplary computer system
  • FIG. 4 depicts a block diagram of an exemplary communication system according to various example embodiments of the present invention.
  • FIG. 5 depicts an exemplary joint Viterbi detector/decoder (JVDD) trellis
  • FIG. 6 depicts a block diagram of the present JVDD according to various embodiments of the present invention.
  • FIGs. 7A and 7B depict schematic exemplary representations of the metric thresholding operation at two states at a particular time instance based on the prior JVDD technique (FIG. 7A) and the present JVDD (SJVDD) technique (FIG. 7B) according to various embodiments of the present invention;
  • FIG. 8 depicts a graph showing the frame error rate (FER) performance of the present JVDD (SJVDD) technique according to various embodiments of the present invention compared with the prior JVDD at different signal-to-noise (SNR) ratios for varying threshold values of 0.5, 1.0, and 1.5 in example simulations performed;
  • FER frame error rate
  • FIG. 9 A depicts a graph showing the number of survivors in the trellis using the present JVDD (SJVDD) technique according to various embodiments of the present invention compared with using the prior JVDD for varying threshold in example simulations performed; and
  • FIG. 9B depicts a graph showing the processing delay experienced using the present JVDD (SJVDD) technique according to various embodiments of the present invention compared with using the prior JVDD for varying threshold in example simulations performed.
  • SJVDD present JVDD
  • the joint detector/decoder device as described in this description may include a memory which is for example used in the processing carried out in the joint detector/decoder device.
  • a memory used in the embodiments may be a volatile memory, for example a DRAM (Dynamic Random Access Memory) or a non- volatile memory, for example a PROM (Programmable Read Only Memory), an EPROM (Erasable PROM), EEPROM (Electrically Erasable PROM), or a flash memory, e.g., a floating gate memory, a charge trapping memory, an MRAM (Magnetoresistive Random Access Memory) or a PCRAM (Phase Change Random Access Memory).
  • DRAM Dynamic Random Access Memory
  • PROM Programmable Read Only Memory
  • EPROM Erasable PROM
  • EEPROM Electrical Erasable PROM
  • flash memory e.g., a floating gate memory, a charge trapping memory, an MRAM (Magnetoresistive Random Access Memory) or a PCRAM (Phase Change Random Access Memory).
  • a “circuit” may be understood as any kind of a logic implementing entity, which may be special purpose circuitry or a processor executing software stored in a memory, firmware, or any combination thereof.
  • a “circuit” may be a hard-wired logic circuit or a programmable logic circuit such as a programmable processor, e.g. a microprocessor (e.g. a Complex Instruction Set Computer (CISC) processor or a Reduced Instruction Set Computer (RISC) processor).
  • a “circuit” may also be a processor executing software, e.g., any kind of computer program, e.g., a computer program using a virtual machine code such as Java. Any other kind of implementation of the respective functions which will be described in more detail below may also be understood as a "circuit” in accordance with an alternative embodiment.
  • Detection and decoding of a received signal is a task that is performed in every receiver. Thus, there may be a need for efficient detection and efficient decoding of the received signal.
  • the detector and decoder exist within the context of a channel, be it a communications channel, or a recording channel, or any case where information (bits) are transmitted over a noisy channel.
  • An encoder is needed on the transmitting side/end to protect the bits from noise and the detector and decoder work on the receiving side/end to recover the original bits.
  • JVDD joint Viterbi detector decoder
  • survivors with low probability of being the minimum metric legal codeword are filtered out (discarded from the trellis) by performing metric thresholding and parity checking operations.
  • Knowledge of the channel is employed to filter out (discard) survivors in the trellis based on a predefined threshold parameter being constant throughout the trellis. More specifically, discarding survivors at a state of the trellis with metric above a threshold value (determined as the sum of the predefined threshold parameter and the minimum metric associated with that state) and retaining survivors at or below the threshold value.
  • the threshold parameter may thus be predefined in view of the performance and complexity trade-off associated with the JVDD algorithm and is constant throughout the trellis.
  • choosing a smaller threshold parameter may increase the risk of discarding the MMLC while reducing the average number of survivors in the trellis, leading to lower complexity at the expense of performance.
  • choosing a larger threshold parameter may retain more survivors which in turn minimizes the probability of discarding the MMLC, leading to better performance at the cost of higher complexity.
  • the JVDD algorithm further reduces the number of survivors existing in the trellis by performing syndrome check on the survivors, e.g., after the metric thresholding operation.
  • a syndrome weight of "0" indicates that the codeword is valid and hence all survivors whose syndrome weight is not "0" is discarded from the JVDD trellis.
  • the JVDD algorithm is conditionally optimal over a coded AWGN/ISI channel with condition being sufficiency of computational resources.
  • Various embodiments of the present invention provide a joint detector/decoder device for detecting and decoding information (received bit sequence) that seeks to improve the previously disclosed JVDD algorithm mentioned hereinbefore, such as reducing the complexity without necessarily compromising on the performance of the JVDD algorithm. Accordingly, various embodiments of the present invention advantageously address/overcome, or at least mitigate, issues/problems associated with the above-mentioned performance and complexity trade-off experienced in the JVDD algorithm.
  • Various embodiments of the present invention relate to a class of Viterbi based joint the detection/decoding techniques/algorithms for information transmitted over a coded digital communication system with ISI and AWGN, and provide a framework for reducing the complexity (without necessarily compromising on the performance) of the JVDD for the detection and decoding of information. Accordingly, various embodiments of the present invention may be a modification of or an improvement to the previously disclosed JVDD mentioned hereinbefore, of which may be referred to herein as the present JVDD, the soft JVDD (SJVDD), or the adaptive JVDD.
  • FIG. 1A depicts a schematic drawing of a joint detector/decoder device 100 according to various embodiments of the present invention.
  • the joint detector/decoder device 100 comprises an input circuit 102 configured to receive an input signal comprising a bit sequence (e.g., received bit sequence transmitted through a channel), a soft information determining circuit 104 configured to determine soft information with respect to the received bit sequence, a survivor splitting circuit 106 configured to produce a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence, a threshold parameter controlling circuit 108 configured to control a threshold parameter based on the soft information determined, and a survivor discarding circuit 110 configured to discard one or more survivors based on a set of predetermined criteria.
  • the set of predetermined criteria comprises a first predetermined criterion based on the threshold parameter.
  • each survivor has an associated bit sequence.
  • a "circuit” may also be a processor executing software, e.g., any kind of computer program, e.g., a computer program using a virtual machine code.
  • FIG. IB depicts a schematic drawing of a joint detector/decoder device 120 according to various embodiments of the present invention comprising the input circuit 102, the soft information determining circuit 104, the survivor splitting circuit 106, the threshold parameter controlling circuit 108, and a survivor discarding circuit 1 10, as described with reference to FIG.
  • FIG. 1A which have been implemented as software modules (i.e., input module, soft information determining module, survivor splitting module, threshold parameter controlling module, and survivor discarding module, being computer executable instructions or computer programs/software executable) executable by one or more computer processors. Accordingly, as shown in FIG. 1A, which have been implemented as software modules (i.e., input module, soft information determining module, survivor splitting module, threshold parameter controlling module, and survivor discarding module, being computer executable instructions or computer programs/software executable) executable by one or more computer processors. Accordingly, as shown in FIG.
  • software modules i.e., input module, soft information determining module, survivor splitting module, threshold parameter controlling module, and survivor discarding module, being computer executable instructions or computer programs/software executable
  • the joint detector/decoder device 120 may further comprise a computer processor 1 12 capable of executing computer executable instructions to perform one or more functions or methods (e.g., to produce a plurality of survivors of a next instance), and a computer-readable storage medium 114 communicatively coupled to the processor 1 12 and which may have stored therein one or more sets of computer executable instructions (e.g., input module, soft information determining module, survivor splitting module, threshold parameter controlling module, and/or survivor discarding module).
  • the joint detector/decoder device 100/120 may be a separate or stand-alone device or may be implemented in a computer system for detecting and decoding information received over from a channel from a transmitter.
  • the joint detector/decoder device 100/120 is a joint Viterbi detector/decoder (JVDD) device, and may thus also be referred to as the present JVDD device, the soft JVDD (SJVDD) device, or the adaptive JVDD device.
  • JVDD joint Viterbi detector/decoder
  • various embodiments of the present invention utilize soft information in the JVDD to reduce complexity and/or enhance performance, which thus may be referred to as soft JVDD (SJVDD).
  • the threshold parameter is controlled (e.g., determined or modified) based on soft information, and thus is advantageously adaptive or variable throughout the trellis structure.
  • the previously disclosed JVDD algorithm utilizes a predefined or a particular threshold parameter in view of performance and complexity trade-off, and such a predefined threshold parameter is constant throughout the trellis structure.
  • controlling e.g., determining or modifying/adjusting
  • the threshold parameter based on soft information has been found to advantageously address/overcome, or at least mitigate, issues/problems associated with the performance and complexity trade-off in the JVDD algorithm, as will be demonstrated later below with reference to example simulations performed.
  • utilizing soft information to control the threshold parameter has been found to reduce the complexity of the JVDD algorithm without necessarily being accompanied with the trade-off in the performance in the JVDD algorithm.
  • utilizing soft information to control the threshold parameter has been found to better filter out survivors with lower probability of being the MMLC and better retain survivors with higher chance of being the MMLC. Such an approach may thus maintain a smaller number of survivors (e.g., in survivor list) but having a higher probability of being the MMLC, thus advantageously reducing the complexity and improving the performance of the present JVDD algorithm/technique.
  • the soft information determining circuit 104 is configured to determine the soft information comprising least metric parameters (or simply referred to as "least metrics") at (or associated with) respective time instances. That is, a least metric parameter is determined at or for each time instance.
  • a least metric parameter of the soft information at (or associated with) a time instance is the least (i.e., smallest) minimum metric parameter amongst minimum metric parameters associated with all the states (each state having a minimum metric parameter associated therewith) at the time instance.
  • the soft information determining circuit 104 is configured to determine a maximum likelihood path through a trellis structure (e.g., a first trellis structure) and the soft information associated to the maximum likelihood path.
  • the trellis structure represents a time evolution of the received bit sequence
  • the least metric parameters of the soft information are metrics associated with the maximum likelihood path at the respective time instances of the first trellis structure.
  • the maximum likelihood path is determined based on a path metric associated thereto, and in further embodiments, the maximum likelihood path is a survivor path through the trellis structure determined to have a minimum path metric based on a Viterbi algorithm.
  • the soft information determining circuit 104 may thus determine or produce the minimum metric sequence (MMS) using a Viterbi algorithm on the trellis structure, which may be considered as a sequence of least minimum metric values (least metric parameters) at respective time instances.
  • MMS minimum metric sequence
  • a Viterbi algorithm configured to perform maximum likelihood decoding of a received bit sequence through a trellis structure to determine or produce a maximum likelihood path (or MMS) is known in the art, such as described in G. D. Forney, Jr., "The Viterbi Algorithm", Proceedings of the IEEE, vol. 61, pp. 268- 278, March 1973, the content of which being hereby incorporated by reference in its entirety for all purposes, and thus need not be described or repeated herein for sake of conciseness.
  • the soft information comprises least metric parameters being metrics (metric values) associated with the maximum likelihood path at respective time instances.
  • each time instance may correspond to a time index of the trellis structure, and the metric associated with a path (survivor path) (in this case, the maximum likelihood path) at a time instance may correspond to the path metric of the path at the point of the time instance (time index).
  • the metric (path metric) associated with a path at a time instance may be determined based on a sum of the branch metrics associated with each branch of the path (each branch having a branch metric associated therewith) through which the path has traversed or propagated in the trellis structure up to that time instance.
  • metrics associated with the maximum likelihood path at time instances may thus be metric values associated with the maximum likelihood path at respective time instances along the maximum likelihood path, such as metric values mO to m5 at respective time instances tO to t5 as illustrated in an FIG. 6.
  • the metric values mO to m5 at time instances tO to t5, respectively are 0, 0.2, 0.5, 0.8, 1.1, and 1.5, as the metric associated with a path at a time instance is determined based on a sum of the branch metrics associated with each branch of the path through which the path has traversed or propagated in the trellis structure up to that time instance.
  • the soft information may thus comprise metrics 0, 0.2, 0.5, 0.8, 1.1 and 1.5 at (or associated with) respective time instances tO to t5.
  • the threshold parameter controlling circuit 108 is configured to control the threshold parameter for a state at a time instance based on a minimum metric parameter (or simply referred to as "minimum metric") associated with the state at the time instance and the least metric parameter of the soft information at a corresponding time instance (e.g., at the same time instance).
  • minimum metric parameter or simply referred to as "minimum metric”
  • the minimum metric of (or associated with) that particular state is the minimum (i.e., smallest) metric amongst metrics associated with such survivors reaching that particular state.
  • the threshold parameter controlling circuit 108 is configured to control the threshold parameter for the state at the time instance based on a deviation between the minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at the corresponding time instance.
  • the threshold parameter controlling circuit 108 may be configured to determine an adjustment parameter based on the deviation between the minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at the corresponding time instance for adjusting/modifying an existing or predefined threshold parameter (e.g., adjusting/modifying a constant predefined threshold parameter supplied to the JVDD algorithm as disclosed in the previously disclosed JVDD).
  • the adjustment parameter may be a scaling factor.
  • the minimum metric sequence (MMS) corresponding to the maximum likelihood path be considered as a sequence of least minimum metric values (least metric parameters) ⁇ LMIN t o, LMIN t ⁇ LMINc, ... ⁇ (soft information) at respective time instances (tO, tl, t2, ...), and let m (sljt i ) , m( S 2 ,t i ) , ni (s3;t j ) , and m ⁇ t i ) be the minimum metric values associated with states si , s2, s3, and s4, respectively, at a particular time instance ti.
  • MMS minimum metric sequence
  • the adjustment parameter for a state si at a time instance ti may be determined as a ratio or fraction of the deviation between the minimum metric parameter associated with the state si at time instance ti (i.e., m (S i, t i)) and the least metric paramaeter of the soft information at time instance ti (i.e., LMIN t i), and the minimum metric parameter associated with the state si at time instance ti (i.e., m ⁇ ) ), that is, (m( S j ;t i ) -LMIN t i)/m( S i,ti).
  • the adjustment parameter for a state si at a time instance tl may be determined as
  • the adjustment parameter for a state s2 at a time instance tl may be determined as (m( sl > ti ) -LMIN t i)/m( S i it i) and so on.
  • the adjustment parameter is be set to be zero. Accordingly, in various embodiments, the adjustment parameter may be referred to as a scaling factor or a soft reliability information.
  • the threshold parameter controlling circuit 108 may adjust/modify the existing or predefined threshold parameter based on the adjustment parameter to obtain an adjusted threshold parameter.
  • the adjusted threshold parameter may be obtained by multiplying the predefined threshold parameter with the adjustment parameter to obtain a value, and then subtracting such a value from the predefined threshold parameter, that is, predefined threshold parameter - (predefined threshold parameter x adjustment parameter). Therefore, according to various embodiments of the present invention, the greater the difference between the minimum metric parameter associated with a state at a time instance and the least metric parameter at the time instance, the greater the existing or predefined threshold parameter (e.g., the constant threshold parameter as supplied to the present JVDD algorithm) is reduced.
  • the threshold parameter for each state is not constant throughout the trellis and is controlled by the threshold parameter controlling circuit 108 and thus may vary from one state to another state.
  • Such an approach has been found to allow more survivors with lower metric value to proceed to the next instance and filter out more survivors with larger metric values, thus improving the chances of survivors with lower metrics reaching the end of the trellis structure which reduces the complexity and improves the performance of the present JVDD algorithm.
  • various embodiments of the present invention advantageously provide an adaptive metric thresholding operation that uses the deviation of the minimum metric value at each state from the least minimum metric value across all the states at a particular time instance (time index) to vary the threshold parameter (and thus, metric thresholding value) for each state at that particular time instance.
  • time index time index
  • metric thresholding value metric thresholding value
  • the minimum metric value associated with a state at a particular time instance may only be updated with the path metric value of a survivor reaching that state if the path metric value of the survivor reaching that state is lower than the minimum metric value associated with that state.
  • the adaptive metric threshold operation may be performed by the survivor discarding circuit 110 to filter out survivors, such as survivors with lower probability of being the MMLC.
  • the survivor discarding circuit 1 10 is configured to discard a survivor of the plurality of survivors at the state (e.g., the state at which the metric thresholding is being performed) if the survivor has a metric associated thereto which exceeds a threshold value determined based on the threshold parameter (controlled by the threshold parameter controlling circuit 108) for the state and the minimum metric parameter associated with the state.
  • the threshold parameter for a state may thus be considered as the deviation from the minimum metric associated with the state to obtain the threshold value for the state.
  • the threshold value for a state may be the sum of the threshold parameter for the state and the minimum metric associated with the state.
  • the first predetermined criterion may correspond to the metric thresholding operation as mentioned herein. Accordingly, with the threshold parameter for various states at various time instances (time indexes) along the trellis structure being controlled (e.g., determined or modified/adjusted) based soft information, the threshold parameter is advantageously adaptive or variable for states throughout the trellis structure, instead being fixed or constant throughout the trellis structure, for better filtering out survivors with lower probability of being the MMLC and better retaining survivors with higher chance of being the MMLC.
  • the set of predetermined criteria further comprises a second predetermined criterion based on a parity check, and based on the second predetermined criterion, the survivor discarding circuit 1 10 is configured to discard a survivor of the plurality of survivors if the survivor fails the parity check.
  • the second predetermined criterion may correspond to the parity checking operation as mentioned herein.
  • the metric associated with the survivor is a path metric and may be determined based on a sum of branch metrics associated with each branch of a survivor path through which the survivor has propagated (in the trellis).
  • the joint detector/decoder device 100/120 is configured to detect and decode the received bit sequence based on a trellis structure (e.g., a second trellis structure, e.g., which may be the same as the first trellis structure) representing the time evolution of the received bit sequence), the trellis structure comprising a plurality of nodes, each node corresponding to a particular state associated with the received bit sequence at a particular time instance.
  • the survivor splitting circuit 106 is configured to produce the plurality of survivors and the survivor discarding circuit 1 10 is configured to discard the one or more survivors at each of the plurality of nodes.
  • FIG. 2 depicts a flow diagram of a joint detection/decoding method 200 according to various embodiments of the present invention.
  • the method 200 comprises a step 202 of receiving an input signal comprising a bit sequence, a step 204 of determining soft information with respect to the received bit sequence, a step 206 of producing a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence, a step 208 of controlling a threshold parameter based on the soft information determined, a step 210 of discarding one or more survivors based on a set of predetermined criteria, the set of predetermined criteria comprising a first predetermined criterion based on the threshold parameter.
  • each survivor has an associated bit sequence.
  • a computing system, a controller, a microcontroller or any other system providing a processing capability may be presented according to various embodiments in the present disclosure. Such a system may be taken to include one or more processors and one or more computer-readable storage mediums.
  • the joint detector/decoder device 120 described herein includes a processor (or controller) 112 and a computer-readable storage medium (or memory) 114 which are for example used in various processing carried out therein as described herein.
  • the present specification also discloses a system or an apparatus/device for performing the operations/functions of the methods described herein.
  • a system or apparatus may be specially constructed for the required purposes, or may comprise a general purpose computer or other device selectively activated or reconfigured by a computer program stored in the computer.
  • the algorithms presented herein are not inherently related to any particular computer or other apparatus.
  • Various general purpose machines may be used with computer programs in accordance with the teachings herein.
  • the construction of more specialized apparatus to perform the required method steps may be appropriate.
  • the present specification also at least implicitly discloses a computer program or software/functional module, in that it would be apparent to the person skilled in the art that the individual steps of the methods described herein may be put into effect by computer code.
  • the computer program is not intended to be limited to any particular programming language and implementation thereof. It will be appreciated that a variety of programming languages and coding thereof may be used to implement the methods/techniques of the disclosure contained herein.
  • the computer program is not intended to be limited to any particular control flow. There are many other variants of the computer program, which can use different control flows without departing from the spirit or scope of the invention.
  • modules described herein may be software module(s) realized by computer program(s) or set(s) of instructions executable by a computer processor to perform the required functions, or may be hardware module(s) being functional hardware unit(s) designed to perform the required functions. It will also be appreciated that a combination of hardware and software modules may be implemented.
  • one or more of the steps of the computer program/module or method may be performed in parallel rather than sequentially.
  • Such a computer program may be stored on any computer readable medium.
  • the computer readable medium may include storage devices such as magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a general purpose computer.
  • the computer program when loaded and executed on such a general purpose computer effectively results in an apparatus that implements the steps of the methods described herein.
  • a computer program product embodied in one or more computer-readable storage mediums (non-transitory computer- readable storage medium), comprising instructions (e.g., the input module, the soft information determining module, the survivor splitting module, the threshold parameter controlling module, and the survivor discarding module) executable by one or more computer processors to perform the joint detection/decoding method 200 as described hereinbefore with reference to FIG. 2 or other method(s) described herein.
  • instructions e.g., the input module, the soft information determining module, the survivor splitting module, the threshold parameter controlling module, and the survivor discarding module
  • various computer programs or modules described herein may be stored in a computer program product receivable by a computer system or electronic device (e.g., joint detector/decoder device 120) therein for execution by a processor 112 of the computer system or electronic device to perform the respective functions.
  • a computer system or electronic device e.g., joint detector/decoder device 120
  • the software or functional modules described herein may also be implemented as hardware modules. More particularly, in the hardware sense, a module is a functional hardware unit designed for use with other components or modules. For example, a module may be implemented using discrete electronic components, or it can form a portion of an entire electronic circuit such as an Application Specific Integrated Circuit (ASIC). Numerous other possibilities exist. Those skilled in the art will appreciate that the software or functional module(s) described herein can also be implemented as a combination of hardware and software modules.
  • ASIC Application Specific Integrated Circuit
  • the methods or functional modules of the various example embodiments as described hereinbefore may be implemented on a computer system, such as a computer system 300 as schematically shown in FIG. 3 as an example only.
  • a computer system 300 such as a computer system 300 as schematically shown in FIG. 3 as an example only.
  • the method or functional module may be implemented as software, such as a computer program being executed within the computer system 300, and instructing the computer system 300 (in particular, one or more processors therein) to conduct the methods/functions of various example embodiments.
  • the computer system 300 may comprise a computer module 302, input modules such as a keyboard 304 and mouse 306 and a plurality of output devices such as a display 308, and a printer 310.
  • the computer module 302 may be connected to a computer network 312 via a suitable transceiver device 314, to enable access to e.g. the Internet or other network systems such as Local Area Network (LAN) or Wide Area Network (WAN).
  • the computer module 302 in the example may include a processor 318 for executing various instructions, a Random Access Memory (RAM) 320 and a Read Only Memory (ROM) 322.
  • the computer module 302 may also include a number of Input/Output (I/O) interfaces, for example I/O interface 324 to the display 308, and I/O interface 326 to the keyboard 304.
  • I/O Input/Output
  • the components of the computer module 302 typically communicate via an interconnected bus 328 and in a manner known to the person skilled in the relevant art.
  • FIG. 4 depicts a block diagram of an exemplary communication system 400 according to various example embodiments of the present invention.
  • the communication system 400 includes a transmitter 402 for transmitting a codeword to a receiver 404 through a channel (e.g., ISI/AWGN channel) 406.
  • the receiver 404 comprises a joint Viterbi detector/decoder (SJVDD) 412 according to various example embodiments of the present invention for detecting and decoding the input signal received (received bit sequence) from the channel 406 to recover the information (e.g., corresponding to the joint detector/decoder device 100/120 described hereinbefore).
  • SJVDD joint Viterbi detector/decoder
  • FIG. 4 a conventional iterative detector/decoder including a detector 414 and decoder 416 is shown above the present JVDD (SJVDD) 412 in FIG. 4.
  • the iterative detector/decoder shown in FIG. 4 does not form part of the receiver 404 of the communication system 400 according to various example embodiments of the present invention.
  • the conventional detector 414 may be based on a soft-output detector such as soft output Viterbi algorithm (SOVA) or the Bahl, Cocke, Jelinek, Raviv (BCJR) algorithm which operates/runs on a trellis, followed by the decoder 416 based on sum product algorithm (SPA) which operates/runs on a factor graph (FG).
  • SOVA soft output Viterbi algorithm
  • BCJR Raviv
  • SPA sum product algorithm
  • FG factor graph
  • ML maximum likelihood
  • JVDD has been previously disclosed as an alternative or improved optimal ML detection and decoding technique that attempts to return the MMLC.
  • the JVDD operates on a trellis and may include a two-stage decoding structure, namely, metric thresholding and parity checking, as illustrated in the example Viterbi trellis shown in FIG. 5.
  • the example Viterbi trellis 500 has 4 states corresponding to the "- -" 502 "- +" 504, "+ -" 506 and "+ +” 508 states of the channel.
  • the vertical direction corresponds to different states of the channel while the horizontal direction corresponds to time evolution of the bit sequence.
  • the paths through the trellis thus correspond to the time-evolution of the state of the channel.
  • the state of the channel is determined by the bit sequence into the channel 406 as shown in FIG. 4.
  • a survivor path (exemplary labeled as 516) through the trellis corresponds to a bit sequence into the channel.
  • Each survivor path has a corresponding survivor metric computed as the summation of the metrics of each branch making up the survivor, referred to as the branch metrics.
  • Each branch metric may be computed as the Euclidean distance between the observation z* 414 at that time instance and the noise-free value of the channel output for the given bit sequence input defined by the channel state.
  • 3 ⁇ 4 is the readback observation at time k
  • 3 ⁇ 4 is the noise- free channel output for the given branch transition defined by the state from which and to which the transition (an exemplary transition is given by state 502 at time k to state 506 at time k+1) is occurring.
  • Each transition has its own noise-free value computed from the channel coefficients hk-
  • the survivor metric is formed by summing the branch metric for
  • the JVDD algorithm compares multiple incoming survivor metrics at a given node at a given time instant k and discards those survivors whose metrics exceed a threshold value based on a constant predefined threshold parameter.
  • An example of a survivor path 516 through the trellis is shown in FIG. 5.
  • the states are enumerated as 0: "- -", 1 : “- +", 2: “+ -” and 3: "+ +”.
  • the survivor shown in 516 starts at state 3 and transitions to states 3, 1, 0, 2, 3, 3, 1, 0, and so on, corresponding to the sequence of bits shown associated with survivor.
  • the survivor has an associated metric that is a quantitative measure of how close, in the Euclidean distance sense, the survivor's noise-free waveform is to the actual waveform.
  • the present JVDD (SJVDD) technique/algorithm operates on a trellis structure (e.g., similar to the trellis structure used in the Viterbi algorithm).
  • the present JVDD technique comprises two stages, namely, a first stage relating to minimum metric sequence (MMS) computation, and a second stage relating to soft joint detection and decoding (SJVDD)
  • MMS minimum metric sequence
  • SJVDD soft joint detection and decoding
  • the metric thresholding operation performs adaptive thresholding using the soft information determined by the first stage to filter out survivors that are less probability of being the MMLC.
  • Such a technique has been found to advantageously improve the performance of the system at a reduced complexity by filtering out survivors with a lower probability of being the MMLC and retaining survivors with a higher probability of being the MMLC.
  • the SJVDD technique/algorithm is a joint detector/decoder algorithm that uses a trellis structure to jointly detect and decode information bits, and more particularly, uses soft information to jointly detect/decode the transmitted code sequence. Referring back to the exemplary communication system 400 shown in FIG.
  • the encoder e.g., a low density parity check (LDPC) encoder
  • the coded bits are modulated and transmitted over an ISI/AWGN channel 406 in the example.
  • the received signal, y(t), at any time index can be given as: (Equation 1) where w(t) is the AWGN with zero mean and variance N 0 at given time index t, h is the channel impulse response of length L, and x(t) is the transmitted symbol sequence.
  • the received signal is then fed to the SJVDD 412 (e.g., received by an input circuit 102 as mentioned hereinbefore) for detection and decoding after demodulation.
  • the SJVDD technique/algorithm involves a two stage process, whereby the first stage 418 computes/determines the MMS with soft information and the second stage 420 uses this soft information to jointly detect and decode the transmitted sequence as shown in FIG. 6.
  • the first and second stages 418, 420 will now be described in further detail below according to various example embodiments.
  • the first stage 418 is configured to compute the MMS using the conventional Viterbi algorithm on a trellis structure.
  • the branch metric for all possible transitions of survivors to the next instance is computed and the path metric is recursively updated by selecting, for each state at the time index, the path (survivor path) with the minimum path metric.
  • the path metric is recursively updated by selecting, for each state at the time index, the path (survivor path) with the minimum path metric.
  • each path at a state at a given time index generates two paths (i.e., the existing survivor is split into two new survivors), one path for an input of T and another path for an input of ' ⁇ '.
  • the Viterbi algorithm selects/retains only the path at each state at the given time index with the minimum metric which would then in turn halve the number of survivors.
  • This process continues until the end of trellis structure by returning the trellis to a known state, which typically is the all zero state.
  • the MMS 602 would then be outputted which corresponds to the maximum likelihood path, as for example illustrated in FIG. 6, and the metrics (e.g., mO to m5) associated with the maximum likelihood path at respective time instances (e.g., tO to t5) obtained (soft information comprising least metric parameters at respective time instances) are stored and utilized in the second stage by the threshold parameter controlling circuit 108 for controlling the threshold parameter.
  • the first stage processing or the above-mentioned process (Viterbi algorithm) for determining the maximum likelihood path and the associated soft information may thus correspond to the soft information determining circuit 104 mentioned hereinbefore.
  • the MMS 602 computed may not correspond to the MMLC because it does not take into consideration all possible paths.
  • the second stage 420 of the SJVDD algorithm uses this soft information from the MMS 602 to enhance the metric thresholding operation, as will now be described below.
  • the second stage 420 of processing estimates the MMLC by performing the metric thresholding operation 422 and the parity checking operation 424.
  • the metric thresholding operation may be configured to reduce the number of survivors by using the knowledge of the channel and the obtained soft information
  • the parity checking operation may be configured to reduce the number of survivor by performing the syndrome check on the decoded bits.
  • a plurality of survivors (survivor paths) of a next instance is produced based on at least one survivor of a previous instance and based on the received bit sequence by the survivor splitting circuit 106.
  • the survivor splitting circuit 106 may be configured to produce two survivors of a next instance based on a survivor of a previous instance (i.e., the existing survivor is split into two new survivors), one survivor for an input of T and another survivor for an input of ⁇ '.
  • the corresponding metrics (path metrics) are also computed. This doubles the number of survivors per time-step (time index).
  • survivors are also killed (discarded) at each time-step (hence their name: survivors).
  • This process of discarding survivors in the trellis is performed by the survivor discarding circuit 110 through the metric thresholding operation (e.g., corresponding to the first predetermined criterion described hereinbefore) 422 and the parity checking operation (e.g., corresponding to the second predetermined criterion described hereinbefore) 424.
  • the metric thresholding operation/process filters out (discards) survivors at a state at a time index based on the computed threshold value for the state at the time index, such as survivors having metrics which are outside (exceed) the computed threshold value as illustrated in FIGs. 7A and 7B.
  • a survivor is determined to survive or progress to the next time instance if the metric of the survivor satisfies the computed threshold value (e.g., below or equal to the computed threshold value, such as within the filtering region (shaded region) shown in FIGs. 7A and 7B).
  • FIGs. 7A and 7B depict schematic exemplary representations of the metric thresholding operation at two states (e.g., state 1 and state 2) at a particular time instance based on the JVDD technique and the SJVDD technique, respectively, for illustration purposes only.
  • a constant threshold parameter represented by the double arrows
  • the threshold value represented by the outer circle
  • the minimum metric parameter represented by the most inner circle
  • the threshold parameter is constant throughout the trellis structure.
  • the threshold parameters for the two states at a particular time instance are the same.
  • the threshold parameter is controlled by the threshold parameter controlling circuit 108 based on the soft information as described hereinbefore and thus is an adaptive threshold parameter (modified/adjusted threshold parameter).
  • an adaptive threshold technique is performed by the threshold parameter controlling circuit 108 whereby the threshold parameter for a state at a particular time instance (time index) is computed based on the deviation of the minimum metric value associated with that particular state from the least metric value (MMS value) of the soft information at that particular time instance (i.e., based on the adjustment parameter or scaling factor) according to various embodiments of the present invention.
  • time index the threshold parameter for a state at a particular time instance
  • MMS value least metric value
  • the threshold parameters for the two states may be different depending on the soft information.
  • the threshold parameter may adaptively vary across the states at a particular time instance based on the adjusted threshold parameter (adjusted from the constant threshold parameter supplied), thus providing an adaptive threshold value for filtering out (discarding) survivors at such states at the particular time instance.
  • Such an adaptive metric thresholding technique has been found to better filter out survivors with less probability of being the MMLC and better retain survivors with higher chance of being the MMLC such that the MMLC has a higher chance of surviving until the end of the trellis structure.
  • the technique may thus maintain a smaller number of survivors (e.g., in survivor list) but having a higher probability of being the MMLC, thus advantageously reducing the complexity and improving the performance.
  • the threshold parameter may also be considered to define the rate of growth of the survivors.
  • parity checking operation/process e.g., performed by the survivor discarding circuit 1 10 and based on the second predetermined criterion
  • parity check matrix H is an M x N matrix, where M is the number of parity checks and N is the number of channel bits.
  • the check on the 1 th row of H can occur during the SJVDD algorithm at the time when the channel bit corresponding to the last "1" in ff E - is detected.
  • the checks in the SJVDD parity checking operation occur at nodes 524 in the trellis that correspond to the last "1" of a row in the parity check matrix H, as illustrated in FIG. 5.
  • the H matrix may be configured such that the parity check operation happens towards the end of the trellis.
  • the SJVDD algorithm makes use of knowledge of both the channel and code to return the MMLC.
  • the metric threshold operation uses the knowledge of the channel to define the threshold parameter and discard the survivors that fall outside the threshold value.
  • the parity check matrix section applies the knowledge of the code word to discard survivors that does not comply with syndrome check.
  • the complexity of the JVDD technique/algorithm is attributed to the management of survivors. In particular, allowing higher number of survivors increases the complexity and performance (e.g., accuracy), whereas allowing lower number of survivors decreases the performance (e.g., accuracy) and complexity.
  • the SJVDD technique/algorithm according to various embodiments of the present invention advantageously applies the soft information together with the adaptive threshold technique to improve the accuracy of the metric threshold operation by filtering the survivors with less probability of being the MMLC and retaining survivors with high probability of being the MMLC.
  • adaptive thresholding technique has been found to equal or improve the performance of the SJVDD when compared to the previously disclosed JVDD. This is because, for example as mentioned hereinbefore, the adaptive threshold approach advantageously allows survivors with high probability of being the MMLC to be maintained in the survivor list, while those with less probability of being the MMLC are filtered (discarded). Accordingly, the chance of survivor with high chance of being the MMLC being discarded during the course of trellis traversal is advantageously reduced.
  • FIG. 8 depicts a graph showing the frame error rate (FER) performance of the SJVDD compared with the JVDD at different signal-to-noise (SNR) ratios for varying threshold values of 0.5, 1.0, and 1.5.
  • the complexity is measured as the average number of survivors in the JVDD trellis. It can be observed from FIG. 8 that the SJVDD algorithm equals or betters the performance of JVDD algorithm for varying threshold values.
  • FIG. 9A depicts a graph showing the number of survivors in the trellis using the SJVDD compared with using the JVDD for varying threshold.
  • FIG. 9B depicts the processing delay experienced using the SJVDD compared with using the JVDD for varying threshold. From FIGs. 9A and 9B, it can be observed that the SJVDD algorithm reduces the complexity and processing delay when compared to JVDD algorithm for varying threshold.
  • the above results of example simulations performed demonstrate that the joint detector/decoder device (e.g., SJVDD device) according to various embodiments of the present invention is significantly more efficient computationally without necessarily compromising on performance, thus advantageously addressing/overcoming, or at least mitigate, issues/problems associated with the performance and complexity trade-off experience in the JVDD algorithm.
  • the joint detector/decoder device e.g., SJVDD device

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

There is provided a joint detector/decoder device including an input circuit configured to receive an input signal including a bit sequence, a soft information determining circuit configured to determine soft information with respect to the received bit sequence, a survivor splitting circuit configured to produce a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence, a threshold parameter controlling circuit configured to control a threshold parameter based on the soft information determined, and a survivor discarding circuit configured to discard one or more survivors based on a set of predetermined criteria. In particular, the set of predetermined criteria includes a first predetermined criterion based on the threshold parameter. Furthermore, each survivor has an associated bit sequence. There is also provided a corresponding joint detection/decoding method.

Description

JOINT DETECTOR/DECODER DEVICES AND JOINT
DETECTION/DECODING METHODS
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit of priority of Singapore Patent Application No. 10201602270R, filed 23 March 2016, the content of which being hereby incorporated by reference in its entirety for all purposes.
TECHNICAL FIELD
[0002] Embodiments relate generally to joint detector/decoder devices and joint detection/decoding methods.
BACKGROUND
[0003] Channel detection and decoding algorithms are employed in state of the art communication system to mitigate the effect of channel noise on system performance. Iterative detector/decoder (IDD) and maximum likelihood (ML) decoder are the two classes of most commonly used algorithms for detection and decoding information. IDD uses soft output Viterbi algorithm (SOVA) or the Bahl, Cocke, Jelinek and Raviv (BCJR) algorithm for iterative detection and Sum Product Algorithm (SPA) for decoding. In these systems, the iteration of soft information between these detector and decoder blocks gives rise to good performance over an inter-symbol interference (ISI)/additive white Gaussian noise (AWGN) channel. However, for large codeword length (CWL), the IDD is sub-optimal. The sub-optimality can be mainly attributed to the SPA and the iterative process itself. SPA is sub-optimal whenever there are short cycles in the factor graph (FG). There also exist iterations both within the SPA decoder and between the SPA decoder and the detector. Despite the success of the aforementioned approach, there are several open issues for such an IDD scheme, such as severe detection/decoding delay especially for codes with short block lengths or high computational complexity associated with IDD systems in general. Furthermore, the IDD scheme has a performance gap with optimal maximum likelihood (ML) decoder for any code structure. [0004] ML decoder works on the principle of minimizing the Euclidean distance between the received symbols and valid codewords. It is independent of the class of codes used for decoding. In literature, the performance of ML decoder has been extensively analyzed for two broad classes of codes, namely, block codes and convolutional codes. An efficient trellis-based algorithm known as Viterbi algorithm (VA) can be employed to perform ML decoding for convolutional codes by returning the minimum metric path (or minimum metric sequence (MMS)) through the code trellis. However, optimal ML decoding of linear block codes has proven to be an NP-hard (non- deterministic polynomial-time hard) problem, whose complexity grows exponentially with increasing code word length. Research has focused developing optimal and sub- optimal decoding algorithms with moderate complexity for such classes of codes.
[0005] Joint Viterbi detector decoder (JVDD) has been previously disclosed, such as in United States Patent Application Publication No. US 2014/0219398 Al, as an improved detection and decoding technique that aims to return the minimum metric legal codeword (MMLC). The JVDD performs a metric thresholding operation to filter out survivors (survivor paths) during the course of trellis traversal based on a predefined threshold parameter, whereby survivors with metric (metric value) above a threshold value determined based on the predefined threshold parameter are filtered out (discarded) from the trellis. The threshold parameter may be predefined in view of the performance and the complexity trade-off associated with the JVDD algorithm. In this regard, choosing a small threshold parameter may increase the risk of discarding the MMLC while reducing the average number of survivors in the trellis structure, leading to lower complexity at the expense of performance. On the other hand, choosing a large threshold parameter may retain more survivors which in turn minimizes the probability of discarding the MMLC, leading to better performance at the cost of higher complexity.
[0006] A need therefore exists to provide a joint detector/decoder device and a joint detection/decoding method that seek to overcome, or at least ameliorate, one or more of the deficiencies in conventional detection/decoding techniques. It is against this background that the present invention has been developed. SUMMARY
[0007] According to a first aspect of the present invention, there is provided a joint detector/decoder device comprising:
an input circuit configured to receive an input signal comprising a bit sequence; a soft information determining circuit configured to determine soft information with respect to the received bit sequence;
a survivor splitting circuit configured to produce a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence;
a threshold parameter controlling circuit configured to control a threshold parameter based on the soft information determined; and
a survivor discarding circuit configured to discard one or more survivors based on a set of predetermined criteria, the set of predetermined criteria comprising a first predetermined criterion based on the threshold parameter,
wherein each survivor has an associated bit sequence.
[0008] In various embodiments, the soft information comprises least metric parameters at respective time instances.
[0009] In various embodiments, the soft information determining circuit is configured to determine a maximum likelihood path through a first trellis structure and the soft information associated to the maximum likelihood path, wherein the first trellis structure represents a time evolution of the received bit sequence, and the least metric parameters of the soft information are metrics associated with the maximum likelihood path at the respective time instances of the first trellis structure.
[0010] In various embodiments, the maximum likelihood path is determined based on a path metric associated thereto, and the maximum likelihood path is a survivor path through the first trellis structure determined to have a minimum path metric based on a Viterbi algorithm.
[0011] In various embodiments, the threshold parameter controlling circuit is configured to control the threshold parameter for a state at a time instance based on a minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at a corresponding time instance. [0012] In various embodiments, the threshold parameter controlling circuit is configured to control the threshold parameter for the state at the time instance based on a deviation between the minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at the corresponding time instance.
[0013] In various embodiments, based on the first predetermined criterion, the survivor discarding circuit is configured to discard a survivor of the plurality of survivors at the state if the survivor has a metric associated thereto which exceeds a threshold value determined based on the threshold parameter for the state and the minimum metric parameter associated with the state.
[0014] In various embodiments, the set of predetermined criteria further comprises a second predetermined criterion based on a parity check, and wherein based on the second predetermined criterion, the survivor discarding circuit is configured to discard a survivor of the plurality of survivors if the survivor fails the parity check.
[0015] In various embodiments, the metric associated with the survivor is a path metric and is determined based on a sum of branch metrics associated with each branch of a survivor path through which the survivor has propagated.
[0016] In various embodiments, the joint detector/decoder device is configured to detect and decode the received bit sequence based on a second trellis structure representing the time evolution of the received bit sequence, the trellis structure comprising a plurality of nodes, each node corresponding to a particular state associated with the received bit sequence at a particular time instance, wherein the survivor splitting circuit is configured to produce the plurality of survivors and the survivor discarding circuit is configured to discard the one or more survivors at each of the plurality of nodes.
[0017] According to a second aspect of the present invention, there is provided a joint detection/decoding method comprising:
receiving an input signal comprising a bit sequence;
determining soft information with respect to the received bit sequence;
producing a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence;
controlling a threshold parameter based on the soft information determined; and discarding one or more survivors based on a set of predetermined criteria, the set of predetermined criteria comprising a first predetermined criterion based on the threshold parameter,
wherein each survivor has an associated bit sequence.
[0018] In various embodiments, the soft information comprises least metric parameters at respective time instances.
[0019] In various embodiments, said determining soft information comprises determining a maximum likelihood path through a first trellis structure and the soft information associated to the maximum likelihood path, wherein the first trellis structure represents a time evolution of the received bit sequence, and the least metric parameters of the soft information are metrics associated with the maximum likelihood path at the respective time instances of the first trellis structure.
[0020] In various embodiments, the maximum likelihood path is determined based on a path metric associated thereto, and the maximum likelihood path is a survivor path through the first trellis structure determined to have a minimum path metric based on a Viterbi algorithm.
[0021] In various embodiments, said controlling a threshold parameter comprises controlling a threshold parameter for a state at a time instance based on a minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at a corresponding time instance.
[0022] In various embodiments, said controlling a threshold parameter for a state at a time instance comprises controlling the threshold parameter for the state at the time instance based on a deviation between the minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at the corresponding time instance.
[0023] In various embodiments, based on the first predetermined criterion, said discarding one or more survivors comprises discarding a survivor of the plurality of survivors at the state if the survivor has a metric associated thereto which exceeds a threshold value determined based on the threshold parameter for the state and the minimum metric parameter associated with the state. [0024] In various embodiments, the metric associated with the survivor is a path metric and is determined based on a sum of branch metrics associated with each branch of a survivor path through which the survivor has propagated.
[0025] In various embodiments, the joint detection/decoding method is configured to detect and decode the received bit sequence based on a second trellis structure representing the time evolution of the received bit sequence, the trellis structure comprising a plurality of nodes, each node corresponding to a particular state associated with the received bit sequence at a particular time instance, wherein said producing a plurality of survivors and said discarding one or more survivors are performed at each of the plurality of nodes .
[0026] According to a third aspect of the present invention, there is provided a computer program product, embodied in one or more computer-readable storage mediums, comprising instructions executable by one or more computer processors to perform a joint detection/decoding method comprising:
receiving an input signal comprising a bit sequence;
determining soft information with respect to the received bit sequence;
producing a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence;
controlling a threshold parameter based on the soft information determined; and discarding one or more survivors based on a set of predetermined criteria, the set of predetermined criteria comprising a first predetermined criterion based on the threshold parameter,
wherein each survivor has an associated bit sequence. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] Embodiments of the present invention will be better understood and readily apparent to one of ordinary skill in the art from the following written description, by way of example only, and in conjunction with the drawings, in which: FIGs. 1A and IB depict schematic drawings of joint detector/decoder devices according to various embodiments of the present invention; FIG. 2 depicts a flow diagram of a joint detection/decoding method according to various embodiments of the present invention;
FIG. 3 depicts a schematic drawing of an exemplary computer system;
FIG. 4 depicts a block diagram of an exemplary communication system according to various example embodiments of the present invention;
FIG. 5 depicts an exemplary joint Viterbi detector/decoder (JVDD) trellis;
FIG. 6 depicts a block diagram of the present JVDD according to various embodiments of the present invention;
FIGs. 7A and 7B depict schematic exemplary representations of the metric thresholding operation at two states at a particular time instance based on the prior JVDD technique (FIG. 7A) and the present JVDD (SJVDD) technique (FIG. 7B) according to various embodiments of the present invention;
FIG. 8 depicts a graph showing the frame error rate (FER) performance of the present JVDD (SJVDD) technique according to various embodiments of the present invention compared with the prior JVDD at different signal-to-noise (SNR) ratios for varying threshold values of 0.5, 1.0, and 1.5 in example simulations performed;
FIG. 9 A depicts a graph showing the number of survivors in the trellis using the present JVDD (SJVDD) technique according to various embodiments of the present invention compared with using the prior JVDD for varying threshold in example simulations performed; and
FIG. 9B depicts a graph showing the processing delay experienced using the present JVDD (SJVDD) technique according to various embodiments of the present invention compared with using the prior JVDD for varying threshold in example simulations performed.
DETAILED DESCRIPTION
[0028] Embodiments described below in context of the devices are analogously valid for the respective methods, and vice versa. Furthermore, it will be understood that the embodiments described below may be combined, for example, a part of one embodiment may be combined with a part of another embodiment. [0029] In this context, the joint detector/decoder device as described in this description may include a memory which is for example used in the processing carried out in the joint detector/decoder device. A memory used in the embodiments may be a volatile memory, for example a DRAM (Dynamic Random Access Memory) or a non- volatile memory, for example a PROM (Programmable Read Only Memory), an EPROM (Erasable PROM), EEPROM (Electrically Erasable PROM), or a flash memory, e.g., a floating gate memory, a charge trapping memory, an MRAM (Magnetoresistive Random Access Memory) or a PCRAM (Phase Change Random Access Memory).
[0030] In an embodiment, a "circuit" may be understood as any kind of a logic implementing entity, which may be special purpose circuitry or a processor executing software stored in a memory, firmware, or any combination thereof. Thus, in an embodiment, a "circuit" may be a hard-wired logic circuit or a programmable logic circuit such as a programmable processor, e.g. a microprocessor (e.g. a Complex Instruction Set Computer (CISC) processor or a Reduced Instruction Set Computer (RISC) processor). A "circuit" may also be a processor executing software, e.g., any kind of computer program, e.g., a computer program using a virtual machine code such as Java. Any other kind of implementation of the respective functions which will be described in more detail below may also be understood as a "circuit" in accordance with an alternative embodiment.
[0031] Detection and decoding of a received signal is a task that is performed in every receiver. Thus, there may be a need for efficient detection and efficient decoding of the received signal. The detector and decoder exist within the context of a channel, be it a communications channel, or a recording channel, or any case where information (bits) are transmitted over a noisy channel. An encoder is needed on the transmitting side/end to protect the bits from noise and the detector and decoder work on the receiving side/end to recover the original bits.
[0032] As mentioned in the background, joint Viterbi detector decoder (JVDD) has been previously disclosed, such as in United States Patent Application Publication No. US 2014/0219398 Al , the content of which being hereby incorporated by reference in its entirety for all purposes, as an improved detection and decoding technique that aims to return the minimum metric legal codeword (MMLC). The JVDD uses a trellis structure (or simply referred to as "trellis", which represents a time evolution of the received bit sequence) to compute the branch metrics and path metrics for all the survivors (survivor paths) in the trellis. In the JVDD, survivors with low probability of being the minimum metric legal codeword (MMLC) are filtered out (discarded from the trellis) by performing metric thresholding and parity checking operations. Knowledge of the channel is employed to filter out (discard) survivors in the trellis based on a predefined threshold parameter being constant throughout the trellis. More specifically, discarding survivors at a state of the trellis with metric above a threshold value (determined as the sum of the predefined threshold parameter and the minimum metric associated with that state) and retaining survivors at or below the threshold value. The threshold parameter may thus be predefined in view of the performance and complexity trade-off associated with the JVDD algorithm and is constant throughout the trellis. In this regard, choosing a smaller threshold parameter may increase the risk of discarding the MMLC while reducing the average number of survivors in the trellis, leading to lower complexity at the expense of performance. On the other hand, choosing a larger threshold parameter may retain more survivors which in turn minimizes the probability of discarding the MMLC, leading to better performance at the cost of higher complexity.
[0033] The JVDD algorithm further reduces the number of survivors existing in the trellis by performing syndrome check on the survivors, e.g., after the metric thresholding operation. In this regard, the syndrome check identifies the validity of the received partial codeword by computing the syndrome: cHT = 0 , where c is the hard decisions of the received data (bit sequence) and H is the parity check matrix. A syndrome weight of "0" indicates that the codeword is valid and hence all survivors whose syndrome weight is not "0" is discarded from the JVDD trellis.
[0034] Hence, the JVDD algorithm is conditionally optimal over a coded AWGN/ISI channel with condition being sufficiency of computational resources.
[0035] Various embodiments of the present invention provide a joint detector/decoder device for detecting and decoding information (received bit sequence) that seeks to improve the previously disclosed JVDD algorithm mentioned hereinbefore, such as reducing the complexity without necessarily compromising on the performance of the JVDD algorithm. Accordingly, various embodiments of the present invention advantageously address/overcome, or at least mitigate, issues/problems associated with the above-mentioned performance and complexity trade-off experienced in the JVDD algorithm.
[0036] Various embodiments of the present invention relate to a class of Viterbi based joint the detection/decoding techniques/algorithms for information transmitted over a coded digital communication system with ISI and AWGN, and provide a framework for reducing the complexity (without necessarily compromising on the performance) of the JVDD for the detection and decoding of information. Accordingly, various embodiments of the present invention may be a modification of or an improvement to the previously disclosed JVDD mentioned hereinbefore, of which may be referred to herein as the present JVDD, the soft JVDD (SJVDD), or the adaptive JVDD.
[0037] FIG. 1A depicts a schematic drawing of a joint detector/decoder device 100 according to various embodiments of the present invention. The joint detector/decoder device 100 comprises an input circuit 102 configured to receive an input signal comprising a bit sequence (e.g., received bit sequence transmitted through a channel), a soft information determining circuit 104 configured to determine soft information with respect to the received bit sequence, a survivor splitting circuit 106 configured to produce a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence, a threshold parameter controlling circuit 108 configured to control a threshold parameter based on the soft information determined, and a survivor discarding circuit 110 configured to discard one or more survivors based on a set of predetermined criteria. In particular, the set of predetermined criteria comprises a first predetermined criterion based on the threshold parameter. Furthermore, each survivor has an associated bit sequence.
[0038] For example, as mentioned hereinbefore, a "circuit" may also be a processor executing software, e.g., any kind of computer program, e.g., a computer program using a virtual machine code. In this regard, FIG. IB depicts a schematic drawing of a joint detector/decoder device 120 according to various embodiments of the present invention comprising the input circuit 102, the soft information determining circuit 104, the survivor splitting circuit 106, the threshold parameter controlling circuit 108, and a survivor discarding circuit 1 10, as described with reference to FIG. 1A, which have been implemented as software modules (i.e., input module, soft information determining module, survivor splitting module, threshold parameter controlling module, and survivor discarding module, being computer executable instructions or computer programs/software executable) executable by one or more computer processors. Accordingly, as shown in FIG. IB, the joint detector/decoder device 120 may further comprise a computer processor 1 12 capable of executing computer executable instructions to perform one or more functions or methods (e.g., to produce a plurality of survivors of a next instance), and a computer-readable storage medium 114 communicatively coupled to the processor 1 12 and which may have stored therein one or more sets of computer executable instructions (e.g., input module, soft information determining module, survivor splitting module, threshold parameter controlling module, and/or survivor discarding module). For example and without limitation, the joint detector/decoder device 100/120 may be a separate or stand-alone device or may be implemented in a computer system for detecting and decoding information received over from a channel from a transmitter.
[0039] In various embodiments, the joint detector/decoder device 100/120 is a joint Viterbi detector/decoder (JVDD) device, and may thus also be referred to as the present JVDD device, the soft JVDD (SJVDD) device, or the adaptive JVDD device.
[0040] Accordingly, various embodiments of the present invention utilize soft information in the JVDD to reduce complexity and/or enhance performance, which thus may be referred to as soft JVDD (SJVDD). In particular, the threshold parameter is controlled (e.g., determined or modified) based on soft information, and thus is advantageously adaptive or variable throughout the trellis structure. To the contrary, as explained hereinbefore, the previously disclosed JVDD algorithm utilizes a predefined or a particular threshold parameter in view of performance and complexity trade-off, and such a predefined threshold parameter is constant throughout the trellis structure. In various embodiments, controlling (e.g., determining or modifying/adjusting) the threshold parameter based on soft information has been found to advantageously address/overcome, or at least mitigate, issues/problems associated with the performance and complexity trade-off in the JVDD algorithm, as will be demonstrated later below with reference to example simulations performed. For example, utilizing soft information to control the threshold parameter has been found to reduce the complexity of the JVDD algorithm without necessarily being accompanied with the trade-off in the performance in the JVDD algorithm. In this regard, utilizing soft information to control the threshold parameter has been found to better filter out survivors with lower probability of being the MMLC and better retain survivors with higher chance of being the MMLC. Such an approach may thus maintain a smaller number of survivors (e.g., in survivor list) but having a higher probability of being the MMLC, thus advantageously reducing the complexity and improving the performance of the present JVDD algorithm/technique.
[0041] In various embodiments, the soft information determining circuit 104 is configured to determine the soft information comprising least metric parameters (or simply referred to as "least metrics") at (or associated with) respective time instances. That is, a least metric parameter is determined at or for each time instance. In various embodiments, a least metric parameter of the soft information at (or associated with) a time instance is the least (i.e., smallest) minimum metric parameter amongst minimum metric parameters associated with all the states (each state having a minimum metric parameter associated therewith) at the time instance.
[0042] In various embodiments, the soft information determining circuit 104 is configured to determine a maximum likelihood path through a trellis structure (e.g., a first trellis structure) and the soft information associated to the maximum likelihood path. In this regard, the trellis structure represents a time evolution of the received bit sequence, and the least metric parameters of the soft information are metrics associated with the maximum likelihood path at the respective time instances of the first trellis structure. In various embodiments, the maximum likelihood path is determined based on a path metric associated thereto, and in further embodiments, the maximum likelihood path is a survivor path through the trellis structure determined to have a minimum path metric based on a Viterbi algorithm. For example and without limitation, the soft information determining circuit 104 may thus determine or produce the minimum metric sequence (MMS) using a Viterbi algorithm on the trellis structure, which may be considered as a sequence of least minimum metric values (least metric parameters) at respective time instances. A Viterbi algorithm configured to perform maximum likelihood decoding of a received bit sequence through a trellis structure to determine or produce a maximum likelihood path (or MMS) is known in the art, such as described in G. D. Forney, Jr., "The Viterbi Algorithm", Proceedings of the IEEE, vol. 61, pp. 268- 278, March 1973, the content of which being hereby incorporated by reference in its entirety for all purposes, and thus need not be described or repeated herein for sake of conciseness.
[0043] As mentioned above, the soft information comprises least metric parameters being metrics (metric values) associated with the maximum likelihood path at respective time instances. For example, each time instance may correspond to a time index of the trellis structure, and the metric associated with a path (survivor path) (in this case, the maximum likelihood path) at a time instance may correspond to the path metric of the path at the point of the time instance (time index). For example, the metric (path metric) associated with a path at a time instance may be determined based on a sum of the branch metrics associated with each branch of the path (each branch having a branch metric associated therewith) through which the path has traversed or propagated in the trellis structure up to that time instance. By way of an example only and without limitation, metrics associated with the maximum likelihood path at time instances, respectively, may thus be metric values associated with the maximum likelihood path at respective time instances along the maximum likelihood path, such as metric values mO to m5 at respective time instances tO to t5 as illustrated in an FIG. 6.
[0044] As another example, assuming a 4-state trellis with states represented by sO, si, s2, s3 (e.g., as shown in FIG. 6) with a codeword length of six, at time index tO, all the states have a path metrics of zero. The shortest path (i.e., the maximum likelihood path) in the trellis structure shown in the example of FIG. 6 is sO to si to s2 to s2 to si to sO. For example, assuming the branch metric value of the transition from sO to si is 0.2, from si to s2 is 0.3, from s2 to s2 is 0.3, from s2 to si is 0.3, and from si to sO is 0.4, the metric values mO to m5 at time instances tO to t5, respectively, are 0, 0.2, 0.5, 0.8, 1.1, and 1.5, as the metric associated with a path at a time instance is determined based on a sum of the branch metrics associated with each branch of the path through which the path has traversed or propagated in the trellis structure up to that time instance. In the above example, the soft information may thus comprise metrics 0, 0.2, 0.5, 0.8, 1.1 and 1.5 at (or associated with) respective time instances tO to t5. [0045] In various embodiments, the threshold parameter controlling circuit 108 is configured to control the threshold parameter for a state at a time instance based on a minimum metric parameter (or simply referred to as "minimum metric") associated with the state at the time instance and the least metric parameter of the soft information at a corresponding time instance (e.g., at the same time instance).For example, at any given time instance, survivors with various metric (path matric values) may reach different states of the trellis. In this regard, of all the survivors reaching a particular state, the minimum metric of (or associated with) that particular state is the minimum (i.e., smallest) metric amongst metrics associated with such survivors reaching that particular state.
[0046] In further embodiments, the threshold parameter controlling circuit 108 is configured to control the threshold parameter for the state at the time instance based on a deviation between the minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at the corresponding time instance. In various embodiments, the threshold parameter controlling circuit 108 may be configured to determine an adjustment parameter based on the deviation between the minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at the corresponding time instance for adjusting/modifying an existing or predefined threshold parameter (e.g., adjusting/modifying a constant predefined threshold parameter supplied to the JVDD algorithm as disclosed in the previously disclosed JVDD). In various embodiments, the adjustment parameter may be a scaling factor.
[0047] By way of an example for illustration purpose only and without limitation, assuming a four-state trellis (such as the example trellis shown in FIG. 6), let the minimum metric sequence (MMS) corresponding to the maximum likelihood path be considered as a sequence of least minimum metric values (least metric parameters) {LMINto, LMINt^ LMINc, ...} (soft information) at respective time instances (tO, tl, t2, ...), and let m(sljti), m(S2,ti), ni(s3;tj), and m^ti) be the minimum metric values associated with states si , s2, s3, and s4, respectively, at a particular time instance ti. The adjustment parameter for a state si at a time instance ti may be determined as a ratio or fraction of the deviation between the minimum metric parameter associated with the state si at time instance ti (i.e., m(Si,ti)) and the least metric paramaeter of the soft information at time instance ti (i.e., LMINti), and the minimum metric parameter associated with the state si at time instance ti (i.e., m^)), that is, (m(Sj;ti)-LMINti)/m(Si,ti). For example, the adjustment parameter for a state si at a time instance tl may be determined as
Figure imgf000016_0001
LMINti)/m(si;ti), and the adjustment parameter for a state s2 at a time instance tl may be determined as (m(sl >ti)-LMINti)/m(Siiti) and so on. In various embodiments, in the case the minimum metric parameter associated with the state si at time instance ti (i.e.,
Figure imgf000016_0002
and the least metric paramaeter of the soft information at time instance ti (i.e., LMINti) are the same (i.e., equal), the adjustment parameter is be set to be zero. Accordingly, in various embodiments, the adjustment parameter may be referred to as a scaling factor or a soft reliability information.
[0048] With the adjustment parameter determined, the threshold parameter controlling circuit 108 may adjust/modify the existing or predefined threshold parameter based on the adjustment parameter to obtain an adjusted threshold parameter. In various embodiments, the adjusted threshold parameter may be obtained by multiplying the predefined threshold parameter with the adjustment parameter to obtain a value, and then subtracting such a value from the predefined threshold parameter, that is, predefined threshold parameter - (predefined threshold parameter x adjustment parameter). Therefore, according to various embodiments of the present invention, the greater the difference between the minimum metric parameter associated with a state at a time instance and the least metric parameter at the time instance, the greater the existing or predefined threshold parameter (e.g., the constant threshold parameter as supplied to the present JVDD algorithm) is reduced. As a result, the threshold parameter for each state is not constant throughout the trellis and is controlled by the threshold parameter controlling circuit 108 and thus may vary from one state to another state. Such an approach has been found to allow more survivors with lower metric value to proceed to the next instance and filter out more survivors with larger metric values, thus improving the chances of survivors with lower metrics reaching the end of the trellis structure which reduces the complexity and improves the performance of the present JVDD algorithm.
[0049] Accordingly, various embodiments of the present invention advantageously provide an adaptive metric thresholding operation that uses the deviation of the minimum metric value at each state from the least minimum metric value across all the states at a particular time instance (time index) to vary the threshold parameter (and thus, metric thresholding value) for each state at that particular time instance. Such a technique has been found to efficiently filter out survivors with lower probability of being the MMLC and thus reducing the complexity of the present JVDD algorithm without necessarily compromising on performance. For example, the branch metric and the path metric for each survivor is computed for a particular time instance before updating the minimum metric value for each state. The minimum metric value associated with a state at a particular time instance may only be updated with the path metric value of a survivor reaching that state if the path metric value of the survivor reaching that state is lower than the minimum metric value associated with that state. Once the minimum metric value for each state in the trellis structure at a particular index has been updated, the adaptive metric threshold operation may be performed by the survivor discarding circuit 110 to filter out survivors, such as survivors with lower probability of being the MMLC.
[0050] In various embodiments, based on the first predetermined criterion, the survivor discarding circuit 1 10 is configured to discard a survivor of the plurality of survivors at the state (e.g., the state at which the metric thresholding is being performed) if the survivor has a metric associated thereto which exceeds a threshold value determined based on the threshold parameter (controlled by the threshold parameter controlling circuit 108) for the state and the minimum metric parameter associated with the state. In this regard, the threshold parameter for a state may thus be considered as the deviation from the minimum metric associated with the state to obtain the threshold value for the state. For example, the threshold value for a state may be the sum of the threshold parameter for the state and the minimum metric associated with the state. The first predetermined criterion may correspond to the metric thresholding operation as mentioned herein. Accordingly, with the threshold parameter for various states at various time instances (time indexes) along the trellis structure being controlled (e.g., determined or modified/adjusted) based soft information, the threshold parameter is advantageously adaptive or variable for states throughout the trellis structure, instead being fixed or constant throughout the trellis structure, for better filtering out survivors with lower probability of being the MMLC and better retaining survivors with higher chance of being the MMLC.
[0051] In various embodiments, the set of predetermined criteria further comprises a second predetermined criterion based on a parity check, and based on the second predetermined criterion, the survivor discarding circuit 1 10 is configured to discard a survivor of the plurality of survivors if the survivor fails the parity check. The second predetermined criterion may correspond to the parity checking operation as mentioned herein.
[0052] In various embodiments, the metric associated with the survivor (survivor path) is a path metric and may be determined based on a sum of branch metrics associated with each branch of a survivor path through which the survivor has propagated (in the trellis).
[0053] In various embodiments, the joint detector/decoder device 100/120 is configured to detect and decode the received bit sequence based on a trellis structure (e.g., a second trellis structure, e.g., which may be the same as the first trellis structure) representing the time evolution of the received bit sequence), the trellis structure comprising a plurality of nodes, each node corresponding to a particular state associated with the received bit sequence at a particular time instance. Furthermore, the survivor splitting circuit 106 is configured to produce the plurality of survivors and the survivor discarding circuit 1 10 is configured to discard the one or more survivors at each of the plurality of nodes.
[0054] FIG. 2 depicts a flow diagram of a joint detection/decoding method 200 according to various embodiments of the present invention. The method 200 comprises a step 202 of receiving an input signal comprising a bit sequence, a step 204 of determining soft information with respect to the received bit sequence, a step 206 of producing a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence, a step 208 of controlling a threshold parameter based on the soft information determined, a step 210 of discarding one or more survivors based on a set of predetermined criteria, the set of predetermined criteria comprising a first predetermined criterion based on the threshold parameter. Furthermore, each survivor has an associated bit sequence. [0055] A computing system, a controller, a microcontroller or any other system providing a processing capability may be presented according to various embodiments in the present disclosure. Such a system may be taken to include one or more processors and one or more computer-readable storage mediums. For example, as mentioned above, the joint detector/decoder device 120 described herein includes a processor (or controller) 112 and a computer-readable storage medium (or memory) 114 which are for example used in various processing carried out therein as described herein.
[0056] Some portions of the present disclosure may be explicitly or implicitly presented in terms of algorithms and functional or symbolic representations of operations on data within a computer memory. These algorithmic descriptions and functional or symbolic representations are the means used by those skilled in the data processing arts to convey most effectively the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities, such as electrical, magnetic or optical signals capable of being stored, transferred, combined, compared, and otherwise manipulated.
[0057] Unless specifically stated otherwise, and as apparent from the following, it will be appreciated that throughout the present specification, discussions utilizing terms such as "receiving", "determining", "transmitting", "producing", "controlling" "discarding", or the like, refer to the actions and processes of a computer system, or similar electronic device, that manipulates and transforms data represented as physical quantities within the computer system into other data similarly represented as physical quantities within the computer system or other information storage, transmission or display devices.
[0058] The present specification also discloses a system or an apparatus/device for performing the operations/functions of the methods described herein. Such a system or apparatus may be specially constructed for the required purposes, or may comprise a general purpose computer or other device selectively activated or reconfigured by a computer program stored in the computer. The algorithms presented herein are not inherently related to any particular computer or other apparatus. Various general purpose machines may be used with computer programs in accordance with the teachings herein. Alternatively, the construction of more specialized apparatus to perform the required method steps may be appropriate.
[0059] In addition, the present specification also at least implicitly discloses a computer program or software/functional module, in that it would be apparent to the person skilled in the art that the individual steps of the methods described herein may be put into effect by computer code. The computer program is not intended to be limited to any particular programming language and implementation thereof. It will be appreciated that a variety of programming languages and coding thereof may be used to implement the methods/techniques of the disclosure contained herein. Moreover, the computer program is not intended to be limited to any particular control flow. There are many other variants of the computer program, which can use different control flows without departing from the spirit or scope of the invention. It will be appreciated to a person skilled in the art that various modules described herein (e.g., the input module, the soft information determining module, the survivor splitting module, the threshold parameter controlling module, and the survivor discarding module) may be software module(s) realized by computer program(s) or set(s) of instructions executable by a computer processor to perform the required functions, or may be hardware module(s) being functional hardware unit(s) designed to perform the required functions. It will also be appreciated that a combination of hardware and software modules may be implemented.
[0060] Furthermore, one or more of the steps of the computer program/module or method may be performed in parallel rather than sequentially. Such a computer program may be stored on any computer readable medium. The computer readable medium may include storage devices such as magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a general purpose computer. The computer program when loaded and executed on such a general purpose computer effectively results in an apparatus that implements the steps of the methods described herein.
[0061] In various embodiments, there is provided a computer program product, embodied in one or more computer-readable storage mediums (non-transitory computer- readable storage medium), comprising instructions (e.g., the input module, the soft information determining module, the survivor splitting module, the threshold parameter controlling module, and the survivor discarding module) executable by one or more computer processors to perform the joint detection/decoding method 200 as described hereinbefore with reference to FIG. 2 or other method(s) described herein. Accordingly, various computer programs or modules described herein may be stored in a computer program product receivable by a computer system or electronic device (e.g., joint detector/decoder device 120) therein for execution by a processor 112 of the computer system or electronic device to perform the respective functions.
[0062] The software or functional modules described herein may also be implemented as hardware modules. More particularly, in the hardware sense, a module is a functional hardware unit designed for use with other components or modules. For example, a module may be implemented using discrete electronic components, or it can form a portion of an entire electronic circuit such as an Application Specific Integrated Circuit (ASIC). Numerous other possibilities exist. Those skilled in the art will appreciate that the software or functional module(s) described herein can also be implemented as a combination of hardware and software modules.
[0063] The methods or functional modules of the various example embodiments as described hereinbefore may be implemented on a computer system, such as a computer system 300 as schematically shown in FIG. 3 as an example only. In other words, it can be appreciated that the joint detector/decoder device 100/120 may be realized by a computer system. The method or functional module may be implemented as software, such as a computer program being executed within the computer system 300, and instructing the computer system 300 (in particular, one or more processors therein) to conduct the methods/functions of various example embodiments. The computer system 300 may comprise a computer module 302, input modules such as a keyboard 304 and mouse 306 and a plurality of output devices such as a display 308, and a printer 310. The computer module 302 may be connected to a computer network 312 via a suitable transceiver device 314, to enable access to e.g. the Internet or other network systems such as Local Area Network (LAN) or Wide Area Network (WAN). The computer module 302 in the example may include a processor 318 for executing various instructions, a Random Access Memory (RAM) 320 and a Read Only Memory (ROM) 322. The computer module 302 may also include a number of Input/Output (I/O) interfaces, for example I/O interface 324 to the display 308, and I/O interface 326 to the keyboard 304. The components of the computer module 302 typically communicate via an interconnected bus 328 and in a manner known to the person skilled in the relevant art.
[0064] It will be appreciated to a person skilled in the art that the terminology used herein is for the purpose of describing various embodiments only and is not intended to be limiting of the present invention. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and/or "comprising" when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
[0065] In order that the present invention may be readily understood and put into practical effect, various example embodiments of the present invention will be described hereinafter by way of examples only and not limitations. It will be appreciated by a person skilled in the art that the present invention may, however, be embodied in various different forms or configurations and should not be construed as limited to the example embodiments set forth hereinafter. Rather, these example embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the present invention to those skilled in the art.
[0066] FIG. 4 depicts a block diagram of an exemplary communication system 400 according to various example embodiments of the present invention. The communication system 400 includes a transmitter 402 for transmitting a codeword to a receiver 404 through a channel (e.g., ISI/AWGN channel) 406. The transmitter 402 may comprise an information source 408 for providing information to an encoder 410 configured to encode the information into a codeword at a code rate of R = k/n for transmission via the channel 406 to the receiver 404. The receiver 404 comprises a joint Viterbi detector/decoder (SJVDD) 412 according to various example embodiments of the present invention for detecting and decoding the input signal received (received bit sequence) from the channel 406 to recover the information (e.g., corresponding to the joint detector/decoder device 100/120 described hereinbefore). For illustration purpose only, a conventional iterative detector/decoder including a detector 414 and decoder 416 is shown above the present JVDD (SJVDD) 412 in FIG. 4. However, it will be appreciated by a person skilled in the art that the iterative detector/decoder shown in FIG. 4 does not form part of the receiver 404 of the communication system 400 according to various example embodiments of the present invention.
[0067] The conventional detector 414 may be based on a soft-output detector such as soft output Viterbi algorithm (SOVA) or the Bahl, Cocke, Jelinek, Raviv (BCJR) algorithm which operates/runs on a trellis, followed by the decoder 416 based on sum product algorithm (SPA) which operates/runs on a factor graph (FG). Despite the success of the conventional iterative approach, it has a performance gap with the optimal maximum likelihood (ML) decoder for any code-structure. In contrast, joint detection/decoding is a promising candidate for achieving optimality. However, optimal ML decoding of linear block codes has been proven to be an NP-hard (non-deterministic polynomial-time hard) problem, whose complexity grows exponentially as the codeword length (CWL) increases. There have been many research efforts in this direction to develop optimal or suboptimal decoding algorithms with moderate complexity.
[0068] As mentioned hereinbefore, JVDD has been previously disclosed as an alternative or improved optimal ML detection and decoding technique that attempts to return the MMLC. The JVDD operates on a trellis and may include a two-stage decoding structure, namely, metric thresholding and parity checking, as illustrated in the example Viterbi trellis shown in FIG. 5. The example Viterbi trellis 500 has 4 states corresponding to the "- -" 502 "- +" 504, "+ -" 506 and "+ +" 508 states of the channel. In the trellis, the vertical direction corresponds to different states of the channel while the horizontal direction corresponds to time evolution of the bit sequence. The paths through the trellis thus correspond to the time-evolution of the state of the channel. The state of the channel is determined by the bit sequence into the channel 406 as shown in FIG. 4. A survivor path (exemplary labeled as 516) through the trellis corresponds to a bit sequence into the channel. Each survivor path has a corresponding survivor metric computed as the summation of the metrics of each branch making up the survivor, referred to as the branch metrics. Each branch metric may be computed as the Euclidean distance between the observation z* 414 at that time instance and the noise-free value of the channel output for the given bit sequence input defined by the channel state. If the branch metric is labeled ¾, then
Figure imgf000024_0001
where ¾ is the readback observation at time k, ¾ is the noise- free channel output for the given branch transition defined by the state from which and to which the transition (an exemplary transition is given by state 502 at time k to state 506 at time k+1) is occurring. Each transition has its own noise-free value computed from the channel coefficients hk- The survivor metric is formed by summing the branch metric for
k
each branch forming the survivor: mk = bi . The JVDD algorithm compares multiple incoming survivor metrics at a given node at a given time instant k and discards those survivors whose metrics exceed a threshold value based on a constant predefined threshold parameter. An example of a survivor path 516 through the trellis is shown in FIG. 5. For ease of discussion, the states are enumerated as 0: "- -", 1 : "- +", 2: "+ -" and 3: "+ +". The survivor shown in 516 starts at state 3 and transitions to states 3, 1, 0, 2, 3, 3, 1, 0, and so on, corresponding to the sequence of bits shown associated with survivor. The survivor has an associated metric that is a quantitative measure of how close, in the Euclidean distance sense, the survivor's noise-free waveform is to the actual waveform.
[0069] The present JVDD (SJVDD) technique/algorithm according to various example embodiments of the present invention operates on a trellis structure (e.g., similar to the trellis structure used in the Viterbi algorithm). In various example embodiments, the present JVDD technique comprises two stages, namely, a first stage relating to minimum metric sequence (MMS) computation, and a second stage relating to soft joint detection and decoding (SJVDD) In this regard, a MMS with soft information is computed in the first stage of processing, and metric thresholding and parity checking operations are performed in the second stage of processing. In particular, according to various example embodiments of the present invention, the metric thresholding operation performs adaptive thresholding using the soft information determined by the first stage to filter out survivors that are less probability of being the MMLC. Such a technique has been found to advantageously improve the performance of the system at a reduced complexity by filtering out survivors with a lower probability of being the MMLC and retaining survivors with a higher probability of being the MMLC. [0070] Accordingly, the SJVDD technique/algorithm according to various example embodiments of the present invention is a joint detector/decoder algorithm that uses a trellis structure to jointly detect and decode information bits, and more particularly, uses soft information to jointly detect/decode the transmitted code sequence. Referring back to the exemplary communication system 400 shown in FIG. 4, a mathematical model of the received signal that is fed into the SJVDD block 412 for joint detection and decoding is derived. At the transmitter 402, the encoder (e.g., a low density parity check (LDPC) encoder) 410 encodes information vector U = [ 1,u2 u3 n] to n-length code word
C — [ci,c2l c3, cn] at a code rate of R = k/n. The corresponding (n, k) code is represented by a parity check matrix H = |/tt/]mn, where m = (n-k) corresponds to the number of parity checks and n is the number of coded bits. The coded bits are modulated and transmitted over an ISI/AWGN channel 406 in the example. The received signal, y(t), at any time index can be given as:
Figure imgf000025_0001
(Equation 1) where w(t) is the AWGN with zero mean and variance N0 at given time index t, h is the channel impulse response of length L, and x(t) is the transmitted symbol sequence. The received signal is then fed to the SJVDD 412 (e.g., received by an input circuit 102 as mentioned hereinbefore) for detection and decoding after demodulation.
[0071] As mentioned hereinbefore, the SJVDD technique/algorithm according to various example embodiments of the present invention involves a two stage process, whereby the first stage 418 computes/determines the MMS with soft information and the second stage 420 uses this soft information to jointly detect and decode the transmitted sequence as shown in FIG. 6. The first and second stages 418, 420 will now be described in further detail below according to various example embodiments.
[0072] The first stage 418 is configured to compute the MMS using the conventional Viterbi algorithm on a trellis structure. In the Viterbi algorithm, at each transition in the trellis structure (time index), the branch metric for all possible transitions of survivors to the next instance is computed and the path metric is recursively updated by selecting, for each state at the time index, the path (survivor path) with the minimum path metric. For example and without limitation, in the case of binary codes, each path at a state at a given time index generates two paths (i.e., the existing survivor is split into two new survivors), one path for an input of T and another path for an input of 'Ο'. This doubles the number of survivors at a given time index but the Viterbi algorithm selects/retains only the path at each state at the given time index with the minimum metric which would then in turn halve the number of survivors. This process continues until the end of trellis structure by returning the trellis to a known state, which typically is the all zero state. The MMS 602 would then be outputted which corresponds to the maximum likelihood path, as for example illustrated in FIG. 6, and the metrics (e.g., mO to m5) associated with the maximum likelihood path at respective time instances (e.g., tO to t5) obtained (soft information comprising least metric parameters at respective time instances) are stored and utilized in the second stage by the threshold parameter controlling circuit 108 for controlling the threshold parameter. The first stage processing or the above-mentioned process (Viterbi algorithm) for determining the maximum likelihood path and the associated soft information may thus correspond to the soft information determining circuit 104 mentioned hereinbefore. However, the MMS 602 computed may not correspond to the MMLC because it does not take into consideration all possible paths. The second stage 420 of the SJVDD algorithm uses this soft information from the MMS 602 to enhance the metric thresholding operation, as will now be described below.
[0073] The second stage 420 of processing estimates the MMLC by performing the metric thresholding operation 422 and the parity checking operation 424. In particular, the metric thresholding operation may be configured to reduce the number of survivors by using the knowledge of the channel and the obtained soft information, and the parity checking operation may be configured to reduce the number of survivor by performing the syndrome check on the decoded bits. The metric threshold and parity check operations 422, 424 will now be described in further detail below according to various example embodiments of the present invention.
[0074] In the trellis, a plurality of survivors (survivor paths) of a next instance is produced based on at least one survivor of a previous instance and based on the received bit sequence by the survivor splitting circuit 106. For example and without limitation, in the case of binary codes, the survivor splitting circuit 106 may be configured to produce two survivors of a next instance based on a survivor of a previous instance (i.e., the existing survivor is split into two new survivors), one survivor for an input of T and another survivor for an input of Ό'. The corresponding metrics (path metrics) are also computed. This doubles the number of survivors per time-step (time index). Therefore, in order to keep the number of survivors from becoming unmanageable, survivors are also killed (discarded) at each time-step (hence their name: survivors). This process of discarding survivors in the trellis is performed by the survivor discarding circuit 110 through the metric thresholding operation (e.g., corresponding to the first predetermined criterion described hereinbefore) 422 and the parity checking operation (e.g., corresponding to the second predetermined criterion described hereinbefore) 424.
[0075] According to various example embodiments of the present invention, the metric thresholding operation/process (performed by the survivor discarding circuit 110 and based on the first predetermined criterion) filters out (discards) survivors at a state at a time index based on the computed threshold value for the state at the time index, such as survivors having metrics which are outside (exceed) the computed threshold value as illustrated in FIGs. 7A and 7B. In other words, a survivor is determined to survive or progress to the next time instance if the metric of the survivor satisfies the computed threshold value (e.g., below or equal to the computed threshold value, such as within the filtering region (shaded region) shown in FIGs. 7A and 7B). FIGs. 7A and 7B depict schematic exemplary representations of the metric thresholding operation at two states (e.g., state 1 and state 2) at a particular time instance based on the JVDD technique and the SJVDD technique, respectively, for illustration purposes only. In the exemplary representations shown in FIGs. 7A and 7B, a constant threshold parameter (represented by the double arrows) is supplied during initialization of the algorithm as shown. The threshold value (represented by the outer circle) is determined based on the threshold parameter and the minimum metric parameter (represented by the most inner circle) associated with the respective state at the particular time instance .
[0076] In the JVDD technique, as mentioned hereinbefore, the threshold parameter is constant throughout the trellis structure. Thus, as shown in FIG. 7A in the case of the JVDD technique, the threshold parameters for the two states at a particular time instance are the same. Such an approach tends to increase the chances of retaining survivors with low probability of being the MMLC. On the other hand, in the SJVDD technique, the threshold parameter is controlled by the threshold parameter controlling circuit 108 based on the soft information as described hereinbefore and thus is an adaptive threshold parameter (modified/adjusted threshold parameter). For example, an adaptive threshold technique is performed by the threshold parameter controlling circuit 108 whereby the threshold parameter for a state at a particular time instance (time index) is computed based on the deviation of the minimum metric value associated with that particular state from the least metric value (MMS value) of the soft information at that particular time instance (i.e., based on the adjustment parameter or scaling factor) according to various embodiments of the present invention. Thus, as shown in FIG. 7B in the case of the SJVDD technique, the threshold parameters for the two states may be different depending on the soft information. That is, the threshold parameter may adaptively vary across the states at a particular time instance based on the adjusted threshold parameter (adjusted from the constant threshold parameter supplied), thus providing an adaptive threshold value for filtering out (discarding) survivors at such states at the particular time instance. Such an adaptive metric thresholding technique has been found to better filter out survivors with less probability of being the MMLC and better retain survivors with higher chance of being the MMLC such that the MMLC has a higher chance of surviving until the end of the trellis structure. The technique may thus maintain a smaller number of survivors (e.g., in survivor list) but having a higher probability of being the MMLC, thus advantageously reducing the complexity and improving the performance. The threshold parameter may also be considered to define the rate of growth of the survivors.
[0077] The parity checking operation/process (e.g., performed by the survivor discarding circuit 1 10 and based on the second predetermined criterion) in the SJVDD performs parity checks on each incoming survivor path and discards paths which fail the syndrome check cH* = 0. For example, parity check matrix H, is an M x N matrix, where M is the number of parity checks and N is the number of channel bits. Each row of H corresponds to one of the M parity checks and the syndrome check equation for a single row (check) of H can be written as cHf = 0, where Ht is the i* row of H. The check on the 1th row of H can occur during the SJVDD algorithm at the time when the channel bit corresponding to the last "1" in ffE- is detected. Hence, the checks in the SJVDD parity checking operation occur at nodes 524 in the trellis that correspond to the last "1" of a row in the parity check matrix H, as illustrated in FIG. 5. In various example embodiments, the H matrix may be configured such that the parity check operation happens towards the end of the trellis.
[0078] From the above two metric thresholding (adaptive metric thresholding) and parity checking operations according to various embodiments of the present invention, it can be observed that the SJVDD algorithm makes use of knowledge of both the channel and code to return the MMLC. The metric threshold operation uses the knowledge of the channel to define the threshold parameter and discard the survivors that fall outside the threshold value. Similarly the parity check matrix section applies the knowledge of the code word to discard survivors that does not comply with syndrome check.
[0079] The complexity of the JVDD technique/algorithm is attributed to the management of survivors. In particular, allowing higher number of survivors increases the complexity and performance (e.g., accuracy), whereas allowing lower number of survivors decreases the performance (e.g., accuracy) and complexity. The SJVDD technique/algorithm according to various embodiments of the present invention advantageously applies the soft information together with the adaptive threshold technique to improve the accuracy of the metric threshold operation by filtering the survivors with less probability of being the MMLC and retaining survivors with high probability of being the MMLC.
[0080] The application of adaptive thresholding technique has been found to equal or improve the performance of the SJVDD when compared to the previously disclosed JVDD. This is because, for example as mentioned hereinbefore, the adaptive threshold approach advantageously allows survivors with high probability of being the MMLC to be maintained in the survivor list, while those with less probability of being the MMLC are filtered (discarded). Accordingly, the chance of survivor with high chance of being the MMLC being discarded during the course of trellis traversal is advantageously reduced.
[0081] Results of various example simulations performed will now be discussed below to compare the performances of the present JVDD (SJVDD) and the previously disclosed JVDD mentioned hereinbefore. [0082] FIG. 8 depicts a graph showing the frame error rate (FER) performance of the SJVDD compared with the JVDD at different signal-to-noise (SNR) ratios for varying threshold values of 0.5, 1.0, and 1.5. The complexity is measured as the average number of survivors in the JVDD trellis. It can be observed from FIG. 8 that the SJVDD algorithm equals or betters the performance of JVDD algorithm for varying threshold values.
[0083] FIG. 9A depicts a graph showing the number of survivors in the trellis using the SJVDD compared with using the JVDD for varying threshold. FIG. 9B depicts the processing delay experienced using the SJVDD compared with using the JVDD for varying threshold. From FIGs. 9A and 9B, it can be observed that the SJVDD algorithm reduces the complexity and processing delay when compared to JVDD algorithm for varying threshold.
[0084] Accordingly, the above results of example simulations performed demonstrate that the joint detector/decoder device (e.g., SJVDD device) according to various embodiments of the present invention is significantly more efficient computationally without necessarily compromising on performance, thus advantageously addressing/overcoming, or at least mitigate, issues/problems associated with the performance and complexity trade-off experience in the JVDD algorithm.
[0085] While embodiments of the invention have been particularly shown and described with reference to specific embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. The scope of the invention is thus indicated by the appended claims and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced.

Claims

What is claimed is: 1. A joint detector/decoder device comprising:
an input circuit configured to receive an input signal comprising a bit sequence;
a soft information determining circuit configured to determine soft information with respect to the received bit sequence;
a survivor splitting circuit configured to produce a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence;
a threshold parameter controlling circuit configured to control a threshold parameter based on the soft information determined; and
a survivor discarding circuit configured to discard one or more survivors based on a set of predetermined criteria, the set of predetermined criteria comprising a first predetermined criterion based on the threshold parameter,
wherein each survivor has an associated bit sequence.
2. The joint detector/decoder device according to claim 1, wherein the soft information comprises least metric parameters at respective time instances.
3. The joint detector/decoder device according to claim 2, wherein the soft information determining circuit is configured to determine a maximum likelihood path through a first trellis structure and the soft information associated to the maximum likelihood path, wherein the first trellis structure represents a time evolution of the received bit sequence, and the least metric parameters of the soft information are metrics associated with the maximum likelihood path at the respective time instances of the first trellis structure.
The joint detector/decoder device according to claim 3, wherein the maximum likelihood path is determined based on a path metric associated thereto, and the maximum likelihood path is a survivor path through the first trellis structure determined to have a minimum path metric based on a Viterbi algorithm.
The joint detector/decoder device according to claim 2, wherein the threshold parameter controlling circuit is configured to control the threshold parameter for a state at a time instance based on a minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at a corresponding time instance.
The joint detector/decoder device according to claim 5, wherein the threshold parameter controlling circuit is configured to control the threshold parameter for the state at the time instance based on a deviation between the minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at the corresponding time instance.
The joint detector/decoder device according to claim 6, wherein based on the first predetermined criterion, the survivor discarding circuit is configured to discard a survivor of the plurality of survivors at the state if the survivor has a metric associated thereto which exceeds a threshold value determined based on the threshold parameter for the state and the minimum metric parameter associated with the state.
The joint detector/decoder device according to claim 1, wherein the set of predetermined criteria further comprises a second predetermined criterion based on a parity check, and wherein based on the second predetermined criterion, the survivor discarding circuit is configured to discard a survivor of the plurality of survivors if the survivor fails the parity check.
9. The joint detector/decoder device according to claim 7, wherein the metric associated with the survivor is a path metric and is determined based on a sum of branch metrics associated with each branch of a survivor path through which the survivor has propagated.
10. The joint detector/decoder device according to claim 9, configured to detect and decode the received bit sequence based on a second trellis structure representing the time evolution of the received bit sequence, the trellis structure comprising a plurality of nodes, each node corresponding to a particular state associated with the received bit sequence at a particular time instance, wherein the survivor splitting circuit is configured to produce the plurality of survivors and the survivor discarding circuit is configured to discard the one or more survivors at each of the plurality of nodes.
11. A j oint detection/ decoding method comprising :
receiving an input signal comprising a bit sequence;
determining soft information with respect to the received bit sequence; producing a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence;
controlling a threshold parameter based on the soft information determined; and
discarding one or more survivors based on a set of predetermined criteria, the set of predetermined criteria comprising a first predetermined criterion based on the threshold parameter,
wherein each survivor has an associated bit sequence.
12. The joint detector/decoder method according to claim 11, wherein the soft information comprises least metric parameters at respective time instances.
13. The joint detection/decoding method according to claim 12, wherein said determining soft information comprises determining a maximum likelihood path through a first trellis structure and the soft information associated to the maximum likelihood path, wherein the first trellis structure represents a time evolution of the received bit sequence, and the minimum metric parameters of the soft information are metrics associated with the maximum likelihood path at the respective time instances of the first trellis structure.
14. The joint detection/decoding method according to claim 13, wherein the maximum likelihood path is determined based on a path metric associated thereto, and the maximum likelihood path is a survivor path through the first trellis structure determined to have a minimum path metric based on a Viterbi algorithm.
15. The joint detection/decoding method according to claim 12, wherein said controlling a threshold parameter comprises controlling a threshold parameter for a state at a time instance based on a minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at a corresponding time instance.
16. The joint detection/decoding method according to claim 15, wherein said controlling a threshold parameter for a state at a time instance comprises controlling the threshold parameter for the state at the time instance based on a deviation between the minimum metric parameter associated with the state at the time instance and the least metric parameter of the soft information at the corresponding time instance.
17. The joint detection/decoding method according to claim 16, wherein based on the first predetermined criterion, said discarding one or more survivors comprises discarding a survivor of the plurality of survivors at the state if the survivor has a metric associated thereto which exceeds a threshold value determined based on the threshold parameter for the state and the minimum metric parameter associated with the state. The joint detection/decoding method according to claim 17, wherein the metric associated with the survivor is a path metric and is determined based on a sum of branch metrics associated with each branch of a survivor path through which the survivor has propagated.
The joint detection/decoding method according to claim 18, configured to detect and decode the received bit sequence based on a second trellis structure representing the time evolution of the received bit sequence, the trellis structure comprising a plurality of nodes, each node corresponding to a particular state associated with the received bit sequence at a particular time instance, wherein said producing a plurality of survivors and said discarding one or more survivors are performed at each of the plurality of nodes.
A computer program product, embodied in one or more computer-readable storage mediums, comprising instructions executable by one or more computer processors to perform a joint detection/decoding method comprising:
receiving an input signal comprising a bit sequence;
determining soft information with respect to the received bit sequence; producing a plurality of survivors of a next instance based on at least one survivor of a previous instance and based on the received bit sequence;
controlling a threshold parameter based on the soft information determined; and
discarding one or more survivors based on a set of predetermined criteria, the set of predetermined criteria comprising a first predetermined criterion based on the threshold parameter,
wherein each survivor has an associated bit sequence.
PCT/SG2017/050146 2016-03-23 2017-03-23 Joint detector/decoder devices and joint detection/decoding methods WO2017164817A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SG10201602270R 2016-03-23
SG10201602270R 2016-03-23

Publications (1)

Publication Number Publication Date
WO2017164817A1 true WO2017164817A1 (en) 2017-09-28

Family

ID=59900619

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2017/050146 WO2017164817A1 (en) 2016-03-23 2017-03-23 Joint detector/decoder devices and joint detection/decoding methods

Country Status (1)

Country Link
WO (1) WO2017164817A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0895384B1 (en) * 1997-07-23 2003-08-13 Mitsubishi Denki Kabushiki Kaisha Sequence estimation method and sequence estimator
US20140219398A1 (en) * 2012-10-18 2014-08-07 Agency For Science, Technology And Research Joint detector/ decoder devices and joint detection/ decoding methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0895384B1 (en) * 1997-07-23 2003-08-13 Mitsubishi Denki Kabushiki Kaisha Sequence estimation method and sequence estimator
US20140219398A1 (en) * 2012-10-18 2014-08-07 Agency For Science, Technology And Research Joint detector/ decoder devices and joint detection/ decoding methods

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
LEE W.-T. ET AL.: "A Single-chip Viterbi Decoder for a Binary Convolutional Code Using an Adaptive Algorithm", IEEE TRANSACTIONS ON CONSUMER ELECTRONICS, vol. 41, no. 1, 1 February 1995 (1995-02-01), pages 150 - 159, XP000529220, [retrieved on 20170531] *
LIN Y.-M. ET AL.: "A Low- power IP Design of Viterbi Decoder with Dynamic Thresholding Setting", PROCEEDINGS OF IEEE ISCAS'10, 2 June 2010 (2010-06-02), pages 585 - 588, XP031724761, [retrieved on 20170530] *
SIMMONS S. J.: "Breadth-first Trellis Decoding with Adaptive Effort.", IEEE TRANSACTIONS ON COMMUNICATIONS, vol. 38, no. 1, 31 January 1990 (1990-01-31), pages 3 - 12, XP000102576, [retrieved on 20170530] *
YAO J. ET AL.: "Joint Iterative Detection/Decoding Scheme for Discrete Two- Dimensional Interference Channels", IEEE TRANSACTIONS ON COMMUNICATIONS, vol. 60, no. 12, 31 December 2012 (2012-12-31), pages 3548 - 3555, XP011483237, [retrieved on 20170530] *

Similar Documents

Publication Publication Date Title
CN108462558B (en) Method and device for decoding polarization code SCL and electronic equipment
Prlja et al. Reduced-complexity receivers for strongly narrowband intersymbol interference introduced by faster-than-Nyquist signaling
US8732564B2 (en) Error floor reduction in iteratively decoded FEC codes
US6691263B2 (en) Interative decoding based on dominant error events
US8219878B1 (en) Post-processing decoder of LDPC codes for improved error floors
US9337866B2 (en) Apparatus for processing signals carrying modulation-encoded parity bits
JP2002033670A (en) Method and device for decoding general-purpose code in probability dependent graph
CN100544213C (en) A kind of interpretation method of tail-biting convolutional code and decoder thereof
CN107911195B (en) CVA-based tail-biting convolutional code channel decoding method
US10680749B2 (en) Early-termination of decoding convolutional codes
US9432054B2 (en) Method for decoding a correcting code with message passing, in particular for decoding LDPC codes or turbo codes
CN108134612B (en) Iterative decoding method for correcting synchronous and substitute error cascade code
US9048987B2 (en) Joint detector/ decoder devices and joint detection/ decoding methods
Chan et al. Optimal joint viterbi detector decoder (JVDD) over AWGN/ISI channel
US8935601B1 (en) Post-processing methodologies in decoding LDPC codes
US10177876B2 (en) Sequence detector
WO2017164817A1 (en) Joint detector/decoder devices and joint detection/decoding methods
Nguyen et al. Spatially-coupled codes and threshold saturation on intersymbol-interference channels
KR101459534B1 (en) Method and apparatus for designing a degree distribution of LDPC code
US10153786B1 (en) Iterative decoder with dynamically-variable performance
US7031406B1 (en) Information processing using a soft output Viterbi algorithm
WO2017164814A1 (en) Joint detector/decoder devices and joint detection/decoding methods
JP2006507736A (en) Loss determination procedure in FEC decoding
Abubeker et al. Maximum likelihood DE coding of convolutional codes using viterbi algorithm with improved error correction capability
James et al. Multi-pass joint Viterbi detector decoder (MP-JVDD) over AWGN/ISI channels

Legal Events

Date Code Title Description
DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 17770726

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17770726

Country of ref document: EP

Kind code of ref document: A1