Viterbi decoding optimized for ULB communications

By employing a Viterbi decoder based on the {3, 7, 5} convolutional code for UWB data transmission, the suboptimal decoding issues in {3, 2, 5} systems are addressed, resulting in improved bit recovery with reduced complexity and enhanced error rate performance.

FR3161994A1Pending Publication Date: 2025-11-07STMICROELECTRONICS INT NV
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
FR2024004623
Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-02
Publication Date
2025-11-07

AI Technical Summary

Technical Problem

Existing UWB data transmission systems using the {3, 2, 5} convolutional code suffer from suboptimal decoding, particularly due to higher error rates in systematic bits and underutilized soft-decision decoding in Viterbi algorithms, leading to inefficient bit recovery.

Method used

Implementing a Viterbi decoder based on the {3, 7, 5} convolutional code, which maps systematic and parity bits into two binary trains, enabling direct demodulation and decoding without inverse mapping, and utilizing soft-decision decoding for improved reliability.

Benefits of technology

This approach achieves a 1.8 dB gain in error rate reduction with reduced complexity, optimizing the decoding process and enhancing bit recovery efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A receiver (115) receives pulse trains (r0, r1) encoding a plurality of bits (b) using a convolutional code {3, 2, 5} whose systematic bit g0 and parity bit g1 are mapped into two binary trains (21, 22) depending respectively on g0^g1 and g1. Noting that the convolutional coding and the mapping lead to modulation (bz-1^b^b.z+1, bz-1^b.z+1, bz-1^b.z+1), a demodulator demodulates the pairs of received pulse trains (r0, r1) into respective pairs of LLR values ​​(b0, b1) and a Viterbi decoder built on a convolutional code {3, 7, 5} decodes each pair of LLR values ​​into a decoded bit (d). Optimal decoding is thus achieved, notably offering a gain estimated at 1.8 dB (in error rate) without additional complexity. See Figure 3 for the abbreviated version.
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: OPTIMIZED VITERBI DECODING FOR ULB COMMUNICATIONS technical field

[0001] Some embodiments and implementation methods relate to the field of data transmission and more particularly to that of data decoding using a Viterbi decoder.

[0002] TECHNICAL CONTEXT

[0003] Ultra Wideband (UWB) data transmission uses very short radio frequency pulses (often less than a nanosecond) over a large bandwidth of approximately 500 MHz or more. UWB communications operate at frequencies between 3.1 GHz and 10.6 GHz, for example, in a first band between 3.1 GHz and 4.8 GHz or a second band between 6 GHz and 8.5 GHz.

[0004] Traditionally, the bits to be transmitted (from the PHY header, denoted PHR, and the PSDU payload) are encoded using the systematic convolutional encoder 110 of [Fig. 1]. This convolutional encoder is called {3, 2, 5} because of its constraint length K=3 and its generator polynomials g0 =

[010] (i.e., 2) and gi =

[101] (i.e., 5). It has an efficiency R of 1 / 2.

[0005] In practice, each bit to be transmitted is transmitted using pulse trains modulated by BPSK (Binary Phase Change Modulation) with a repetition frequency of 124.8 or 249.6 MHz. Figure 2, for example, defines the binary trains corresponding to the pulses to be transmitted, as a function of the systematic bit g0 and the parity bit gi obtained at the output of the convolutional encoder. Table 20 at the top defines the binary trains for a repetition frequency FRP of 124.8 MHz, and Table 20' at the bottom for a PRF of 249.6 MHz.

[0006] These tables show that the first binary stream depends not only on g0 but also on gh, whereas the second binary stream to be emitted depends only on gi. More precisely, the first binary stream is a function of goAgi (where A is the XOR operator). In other words, it is not (g0, gi) that is modulated, but (goAgi, gi).

[0007] On the receiver side, decoding therefore consists of performing an inverse mapping to recover the systematic bit, denoted b0, from the two received pulse trains (r0, ri): bo=ABS(ri-ro)-ABS(ri+ro), the parity bit, denoted bb being obtained directly from the second received pulse train: bi=ri. Then, a Viterbi decoder built on the systematic convolutional code {3, 2, 5} of the encoder is used to decode each transmitted bit from the decoded pairs (b0, bj).

[0008] It is admitted that this decoding is not optimal.

[0009] On the one hand, the decoding distance of the systematic bit b0 is half that of the parity bit bp. The error rate on b0 is therefore higher than on bp.

[0010] On the other hand, the soft-decision decoding of a Viterbi algorithm would be under-exploited because of the hard-decision decoding of the inverse mapping.

[0011] There is therefore a need for improved decoding of such signals formed of pulse trains encoding a plurality of bits using the convolutional code {3, 2, 5], and whose systematic and parity bits (g0, gi} are mapped into two binary trains dependent respectively on goAgi and gi before modulation into pulse trains.

