METHOD FOR DECODING, COMPUTER PROGRAM PRODUCT, AND DEVICE

20220036195 · 2022-02-03

Assignee

Inventors

Cpc classification

International classification

Abstract

The invention relates to a method for decoding at least M.sub.0 symbols X.sup.0.sub.1, . . . , X.sup.0.sub.M0 received from a transmitter through a wireless communication medium, said received symbols representing symbols encoded by an encoder E of the transmitter, said method comprising: inputting in a decoder the M.sub.0 symbols X.sup.0.sub.1, . . . , X.sup.0.sub.M0, said decoder comprising an artificial neural network system, wherein at least an activation function of the artificial neural network system is a multiple level activation function.

Claims

1-13. (canceled)

14. A method for decoding at least M.sub.0 symbols X.sub.1.sup.0, . . . , X.sub.M.sub.0.sup.0 received from a transmitter through a wireless communication medium, said received symbols representing symbols encoded by an encoder E of the transmitter, said method comprising: inputting in a decoder the M.sub.0 symbols X.sub.1.sup.0, . . . , X.sub.M.sub.0.sup.0 said decoder comprising an artificial neural network system, wherein at least an activation function of the artificial neural network system is a multiple level activation function, wherein the encoder E comprises a Lattice encoder, wherein inputs of the Lattice encoder being inputs of the encoder E, wherein the decoder is defined as a function F which is defined by N sets of functions F.sub.1.sup.i, . . . , F.sub.M.sub.i.sup.i, with i from 1 to N, F.sub.m.sup.i(X.sub.1.sup.i-1, . . . , X.sub.M.sub.i-1.sup.i-1)=ƒ.sub.m.sup.i(Σ.sub.k=1.sup.M.sup.i-1 w.sub.k,m.sup.i-1×X.sub.k.sup.i-1+β.sub.m.sup.i), with F(X.sub.1.sup.0, . . . , X.sub.M.sub.0.sup.0)=[F.sub.1.sup.N(X.sub.1.sup.N-1, . . . , X.sub.M.sub.N-1.sup.N-1), . . . , F.sub.M.sub.N.sup.N(X.sub.1.sup.N-1, . . . , X.sub.M.sub.N-1.sup.N-1)], where, X.sub.m.sup.i-1 are respectively the outputs of the functions F.sub.m.sup.i-1, X.sub.m.sup.i-1=F.sub.m.sup.i-1(X.sub.1.sup.i-2, . . . , X.sub.M.sub.i-1.sup.i-2) of the (i−1)-th set, each ƒ.sub.m.sup.i is either an artificial neural network activation function or an identity function, at least one of the ƒ.sub.m.sup.i is not an identity function and w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1,m′.sup.i-1, β.sub.m.sup.i are real number parameters, wherein at least one of the functions ƒ.sub.m.sup.i with m from 1 to M.sub.i and i from 1 to N−1 is a multiple level activation function.

15. The method according to claim 14, wherein the artificial neural network system is trained on a training set of vectors {circumflex over (Z)}.sup.j, each vector {circumflex over (Z)}.sup.j being compared with the output of the artificial neural network system when applied to a vector {circumflex over (X)}.sup.j,T, with {circumflex over (X)}.sup.j=({circumflex over (X)}.sub.1.sup.0,j, . . . , {circumflex over (X)}.sub.M.sub.0.sup.0,j), the vectors {circumflex over (X)}.sup.j being obtained by applying respectively to the vectors {circumflex over (Z)}.sup.j successively a first transformation representing the encoder E and a second transformation representing at least: a transmitting scheme of the transmitter, said transmitting scheme following the encoder E, and a radio communication channel.

16. The method according to claim 14, wherein said parameters w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i, with m from 1 to M.sub.i and i from 1 to N are computed to minimize a distance between respectively outputs F({circumflex over (X)}.sub.1.sup.0,j, . . . , {circumflex over (X)}.sub.M.sub.0.sup.0,j) of the decoder and vectors {circumflex over (Z)}.sup.j of a training set of vectors, with {circumflex over (Z)}.sup.j=({circumflex over (Z)}.sub.1.sup.j, . . . , {circumflex over (Z)}.sub.M.sub.N.sup.j), the vectors {circumflex over (X)}.sup.j, with {circumflex over (X)}.sup.j=({circumflex over (X)}.sub.1.sup.0,j, . . . , {circumflex over (X)}.sub.M.sub.0.sup.0,j), being obtained by applying respectively to the vectors {circumflex over (Z)}.sup.j successively a first transformation representing the encoder E and a second transformation representing at least: a transmitting scheme of the transmitter, said transmitting scheme following the encoder E, and a wireless communication channel.

17. The method according to claim 14, wherein the multiple level activation function is defined as: f K , B 1 , .Math. , B K - 1 , A , τ 1 , .Math. , τ K - 1 ( x ) = .Math. K - 1 l = 1 B l f l ( x - τ l ) + A with each ƒ.sub.l being an activation function, with τ.sub.l being real numbers, and if l≠l′=>τ.sub.l≠τ.sub.l′, with A and the B.sub.l being real numbers and K a positive integer greater than or equal to 3.

18. The method according to claim 14, wherein the encoder E comprises a MIMO encoder.

19. A computer program product comprising code instructions to perform the method according to claim 14, when said instructions are run by a processor.

20. A device for receiving M.sub.0 symbols X.sub.1.sup.0, . . . , X.sub.M.sub.0.sup.0 from a transmitter through a wireless communication medium, said received symbols representing symbols encoded by an encoder E of the transmitter, the device comprises: a reception module; and a decoder, said decoder comprising an artificial neural network system, wherein at least an activation function of the artificial neural network system is a multiple level activation function, wherein the encoder E comprises a Lattice encoder, wherein inputs of the Lattice encoder being inputs of the encoder E, wherein the decoder is defined as a function F which is defined by N sets of functions F.sub.1.sup.i, . . . , F.sub.M.sub.i.sup.i, with i from 1 to N, F.sub.m.sup.i(X.sub.1.sup.i-1, . . . , X.sub.M.sub.i-1.sup.i-1)=ƒ.sub.m.sup.i(Σ.sub.k=1.sup.M.sup.i-1 w.sub.k,m.sup.i-1×X.sub.k.sup.i-1+β.sub.m.sup.i), with F(X.sub.1.sup.0, . . . , X.sub.M.sub.0.sup.0)=[F.sub.1.sup.N(X.sub.1.sup.N-1, . . . , X.sub.M.sub.N-1.sup.N-1)], . . . , F.sub.M.sub.N.sup.N(X.sub.1.sup.N-1, . . . , X.sub.M.sub.N-1.sup.N-1)), where, X.sub.m.sup.i-1 are respectively the outputs of the functions F.sub.m.sup.i-1, X.sub.m.sup.i-1=F.sub.m.sup.i-1(X.sub.1.sup.i-2, . . . , X.sub.M.sub.i-1.sup.i-2) of the (i−1)-th set, each ƒ.sub.m.sup.i is either an artificial neural network activation function or an identity function, at least one of the ƒ.sub.m.sup.i is not an identity function and w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1,m′.sup.i-1, β.sub.m.sup.i are real number parameters, wherein at least one of the functions ƒ.sub.m.sup.i with m from 1 to M.sub.i and i from 1 to N−1 is a multiple level activation function.

