METHODS AND DEVICES FOR DECODING DATA SIGNALS

20170295037 · 2017-10-12

Assignee

Inventors

Cpc classification

International classification

Abstract

Embodiments of the invention provide a decoder for decoding a signal received through a transmission channel in a communication system, said signal comprising a vector of information symbols, said transmission channel being represented by a channel matrix comprising column vectors, said information symbols carrying information bits, wherein the decoder comprises: a transformation unit (401) configured to determine a set of auxiliary channel matrices, each auxiliary channel matrix being determined by performing a linear combination of at least one of the column vectors of said channel matrix; a decomposition unit (407) configured to determine a decomposition of each auxiliary channel matrix into an upper triangular matrix and an orthogonal matrix; a matrix selection unit (409) configured to select at least one auxiliary channel matrix among said set of auxiliary channel matrices depending on a selection criterion related to the components of said upper triangular matrices.

The decoder being configured to determine an auxiliary signal by multiplying the transpose of the orthogonal matrix corresponding to said selected auxiliary channel matrix by said received signal, the decoder being configured to determine at least one estimate of said vector of information symbols from said auxiliary signal and from the upper triangular matrix corresponding to said selected auxiliary channel matrix by applying a decoding algorithm.

Claims

1. A decoder for decoding a signal received through a transmission channel in a communication system, said signal comprising a vector of information symbols, said transmission channel being represented by a channel matrix comprising column vectors, said information symbols carrying information bits, wherein the decoder comprises: a transformation unit configured to determine a set of auxiliary channel matrices, each auxiliary channel matrix being determined by performing a linear combination of at least one of the column vectors of said channel matrix; a decomposition unit configured to determine a decomposition of each auxiliary channel matrix into an upper triangular matrix and an orthogonal matrix; a matrix selection unit configured to select at least one auxiliary channel matrix among said set of auxiliary channel matrices depending on a selection criterion related to the components of said upper triangular matrices, wherein the decoder is configured to determine an auxiliary signal by multiplying the transpose of the orthogonal matrix corresponding to said selected auxiliary channel matrix by said received signal, the decoder being configured to determine at least one estimate of said vector of information symbols from said auxiliary signal and from the upper triangular matrix corresponding to said selected auxiliary channel matrix by applying a decoding algorithm.

2. The decoder of claim 1, wherein said transformation unit is further configured to determine a set of transformation matrices, each transformation matrix comprising integer values and having a determinant of absolute value equal to one, and wherein said set of auxiliary channel matrices are determined by multiplying said channel matrix by each matrix of said set of transformation matrices.

3. The decoder of claim 1, wherein said matrix selection unit is further configured to divide each upper triangular matrix determined for each auxiliary channel matrix into a number of upper triangular sub-matrices and a number of rectangular sub-matrices depending on at least one sub-block decoding parameter chosen in a group consisting of a predefined number of sub-blocks, a set of sub-block lengths, and a predefined set of symbol estimation algorithms.

4. The decoder of claim 3, wherein said selection criterion is based on the value of at least one selection metric derived from the components of said upper triangular sub-matrices and/or said rectangular sub-matrices.

5. The decoder of claim 4, wherein said selection criterion depends on the value of said selection metric with respect to a metric threshold, said metric threshold being a real number.

6. The decoder of claim 5, wherein said metric threshold depends on the channel noise variance.

7. The decoder of claim 5, wherein said metric threshold is a function of at least one sub-block decoding parameter.

8. The decoder of claim 7, wherein the decoder is further configured to divide said auxiliary signal into a number of sub-vectors and to divide said vector of information symbols into a number of sub-vectors depending on said predefined number of sub-blocks and said set of sub-block lengths, the decoder being further configured to determine at least one estimate of each sub-vector of information symbols by applying a symbol estimation algorithm from said predefined set of symbol estimation algorithms.

9. The decoder of claim 8, wherein a different symbol estimation algorithm is applied for each sub-vector of information symbols.

10. The decoder of claim 9, wherein said symbol estimation algorithm is chosen in a group consisting of a sequential decoding algorithm, a ZF decoding algorithm, a ZF-DFE decoding algorithm and an MMSE decoding algorithm.

11. The decoder of claim 10, wherein it is further configured to perform a lattice reduction and/or MMSE-GDFE preprocessing on said selected at least one auxiliary channel matrix.

12. The decoder of claim 11, wherein it is configured to determine a plurality of estimates of each sub-vector of information symbols for delivering log-likelihood ratio values corresponding to said information bits.

13. A receiver for receiving and decoding a vector of information symbols, wherein the receiver comprises a decoder configured to decode said vector of information symbols, the decoder comprising a transformation unit configured to determine a set of auxiliary channel matrices, each auxiliary channel matrix being determined by performing a linear combination of at least one of the column vectors of said channel matrix; a decomposition unit configured to determine a decomposition of each auxiliary channel matrix into an upper triangular matrix and an orthogonal matrix; a matrix selection unit configured to select at least one auxiliary channel matrix among said set of auxiliary channel matrices depending on a selection criterion related to the components of said upper triangular matrices, wherein the decoder is configured to determine an auxiliary signal by multiplying the transpose of the orthogonal matrix corresponding to said selected auxiliary channel matrix by said received signal, the decoder being configured to determine at least one estimate of said vector of information symbols from said auxiliary signal and from the upper triangular matrix corresponding to said selected auxiliary channel matrix by applying a decoding algorithm.

14. The receiver of claim 13, wherein the receiver is a wireless device capable of receiving data in a wireless multiple-input multiple-output communication system.

15. The receiver of claim 13, wherein the receiver is an optical device capable of receiving data in an optical multiple-input multiple-output communication system.

16. A method of decoding a signal received through a transmission channel in a communication system, said signal comprising a vector of information symbols, said transmission channel being represented by a channel matrix comprising column vectors, said information symbols carrying information bits, wherein said method comprising: determining a set of auxiliary channel matrices, each auxiliary channel matrix being determined by performing a linear combination of at least one of the column vectors of said channel matrix; decomposing each auxiliary channel matrix into an upper triangular matrix and an orthogonal matrix; selecting at least one auxiliary channel matrix among said set of auxiliary channel matrices and its corresponding upper triangular matrix and orthogonal matrix depending on a selection criterion related to the components of said upper triangular matrices; wherein said method further comprises determining an auxiliary signal by multiplying the transpose of the orthogonal matrix corresponding to said selected auxiliary channel matrix with said received signal, and determining at least one estimate of said vector of information symbols from said auxiliary signal and the upper triangular matrix corresponding to said selected auxiliary channel matrix by applying a decoding algorithm.