[0012] SUMMARY

[0013] Noting that convolutional coding on the bit b to be transmitted and mapping lead to modulation (bz-lAbAb.z+l, bz-lAb.z+l, bz-lAb.z+l), the coding and modulation operations can be assimilated to the non-systematic convolutional code {3, 7, 5], that is to say based on the generator polynomials g0 =

[111] (i.e. 7) and gi =

[101] (i.e. 5).

[0014] According to one aspect, a communication device is proposed comprising: a receiver configured to receive a signal formed of pulse trains encoding a plurality of bits using a convolutional code {3, 2, 5} whose systematic and parity bits (g0, gi) are mapped into two binary trains dependent respectively on goAgi andgi, a demodulator configured to demodulate pairs of received pulse trains (r0, ri) into respective pairs of bit values ​​(b0, bi), and a Viterbi decoder constructed on a convolutional code {3, 7, 5], configured to decode each pair of bit values ​​into one decoded bit.

[0015] Thus, decoding no longer requires an inverse mapping step. The input bit values ​​of the Viterbi decoder are obtained from the pulse trains, with the same reliability. Decoding is therefore improved.

[0016] A communication system is also proposed comprising a transmitter and a receiver connected to the same communication channel, the transmitter comprising: a convolutional encoder with convolutional code {3, 2, 5} configured to encode a plurality of bits into respective pairs of systematic and parity bits (g0, gi), a symbol mapper configured to map each pair of systematic and parity bits (g0, gi) into a pair of binary streams depending respectively on goAgi and gu, a modulator-transmitter configured to modulate and transmit each binary stream as a pulse train on the communication channel, and the receiver being a communication device as defined above to receive and decode a signal formed from said pulse trains.

[0017] According to a second aspect, a communication method is proposed comprising the following steps: receive a signal consisting of pulse trains encoding a plurality of bits using a convolutional code {3, 2, 5} whose systematic and parity bits (g0, gi) are mapped into two binary trains dependent respectively on goAgi and gb demodulate pairs of received pulse trains (r0, rj) into respective pairs of bit values ​​(b0, bi), and decode, using a Viterbi decoder built on a convolutional code {3, 7, 5], each pair of bit values ​​into a decoded bit.

[0018] The process has the same advantages as those of the aforementioned device.

[0019] Optional features of embodiments are defined in the appended claims. Some of these features are explained below with reference to a device, while they can be transposed into process features.

[0020] In one embodiment, the bit values ​​include log-likelihood ratios (or LLRs). Soft demodulation is then used.

[0021] Of course, a firm demodulation (“hard demodulation”) can be used as an alternative.

[0022] In another embodiment, the first bit value of a pair of bit values ​​includes a logarithmic likelihood ratio associated with the first pulse train of a pair of received pulse trains, and the second bit value of the pair of bit values ​​includes a logarithmic likelihood ratio associated with the second pulse train of the pair of received pulse trains. Thus, b0 = r0, bi = 0.

[0023] Viterbi's flexible decoding can then be fully exploited. The decoding is thus optimal, exhibiting in particular a gain estimated at 1.8 dB (in error rate) without additional complexity. BRIEF DESCRIPTION OF THE FIGURES

[0024] Other advantages and features of the invention will become apparent upon examination of the detailed description of embodiment and implementation, which is by no means limiting, and the accompanying drawings in which:

[0025] [Fig.l] ;

[0026] [Fig.2] ;

[0027] [Fig.3] ;

[0028] [Fig.4] ;

[0029] [Fig.5] ;

[0030] [Fig.6] ;

[0031] [Fig.7] ; and

[0032] [Fig.8] schematically illustrate methods of implementation and realization of the invention. DETAILED DESCRIPTION

[0033] Fig. 3 represents a communication system 100, at the physical layer PHY, comprising a transmitter 102 and a receiver 104. The transmitter 102 includes a data source 106, typically PHY service data units PSDUs (for "PHY service data unit") received from higher layers (not shown) of the transmitter 102. A Reed-Solomon encoder 108 encodes the PSDUs to introduce redundancy.

[0034] These coded PSDU data and a PHY header (denoted PHR) are then provided as input to a convolutional encoder 110, which produces data symbols. The input bits are denoted b(n).

[0035] The convolutional coder 110 is systematic of type {3, 2, 5} as represented in [Fig.1]: K=3 and the generating polynomials are g0 =

[010] (i.e. 2) and gi =

[101] (i.e. 5).

[0036] The convolutional encoder with convolutional code {3, 2, 5} encodes a plurality of bits into respective pairs of systematic and parity bits. In other words, each bit b(n) produces a systematic bit g0(n) and a parity bit gi(n), forming a data symbol (go(n), gi(n)).