Description

BRIEF DESCRIPTION OF DRAWINGS

[0065] FIG. 1 illustrates a transmitter and receiver according to the invention.

[0066] FIG. 2 schematizes a block diagram of a classical MIMO transmitter and a classical MIMO receiver.

[0067] FIG. 3 schematizes a block diagram of a MIMO transmitter and a MIMO receiver respectively implementing a Lattice encoder and a Lattice decoder.

[0068] FIG. 4 illustrates a two-dimensional Lattice.

[0069] FIG. 5 schematizes an ANN system.

[0070] FIG. 6 schematizes a block diagram of a classical MIMO transmitter and a receiver implementing a ANN decoder according to the invention.

[0071] FIG. 7 schematizes a block diagram of a MIMO transmitter implementing a Lattice encoder and a MIMO receiver implementing an ANN-Lattice decoder according to the invention.

[0072] FIG. 8 illustrates a MLAF according to the invention.

[0073] FIG. 9 illustrates a flowchart representing the decoding of a radio signal according to the invention.

DESCRIPTION OF EMBODIMENTS

[0074] Referring to FIG. 1, it is showed a transmitter 1.1 transmitting a radio signal to a receiver 1.2. The receiver 1.2 is in the cell coverage of the transmitter 1.1. This transmission may be an OFDM based transmission. In this example the receiver 1.2 is a mobile terminal and the transmitter 1.1 is a fixed station which in the context of LTE is a base station. The transmitter 1.1 can as well be the mobile terminal and the receiver 1.2 a fixed station. Both, the transmitter 1.1 and the receiver 1.2 may be mobile terminals.

[0075] The transmitter 1.1 comprises one communication module (COM_trans) 1.3, one processing module (PROC_trans) 1.4 and a memory unit (MEMO_trans) 1.5. The MEMO_trans 1.5 comprises a non-volatile unit which retrieves the computer program and a volatile unit which retrieves the parameters of the transmitter scheme (Modulation scheme applied, etc.). The PROC_trans 1.4 is configured to process the data to transmit according to the transmitter scheme including the encoder E. The COM_trans 1.3 is configured to transmit to the receiver 1.2 the radio signal. The processing of the data intended to be transmitted may also be realized by the COM_trans 1.3 rather than by the PROC_trans 1.4, in that case the PROC_trans 1.4 configures the COM_trans 1.3 to perform this processing. Indeed, the processing may be performed by electronic circuits dedicated to the processing of the data according to the transmitter scheme, or the processing may be performed by processors which process the data according to the transmitter scheme. The invention is not limited to such implementations and encompasses any combination of electronic and computing processing to process the data according to the transmitter scheme.

[0076] The receiver 1.2 comprises one communication module (COM_recei) 1.6, one processing module (PROC_recei) 1.7 and a memory unit (MEMO_recei) 1.8. The MEMO_recei 1.8 comprises a non-volatile unit which retrieves the computer program and a volatile unit which retrieves the parameters of the receiver scheme (Demodulation scheme applied, parameters of the ANN decoder obtained during the training, etc.). The PROC_recei 1.7 is configured to process the radio signal received from the transmitter according to the receiver scheme including the ANN decoder which has been previously trained. The COM_recei 1.6 is configured to receive from the transmitter the radio signal. The processing of the radio signal to retrieve the data may also be realized by the COM_recei 1.6 rather than by the PROC_recei 1.5, in that case the PROC_recei 1.5 configures the COM_recei 1.6 to perform this processing. Indeed, the processing may be performed by electronic circuits dedicated to the processing of the radio signal according to the transmitter scheme, or the processing may be performed by processors which process the radio signal according to the transmitter scheme. The invention is not limited to such implementations and encompasses any combination of electronic and computing processing to process the radio signal according to the transmitter scheme. When the ANN decoder is implemented by an electronic circuit, this electronic circuit may be a programmable logic device, which enables to adapt the ANN system according to training parameters defined during the training of the ANN system.

[0077] Referring to FIG. 2, it is showed a block diagram of a classical MIMO transmitter and a classical MIMO receiver.

[0078] The radio signal is obtained by processing data in the transmitter scheme. That is, by applying to a binary sequence, which represents the data to be transmitted, a modulation and coding scheme (MCS) encoder 2.1. The MCS encoder 2.1 outputs a sequence of symbols which are taken from a specific digital modulation scheme, for example, a QAM for which each symbol is considered as two real symbols in the following. These symbols are represented in FIG. 2 by letters ( . . . CBAA . . . CBBA). A serial to parallel module (S/P) 2.2 is then applied to the sequence of symbols to output n.sub.psym parallel symbols, 4 parallel symbols in the example of FIG. 2. These n.sub.psym parallel symbols (Z.sub.1 or Z.sub.2 in FIG. 2) are then inputted in the MIMO transmitting unit 2.3 which inputs in each of the n.sub.OFDM/Tx OFDM encoders 2.4 n.sub.sc parallel symbols (where n.sub.sc is the number of subcarriers used to carry symbols, also called useful subcarriers, that is non null subcarriers). The symbols outputted by the MIMO transmitting unit 2.3 are obtained according to pre-coding matrices that configures the MIMO transmitting unit 2.3. More specifically, the n.sub.psym parallel symbols are respectively inputted by groups of n.sub.psymb/n.sub.sc parallel symbols in each of the n.sub.sc MIMO encoders 2.3.1. Each MIMO encoder 2.3.1, which is parameterized according to a pre-coding matrix, outputs n.sub.OFDM/Tx symbols which are respectively inputted on the same subcarrier in each of the n.sub.OFDM/Tx OFDM encoders 2.4. Therefore, each OFDM encoder 2.4 receives one symbol from each MIMO encoder 2.3.1 (i.e. n.sub.sc symbols from n.sub.sc different MIMO encoders, one for each subcarrier), that is each OFDM encoder 2.4 receives n.sub.sc parallel symbols from the MIMO transmitting unit 2.3.

[0079] Each OFDM encoder 2.4 processes the n.sub.sc parallel symbols received at its input by applying an IFFT (Inverse fast Fourier transform) module and DACs (Digital Analog Converter). The output of each OFDM encoder 2.4 is emitted on one antenna Tx 2.5.