17. A computer program for decoding a signal received through a transmission channel in a communication system, said signal comprising a vector of information symbols, said transmission channel being represented by a channel matrix comprising column vectors, said information symbols carrying information bits, the computer program product comprising a non-transitory computer readable storage medium, and instructions stored on the non-transitory computer readable storage medium that, when executed by a processor, cause the processor to: determine a set of auxiliary channel matrices, each auxiliary channel matrix being determined by performing a linear combination of at least one of the column vectors of said channel matrix; decompose each auxiliary channel matrix into an upper triangular matrix and an orthogonal matrix; select at least one auxiliary channel matrix among said set of auxiliary channel matrices and its corresponding upper triangular matrix and orthogonal matrix depending on a selection criterion related to the components of said auxiliary upper triangular matrices; wherein said processor being further caused to determine an auxiliary signal by multiplying the transpose of the orthogonal matrix corresponding to said selected auxiliary channel matrix with said received signal, and determine at least one estimate of said vector of information symbols from said auxiliary signal and the upper triangular matrix corresponding to said selected auxiliary channel matrix by applying a decoding algorithm.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

[0062] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various embodiments of the invention and, wherein:

[0063] FIG. 1 illustrates a schematic diagram of an exemplary application of the invention to communication systems;

[0064] FIG. 2 illustrates a schematic diagram of an implementation of a Space-Time decoder in a wireless single-user MIMO system;

[0065] FIG. 3 is a block diagram representing the structure of a Space-Time decoder according to an exemplary embodiment of the invention;

[0066] FIG. 4 is a block diagram illustrating the structure of a matrix calculation unit according to some embodiments of the invention;

[0067] FIG. 5 is a block diagram illustrating the structure of a matrix selection unit according to some embodiments of the invention;

[0068] FIG. 6 is a block diagram representing the decoding unit according to some embodiments of the invention;

[0069] FIG. 7 is a flowchart depicting a method of recursive sub-block decoding according to an exemplary embodiment of the invention; and

[0070] FIG. 8 illustrates a hardware architecture of a Space-Time decoder according to some embodiments of the invention.

DETAILED DESCRIPTION

[0071] Embodiments of the present invention provide, alone or in combination, methods, devices and computer program products for decoding a vector of information symbols received through a transmission channel in a communication system with an optimized computational complexity. The transmission channel is represented by a channel matrix comprising column vectors. Embodiments of the present invention are based on the transformation of the channel matrix into a matrix according to a selection criterion enabling the reduction of the complexity of the decoding algorithm implemented to determine at least one estimate of the vector of information symbols.

[0072] Methods, devices and computer program products according to various embodiments of the invention may be implemented in different types of systems. In particular, methods, devices and computer program products according to the various embodiments of the invention may be implemented in communication systems to determine an estimate of a vector of information symbols conveyed from one or many transmitter devices to a receiver device.

[0073] The following description of certain embodiments will be made with reference to communication systems, for illustration purpose only. However, the skilled person will readily understand that the various embodiments of the invention may be integrated in other types of systems such as signal processing systems.

[0074] FIG. 1 illustrates an exemplary application of the invention in a communication system 100. The communication system 100 may be a wired, a wireless or an optical system. The communication system 100 may comprise at least one transmitter device 11 (hereinafter referred to as a “transmitter”) configured to transmit a plurality of information symbols to at least one receiver device 15 (hereinafter referred to as “receiver”) through a transmission channel 13. The receiver 15 may include at least one decoder 10 to decode the information symbols sent by one or more transmitter devices 11.

[0075] The transmitter devices 11 may be equipped with one or more transmit antennas and the receiver devices 15 may be equipped with one or more receive antennas. The transmission channel 13 may be any wired connection, wireless medium or optical fiber-based link.

[0076] The communication system 100 may be a wireless single-user MIMO system comprising a wireless multi-antenna transmitter device 11, configured to communicate a flow of information symbols representing an input data, and a wireless multi-antenna receiver device 15, configured to decode the conveyed symbols by the transmitter 11.

[0077] The communication system 100 may be a wireless multi-user MIMO system in which a plurality of wireless transmitter devices 11 and receiver devices 15 communicate with each other. In such embodiments, the communication system 100 may further use any multiple access technique such as TDMA, FDMA, CDMA, and SDMA.

[0078] The communication system 100 may be an optical fiber-based communication system. The received signal may accordingly correspond to the information symbols transmitted through the different polarization states of the optical fiber or propagating over the different modes of multi-mode fibers. In addition, a multiple access technique such as WDMA (Wavelength Division Multiple Access) may be used in such optical communication systems.

[0079] The transmission channel 13 may be any linear Additive White Gaussian Noise (AWGN) channel or a multipath channel using single-carrier or multi-carrier modulation formats such as OFDM or FBMC.

[0080] In an application to wireless single-user MIMO systems, the complexity of QR-based decoding of a received signal may be reduced without sacrificing error performance. Exemplary applications of the various decoding methods and devices include, with no limitation, MIMO decoding in configurations implementable in wireless standards such as the Wi-Fi (IEEE 802.11n), the cellular WiMax (IEEE 802.16e), the cooperative WiMax (IEEE 802.16j), the Long Term Evolution (LTE), the LTE-advanced, and the 5G ongoing standardization.

[0081] For illustration purposes only, the following description will be made with reference to a wireless single-user MIMO system accommodating a transmitter device 11 equipped with n.sub.t≧1 transmit antennas and a receiver device 15 equipped with n.sub.r≧1 receive antennas for decoding information symbols sent by the transmitter 11. However, the skilled person will readily understand that the various embodiments of the invention apply in other communication systems such as wireless multi-user MIMO systems and optical MIMO systems. Generally, the invention may be integrated in any communication system characterized by a linear representation (equivalently a lattice representation) of the channel output at receiver devices.

[0082] Referring to FIG. 2, there is illustrated an exemplary wireless communication system 200 in which embodiments of the present invention may be implemented. The MIMO system 200 may comprise a transmitter 20 implementing a Space Time Block Code (STBC) to distribute the symbols modulated over time and space dimensions. Each transmitter 20 of a station may exchange data with a receiver 21 of another station according to the wireless communication system 200.

[0083] The MIMO system may present a symmetric configuration. As used herein, a symmetric configuration refers to a configuration in which case the transmitter and the receiver are equipped with the same number of antennas n.sub.t=n.sub.r. Alternatively, the MIMO configuration may be asymmetric, in which case the number n.sub.r of receive antennas differs from the number n.sub.t of transmit antennas. In particular, in one embodiment, in order to avoid a rank deficiency problem, the number n.sub.r of receive antennas may be larger than the number n.sub.t of antennas at the transmitter.