[0037] Figure 4 schematically illustrates a state diagram 40 of the convolutional encoder 110 showing the four possible states "00", "01", "10", and "11" and the possible transitions given a new input bit b(n). For example, the notation 1 / 01 indicates that the transition from state "00" to state "10" is implemented when the input bit b(n) is 1 and the output of the convolutional encoder 110, i.e., (g0(n), gi(n)), is "01".

[0038] A mapping or matching block 112 then converts the data symbols (go(n), gi(n)) into binary trains preparing the transmission of pulse trains on a transmission channel 114.

[0039] Each symbol (go(n), gi(n)) generates two binary streams 21, 22 (except for the PHR where four streams are generated) according to Tables 20, 20' of [Fig. 2], depending on the mode chosen between the 124.8 MHz PRF mode and the 249.6 MHz PRF mode. Note that if these frequencies are the average frequencies, the 124.8 MHz mode has a peak PRF of 249.6 MHz for an output rate of 6.81 Mbit / s, whereas the mode 249.6 MHz has a peak PRF of 499.2 MHz for an output rate of 27.24 Mbit / s.

[0040] The mapping block 112 thus performs a symbol mapping configured to map each systematic and parity bit pair (g0, gl) into a pair of binary streams. This mapping does not establish a simple correspondence between the first bit of the symbol and the first binary stream, and a simple correspondence between the second bit of the symbol and the second binary stream, but a more complex correspondence. In particular, the first binary stream is dependent on both bits of the symbol, notably goAgi (XOR). The second binary stream remains a function of gi only.

[0041] A modulation-transmission block 113 then modulates the binary streams so that they are suitable for transmission over a transmission channel 114. BPSK (Binary Phase Change Modulation) is used.

[0042] Each of the two (or even four) binary trains 20, 21 is emitted by the radio block 113, on the transmission channel 114, in the form of BPSK pulse trains. The (or even four) pulse trains are separated by a guard interval.

[0043] Fig. 5 schematically illustrates the pulse trains 50, 51, separated by a guard interval 59 of the same length, during the modulation of a PSDU symbol (g0, gi) in the 124.8 MHz mode (two trains of eight pulses each, top) and in the 249.6 MHz mode (two trains of four pulses each, bottom).

[0044] Transmission channel 114 is, for example, a wireless channel in the band of Frequencies between 3.1 GHz and 10.6 GHz, preferably in the 3.1 GHz–4.8 GHz or 6 GHz–8.5 GHz band. Transmission channel 114 is typically defined with a bandwidth of 499.2 MHz, 500 MHz, or higher.

[0045] The receiver 104 includes a demodulator block 116, which receives the signal from channel 114, for example via a Rake receiver 115, and demodulates (BPSK) the signal to recover the transmitted binary trains and determine confidence values ​​or "logarithmic likelihood ratios" (LLRs) corresponding to the received data symbols, denoted o(n), here a pair of received pulse trains. The two binary trains for each pair o(n) of received pulse trains are denoted r0(n) and r11'. For simplicity, r0(n) and ri(n) are also denoted (and more generally r0 and rj) as the associated LLR values. Thus, o(n) = (r0(n), ri(n)).

[0046] In an alternative embodiment, the demodulator block 116 provides firm bits (either 0 or 1) rather than LLR values.