[0080] The radio signal is received by the receiver 1.2 on each of its n.sub.OFDM/Rx antennas Rx 2.6. To each signal received is applied an OFDM decoder 2.7. Each of the OFDM decoders 2.7 of the receiver 1.2 outputs n.sub.sc parallel symbols which are inputted in the MIMO receiving unit 2.8. The MIMO receiving unit 2.8 decodes the n.sub.OFDM/Rx groups of n.sub.sc symbols respectively outputted by the OFDM decoders 2.7 according to pre-coding matrix by which it has been configured. The MIMO receiving unit 2.8 outputs n.sub.psym symbols to which are applied successively a parallel to serial module 2.9 and a MCS decoder 2.10, that is, a demodulator and a decoding module, or simply a demodulator. More specifically, each OFDM decoder 2.7 inputs n.sub.sc parallel symbols respectively in the n.sub.sc MIMO decoders 2.8.1, that is one symbol in each MIMO decoder 2.8.1. Each inputted symbol in the MIMO receiving unit 2.8 is inputted in one of the n.sub.sc MIMO decoders 2.8.1. Each MIMO decoder 2.8.1 receives from each OFDM decoder 2.7 a symbol from the same subcarrier and outputs n.sub.psymb/n.sub.sc symbols according to a pre-coding matrix to which it has been configured. That is, the n.sub.sc MIMO decoders 2.8.1. output n.sub.psymb parallel symbols.

[0081] If the radio channel did not affect too much the radio signal and the noise of the different systems (transmitter 1.1 and receiver 1.2) is limited, the binary sequences emitted by the transmitter 1.1 are retrieved at the receiver 1.2 side.

[0082] Each OFDM decoder 2.7 applies on the signal received by their corresponding antenna Rx 2.6 ADCs (Analog Digital Converter) and a FFT (Fast Fourier transform) module which outputs n.sub.sc symbols.

[0083] In the case of the invention which implements such scheme, antenna ports implementing another scheme than an Orthogonal frequency-division multiplexing (OFDM) scheme may be implemented.

[0084] Referring to FIG. 3, it is showed a block diagram of a classical MIMO transmitter and a MIMO receiver respectively implementing a lattice encoder and a lattice decoder.

[0085] The radio signal is provided by processing data, and more specifically binary sequences, in the transmitter scheme. The transmitter scheme is the same as the one described in FIG. 2 except that the MCS encoder 2.1 is replaced by a modulator 3.1 and a Lattice encoder 3.2. The modulator 3.1 outputs values which can be associated with integers (for example different levels of amplitude of a signal in a Pulse-amplitude modulation (PAM) modulator).

[0086] Each output of the modulator 3.1 may be associated to a number of integers, this number being equal for example to the dimension of the constellation diagram of the modulation scheme used by the modulator 3.1. For example, with a PAM modulator 3.1 the dimension of the constellation diagram is equal to one, therefore, each symbol is represented by one integer also named level.

[0087] Based on n.sub.Lat-tuple of integers (z.sub.1, . . . , z.sub.n)∈custom-character.sup.n outputted by the modulator 3.1, the Lattice encoder 3.2 outputs n.sub.Lat-tuple of real numbers Σ.sub.i=1.sup.n z.sub.i e.sub.i∈custom-character.sup.n, with (e.sub.1, . . . , e.sub.n) a basis of a Lattice (therefore a basis of custom-character.sup.n), that is e.sub.i∈custom-character.sup.n and the (e.sub.1, . . . , e.sub.n) are linearly independent. This transformation (z.sub.1, . . . , z.sub.n).fwdarw.Σ.sub.i=1.sup.n z.sub.i e.sub.i is an isomorphism represented by the matrix G, the rows of which are basis vectors.

[0088] In the example of FIG. 4 is schematized a two-dimensional Lattice. The points of this lattice (represented in dots on FIG. 4) are defined as (z.sub.1 e.sub.1+z.sub.2e.sub.2) with (z.sub.1,z.sub.2)∈custom-character.sup.2. Since Vector (e.sub.1)=(1; 0) and Vector (e.sub.2)=(0.5; 0.75) a point (z.sub.1 e.sub.1+z.sub.2e.sub.2) of the Lattice is equal to

[00002] ( Z 1 + 1 2 Z 2 , 3 4 Z 2 ) .

Therefore, for a sequence of integers (1; 6; 2; 3) outputted by the modulator 3.1, the Lattice encoder 3.2 outputs (4; 4.5; 3.5; 2.25), with (4; 4.5) and (3.5; 2.25) two points of the Lattice P.sub.1 and P.sub.2.

[0089] The n.sub.Lat-tuple of real numbers Σ.sub.i=1.sup.n z.sub.i e.sub.i∈custom-character.sup.n is inputted in a serial to parallel module (S/P) 3.3 which outputs n.sub.psym parallel symbols, 4 parallel symbols in the example of FIG. 3. From the inputting of the sequence of n.sub.Lat real numbers in the S/P module 3.3 to the emission of the radio signal, the transmitter scheme is identical to the one described in FIG. 2. That is, at the output of the S/P module 3.3 is applied a MIMO transmitting unit 3.4 (as described in FIG. 2) and each OFDM encoder 3.5 process the n.sub.sc parallel symbols received at his input. The output of each OFDM encoder 35 is emitted on each antenna Tx 3.6.

[0090] The radio signal is received by the receiver 1.2 on each of its n.sub.OFDM/Rx antennas Rx 3.7. From the antennas Rx 3.7 to the output of the P/S module 3.10, the receiver scheme is identical to the one described in FIG. 2. Indeed, to each signal received is applied an OFDM decoder 3.8. Each of the OFDM decoder 3.8 of the receiver 1.2 outputs n.sub.sc parallel symbols which are inputted in the MIMO receiving unit 3.9. The MIMO receiving unit 3.9 decodes the n.sub.OFDM/Rx group of n.sub.sc symbols respectively outputted by the OFDM decoders 3.8. The MIMO receiving unit 3.9 outputs n.sub.psym symbols (as described in FIG. 2) to which are applied a parallel to serial module 3.10.

[0091] The P/S module 3.10 outputs a sequence of real numbers. These real numbers are inputted in the Lattice decoder 3.11 to be processed by tuples of n.sub.Dim real numbers (n.sub.Dim=n.sub.Lat), where n.sub.Dim is the dimension of the Lattice to which has been configured the Lattice decoder 3.11. Each n.sub.Dim-tuple of real numbers inputted in the Lattice decoder 3.11, represents a point of custom-character.sup.n. In the example of FIG. 4, the points P′.sub.1 (4.25; 4.20) and P′.sub.2 (3.70; 2.20) of custom-character.sup.n represent the two n.sub.Dim-tuple of real numbers. The noise and the canal have altered the symbols outputted by the Lattice encoder 3.2. Therefore, the n.sub.Dim-tuple of real numbers does not correspond to a point of the Lattice. The Lattice decoder 3.2 determines to which point of the Lattice the point of custom-character.sup.n inputted in the decoder 3.2 is the closest. For this purpose the Lattice decoder may process each of these points by: [0092] computing └P′.sub.1G.sup.−1┘ and P″.sub.1=P′.sub.1−└P′.sub.1G.sup.−1┘G, P″.sub.1 being the point in the grey parallelogram representing the Fundamental domain of the Lattice, with └X┘ being defined as └Vector(X.sub.1; . . . ; X.sub.n)┘=Vector(└X.sub.1┘; . . . ; └X.sub.n┘) where └X.sub.i┘ is the floor function; [0093] determining the closest Lattice point C.sub.1 to the point P″.sub.1 in the Fundamental domain; and [0094] computing C′.sub.1=C.sub.1+└P′.sub.1 G.sup.−1┘G.