[0084] The transmitter 20 can convey a signal to a receiver 21 over a noisy wireless MIMO channel. The transmitter 20 can be implemented in different devices or systems capable of operating in a wireless environment, such as for example in an equipment or a mobile station. The transmitter 20 may be fixed or mobile. It may comprise for example: [0085] a channel encoder 201 implementing a Forward Error Correction (FEC) code such as block codes or convolutional codes; [0086] a modulator 203 implementing a modulation scheme such as Quadrature Amplitude Modulation (QAM) delivering a modulated symbol vector s.sub.c; [0087] a Space-Time encoder 205 for delivering a codeword matrix X; [0088] n.sub.t transmit antennas 207, each transmit antenna being associated with an OFDM or FBMC modulator.

[0089] The transmitter 20 may be configured to encode a received flow of information bits as data input using a FEC encoder 201 implementing for example a convolutional code. The encoded binary signal may be then modulated into a symbol vector s.sub.c using the modulator 203. Different modulation schemes may be implemented such as 2.sup.q-QAM or 2.sup.q-PSK with 2.sup.q symbols or states. The modulated vector s.sub.c may be a complex-value vector comprising custom-character complex-value symbols S.sub.1, s.sub.2, . . . , scustom-character.sub. with q bits per symbol.

[0090] An information symbol s.sub.j has a mean power E.sub.s, and can be written in the form:


s.sub.j=Re(s.sub.j)+iIm(s.sub.j)  (1)

[0091] In equation (1), i denotes the complex number such that i.sup.2=−1 and the Re(.) and Im(.) operators output respectively the real and imaginary parts of an input value.

[0092] When modulation formats such as 2.sup.q-QAM are used, the 2.sup.q symbols or states represent a sub-set of the integer field custom-character[i]. The corresponding constellation is composed of 2.sup.q points representing the different states or symbols. In addition, in the case of squared modulations, the real and imaginary parts of the information symbols belong to the same finite alphabet A=[−(q−1), (q−1)]. The minimum distance d.sub.min of a modulation scheme, represents the Euclidean distance between two adjacent points in the constellation and is equal to 2 in such example.

[0093] A Space-Time Encoder 205 may be used to generate a codeword matrix X from the encoded symbols. The Space-Time encoder 205 may use a linear STBC of length T and may deliver a codeword matrix X of dimension n.sub.t×T that belongs to a codebook C and is sent over T time slots. The coding rate of such codes is equal to

[00001] κ T

complex symbols per channel use, where custom-character is the number of encoded complex-value symbols composing the vector s.sub.c=[s.sub.1, s.sub.2, . . . , scustom-character.sub. ].sup.t of dimension custom-character in this case. When full rate codes are used, the Space-Time Encoder 205 encodes custom-character=n.sub.tT complex-value symbols. Examples of STBCs are the Perfect Codes. The Perfect codes provide full coding rates by encoding a number custom-character=n.sub.t.sup.2 (T=n.sub.t) of complex information symbols and satisfy a non-vanishing determinant property.

[0094] The Space-Time Encoder 205 may use a spatial multiplexing scheme known as V-BLAST scheme by multiplexing the received complex-value information symbols over the different transmit antennas without performing a coding in the time dimension.

[0095] The codeword so constructed may be converted from the time domain to the frequency domain using a multicarrier modulation technique, using for example OFDM or FBMC modulators, and spread over the transmit antennas 207. Signals may be sent from the transmit antennas 207 optionally after filtering, frequency transposition and amplification.

[0096] The receiver 21 may be configured to receive and decode a signal communicated by the transmitter 20 in a wireless network through a transmission channel (also referred to as a “communication channel”) subject to fading and interference and represented by a complex-value channel matrix H.sub.c. In addition, the communication channel may be noisy, affected for example by a Gaussian Noise.

[0097] The receiver 21 may be integrated in a base station such as a Node-B in a cellular network, an access point in a local area network or ad-hoc networks or any other interfacing device operating in a wireless environment. The receiver 21 may be fixed or mobile. In one exemplary embodiment, the receiver 21 may comprise: [0098] a Space-Time decoder 211 configured to deliver, from the channel matrix H.sub.c and the channel output signal Y.sub.c an estimation ŝ.sub.c of the modulated symbol vector s.sub.c; [0099] a demodulator 213 configured to generate a binary sequence by performing a demodulation of the estimated symbol vector ŝ.sub.c; [0100] a channel decoder 215 configured to deliver as output a binary signal being the estimation of the transmitted bits using for example the Viterbi algorithm.

[0101] The receiver 21 implements a reverse processing of the processing performed in the transmitter 20. Accordingly, if a single-carrier modulation is used at the transmitter rather than a multi-carrier modulation, then the n.sub.r OFDM of FBMC demodulators may be replaced by corresponding single-carrier demodulators.

[0102] Referring to FIG. 3, there is illustrated a structure of a Space-Time decoder 211 according to some embodiments. Accordingly, the Space-Time decoder 211 may comprise a complex-to-real converter 301 configured to convert the complex-value channel matrix H.sub.c into a real-value equivalent channel matrix H, and convert the complex-value channel output Y.sub.c into a real-value vector y of dimension n. The Space-Time decoder 211 may comprise a matrix calculation unit 303 configured to determine a set of auxiliary channel matrices from the channel matrix and select at least one auxiliary channel matrix among the determined set of auxiliary channel matrices according to a selection criterion. Each auxiliary channel matrix may be determined by performing a linear combination of at least one of the column vectors of the channel matrix. In accordance to the transformation of the channel matrix, the vector of information symbols in the real value representation maybe transformed into a vector s.sub.t. The Space-Time decoder 211 may comprise a decoding unit 307 configured to determine an auxiliary signal from the received signal and the selected at least one auxiliary channel matrix and determine at least one estimate ŝ.sub.t of the transformed vector of information symbols by applying a decoding algorithm. The Space-Time decoder 211 may further comprise a processing unit 309 configured to deliver an estimate ŝ.sub.c of the vector of the complex-value information symbols using the transformation operation applied to transform the channel matrix by the matrix calculation unit 303 and a real-to-complex conversion to the vector ŝ.sub.t. The conversion operation is the inverse of the processing performed at the complex-to-real converter 301.

[0103] Referring to FIG. 4, there is illustrated a structure of a matrix calculation unit 303 according to some embodiments of the invention in QR-based decoding. ML sequential decoding, ZF-DFE decoding and recursive sub-block decoding are examples of such embodiments. Accordingly, the matrix calculation unit 303 may comprise a transformation unit 401 comprising: [0104] a matrix generation unit 403 configured to determine a set N.sub.t of transformation matrices U.sub.q. The number N.sub.t of the transformation matrices being an integer number comprised between two (2) and n, and [0105] a matrix multiplication unit 405 configured to determine a set of N.sub.t auxiliary channel matrices H.sub.q by multiplying the channel matrix (in a real value representation) by each transformation matrix U.sub.q according to H.sub.q=HU.sub.q.