[0047] Subsequently, the index n can be omitted for simplicity when dealing with a symbol o=(r0, rj.

[0048] The received symbols o(n), that is to say the LLR values ​​r0(n) and r / "', are successively provided to a channel decoder 118 which performs a channel decoding, in this example using a weighted input Viterbi algorithm decoder (SIVA decoder - "soft-input Viterbi algorithm") to recover the initial coded data b(n).

[0049] The inputs of the Viterbi decoder are noted b0 and bi b0=r0 and bi=ri meaning that there is no preprocessing of the LLRs obtained from the demodulator block 116, in particular no inverse mapping of that carried out by the modulator block 112 on the basis of tables 20, 20' of [Fig.2].

[0050] Fig. 6 represents a lattice diagram 60 corresponding to the decoding symbols initially encoded by a finite state machine different from that of Fig. 1 (and therefore from the transmitter 102). Given that the convolutional coding on a bit b to be transmitted and the mapping of Fig. 2 lead to modulation (bz-lAbAb.z+l, bz-lAb.z+l, bz-lAb.z+l), these coding and modulation operations are considered, in a unitary way, by the receiver 104: they then correspond to a non-systematic convolutional coding [3, 7, 5], that is to say based on the generator polynomials g0 =

[111] (i.e. 7) and gi =

[101] (i.e. 5).

[0051] Also, the lattice diagram 60 of [Fig. 6] is that of a finite state machine corresponding to the non-systematic convolutional encoder {3, 7, 5}. The four states "00", "01", "10", and "11" are represented in each of the six columns, equipped with interconnecting arrows to represent all possible paths between states during five successive state transitions corresponding to five o(n) symbols obtained. In this example, for each of the four states, there is a choice of two distinct next states. As shown for the transition from the leftmost column of states to the adjacent column of states, each state transition corresponds to a different received symbol.

[0052] The dashed lines in the figure represent, purely for illustrative purposes, the most probable state transitions, maintaining one path per state, and show that after a certain number L of transitions, in this example five transitions, the probable paths merge into a single path. Using this principle, the data bits b(n) can be decoded with a delay of L symbol periods.

[0053] The bits 120 decoded in this way are noted d(n) in the figure.

[0054] Figure 7 illustrates, using a graph, the gain of 1.8 dB obtained by The use of a Viterbi decoder built on a convolutional code {3, 7, 5} (curve 71), rather than the classical approach of inverse mapping in [Fig. 2] to retrieve g0 and gi and then using a Viterbi decoder built on the encoding convolutional code, namely {3, 2, 5} (curve 72). This gain is further accompanied by a simplification of complexity (absence of inverse mapping) without additional computational cost (similar use of a Viterbi decoder).

[0055] Finally, [Fig.8] illustrates, using a flowchart, the steps of a communication process.

[0056] At step 80, the transmitter 102 obtains bits b(n) to transmit, preferably the PSDU data encoded by a Reed-Solomon encoder and the PHR header.

[0057] At step 81, the bits are encoded by the convolutional encoder 110 of type {3, 2, 5} to obtain (g0(n), gj(n)).

[0058] In step 82, binary trains are obtained from (g0(n), gi(n)) using one of the tables in [Fig.2].

[0059] In step 83, the binary trains are transmitted as pulse trains using BPSK modulation.

[0060] The rest of the process takes place on the side of receiver 104.

[0061] At step 85, the receiver 104 receives the pulse trains r0(n) and r / 11'.

[0062] At step 86, logarithmic likelihood ratio values ​​b0(n) and bi(n) are used. are obtained for pulse trains.

[0063] At step 87, these values ​​b0(n) and bi(n) are decoded by a Viterbi decoder built on a non-systematic convolutional coding {3, 7, 5], so as to obtain the decoded bits d(n) corresponding to the initial data bits b(n).

[0064] The transmitted b(n) data can be used in the context of access control operations (to a building, vehicle, computer system, etc.), location operations, but also equipment control operations (typically home automation).

Claims

Demands

1. Communication device (100) comprising: a receiver (115) configured to receive a signal consisting of pulse trains (r0, rj) encoding a plurality of bits (b) using a convolutional code {3, 2, 5} whose systematic bit g0 and parity bit gi are mapped into two binary trains (21, 22) depending respectively on g0Agi and gi, a demodulator (116) configured to demodulate pairs of received pulse trains (r0, rj) into respective pairs of bit values ​​(b0, bi), and a Viterbi decoder (118) constructed on a convolutional code {3, 7, 5}, configured to decode each pair of bit values ​​into one decoded bit (d).

2. Communication device (100) according to claim 1, wherein the bit values ​​(b0, bi) include logarithmic likelihood ratios.

3. Communication device (100) according to claim 1 or 2, the first bit value (b0) of a pair of bit values ​​comprises a logarithmic likelihood ratio associated with the first pulse train (r0) of a pair of received pulse trains, and the second bit value (bJ) of the pair of bit values ​​comprises a logarithmic likelihood ratio associated with the second pulse train (ri) of the pair of received pulse trains.

4. Communication system (100) comprising a transmitter (102) and a receiver (104) connected to the same communication channel (114), the transmitter (102) comprising: a convolutional encoder (110) with convolutional code {3, 2, 5} configured to encode a plurality of bits (b) into respective pairs of systematic bits go and parity gb; a symbol mapper (112) configured to map each pair of systematic bits g0 and parity gi into a pair of binary streams depending respectively on goAgi and gb; a modulator-transmitter (113) configured to modulate and transmit each binary stream as a pulse train on the communication channel (144), and the receiver (104) being a communication device according to any one of claims 1 to 3, for receiving and decoding a signal formed from said pulse trains.

5. Communication method comprising the following steps: receiving (85) a signal consisting of pulse trains (r0, rj) encoding a plurality of bits using a convolutional code {3, 2, 5} whose systematic bit g0 and parity bit gi are mapped into two binary trains depending respectively on goAgi and gb demodulating pairs of received pulse trains (r0, rj) into respective pairs of bit values ​​(b0, bj, and decoding, using a Viterbi decoder constructed on a convolutional code {3, 7, 5}, each pair of bit values ​​into a decoded bit (d).

Citation Information

Patent Citations

  • Processing module and associated method

    EP3370464A1