[0095] To determine the closest Lattice point C, to the point P″.sub.1 in the Fundamental domain, the Lattice decoder 3.11 may determine the position of the point P″.sub.1 regarding several hyperplanes which divide the Fundamental domain in different zones (a, b, c, d, obtained with 5 hyperplanes in the case of FIG. 4), the points of each zone being closer to one of the Lattice points of the Fundamental domain. The hyperplanes are the line segment bisector of each segment of the Fundamental domain. In FIG. 4, P″.sub.1 and P″.sub.2 are in the zone b, therefore, both are closer to the lattice point at the up left of the Fundamental domain.

[0096] Therefore, if the radio channel did not affect too much the radio signal and the noise of the different systems (transmitter 1.1 and receiver 1.2) is limited, the Lattice decoder 3.11 retrieves the correct Lattice point and thus retrieves the correct sequence of integers (z.sub.1, . . . , z.sub.n) ((1; 6; 2; 3) in the case of FIG. 4). This sequence of integers is transformed into a binary sequence via the demodulator 3.12, which enables to retrieve, at the receiver 1.2 side, the binary sequences emitted by the transmitter 1.1.

[0097] The Lattice encoder 3.2 and Lattice decoder 3.11 are defined by their Lattice. That is, for each Lattice encoder/decoder there exists a unique lattice representation.

[0098] In the case of the invention which implements such scheme, antennas ports implementing another scheme than an Orthogonal frequency-division multiplexing (OFDM) scheme may be implemented.

[0099] FIG. 5 schematizes an ANN system. An ANN system is defined by layers, an input layer, one or more hidden layers and one output layer. Except for the input layer, each layer is composed of nodes to which are inputted weighted values of the previous layer. Input values are inputted in the nodes of the input layer.

[0100] Therefore, as represented in FIG. 5, X.sub.1.sup.0, . . . , X.sub.M.sub.0.sup.0 values are inserted in the input layer. The m-th node of the i-th layer of the ANN system, that is, the node (i; m) can be represented by F.sub.m.sup.i(X.sub.1.sup.i-1, . . . , X.sub.M.sub.i-1.sup.i-1)=ƒ.sub.m.sup.i(Σ.sub.k=1.sup.M.sup.i-1 w.sub.k,m.sup.i-1×X.sub.k.sup.i-1+β.sub.m.sup.i),where ƒ.sub.m.sup.i is an activation function, and Σ.sub.k=1.sup.M.sup.i-1 w.sub.k,m.sup.i-1×X.sub.k.sup.i-1 is the weighted sum of the values X.sub.k.sup.i-1 outputted by each node of the previous layer, w.sub.k,m.sup.i-1 being the weights. In addition, a value β.sub.m.sup.i is added to this sum, this value is called a bias or an offset.

[0101] The ANN system can therefore be represented by a function F such as F(X.sub.1.sup.0, . . . , X.sub.M.sub.0.sup.0)=[F.sub.1.sup.N(X.sub.1.sup.N-1, . . . , X.sub.M.sub.N-1.sup.N-1), . . . , F.sub.M.sub.N.sup.N(X.sub.1.sup.N-1, . . . , X.sub.M.sub.N-1.sup.N-1)]. A ANN decoder may comprise several ANN systems.

[0102] Referring to FIG. 6 it is showed a block diagram of a classical MIMO transmitter and a receiver implementing a ANN decoder.

[0103] The scheme of the transmitter 1.1 is identical to the one described in FIG. 2. That is, the transmitter scheme implements successively a MCS encoder 6.1, a S/P module 6.2, a MIMO transmitting unit 6.3, OFDM encoders 6.4 and transmitting antennas Tx 6.5.

[0104] The scheme of the receiver 1.2 is identical to the one described in FIG. 2 except that the MIMO receiving unit 2.8 is replaced by a ANN decoder 6.8. That is, the receiver scheme implements successively receiving antennas Rx 6.6, OFDM decoders 6.7, a ANN decoder 6.8, a P/S module 6.9 and a MCS decoder 6.10, all the elements being identical except for the MIMO receiving unit 2.8.

[0105] Indeed, the MIMO receiving unit 2.8 is replaced by an ANN decoder 6.8, that is, a decoder comprising at least an ANN system as described in the FIG. 5. The decoder may be an ANN system or simply a part of the decoder may be ANN system, that is, for example adding pre-processing by a decision feedback equalizer decoder. The decoder may also comprise several ANN systems, for example one ANN system for each MIMO decoder in the MIMO receiving unit 2.8. For the sake of simplicity only an ANN system completely replacing the decoder is described.

[0106] As for the MIMO transmitting unit 2.8 of FIG. 2, the ANN decoder 6.8 receives on its inputs the n.sub.sc groups of n.sub.OFDM/Rx symbols outputted by the OFDM decoders 6.7. For example, the ANN decoder 6.8 implements an input layer with a node for each of the n.sub.OFDM/Rx×n.sub.sc symbols, that is, an input layer containing n.sub.OFDM/Rx×n.sub.sc nodes. The ANN decoder 6.8 processes those inputs, and each of the nodes of the output layer outputs a value. The outputted values of the n.sub.psym nodes of the output layer represent the n.sub.psym parallel symbols.

[0107] The symbols of the modulation scheme inputted in the MCS decoder 6.10 may be represented in a P-dimensional space. The P-dimensional space may be the constellation diagram but other representations of the symbols of the modulation type may be chosen, for example all the symbols may be associated with values in a one-dimensional space. However, each symbol of the modulation scheme is defined by P coordinates (q.sub.1; . . . ; q.sub.P). The coordinates are real numbers. Therefore, when complex symbols are considered, or more generally complex values, each of them may be decomposed on two coordinates since the ANN system implements activation functions which are custom-character to custom-character functions.