[0106] The matrix calculation unit 303 may further comprise: [0107] a decomposition unit 407 configured to determine an upper triangular matrix R.sub.q and an orthogonal matrix Q.sub.q for each auxiliary channel matrix H.sub.q by performing a QR decomposition to the auxiliary channel matrices, and [0108] a matrix selection unit 409 configured to select at least one auxiliary channel matrix H.sub.t and its corresponding upper triangular matrix R and orthogonal matrix Q from the determined set of auxiliary channel matrices according to a selection criterion. Accordingly, the selected at least one auxiliary channel matrix may be written in the form H.sub.t=HU.sub.t=QR, with U.sub.t being the transformation matrix enabling to determine the selected auxiliary channel matrix. In accordance to the transformation of the channel matrix, the vector of information symbols in the real value representation may be transformed into the vector s.sub.t=U.sub.t.sup.−1s.

[0109] In some embodiments, a transformation matrix U.sub.q may be a unimodular matrix, i.e. comprising integer values and having a determinant of unitary absolute value. In particular, transformation matrices U.sub.q may be permutation matrices of binary values corresponding to a permutation of the rows or the columns of the channel matrix.

[0110] Even if not limited to such applications, the invention has certain advantages in recursive sub-block decoding applications. The following description will be made with reference to an application to recursive sub-block decoding for illustration purpose only.

[0111] FIG. 5 is a block diagram representing a structure of the matrix selection unit 409 according to some embodiments of the invention in application to recursive sub-block decoding. Accordingly, the matrix selection unit 409 may comprise:

[0112] a matrix division unit 501 configured to divide each upper triangular matrix R.sub.q into a plurality of upper triangular sub-matrices R.sub.q.sup.(k) and a plurality of rectangular sub-matrices B.sub.q.sup.(jk) given a set of sub-block decoding parameters. The set of sub-block decoding parameters may comprise at least a predefined number of sub-blocks N, a set of sub-block lengths l.sub.k for k=1, . . . , N satisfying Σ.sub.k=1.sup.N l.sub.k=n, and a set of symbol estimation algorithms D.sup.(k). Accordingly, an upper triangular matrix R.sub.q may be divided into

[00002] N + N ( N + 1 ) 2

sub-matrices comprising N upper triangular sub-matrices R.sub.q.sup.(k), k=1, . . . , N and

[00003] N ( N + 1 ) 2

rectangular sub-matrices B.sub.q.sup.(kj), k=1, . . . , N, j=k+1, . . . , N;

[0113] a metric calculation unit 503 configured to determine at least a metric related to the components of the divided upper triangular and/or rectangular sub-matrices. For sub-matrices corresponding to the upper triangular matrix R.sub.q of index q, q=1, . . . , N.sub.t a metric related to the upper triangular sub-matrix R.sub.q.sup.(k) of index k is denoted SR.sub.q.sup.(k). A metric related to the rectangular sub-matrix B.sub.q.sup.(kj) is denoted BR.sub.q.sup.(k), and

[0114] an analysis unit 505 configured to analyze the determined at least one metric delivered by the metric calculation unit 503 and determine at least one upper triangular matrix R and orthogonal matrix Q according to a selection criterion. In certain embodiments, the selection metric may be related to the metrics SR.sub.q.sup.(k) and/or SB.sub.q.sup.(k).

[0115] In some embodiments, the matrix selection unit 409 may comprise a storage unit 507 configured to store at least a set of predefined metric thresholds. In such embodiments, the analysis unit 505 may be further configured to determine at least one upper triangular matrix and one orthogonal matrix by comparing the determined metric by the metric calculation unit 503 with stored metric thresholds in the storage unit 507.

[0116] In certain embodiments, the number N.sub.t of the transformation matrices may be less than or equal to the number of sub-blocks N.

[0117] FIG. 6 illustrates a structure of the decoding unit 307 according to some embodiments in application to recursive sub-block decoding. As illustrated in FIG. 6, the decoding unit 307 may comprise a multiplication unit 601 configured to determine an auxiliary signal {tilde over (y)} by scaling the real-value signal y by the transpose of the matrix Q obtained from the QR decomposition of the selected auxiliary channel matrix. The decoding unit 307 may further comprise a division unit 603 configured to:

[0118] divide the vectors s.sub.t and Q.sup.ty into sub-vectors s.sup.(k) and {tilde over (y)}.sup.(k) respectively, for k=1, . . . , N, where a sub-vector of index k has a length l.sub.k, and

[0119] retrieve the upper triangular sub-matrices R.sup.(k) and rectangular sub-matrices B.sup.(kj), k=1, . . . , N, j=k+1, . . . , N of the selected upper triangular matrix R.

[0120] These divided sub-matrices may have been previously stored in the storage unit 507.

[0121] Using the sub-vectors s.sup.(k) and {tilde over (y)}.sup.(k) and the divided sub-matrices R.sup.(k) and B.sup.(kj), a set of sub-blocks (SB).sub.k may be defined. For each index k=1, . . . , N−1, a sub-block (SB).sub.k may be defined as (SB).sub.k={l.sub.k, s.sup.(k), R.sup.(k), {tilde over (y)}.sup.(k), {tilde over (w)}.sup.(k), D.sup.(k), B.sup.(kj), j=k+1, . . . , N}. For k=N, the corresponding sub-block is given by (SB).sub.N={l.sub.N, s.sup.(N), R.sup.(N), {tilde over (y)}.sup.(N), {tilde over (w)}.sup.(N), D.sup.(N)}.

[0122] The decoding unit 307 may further comprise N symbol estimation units 605 and N−1 successive interference cancellation units 607. A SIC unit 607 may be associated with a sub-block (SB).sub.k and configured to calculate a vector y.sup.(k). A symbol estimation unit 605 may be associated with each sub-block (SB).sub.k to determine an estimate ŝ.sup.(k) using a symbol estimation algorithm D.sup.(k). The decoding unit 307 may further comprise a serial converter 609 configured to determine the real-value vector ŝ.sub.t=[ŝ.sup.(1), ŝ.sup.(2), . . . , ŝ.sup.(N)].sup.t by aggregating the outputs of the N symbol estimation units.

[0123] The skilled person will readily understand that the invention is not limited to the use of an estimation unit 605 for each sub-block. Alternatively a unique symbol estimation unit 605 or a set of symbol estimation units 605 (the set comprising less units than the total number of sub-blocks) may be used to determine the estimate of each sub-vector. In addition, in applications to semi-exhaustive recursive sub-block decoding, an estimation unit 605 may be configured to determine two or more estimates of the corresponding sub-vector of information symbols. Moreover, in one application for example to exhaustive recursive sub-block decoding, an estimation unit 605 may be configured to generate all possible estimate values of the sub-vector of information symbols.