[0108] The ANN decoder 6.8 may be configured so that at least P′ functions (ƒ.sub.m.sub.1.sup.N, . . . , ƒ.sub.m.sub.P′.sup.N) among the functions ƒ.sub.m.sup.N, that is, P′ activation functions of the output layer may be MLAF. The P′ functions (ƒ.sub.m.sub.1.sup.N, . . . , ƒ.sub.m.sub.P′.sup.N) respectively output values of P′ coordinates among the P coordinates (q.sub.1; . . . ; q.sub.P). When P′=P the output taken by (ƒ.sub.m.sub.1.sup.N, . . . , ƒ.sub.m.sub.P′.sup.N) represents a point in the P-dimensional space in which are represented the symbols of the modulation type. However, each ƒ.sub.m.sub.k.sup.N is a K.sub.k-levels activation function, where K.sub.k is equal to the number of values that can take the k-th coordinate among the P′ coordinates of the symbols of the modulation type. When P′=P, the number of possible points outputted by (ƒ.sub.m.sub.1.sup.N, . . . , ƒ.sub.m.sub.P′.sup.N) is at least equal to the number of symbols of the modulation scheme.

[0109] Generally, P′ is smaller than P, in that case the output layer of the ANN system outputs the P coordinates (q.sub.1; . . . ; q.sub.P) in several times, that is, for example, outputting the first P′ coordinates of the symbol and then the second P′ coordinates of the symbol and so on.

[0110] The MLAF that are chosen may be defined as:


ƒ.sub.m.sub.k.sup.N(x)=Σ.sub.l=1.sup.K.sup.k.sup.−1B.sub.l,kƒ.sub.l,k(x−τ.sub.l,k)+A.sub.k

[0111] Each ƒ.sub.l,k are activation functions (regular activation function), these activation functions may be the same activation function or different activation functions. In the following, for the sake of simplicity the ƒ.sub.l,k will all be the same for l from 1 to K.sub.k−1 and k from 1 to P, such activation function will be noted ƒ. ƒ may be for example a hyperbolic tangent (Tan H).

[0112] The τ.sub.l,k are distinct real numbers, that is, if l≠l′=>τ.sub.l,k≠τ.sub.l′,k. This distinction between the τ.sub.l,k ensures that the activation function has several levels.

[0113] The A.sub.k and the B.sub.l,k are real numbers. In FIG. 8 is shown an example of MLAF function with 5 levels, with the ƒ.sub.l,k being hyperbolic tangent functions.

[0114] At least for one k from 1 to P′, K.sub.k is a positive integer greater than or equal to 3. Indeed, most of the representation in a P-dimensional space of a modulation scheme is done in a compact manner, that is, all the K.sub.k are similar or equal to each other. For example, for k and k′ from 1 to P′, K.sub.k is either equal to K.sub.k′, K.sub.k′+1 or K.sub.k′−1. In addition, in the modulation scheme used in the new communication standard the number of symbols is important, which involves that the K.sub.k, for k from 1 to P′, are all greater than 3. For example, with a QAM modulation scheme of 8 symbols, at least one activation function may be a MLAF (with strictly more than 2 levels), with a QAM modulation type of 16 symbols, two activation functions may be MLAFs with each 4 levels.

[0115] When considering that the P′ coordinates of each of the symbols of the modulation type used by the MCS decoder 6.10 is represented by one of the possible output of the P′ functions (ƒ.sub.m.sub.1.sup.N, . . . , ƒ.sub.m.sub.P′.sup.N) then all the P′ coordinates of the different symbols of the modulation scheme can be represented by the output values of only P′ K.sub.k-levels activation functions, whereas it would have been necessary to use at least Σ.sub.k=1.sup.P′ K.sub.k−1 classical activation functions. Therefore, implementing classical activation functions would necessitate adding a significant amount of nodes in the output layer.

[0116] To enable the ANN decoder 6.8 to output the values representing the correct symbols according to the n.sub.OFDM/Rx×n.sub.sc symbols inputted in the ANN decoder 6.8, the ANN decoder 6.8 is trained. Therefore, previously to the processing at the receiver side, the ANN decoder 6.8 is trained. The training aims at modifying the parameters of the ANN system, that is w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i with m from 1 to M.sub.i and i from 1 to N, so that when the receiver 1.2 receives a radio signal resulting from a specific symbol inputted in the MIMO transmitting unit 6.3 of the transmitter 1.1, the output taken by (ƒ.sub.m.sub.1.sup.N, . . . , ƒ.sub.m.sub.P′.sup.N), which represents the P′ coordinates of a point in the P-dimensional space, is as close as possible to the specific symbol.

[0117] The training is performed based on a training set of vectors {circumflex over (Z)}.sup.j, with j from 1 to T. In the case of FIG. 6, each vector {circumflex over (Z)}.sup.j is an input of the MIMO transmitting unit 6.3. Each vector {circumflex over (Z)}.sup.j is associated with at least a vector {circumflex over (X)}.sup.j obtained by applying to the vectors {circumflex over (Z)}.sup.j successive transformations representing part of the transmitter scheme (transformations representing the MIMO transmitting unit 6.3, the OFDM encoders 6.4 and transmitting antennas Tx 6.5), the radio communication channel (represented for example by a channel matrix and a noise vector) and part of the receiver scheme (transformations representing the receiving antennas Rx 6.6 and the OFDM decoders 6.7).

[0118] Each vector {circumflex over (Z)}.sup.j may be associated with more than one vector {circumflex over (X)}.sup.j as previously defined. Indeed, there exist many possible successive transformations representing part of the transmitter scheme, the radio communication channel and part of the receiver scheme. For example, several transformations may represent each MIMO encoder of the MIMO transmitting unit 6.3, one transformation for each pre-coding matrix to which may be configured the MIMO encoders. Several transformations may represent the radio communication channel, one transformation for each channel matrix and noise vector that can represent the radio communication channel. More generally, several transformations may represent each component of the transmitter scheme, the receiver scheme and the radio communication channel. Therefore, each vector {circumflex over (Z)}.sup.j is associated with a group of vectors {circumflex over (X)}.sup.j,T with T from 1 to S. Two {circumflex over (X)}.sup.j,T and {circumflex over (X)}.sup.j,T′ are obtained with different transformations T and T′ applied to the same vector {circumflex over (Z)}.sup.j, each representing the same components of the transmitter and receiver. However, each transformation may represent a different configuration of these components and/or a different radio communication channel.

[0119] The training of the ANN decoder 6.8 comprises comparing respectively the vectors {circumflex over (Z)}.sup.j with the outputs of the ANN decoder 6.8 when the vectors {circumflex over (X)}.sup.j,T are inputted to it. If the ANN decoder 6.8 is represented by the function F as described in FIG. 5, then {circumflex over (Z)}.sup.j is compared to F({circumflex over (X)}.sup.j,T) with {circumflex over (X)}.sup.j,T equal to ({circumflex over (X)}.sub.1.sup.0,j,T, . . . , {circumflex over (X)}.sub.M.sub.0.sup.0,j,T). The comparison may be made by a distance d. That is, the distances d({circumflex over (Z)}.sup.j; F({circumflex over (X)}.sup.j,T)) are computed for each pair (T; j).