[0124] In an application to a wireless Rayleigh fading multiple antenna system (single-user MIMO) for decoding a signal sent from a transmitter equipped with n.sub.t transmit antennas using a spatial multiplexing scheme and 2.sup.q-QAM modulation, to a receiver equipped with n.sub.r receive antennas with n.sub.r≧n.sub.t, the received complex-value signal may be written in the form:


y.sub.c=H.sub.cs.sub.c+w.sub.c  (2)

[0125] In equation (2), y.sub.c is a n.sub.r-dimensional vector, s.sub.c denotes the complex-value vector of transmitted information symbols of dimension n.sub.t. The complex-value n.sub.r×n.sub.t matrix H.sub.c represents the channel matrix comprising the fading gains. In a Rayleigh fading channel, the entries of the channel matrix H.sub.c are of independent identically distributed (i.i.d) complex Gaussian type. The channel matrix may be estimated in coherent transmissions at the receiver using estimation techniques such as least square estimators. In addition to the multipath fading effects, the transmission channel may be noisy. The noise may result from the thermal noise of the system components, inter-user interference and intercepted interfering radiation by antennas. The total noise may be modeled by a zero-mean Additive White Gaussian Noise of variance σ.sup.2 per real-value dimension modeled in equation (2) by the n.sub.r-dimensional complex-value vector w.sub.c.

[0126] Given the channel output, the receiver may attempt to generate an estimate of the original vector of information symbols.

[0127] FIG. 7 is a flowchart depicting the decoding method according to some embodiments and according to a recursive sub-block decoding application.

[0128] In step 701, a complex-to-real conversion may be performed to determine a real-value form of the received signal.

[0129] For example, in one embodiment using a spatial multiplexing scheme, the system in equation (2) may be transformed into:

[00004] y = [ Re ( y c ) Im ( y c ) ] = [ Re ( H c ) - Im ( H c ) Im ( H c ) Re ( H c ) ] [ Re ( s c ) Im ( s c ) ] + [ Re ( w c ) Im ( w c ) ] ( 3 )

[0130] The Re(.) and Im(.) operators in equation (3) designate the real and imaginary parts of each element composing the underlying vector or matrix.

[0131] Equation (3) can be written in the form:


y=Hs+w  (4)

[0132] To facilitate the understanding of the following embodiments, the following description will be made with reference to a spatial multiplexing scheme and involving a symmetric MIMO configuration where the transmitter and receiver are equipped with the same number of antennas n.sub.t=n.sub.r, for illustration purposes only. Accordingly, the real-value vectors y, s and w in equation (4) will be represented as n-dimensional vectors with n=2n.sub.t=2n.sub.r and the equivalent real-value channel matrix H will be represented by a square n×n matrix. The vector s comprises the real and imaginary parts of the original complex information symbols composing the vector s.sub.c.

[0133] In step 703, a set of N.sub.t transformation matrices U.sub.q, q=1, . . . , N.sub.t may be determined. The number of the transformation matrices may be comprised between two (2) and n. A transformation matrix U.sub.q is a square matrix of dimension n×n. It may be any unimodular matrix comprising integer values and having a determinant of an absolute value equal to one. It may correspond to one or any combination of elementary column operations comprising:

[0134] interchanging (or permuting) two or more columns;

[0135] adding a multiple of one column to another;

[0136] multiplying any column by a non-zero value.

[0137] In embodiments where transformation matrices are designed to permute (or interchange) the columns of the channel matrix in its real-value representation, the determined transformation matrices correspond to permutation matrices. A permutation matrix is an orthogonal matrix comprising binary values. A permutation matrix may be associated with an ordering π.sub.q of the columns of the matrix H. By writing the real-value form of the channel matrix in the form H=(h.sub.1 . . . h.sub.n) where vectors h.sub.i,i=1 . . . , n represent the columns of H, an ordering π.sub.q can be represented in the form

[00005] π q = ( h 1 .Math. h n π q ( h 1 ) .Math. π q ( h n ) ) .

A column vector h.sub.i of index i is accordingly permuted to the vector π.sub.q(h.sub.i). The permutation matrix U.sub.q corresponding to the ordering π.sub.q is a matrix with all zero entries except that in row i, the entry of the index corresponding to π.sub.q (h.sub.i) is equal to 1. The corresponding auxiliary (permuted in this case) channel matrix is accordingly given by H.sub.q=(π.sub.q (h.sub.1), . . . , π.sub.q(h.sub.n)).

[0138] In other embodiments, a transformation matrix may correspond to a reduction of the column vectors of the channel matrix. Any lattice reduction algorithm may be implemented to determine at least one transformation matrix in this case.

[0139] The determined N.sub.t transformation matrices U.sub.q may be used to compute N.sub.t auxiliary channel matrices H.sub.q for q=1, . . . , N.sub.t by multiplying the real value channel matrix H by each matrix of the determined set of transformation matrices according to H.sub.q=HU.sub.q.

[0140] In step 705, a plurality of upper triangular matrices R.sub.q εcustom-character.sup.n×n and orthogonal matrices Q.sub.q εcustom-character.sup.n×n may be determined by performing a QR decomposition of each auxiliary channel matrix such that H.sub.q=Q.sub.qR.sub.q.

[0141] In application to recursive sub-block decoding, a set of predefined sub-block decoding parameters comprising at least one sub-block decoding parameter may be initially received or retrieved from memory in step 707. The sub-block decoding parameters may comprise a predefined number of sub-blocks N (preferably equal to at least two), a set of sub-block lengths l.sub.k,k=1, . . . , N satisfying Σ.sub.k=1.sup.N l.sub.k=n, and a set of symbol estimation algorithms D.sup.(k),k=1, . . . , N. The lengths l.sub.k,k=1, . . . , N may be equal or different. The symbol estimation algorithms may be similar or distinct. The following description will be made with reference to sub-block decoding parameters comprising these three types of parameters (N, l.sub.k,k=1, . . . , N, D.sup.(k),k=1, . . . , N).

[0142] Using the sub-block decoding parameters, a division of the upper triangular matrices R.sub.q for q=1, . . . , N.sub.t may be performed in step 709. Accordingly, a matrix R.sub.q may be divided into

[00006] N + N ( N + 1 ) 2

sub-matrices comprising N upper triangular sub-matrices R.sub.q.sup.(k), k=1, . . . , N and

[00007] N ( N + 1 ) 2

rectangular sub-matrices B.sub.q.sup.(kj), k=1, . . . , N, j=k+1, . . . , N such that:

[00008] R q = [ R q ( 1 ) .Math. B q ( 1 , N - 1 ) B q ( 1 .Math. N ) 0 .Math. .Math. .Math. 0 0 R q ( N - 1 ) B q ( N - 1 , N ) 0 0 0 R q ( N ) ] ( 5 )