[0120] The parameters w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i, with m from 1 to M.sub.i and i from 1 to N are computed to minimize the distance on the whole training set of vectors {circumflex over (Z)}.sup.j.

[0121] For example, the parameters w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i may be computed to minimize for example Σ.sub.j,T d({circumflex over (Z)}.sup.j; F({circumflex over (X)}.sup.j,T)) or Σ.sub.j,T α.sub.j.Math.[d({circumflex over (Z)}.sup.j; F({circumflex over (X)}.sup.j,T))], where the a.sub.j are weighting factors. The parameters w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i influence the values taken by F({circumflex over (X)}.sup.j,T).

[0122] The parameters w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i may be computed with a stochastic gradient descent method, where the values of the gradient are obtained with a backpropagation method. Backpropagation is an algorithm used to efficiently compute the gradient of the cost function with respect to the weights used in the network.

[0123] For the sake of simplicity, in the above description the S/P module 6.2 has not been taken into account in the training process, indeed, rigorously the vectors {circumflex over (Z)}.sup.j are not outputs of the MCS encoder 6.1 but outputs of the S/P module 6.2. However, the S/P module 6.2 has not been taken into account since it only changes the training set of row vectors {circumflex over (Z)}.sup.j to a set of column vectors ({circumflex over (Z)}.sup.j).sup.tr, that is the transpose of the vectors {circumflex over (Z)}.sup.j.

[0124] The parameters K.sub.k, B.sub.1,k, . . . , B.sub.K.sub.k.sub.−1,k, A, τ.sub.1,k, . . . , τ.sub.K.sub.k.sub.−1,k of each ƒ.sub.m.sub.k.sup.N(x) can be set previously to the training of the ANN decoder 6.8 or they can be considered as the parameters of the ANN decoder 6.8 which are modified to reduce the overall gap between respectively the ideal responses and the actual responses of the ANN decoder 6.8. In that case the parameters are w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i, with m from 1 to M.sub.i and i from 1 to N and K.sub.k, B.sub.1,k, . . . , B.sub.K.sub.k.sub.−1,k, A, τ.sub.1,k, . . . , τ.sub.K.sub.k.sub.−1,k for k from 1 to P.

[0125] In the embodiment of FIG. 6 the ANN decoder replaces only the MIMO receiving unit 2.8. Here, the skilled person understands that the ANN decoder may replace additional components of the receiver scheme settled upstream from the MCS decoder 6.10. For example, the ANN decoder may replace the MIMO receiving unit 2.8 and the OFDM decoders 2.7.

[0126] Here, the skilled person understands that other schemes than the ones implemented in the transmitter 1.1 and the receiver 1.2 could be implemented. The embodiment described in FIG. 6 may be transposed with other schemes to the condition that there is a modulator and a demodulator. In that case, the ANN decoder may replace the component which outputs are inputted into the modulator and any component placed before.

[0127] Here, the skilled person understands that the ANN system implemented could be different from the feed forward neural network described in FIG. 5, for example, the ANN implemented could be a recurrent neural network.

[0128] In the embodiment of FIG. 6, it is only described to set MLAFs on the output layer. However, the complexity of the outputs of ANN decoder propagates through the hidden layers of the ANN system. Therefore, it may be relevant to set MLAFs in the hidden layers.

[0129] Referring to FIG. 7 it is showed a block diagram of a classical MIMO transmitter implementing a Lattice encoder and a MIMO receiver implementing an ANN-Lattice decoder according to the invention.

[0130] The scheme of the transmitter 1.1 is identical to the one described in FIG. 3. That is, the transmitter scheme implements successively a modulator 7.1, a Lattice encoder 7.2, a S/P module 7.3, a MIMO transmitting unit 7.4, OFDM encoders 7.5 and transmitting antennas Tx 7.6.

[0131] The scheme of the receiver 1.2 is identical to the one described in FIG. 3 except that the Lattice decoder 3.11 is replaced by an ANN-Lattice decoder 7.11. That is, the receiver scheme implements successively receiving antennas Rx 7.7, OFDM decoders 7.8, a MIMO receiving unit 7.9, a P/S module 7.10, an ANN-Lattice decoder 7.11 and a demodulator 7.12, all the elements being identical except for the Lattice decoder 3.11.

[0132] Indeed, the Lattice decoder 3.11 is replaced by an ANN-Lattice decoder 7.11, that is, a decoder comprising an ANN system as described in the FIG. 5. The decoder may be an ANN system or simply a part of the decoder may be ANN system. For the sake of simplicity only an ANN system completely replacing the Lattice decoder is described.

[0133] As for the Lattice decoder 3.11 of FIG. 3, the ANN-Lattice decoder 7.11 receives on its inputs tuples of n.sub.Dim real numbers outputted by the P/S module 7.10, with n.sub.Dim being the dimension of the Lattice to which has been configured the Lattice encoder 7.2. The tuple of n.sub.Dim real numbers represents a point of custom-character.sup.n.

[0134] The ANN-Lattice decoder 7.11 processes those inputs, and each of the nodes of the output layer outputs a value. These outputted values represent a sequence of n.sub.Dim integers. For example, n.sub.Dim nodes of the output layer each output an integer. In that case, these n.sub.Dim nodes may implement n.sub.Dim MLAFs

[00003] ( f m 1 N , .Math. , f m n Dim N )

among the functions ƒ.sub.m.sup.N. Each of the ƒ.sub.m.sub.k.sup.N outputs values corresponding to the k-th element of the sequence of n.sub.Dim integers. In addition each ƒ.sub.m.sub.k.sup.N may be a K.sub.k-levels activation function, where K.sub.k is equal to the number of values that can be taken by the k-th element of the sequences of n.sub.Dim integers outputted by the modulator 3.1.

[0135] The number of nodes on the output layer may be smaller than n.sub.Dim. In that case, and as described in FIG. 6, the output layer of the ANN system outputs the n.sub.Dim integers in several times. For the sake of simplicity n.sub.Dim is considered as smaller than the number of nodes on the output layer.

[0136] For the sake of simplicity the n.sub.Dim MLAFs may all be K levels activation functions, with K equal to the maximum integer that can output the modulator 7.1. For example, with a 8-level PAM modulator 7.1, the n.sub.Dim MLAFs may all be 8 levels activation functions. Therefore, the number of values that can be outputted by each ƒ.sub.m.sub.k.sup.N is at least equal to the number of symbols of the modulation scheme used by the modulator 7.12.

[0137] When considering that each of the integer of the sequence of integers (the integers being symbols of the modulation scheme used by the modulator 7.12) is represented by the output of one of ƒ.sub.m.sub.k.sup.N then all the different sequences of n.sub.Dim integers outputted by the modulator 7.1 can be represented by the output values of

[00004] ( f m 1 N , .Math. , f m n Dim N ) .