[0143] A divided upper triangular sub-matrix R.sub.q.sup.(k), k=1, . . . , N designates a square matrix of dimension l.sub.k×l.sub.k.

[0144] A divided sub-matrix B.sub.q.sup.(kj), k=1, . . . , N; j=k+1, . . . , N designates a rectangular matrix of dimension l.sub.k×l.sub.j.

[0145] In step 711, at least one auxiliary channel matrix H.sub.t and its corresponding upper triangular matrix R of sub-matrices R.sup.(k) and B.sup.(jk), orthogonal matrix Q and transformation matrix U.sub.t may be selected according to a selection criterion.

[0146] In some embodiments, the selection criterion may depend on at least one selection metric related to the divided upper triangular sub-matrices R.sub.q.sup.(k) and/or divided rectangular sub-matrices B.sub.q.sup.(jk). In particular, the selection criterion may correspond to the maximization or the minimization of one or more selection metrics related to the components of the divided upper triangular and/or rectangular sub-matrices. Accordingly, a metric SR.sub.q.sup.(k) and a metric SB.sub.q.sup.(k) related respectively to an upper triangular sub-matrix R.sub.q.sup.(k) and a rectangular sub-matrix B.sub.q.sup.(kj) may be calculated.

[0147] In some embodiments in application to QR-based Space-Time decoding, a metric SB.sub.q.sup.(k) related to the divided rectangular sub-matrices may correspond to the number of zero components of the corresponding rectangular sub-matrices B.sub.q.sup.(kj). In such embodiments, the transformation of the channel matrix may aim at obtaining an upper triangular matrix with the maximum number of zero components or obtaining an upper triangular matrix with zero components located in specific positions enabling for better decoding error performance/complexity tradeoffs.

[0148] A matrix with a number of zero components higher than the number of non-zero components is known as a sparse matrix. In contrast, a dense matrix is a matrix that has a number of non-zero entries larger than the number of zero components.

[0149] A zero entry in the upper triangular matrix used in the decoding process indicates an independence between two information symbols in the vector of the information symbols to be decoded. Accordingly, in certain embodiments of the invention applied to QR-based Space-Time decoding, considering a sparse upper triangular matrix R in the decoding process may advantageously enable for reducing the number of required computations of the ML metric using any type of joint, single-stream or sub-block decoding scheme.

[0150] In addition to the computational complexity advantage, sparse upper triangular matrices with zero entries located for example in the rectangular sub-matrices may further provide a performance improvement advantage.

[0151] For example, when applied to ZF-DFE decoding, transforming the channel matrix such that the selected upper triangular matrix R to be used in the decoding process has zero entries positioned within the rectangular sub-matrices enables the reduction of the error propagation induced by the inter-symbol interference.

[0152] In another example of application to recursive sub-block decoding, the transformation of the channel matrix may advantageously enable the parallelization of the decoding of the different sub-vectors of information symbols in the transformed vector of information symbols.

[0153] Still in another application to sequential decoding, transforming the channel matrix such that the resulting upper triangular matrix used in the resolution of the ML metric has zero entries in specific positions may advantageously enable searching for the ML solution in the decoding tree by visiting some paths or tree levels independently in a parallel way. As a result, computational complexity and processing time may be significantly decreased.

[0154] In one embodiment, a first metric (hereinafter referred to as ‘hard sparsity metric) related to the components of the rectangular sub-matrices may be used. It indicates, for a given divided rectangular sub-matrix B.sub.q.sup.(jk) of index k, the number of zero entries. The selection criterion may correspond in such embodiments to the maximization of the hard sparsity metrics per divided sub-blocks. The selected transformation matrix over all generated transformation matrices may correspond to the transformation matrix that enables to obtain an upper triangular matrix R with the maximum hard sparsity metrics for the

[00009] N ( N + 1 ) 2

divided rectangular sub-matrices.

[0155] In another embodiment, a second metric (hereinafter referred to as ‘weighted sparsity metric’) related to the components of the rectangular sub-matrices may be used. It indicates the number and the positions of the zero entries in the upper triangular matrix. A weighted sparsity metric of a rectangular sub-matrix B.sub.q.sup.(jk) of index k may be any function of the components of the corresponding sub-matrix B.sub.q.sup.(jk) weighted by their position in the upper triangular matrix R.sub.q. Positions of the components may be defined by a pair of row and column indexes.

[0156] In some embodiments, the matrix selection unit 409 may comprise a storage unit 507 configured to store at least a set of predefined metric thresholds. In such embodiments, the analysis unit 505 may be further configured to select at least one auxiliary channel matrix and its corresponding upper triangular matrix and orthogonal matrix by comparing the determined metrics by the metric calculation unit 503 with stored metric thresholds in the storage unit 507. In such embodiments, a third metric (referred to hereinafter as ‘soft sparsity metric’) related to the components of the rectangular sub-matrices may be used. It indicates the number of values in the divided rectangular sub-matrices that are greater than or equal to the predefined metric thresholds. Accordingly, the selection criterion may correspond to the maximum number of entries per rectangular sub-matrix that are greater than or equal to the predefined threshold metrics. The selected transformation matrix over all generated transformation matrices may correspond to the one that enables to obtain a matrix R with the maximum soft sparsity metrics in the divided rectangular sub-matrices.

[0157] Using such thresholds, some or the totality of the information symbols may be decoded separately in a parallel way although their corresponding fading coefficients in the upper triangular matrix used in the decoding process are not equal to zero.

[0158] The threshold metrics may be the same for all the sub-blocks or may depend on the position of the sub-block within the upper triangular matrix. For sub-blocks associated to the group of information symbols located in more advanced levels in the decoding tree with respect to the nodes located in the last level of the tree (also referred to hereinafter as ‘leaf nodes’), i.e. near to the positions of the leaf nodes, a higher metric threshold may be considered. It may advantageously enable decoupling information symbols and accelerating the convergence of the decoding process.

[0159] In addition to the performance improvement advantage, in certain embodiments using hardware implementations, the required storage, calculation and processing resources may be considerably reduced given that specific algorithms and data structures may be deployed to store and manipulate sparse matrices taking advantage of the sparse structure of the underlying matrix.

[0160] In step 713, an equivalent system to equation (4) may be determined using the selected auxiliary channel matrix. Accordingly, equation (4) may be first rewritten as:


y=HU.sub.tU.sub.t.sup.−1s+w=H.sub.ts.sub.t+w=QRs.sub.t+w  (6)

[0161] In equation (6), s.sub.t=U.sub.t.sup.−1s designates an integer value vector and corresponds to a transformed copy of the real-value vector of information symbols s associated with the transformation of the channel matrix using the selected transformation matrix U.sub.t. Given the orthogonality of the matrix Q, an equivalent system to equation (6) may be determined according to:


{tilde over (y)}=Q.sup.ty=Rs.sub.t+{tilde over (w)}  (7)

[0162] In equation (7), {tilde over (w)}=Q.sup.tw designates a scaled noise vector.

[0163] In application to QR-based decoding, the real-value equivalent system of equation (7) is considered for the estimation of the originally transmitted information symbols.

[0164] The ML decoding problem for jointly decoding the information symbols is given by:


ŝ.sub.t,ML=argmin.sub.s.sub.t.sub.εrT.sub.n∥{tilde over (y)}−Rs.sub.t∥.sup.2  (8)

[0165] In equation (8), T designates the alphabet to which belong the components of the transformed vector s.sub.t. The alphabet T may be determined, in certain embodiments, from the alphabet A=[c.sub.min, c.sub.max] to which belong the real and imaginary parts of the complex-value vector s.sub.c composing the real vector s.

[0166] An ML metric maybe defined as:


m(s)=∥{tilde over (y)}−Rs.sub.t∥.sup.2  (9)

[0167] In one application to recursive sub-block decoding, a sub-block decoding may be performed to recover an estimation of the original information symbols. Accordingly, in step 715, a division of the vector {tilde over (y)} into N sub-vectors may be performed such that

[00010] y ~ = [ y ~ ( 1 ) .Math. y ~ ( N ) ] .

A sub-vector {tilde over (y)}.sup.(k) of index k, for k=1, . . . , N has a lengths l.sub.k. The same sub-vector division may be applied to the noise vector {tilde over (w)} to determine N sub-vectors {tilde over (w)}.sup.(k) of lengths l.sub.k such that

[00011] w ~ = [ w ~ ( 1 ) .Math. w ~ ( N ) ] .

[0168] The sub-block decoding parameters, divided sub-matrices R.sup.(k) and B.sup.(kj) of the selected upper triangular matrix R and the divided sub-vectors {tilde over (y)}.sup.(k) may be grouped into sub-blocks (SB).sub.k, k=1, . . . , N. A sub-block (SB).sub.k, for k=1, . . . , N−1, may be defined by a set of parameters such that (SB).sub.k={l.sub.k, s.sup.(k), R.sup.(k), {tilde over (y)}.sup.(k), {tilde over (w)}.sup.(k), D.sup.(k), B.sup.(kj), j=k+1, . . . , N}, where:


{tilde over (y)}.sup.(k)=R.sup.(k)s.sup.(k)Σ.sub.j=k+1.sup.NB.sup.(kj)s.sup.(j)+{tilde over (w)}.sup.(k)  (10)

[0169] For k=N, the sub-block may be defined by (SB).sub.N={l.sub.N, s.sup.(N), R.sup.(N), {tilde over (y)}.sup.(N), {tilde over (w)}.sup.(N), D.sup.(N)} such that:


{tilde over (y)}.sup.(N)=R.sup.(N)s.sup.(N)+{tilde over (w)}.sup.(N)  (11)

[0170] Systems in equations (10) and (11) may be used for the decoding of the various sub-vectors of information symbols.

[0171] According to such groups of sub-blocks, the ML decoding metric in equation (9) may be written as:


m(s)=∥{tilde over (y)}−Rs.sub.t∥.sup.2=∥Σ.sub.k=1.sup.N{tilde over (y)}.sup.(k)−(R.sup.(k)s.sup.(k)+Σ.sub.j=k+1.sup.NB.sup.(kj)s.sup.(j))∥.sup.2   (12)

[0172] Accordingly, a sub-block estimation of the original sub-vectors of symbols s.sup.(k), k=N, N−1, . . . , 1 may be performed recursively in step 719. An initialization may be performed in step 717 corresponding to k=N.

[0173] Step 719 may be repeated for each sub-block (SB).sub.k, k=N, N−1, . . . 1 to determine a sub-vector estimation ŝ.sup.(k) of the sub-vector of symbols s.sup.(k) of the transformed vector s.sub.t. For each k=N−1, . . . 1, a sub-vector y.sup.(k)={tilde over (y)}.sup.(k)−Σ.sub.j=k+1.sup.N B.sup.(kj)ŝ.sup.(j) may be computed in step 725 from the previously estimated sub-vectors ŝ.sup.(j) and the rectangular sub-matrices B.sup.(kj), j=k+1, . . . , N. An estimate of the sub-vector of index k may be determined using the symbol estimation algorithm D.sup.(k), the upper triangular matrix R.sup.(k), and the calculated sub-vector y.sup.(k). For k=N, the estimate ŝ.sup.(N) may be determined using the corresponding symbol estimation algorithm D.sup.(N), the corresponding upper triangular sub-matrix R.sup.(N) and the vector y.sup.(N)={tilde over (y)}.sup.(N) initialized in step 717.

[0174] If it is determined that all the sub-vectors of symbols have been estimated in step 723, step 727 may be performed to construct an output, from the sub-vectors ŝ.sup.(k), k=1, . . . , N, as an estimation ŝ.sub.c of the complex-value vector of information symbols s.sub.c. The construction step may comprise three phases. First, a real-value vector ŝ.sub.t=[ŝ.sup.(1), . . . , ŝ.sup.(N)].sup.t may be constructed by aggregating the different sub-vector estimates. Then, an estimate ŝ of the vector of information symbols s may be determined by transforming the vector ŝ.sub.t using the selected transformation matrix according to ŝ=U.sub.tŝ.sub.t. Finally, the obtained vector ŝ may be converted into the complex-value vector ŝ.sub.c=[ŝ.sub.1, ŝ.sub.2 . . . , ŝ.sub.n/2].sup.t such that a component ŝ.sub.j for j=1, . . . , n/2 is given by:


ŝ.sub.j=+({circumflex over (s)}).sub.j+i({circumflex over (s)}).sub.j+n/2  (13)

[0175] In equation (13), (u).sub.j denotes the j.sup.th element of a vector u.

[0176] According to certain embodiments of the invention, the symbol estimation algorithms D.sup.(k), implemented in step 719 for k=1, . . . , N may be similar or different. A symbol estimation algorithm D.sup.(k) maybe, but not limited to, any sequential decoding scheme, a ZF, an MMSE or ZF-DFE.

[0177] In one embodiment where a sequential decoder is used in a given sub-block (SB).sub.k, the corresponding decoder D.sup.(k) delivers an estimate ŝ.sup.(k) by minimizing the sub-block metric m(s.sup.(k))=∥y.sup.(k)−R.sup.(k)s.sup.(k)∥.sup.2 according to:

[00012] s ^ ( k ) = arg .Math. .Math. min s ( k ) T l .Math. k .Math. m ( s ( k ) ) = arg .Math. .Math. min s ( k ) T l .Math. k .Math. .Math. y _ ( k ) - R ( k ) .Math. s ( k ) .Math. 2 ( 14 )