[0138] To enable the ANN-Lattice decoder 7.11 to output the values representing the correct sequences of n.sub.Dim integers according to the tuples of n.sub.Dim real numbers inputted, the ANN-Lattice decoder 7.11 is trained. That is, previously to the processing at the receiver side, the ANN-Lattice decoder 7.11 is trained. The training aims at modifying the parameters of the ANN system, that is w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i with m from 1 to M.sub.i and i from 1 to N, so that when the receiver 1.2 receives a radio signal resulting from a specific sequence of n.sub.Dim integers inputted in the Lattice encoder 7.2 of the transmitter 1.1, the sequence of values outputted by

[00005] ( f m 1 N , .Math. , f m n Dim N ) ,

is as close as possible to that specific sequence.

[0139] The training is performed based on a training set of vectors {circumflex over (Z)}.sup.j∈custom-character.sup.n.sup.Dim, with j from 1 to T. In the case of FIG. 7, each vector {circumflex over (Z)}.sup.j is an input of the Lattice encoder 7.2. Each vector {circumflex over (Z)}.sup.j is associated with at least a vector {circumflex over (X)}.sup.j∈custom-character.sup.n.sup.Dim obtained by applying to the vectors {circumflex over (Z)}.sup.j successive transformations representing part of the transmitter scheme (transformations representing the Lattice encoder 7.2, the S/P module 7.3, the MIMO transmitting unit 7.4, the OFDM encoders 7.5 and the transmitting antennas Tx 7.6), the radio communication channel (represented for example by a channel matrix and a noise vector) and part of the receiver scheme (transformations representing the receiving antennas Rx 7.7, the OFDM encoders 7.8, the MIMO receiving unit 7.9 and the P/S module 7.10).

[0140] Each vector {circumflex over (Z)}.sup.j may be associated with more than one vector {circumflex over (X)}.sup.j as previously defined. Indeed, there exist many possible successive transformations representing part of the transmitter scheme, the radio communication channel and part of the receiver scheme. For example, several transformations may represent each MIMO encoder of the MIMO transmitting unit 7.4, one transformation for each pre-coding matrix to which may be configured the MIMO encoders. Several transformations may represent the radio communication channel, one transformation for each channel matrix and noise vector that can represent the radio communication channel. More generally, several transformations may represent each component of the transmitter scheme, the receiver scheme and the radio communication channel. Therefore, each vector {circumflex over (Z)}.sup.j is associated with a group of vectors {circumflex over (X)}.sup.j,T, with T from 1 to S. Two {circumflex over (X)}.sup.j,T and {circumflex over (X)}.sup.j,T′ are obtained with different transformations T and T′ applied to the same vector {circumflex over (Z)}.sup.j, each representing the same components of the transmitter and receiver. However, each transformation may represent a different configuration of these components and/or a different radio communication channel.

[0141] The training of the ANN-Lattice decoder 7.11 comprises comparing respectively the vectors {circumflex over (Z)}.sup.j with the outputs of the ANN-Lattice decoder 7.11 when the vectors {circumflex over (X)}.sup.j,T are inputted to it. If the ANN-Lattice decoder 7.11 is represented by the function F as described in FIG. 5, then {circumflex over (Z)}.sup.j is compared to F({circumflex over (X)}.sup.j,T) with {circumflex over (X)}.sup.j,T equal to ({circumflex over (X)}.sub.1.sup.0,j,T, . . . , {circumflex over (X)}.sub.M.sub.0.sup.0,j,T). The comparison may be made by a distance d. That is, the distances d({circumflex over (Z)}.sup.j; F({circumflex over (X)}.sup.j,T)) are computed for each pair (T; j).

[0142] The parameters w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i, with m from 1 to M.sub.i and i from 1 to N are computed to minimize the distance on the whole training set of vectors {circumflex over (Z)}.sup.j.

[0143] For example, the parameters w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i may be computed to minimize for example Σ.sub.j,T d({circumflex over (Z)}.sup.j; F({circumflex over (X)}.sup.j,T)) or Σ.sub.j,T α.sub.j.Math.[d({circumflex over (Z)}.sup.j; F({circumflex over (X)}.sup.j,T))], where the a.sub.j are weighting factors. The parameters w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i influences the values taken by F({circumflex over (X)}.sup.j,T).

[0144] The parameters w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i may be computed with a backpropagation method.