[0178] Sequential tree-search algorithms such as the Sphere Decoder (SD), the Stack decoder and the SB-Stack decoder (SB-Stack), may be used to solve equation (14).

[0179] Further, in certain embodiments, a preprocessing on the upper triangular sub-matrices R.sup.(k) prior to decoding may be performed using for example a lattice reduction and/or an MMSE-GDFE filtering. Preprocessing methods may be also applied to the channel matrix prior to sub-block division and decoding.

[0180] Although the various embodiments have been detailed in the case of MIMO systems using spatial multiplexing of information symbols, it should be noted that the invention is also applicable in configurations using linear Space-Time Block codes. In the presence of a Space-Time Block code of length T and encoding custom-character symbols, the real-value expression of the channel output can be written in the linear representation form of equation (4) where the equivalent channel matrix is the real-value 2n.sub.rT×2custom-character matrix H.sub.eq given by:


H.sub.eq=(I.sub.Tcustom-characterH)G  (15)

[0181] The 2n.sub.tT×2custom-character matrix G designates a real-value matrix known as a generator matrix or coding matrix of the linear Space-Time Block code. I.sub.T denotes the identity matrix of dimension T and the operator custom-character is the Kronecker matrices product.

[0182] Furthermore, while the various embodiments of the invention were detailed for symmetric MIMO configurations characterized by a same number of transmit and receive antennas, it should be noted that the invention may also be applied in asymmetric MIMO configurations with n.sub.t<n.sub.r. A linear representation in the form of equation (4) can also be obtained by performing the complex-to-real conversion of step 701 to the equivalent system given by:


U.sup.†y.sub.c=DV.sup.†s.sub.c+U.sup.†w.sub.c  (16)

[0183] In equation (16), the matrices U and V are unitary matrices obtained, together with matrix D, from the singular value decomposition of the matrix H.sub.c=UDV.sup.t. D is a diagonal matrix having positive diagonal entries representing the singular values of the matrix H.sub.c. The superscript (.).sup.† designates the Hermitian transposition operator.

[0184] Further, the various embodiments of the invention are not limited to particular types of recursive sub-block decoding, and apply to any other types of sub-block decoding such as Semi-exhaustive Recursive Sub-Block decoding disclosed in the patent application EP N° 15306808.5. Further, the various embodiments of the invention apply both to hard and soft decoding.

[0185] In one application to soft-output decoding, methods and devices according to the various embodiments allow generating a list of estimates of the original vector of information symbols. The list thus obtained can be used to calculate the log likelihood ratio values for approximating the extrinsic information of the different information bits carried by the original information symbols. Several iterations of steps 719 to 727 may be performed in order to fill the list of estimates.

[0186] The methods and devices described herein may be implemented by various means. For example, these techniques may be implemented in hardware, software, or a combination thereof. For a hardware implementation, the processing elements of a Space-Time decoder 211 can be implemented for example according to a hardware-only configuration (for example, in one or more FPGA, ASIC or VLSI integrated circuits with the corresponding memory) or according to a configuration using both VLSI and DSP.

[0187] FIG. 8 represents an exemplary hardware architecture 80 of the Space-Time decoder 211 according to certain embodiments of the invention. The hardware architecture 80 may be implemented in a machine or computer executed device. As illustrated, the Space-Time decoder 211 may include various computing, storage and communication units possibly interacting with one another through a data and address port 89 and comprising: [0188] Input peripherals 81 for receiving for example input data from the receive antennas 209; [0189] Processing peripherals 83 comprising one or more microprocessors (CPU) such as an FPGA or an ASIC configured for example to execute the corresponding instructions to run the methods and algorithms according to the various embodiments of the invention; [0190] Storage peripherals 85 possibly comprising a random access memory (RAM) or a read-only memory to store for example the sub-block decoding parameters and the set of transformation matrices and auxiliary channel matrices computed prior to decoding. [0191] Output peripherals 87 comprising communication means such as displays enabling for example man-to-machine interaction between the receiver device 21 and a MIMO system administrator for configuration and maintenance purposes.

[0192] Further, while some embodiments of the invention have been described in relation to a wireless single-user MIMO system, it should be noted that the invention is not limited to such an application. The invention may be integrated in any receiver device operating in any linear communication system characterized by a linear representation of the channel output. The communication system may be wired, wireless or optical fiber-based accommodating single or multiple users, using single or multiple antennas, and single or multi-carrier communication techniques. For example, the present invention may be integrated in a receiver device implemented in a wireless distributed MIMO system. Distributed MIMO may be used for example in cellular communications applied in 3G, 4G, LTE, and future 5G standard. Cooperative communications applied for example in ad-hoc networks (wireless sensor networks, machine-to-machine communications, internet of things, etc) are also examples of distributed MIMO systems. In addition to wireless networks, the present invention may be integrated in optical receiver devices implemented in optical fiber-based communication systems such as Polarization Division Multiplexing-OFDM (PDM-OFDM) systems.

[0193] Further, the invention is not limited to communication devices and may be integrated in signal processing devices such as electronic filters of finite impulse response (FIR) used in audio applications like audio crossovers and audio mastering. Accordingly, some embodiments may be used to determine an estimate of an input sequence, given an output sequence of a FIR filter of order M.

[0194] In another application, methods, devices and computer program products according to some embodiments of the invention may be implemented in a Global Navigation Satellite System (GNSS), such as IRNSS, Beidou, GLONASS, Galileo; GPS comprising for instance at least a GPS receiver for estimating positioning parameters using for example carrier phase measurements.

[0195] Further, methods, devices and computer program products according to some embodiments of the invention may be implemented in cryptographic systems for determining estimates on private secret values used in a cryptographic algorithm for encrypting/decrypting data or messages during their storage, processing or communication. In lattice-based cryptography applications, data/messages are encrypted in the form of lattice points. The decryption of such encrypted data may be advantageously performed according to some embodiments of the invention, enabling for a high probability of success recovery of secret values with a reduced complexity.

[0196] Furthermore, the methods described herein can be implemented by computer program instructions supplied to the processor of any type of computer to produce a machine with a processor that executes the instructions to implement the functions/acts specified herein. These computer program instructions may also be stored in a computer-readable medium that can direct a computer to function in a particular manner. To that end, the computer program instructions may be loaded onto a computer to cause the performance of a series of operational steps and thereby produce a computer implemented process such that the executed instructions provide processes for implementing the functions specified herein.

[0197] While embodiments of the invention have been illustrated by a description of various examples, and while these embodiments have been described in considerable details, it is not the intent of the applicant to restrict or in any way limit the scope of the appended claims to such details. Additional advantages and modifications will readily appear to those skilled in the art. The invention in its broader aspects is therefore not limited to the specific details, representative methods, and illustrative examples shown and described.