[0145] As explained in the description related to FIG. 3, the Lattice decoder 3.11 or the ANN-Lattice decoder 7.11 receives n.sub.Dim-tuple of real numbers which represents a point P′ (P′.sub.1 or P′.sub.2 on FIG. 4) in custom-character.sup.n.sup.Dim, where n.sub.Din is the dimension of the Lattice. Generally, the point P′ is not a point of the Lattice since the noise and the canal have altered the n.sub.Dim-tuple of real numbers (representing a point P (P.sub.1 or P.sub.2 on FIG. 4) of the Lattice) outputted by the Lattice encoder 7.2. Therefore, the Lattice decoders must determine to which point of the Lattice Σ.sub.i=1.sup.n.sup.Dim z.sub.i e.sub.i∈custom-character.sup.n.sup.Dim, with (z.sub.1, . . . , z.sub.n)∈custom-character.sup.n.sup.Dim, the point P′ is the closest. To that end the Lattice decoders may determine the position of the point P′ (or a point in the Fundamental domain P″(P″.sub.1 or P″.sub.2 on FIG. 4), which results from a translation of P′ by a vector Σ.sub.i=1.sup.n.sup.Dim t.sub.i e.sub.i, with t.sub.1, . . . , t.sub.n integers) regarding several hyperplanes (the hyperplanes are the perpendicular bisector hyperplanes of each segment of the Fundamental domain) which divide the Fundamental domain (or the domain which results from a translation of the Fundamental domain by the vector Σ.sub.i=1.sup.n.sup.Dim−t.sub.i e.sub.i in different zones (a, b, c, d, obtained with 5 hyperplanes in the case of FIG. 4). Indeed, all the points of one of the zones are closer to a unique point of the Lattice of the Fundamental domain. Therefore to determine if a point is in one zone, the Lattice decoders may determine on what side of each hyperplane delimiting the zone the point is. For example, in the case of FIG. 4, to determine if a point is in the zone “a”, the Lattice decoder may determine if the point is on the left of the vertical hyperplane delimiting the “a” zone and under the oblique hyperplane delimiting the “a” zone, those two conditions are required. To determine if a point is in the zone “c”, the Lattice decoder may determine if the point is on the right of the vertical hyperplane delimiting the “c” zone and under the two oblique hyperplane delimiting the “c” zone, three conditions are now required. Therefore, even in a two-dimensional Lattice, determining the position of the point P is complex. This complexity grows in a non-linear manner when the dimension of the Lattice becomes bigger. However, even in a two-dimensional lattice determining in what zone the point is, requires at least one node for each hyperplane dividing the Fundamental domain.

[0146] In the case of the Lattice of FIG. 4, it requires five activation functions and thus five nodes to determine where a point is in the Fundamental domain. It is possible to reduce this number of nodes. For example, by replacing the activation functions outputting positions of a point relatively to two hyperplanes which are parallel, by one 3-level MLAF. More generally, each edge of the Fundamental domain of an n.sub.Dim dimensional Lattice is parallel to 2.sup.n.sup.Dim.sup.−1−1 other edges of the Fundamental domain. Therefore, when dividing the Fundamental domain, perpendicular bisector hyperplanes of the 2.sup.n.sup.Dim.sup.−1 parallel edges of the Fundamental domain are used. These 2.sup.n.sup.Dim.sup.−1 perpendicular bisector hyperplanes may for some of them coincide (but at least 2 hyperplanes do not and most of the time none of them do) or all of them coincide in one hyperplane if the vector of the Lattice basis, which has the same direction as these edges, is orthogonal to all the other vectors of the basis. Therefore, it is possible to reduce the number of nodes of the ANN-Lattice decoder configured with a non-orthogonal Lattice, for example, by replacing the activation functions outputting positions of a point relatively to 2.sup.n.sup.Dim.sup.−1 hyperplanes which are parallel, by one (2.sup.n.sup.Dim.sup.−1+1)-level MLAF. These problems are multiclass classification problems which occur regardless to the structure and the training of the ANN system.

[0147] Therefore, this complex computing, which requires ANN system with an important amount of nodes implementing regular activation functions, may be carried out by an ANN system with a reduced amount of nodes if MLAFs are implemented in the nodes of the hidden layers.

[0148] Therefore, the ANN-Lattice decoder 7.11 is implemented with at least one (2.sup.n.sup.Dim.sup.−1+1)-levels MLAF (or at least a 3 levels MLAF) on at least one of the hidden layers or on all the hidden layers. All the nodes of a layer may be implemented with such MLAF.

[0149] The MLAF used in the embodiment described in FIG. 7 may be defined as:

[00006] .Math. l = 1 K - 1 B l f l ( x - τ 1 ) + A

[0150] Each ƒ.sub.l are activation function, these activation functions may be the same or different activation function. For example, the ƒ.sub.l may be hyperbolic tangent (Tan H) functions.

[0151] The τ.sub.l are distinct real numbers, that is, if l≠l′=>τ.sub.l≠τ.sub.l′. This distinction between the τ.sub.l ensures that the activation function has several levels.

The A and the B.sub.l are real numbers.
K is an integer equal or greater than (2.sup.n.sup.Dim.sup.−1+1) (or at least equal or greater than 3).

[0152] The parameters K, B.sub.1, . . . , B.sub.K-1, A, τ.sub.1, . . . , τ.sub.K-1 of each MLAF used in the ANN-Lattice decoder 7.11 may be the same for all the MLAFs or may be different for each MLAF or may be the same only for all the MLAFs implemented in the output layer of the ANN system and the same only for all the MLAFs implemented in the hidden layers.

[0153] These parameters can be set previously to the training of the ANN-Lattice decoder 7.11 or they can be considered as the parameters of the ANN-Lattice decoder 7.11 which are determined during the training of the ANN system. In that case the parameters are w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i, with m from 1 to M.sub.i and i from 1 to N to which are added the parameters of each MLAF used in the ANN-Lattice decoder 7.11.

[0154] In the embodiment of FIG. 7 the ANN decoder replaces only the Lattice decoder 3.11. Here, the skilled person understands that the ANN decoder may replace additional components of the receiver scheme settled upstream and downstream from the ANN-Lattice decoder 7.11. For example, the ANN decoder replaces the Lattice decoder 7.11 and may also replace the P/S module 7.10 and the MIMO transmitting unit 7.9 and even the OFDM decoders 7.8.

[0155] Here, the skilled person understands that other schemes than the ones implemented in the transmitter 1.1 and the receiver 1.2 could be implemented. The embodiment described in FIG. 7 may be transposed with any other schemes to the condition that there is a Lattice encoder and a Lattice decoder. In that case, the ANN decoder replaces at least the Lattice decoder and may also replace any component placed before or after this Lattice decoder. For example, a shaping module may be added to the scheme described in FIG. 3 between the modulator 3.1 and the lattice encoder 3.2 and inverse shaping module between the demodulator 3.12 and the Lattice decoder 3.11. Such shaping modules modify the sequences of integers inputted in the Lattice encoder 3.2 to ensure that all the possible sequences outputted by the Lattice encoder 3.2 are compact according to the possible sequences of integers outputted by the modulator 3.1. That is, that the possible Lattice points outputted by the Lattice encoder 3.2 according to the possible outputs of the modulator 3.1 are in the smallest possible sphere around zero to reduce the average transmitting power.

[0156] Here, the skilled person understands that the ANN system implemented could be different from the feed forward neural network described in FIG. 5, for example, the ANN implemented could be a recurrent neural network.

[0157] Referring to FIG. 9 is shown a flowchart representing the decoding of a radio signal according to the invention.

[0158] At step S11 the ANN decoder, which in the case described in FIG. 6 is the ANN decoder 6.8 and in the case described in FIG. 7 is the ANN-Lattice decoder 7.11, is trained on a training set of vectors {circumflex over (Z)}.sup.j and their respective associated groups of vectors {circumflex over (X)}.sup.j,T, as described in FIGS. 6 and 7. The training may be carried out to determine only the parameters w.sub.1,m.sup.i-1, . . . , w.sub.M.sub.i-1.sup.i-1, m, β.sub.m.sup.i with m from 1 to M.sub.i and i from 1 to N or these parameters to which are added the parameters defining each MLAF implemented in the ANN system.

[0159] The parameters determined may be saved in the MEMO_recei 1.8 and retrieved to configure the ANN system.

[0160] At step S12 the radio signal received by the receiver 1.2 is processed by the components settled upstream from the ANN decoder, that is, by the OFDM decoders 6.7 in the embodiment of FIG. 6 and by the OFDM decoders 7.8, the MIMO receiving unit 7.9 and the P/S module 7.10 in the embodiment of FIG. 7.

[0161] At step S13 the symbols outputted by the processing carried out at step S12 are inputted into the ANN decoder, which decodes these symbols to retrieve the modulation symbols outputted by the MCS encoder 6.1 in the embodiment of FIG. 6 and the sequence of integers outputted by the modulator 7.1 in the embodiment of FIG. 7 to the condition that the radio channel did not affect too much the radio signal and the noise of the different systems (transmitter 1.1 and receiver 1.2) is limited.

[0162] At step S14 the output of the ANN decoder is processed according to the component of the receiver scheme settled at the downstream of the ANN decoder to retrieve the binary sequence which represents the data transmitted.