DEVICE AND METHOD FOR MACHINE LEARNING ASSISTANT SPHERE DECODING
The use of a machine learning algorithm to iteratively determine the search sphere radius in MIMO decoders addresses the challenge of computational complexity and power consumption, enhancing decoding efficiency in MIMO systems.
Patent Information
- Application Number
- JP2021574801
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-07-01
- Filing Date
- 2020-06-23
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2040-06-23
AI Technical Summary
MIMO decoders face challenges in achieving optimal ML performance with low computational complexity and power consumption, particularly in selecting the initial sphere radius for sphere search-based estimation algorithms.
A decoder using a machine learning algorithm to determine the search sphere radius by iteratively updating it based on a linear function, reducing the number of grid points visited, and employing a multilayer deep neural network for efficient radius determination.
The proposed method reduces computational complexity and accelerates convergence time of sphere search-based ML decoders, maintaining optimal decoding performance in high-dimensional systems.
Smart Images

Figure 0007612616000184 
Figure 0007612616000185 
Figure 0007612616000186
Abstract
Description
[Technical field]
[0001] The present invention relates generally to digital communications, and in particular to a method and device for decoding a data signal. [Background technology]
[0002] The "smart revolution" has brought about profound changes in all aspects of modern life, including communications, business, health services, and education. From smartphones, smart watches, and smart cars to smart homes and smart cities, an increasing number of smart devices are being used on a large scale, transforming our communication systems.
[0003] With the advent of such web-enabled and connected devices, there is an increasing need for greater system capacity. To increase such system capacity and provide better link reliability, multiple-input multiple-output (MIMO) technology has been developed. MIMO systems exploit spatial and temporal dimensions to encode and multiplex more data symbols across multiple time slots using multiple transmit and / or receive antennas. As a result, the capacity, range, and reliability of MIMO-based communication systems can be increased. Such significant advantages of MIMO technologies make them ideal candidates for many wired, wireless, and optical communication systems applied, for example, in local and wide area networks.
[0004] One major challenge for MIMO systems is to accommodate the increasing demand in terms of data transmission rates for real-time services and applications. Another challenge is related to the complexity and energy consumption of signal processing in transceiver devices. In particular, a tough challenge concerns the development of MIMO decoders capable of providing the required quality of service while consuming low power and computational resources.
[0005] A MIMO decoder implemented in the receiver device is configured to determine an estimate of the originally transmitted information symbols from the received signal and the channel matrix. The decoder performs a comparison of the received signal with possible values of the transmitted vector of information symbols.
[0006] Several decoding algorithms exist, and their practical use depends on the performance required in the quality of service (QoS) specification, as well as the available hardware resources, such as computation and memory (storage) provisions. In the presence of equally plausible information symbols, the optimal decoding performance is obtained by applying the Maximum Likelihood (ML) decoding criterion. ML decoders yield optimal performance.
[0007] The ML estimation problem can be solved using two different but equivalent representations of the MIMO system: the lattice representation and the tree representation.
[0008] In the lattice representation, the MIMO system is associated with a lattice generated by the channel matrix. According to such a representation, each possible value of the vector of information symbols is represented by a point in the lattice. The received signal is considered as a point of the lattice perturbed by a noise vector. Finding the value of the ML solution therefore amounts to solving the nearest vector problem. The ML solution corresponds in this case to the lattice point that is closest to the received signal in the sense of minimizing the Euclidean distance. The computational complexity of finding the ML solution depends on the number of lattice points examined during the search for the nearest lattice point.
[0009] Sphere tree search based estimation algorithms such as Sphere Decoder and Spherical-Bound Stack Decoder (SB-Stack) have been proposed to reduce the complexity of the search stage by restricting the search space for the nearest lattice point to a spherical region of a given radius. The Sphere Decoder is disclosed in "E. Viterbo and J. Boutros, A Universal Lattice Code Decoder for Fading Channels, IEEE Transactions on Information Theory, 45(5), pages 1639-1642, 1999", and the SB-Stack Decoder is disclosed in "G. Rekaya Ben-Othman et al., The Spherical Bound Stack Decoder, In Proceedings of the IEEE International Conference on Wireless and Mobile Computing, Networking and Communications, 2008".
[0010] Starting from a given radius (hereinafter referred to as the "initial sphere radius" or "search sphere radius"), the sphere search based estimation algorithm searches for a first lattice point associated with one of the possible values of the vector of information symbols within a sphere region of radius equal to the given radius. Upon finding the lattice point, the value of the sphere radius is updated to the value of the Euclidean distance between the found lattice point within the sphere region and the point representing the received signal. This sphere constrained search and radius update is performed iteratively until finding an ML solution corresponding to the smallest sphere that contains the lattice point and has its center at the point representing the received signal.
[0011] Such a search space restriction can be thought of as a restriction on the number of visited nodes in the decoding tree according to the tree representation of the MIMO system. The radius of the sphere region determines the boundary limits for the visited nodes at each level of the decoding tree. Only nodes that belong to the intervals imposed by these boundary limits are visited during the tree search process. Limiting the search space allows a reduction in the computational complexity of searching for an ML solution compared to some sequential decoders such as stack decoders.
[0012] The computational complexity of the tree search stage depends heavily on the choice of the search sphere radius. Thus, the main challenge of such a decoder is the choice of the sphere radius that is initially set to start the search for lattice points. Specifically, the initial radius is required to be large enough to include at least one lattice point inside the sphere. In contrast, a smaller initial radius would be preferable to avoid exponential search, since an excessively large radius would encourage the presence of a large number of lattice points inside the sphere. Thus, a reasonable trade-off is to be found between an initial radius large enough to ensure that at least one lattice point is included inside the sphere, and a radius small enough to optimize the computational complexity and significantly increase the speed of the decoder.
[0013] Several methods have been proposed for selecting the search sphere radius. In one approach, the inclusion radius of the lattice generated by the channel matrix is considered. In yet another approach, an upper bound on the inclusion radius is used, as further disclosed in the paper by E. Viterbo and E. Biglieri, "A universal decoding algorithm for lattice codes", In 14th colloque GRETSI, 1993. However, such selection methods based on the inclusion radius or upper bound suffer from high computational complexity due to the increasing number of lattice points visited.
[0014] In yet another approach, the search sphere radius can be selected by considering the statistical characteristics of noise power according to a method called SDIRS (standing for "Sphere Decoder with Improved Radius Search") disclosed in "W. Zhao and GB Giannakis, Sphere Decoding Algorithms with Improved Radius Search, In Proceedings of IEEE Transactions on Communications, 53(7):1104-1109, July 2005". One major drawback of this method for initial radius selection is that it produces an increase in the initial radius. In fact, when the initial radius is too small to successfully search at least one lattice point inside the sphere with the initial radius, the radius is increased until at least one lattice point is found inside the sphere.
[0015] Furthermore, with such an approach, the number of lattice points contained within the sphere increases as the radius increases, which can result in an excessive number of lattice points being contained within the sphere, which significantly increases the decoder complexity.
[0016] Yet another solution for selecting the initial radius is based on considering the Euclidean distance between the received signal and the Zero Forcing (ZF) estimate, as disclosed in US Patent Application Publication No. 2008 / 0313252 or in the paper "B. Hassibi and H. Vikalo, On the Expected Complexity of Sphere Decoding, In Proceedings of Asilomar Conference on Signals, Systems and Computers, vol. 2, pages 1051-1055, November 2001". This ensures that the ZF estimate and at least one grid point are included inside the sphere. However, this solution suffers from high computational complexity.
[0017] Furthermore, another solution for selecting the initial radius based on binary search is disclosed in "MA. Khsiba and G. Rekaya-Ben Othman, Sphere Decoder with Dichotomic Search, PIMRC, Montreal, CANADA, October 2017". The sphere decoder with binary search implements a dichotomic radius update strategy, where the radius update performed during the search for lattice points inside the sphere region is based on dividing the current radius by 2 every time a valid lattice point is found.
[0018] Although selecting the initial radius using such a method ensures that multiple lattice points are contained within a sphere having the initial radius, the initial radius may still be excessively large, thereby increasing the computational complexity of the decoder.
[0019] Therefore, there is a need for a sphere radius determination device that enables achieving optimal ML performance with fast decoding convergence and reduced decoding complexity. [Prior art documents] [Patent documents]
[0020] [Patent Document 1] US Patent Application Publication No. 2008 / 0313252 [Non-patent literature]
[0021] [Non-Patent Document 1] E. Viterbo and J. Boutros, A Universal Lattice Code Decoder for Fading Channels, IEEE Transactions on Information Theory, 45(5), pages 1639-1642, 1999 [Non-Patent Document 2] G. Rekaya Ben-Othman et al.,The Spherical Bound Stack Decoder,In Proceedings of the IEEE International Conference on Wireless and Mobile Computing,Networking and Communications,2008 [Non-Patent Document 3] A universal decoding algorithm for lattice codes”, In 14th colloque GRETSI, 1993, by E.Viterbo and E.Biglieri [Non-Patent Document 4] W. Zhao and GBGiannakis, Sphere Decoding Algorithms with Improved Radius Search, In Proceedings of IEEE Transactions on Communications, 53(7):1104-1109, July 2005 [Non-Patent Document 5] B. Hassibi and H. Vikalo, On the Expected Complexity of Sphere Decoding, In Proceedings of Asilomar Conference on Signals, Systems and Computers, vol. 2, pages 1051-1055, November 2001 [Non-Patent Document 6] MA.Khsiba and G.Rekaya-Ben Othman,Sphere Decoder with Dichotomic Search,PIMRC,Montreal,CANADA,October 2017 Summary of the Invention [Means for solving the problem]
[0022] To address these and other problems, a decoder is provided configured to decode a signal received over a transmission channel represented by a channel matrix using a search sphere radius, the decoder comprising a radius determination device for determining the search sphere radius from a provisional radius. i. applying a machine learning algorithm to input data derived from the received signal, the channel matrix, and a current radius, where the current radius is initially set to a tentative radius, which provides a current predicted number of grid points associated with the current radius; ii. comparing the current predicted number of grid points to a given threshold; and iii. updating a current radius if the current predicted number of grid points is strictly higher than a given threshold, where the current radius is updated by applying a linear function to the current radius; Steps i to iii are repeated until a termination condition is satisfied, the termination condition being related to the current predicted number, and the radius determination device is configured to set the search sphere radius to the current radius in response to the termination condition being satisfied.
[0023] According to some embodiments, the termination condition may be met if the current predicted number of grid points is less than or equal to a given threshold.
[0024] According to some embodiments, the linear function may have a slope parameter equal to ½ and an intercept parameter equal to zero.
[0025] According to some embodiments, the machine learning algorithm may be a supervised machine learning algorithm selected from the group including support vector machines, linear regression, logistic regression, naive Bayes, linear discriminant analysis, decision trees, k-nearest neighbors algorithms, neural networks, and similarity learning.
[0026] According to some embodiments, the supervised machine learning algorithm may be a multi-layer deep neural network including an input layer, one or more hidden layers, and an output layer, each layer including a plurality of computational nodes, the multi-layer deep neural network being associated with model parameters and an activation function, the activation function being implemented in at least one of the plurality of computational nodes of the one or more hidden layers.
[0027] According to some embodiments, the activation function may be selected from the group including a linear activation function, a sigmoid function, a Relu function, Tanh, a softmax function, and a cube function.
[0028] According to some embodiments, the radius determination device may be configured to predetermine the model parameters from the received training data during a training phase, the radius determination device being configured to determine a plurality of sets of training data from the training data and an expected number of lattice points, each expected number of lattice points being associated with a set of training data of the plurality of sets of training data, the training phase comprising the following steps: - processing the deep neural network using a set of training data from the plurality of training data as input, which provides an intermediate number of lattice points associated with the set of training data; - determining a loss function from an expected number of lattice points and a mean number of lattice points associated with a set of training data; and - determining updated model parameters by applying an optimization algorithm according to the minimization of a loss function; Contains two or more repetitions of
[0029] According to some embodiments, the optimization algorithm may be selected from the group including the Adadelta optimization algorithm, the Adagrad optimization algorithm, the adaptive moment estimation algorithm, the Nesterov accelerated gradient algorithm, the Nesterov accelerated adaptive moment estimation algorithm, the RMSprop algorithm, the stochastic gradient optimization algorithm, and the adaptive learning rate optimization algorithm.
[0030] According to some embodiments, the loss function may be chosen among a group including a mean squared error function and an exponential log-likelihood function.
[0031] According to some embodiments, the radius determination device may be configured to determine in advance the expected number of lattice points from the search sphere radius and the channel matrix by applying a list sphere decoding algorithm or a list sphere boundary stack decoder.
[0032] According to some embodiments, the radius determination device may be configured to determine the provisional radius from at least one parameter of the noise variance, the diagonal elements of the channel matrix, and the Euclidean distance expressing the distance between the received signal and an estimation vector, the estimation vector being determined by applying a sub-optimal estimation algorithm, the sub-optimal estimation algorithm being selected from the group including a zero-forcing decision feedback equalizer and a minimum mean square error estimation algorithm.
[0033] According to some embodiments, the radius determination device may be configured to determine the number of iterations of steps i to iii as a linear function of the signal-to-noise ratio, the linear function of the signal-to-noise ratio being defined by a slope coefficient and an intercept coefficient, the intercept coefficient being related to the transmit power, to a given threshold and to the determinant of the channel matrix.
[0034] According to some embodiments, the decoder may further comprise a symbol estimation unit configured to determine at least one estimate of a vector of information symbols conveyed by the received signal by applying a sphere search based estimation algorithm which determines at least one estimate of the vector of information symbols from lattice points found inside a spherical area centred on a point representing the received signal and defined by a search sphere radius.
[0035] According to some embodiments, the sphere search based estimation algorithm may be chosen among a group including a sphere decoder and a sphere boundary stack decoder.
[0036] Also provided is a method for decoding a signal received over a transmission channel represented by a channel matrix using a search sphere radius, the method comprising: determining a search sphere radius from a provisional radius; i. applying a machine learning algorithm to input data derived from the received signal, the channel matrix, and a current radius, where the current radius is initially set to a tentative radius, which provides a current predicted number of grid points associated with the current radius; ii. comparing the current predicted number of grid points to a given threshold; and iii. updating the current radius if the current predicted number of grid points is strictly higher than a given threshold, where the current radius is updated by applying a linear function to the current radius; A method is provided, comprising: Steps i-iii may be repeated until a termination condition is met, the termination condition being related to a current prediction number, and the method includes setting the search sphere radius to the current radius in response to the termination condition being met.
[0037] Advantageously, embodiments of the present invention provide an efficient sphere radius design and control technique that enables reducing the complexity of a sphere search based sequential ML decoder without compromising the decoding error performance.
[0038] Advantageously, embodiments of the present invention make it possible to accelerate the convergence time of a sequential sphere search based ML decoder by reducing the number of lattice points visited during the search for an ML solution. Embodiments of the present invention are particularly adapted for high-dimensional systems including a large number of transmit and / or receive antennas.
[0039] Further advantages of the present invention will become apparent to those skilled in the art upon examination of the drawings and detailed description.
[0040] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various embodiments of the present invention. [Brief description of the drawings]
[0041] [Figure 1] FIG. 1 is a schematic diagram of an exemplary application of the present invention in a communication system. [Diagram 2] FIG. 2 is a schematic diagram of an implementation of a space-time decoder in a wireless single-user MIMO system according to some embodiments. [Diagram 3] FIG. 3 is a block diagram illustrating a space-time decoder according to some embodiments of the present invention. [Figure 4] FIG. 4 shows a schematic diagram of a machine learning algorithm according to some embodiments of the present invention using deep neural networks. [Diagram 5] FIG. 5 is a flow chart illustrating a decoding method according to some embodiments of the present invention. [Figure 6] FIG. 6 is a flow chart illustrating a radius determination method according to some embodiments of the present invention. [Figure 7] FIG. 7 is a flow chart illustrating a method for training a deep neural network according to some embodiments of the present invention. [Figure 8] FIG. 8 illustrates bit error rate performance as a function of signal to noise ratio obtained in accordance with some embodiments of the present invention. [Figure 9]FIG. 9 illustrates average processing times as a function of signal-to-noise ratio obtained for MMSE, SDIRS, NN-SD, and SSD decoders for an 8x8 MIMO system, according to some embodiments of the present invention. [Figure 10] FIG. 10 illustrates average processing times as a function of signal-to-noise ratio obtained for MMSE, SDIRS, NN-SD, and SSD decoders for a 16×16 MIMO system, according to some embodiments of the present invention. [Figure 11] FIG. 11 illustrates the average number of lattice points contained within a spherical region as a function of the signal-to-noise ratio obtained for SDIRS and NN-SD decoders for an 8x8 MIMO system according to some embodiments of the present invention. [Figure 12] FIG. 12 illustrates the average number of lattice points contained within a spherical region as a function of the signal-to-noise ratio obtained for SDIRS and NN-SD decoders for a 16x16 MIMO system according to some embodiments of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0042] The embodiments of the present invention provide a device, a method and a computer program for decoding a vector of information symbols from a signal received through a transmission channel in a communication system with reduced computational complexity. In particular, the embodiments of the present invention provide a method, a device and a computer program product for efficient design and control of a search sphere radius used in a sphere search based ML sequential decoder comprising a sphere decoder and a sphere boundary stack decoder. The design and control of the search sphere radius according to the embodiments of the present invention rely on machine learning techniques.
[0043] To facilitate understanding of the description of some embodiments of the present invention, some definitions and notations are provided below.
[0044] Λ is a Euclidean space
number
number
number
number
[0045] lattice generator matrix
number
number
number
number
[0046] m(.)=||.||2 defines the Euclidean metric (also called the "Euclidean distance") as the distance between two points in Euclidean space.
[0047] Recently, vector problems have been solved in Euclidean vector spaces.
number
number
[0048] r0 indicates the radius of the pseudosphere.
[0049] r s indicates the search sphere radius (also called "initial sphere radius") used in the sphere search based estimation algorithm during the search stage of the decoding process.
[0050] D(K,θ k=1,...,K N refers to a multi-layer deep neural network consisting of an input layer, K ≥ 2 layers including one or more hidden layers, an output layer, and artificial neurons (hereinafter referred to as "nodes" or "computational nodes") connected to each other. The number of layers K represents the depth of the deep neural network, and the number of nodes in each layer represents the width of the deep neural network. (k) indicates the width of the kth layer and corresponds to the number of computational nodes in the kth layer.
[0051] The multi-layer deep neural network is k=1,...,K The model parameters θ are associated with the activation function σ, which is denoted by σ. The activation function σ refers to a computational nonlinear function that defines the output of neurons in the hidden layer of a multi-layer deep neural network. k=1,...,K is the parameter θ for k=1,...,K. k a kth set indicating a set of layer parameters associated with the kth layer of the multi-layer deep neural network,
number
number
number
[0052] L denotes the loss function, which refers to a mathematical function used to estimate the loss (also called the "error" or "cost") between an estimated (also called the "mean") value and an expected value during the training process of a deep neural network.
[0053] Optimizer (hereinafter referred to as "optimization algorithm" or "gradient descent optimization algorithm") refers to the optimization algorithm used to update the parameters of a deep neural network during the training phase.
[0054] An epoch refers to the number of times training data is passed through a deep neural network during the training phase.
[0055] A mini-batch refers to a subset of the training data that is extracted from the training data and used in an iteration of the training phase. The mini-batch size refers to the number of training data samples in each partitioned mini-batch.
[0056] The learning rate (also called the "step size") of a gradient descent algorithm refers to a scalar value that is multiplied by the magnitude of the gradient.
[0057] Generally, embodiments of the present invention provide devices, methods, and computer program products that enable solving the nearest vector problem with reduced complexity using a sphere search based sequential algorithm (also referred to as a "sphere search based estimation algorithm"). The nearest vector problem arises in several technical fields and applications, including but not limited to computer science, coding, digital communication and storage, and cryptography. Thus, embodiments of the present invention may be implemented in a wide variety of digital systems designed to store, process, or communicate information in digital form. Exemplary applications include, but are not limited to, the following: - Digital electronics, - communications (e.g. digital data encoding and decoding using lattice-structured signal constellations); - Data processing (e.g. in computing networks / systems, data centers), - data storage (e.g. cloud computing), - Cryptography (e.g., coding in an eavesdropping channel) - others.
[0058] Exemplary digital systems include, but are not limited to, the following: - communication systems (e.g. radio, wireless, single antenna communication systems, multiple antenna communication systems, optical fiber based communication systems); - communication devices (e.g. single or multiple antenna devices, base stations, relay stations for encoding and / or decoding digital uncoded or coded signals represented by a signal constellation, transceivers in mobile phone devices, computers, laptops, tablets, drones, IoT devices); - Cryptographic systems and devices used for communication, data processing, or storage that implement lattice-based encryption schemes (e.g., the GGH encryption scheme and NTRUEEncrypt), lattice-based signatures (e.g., the GGH signature scheme), and lattice-based hash functions (e.g., SWIFFT and LASH); - positioning systems (e.g. in GNSS for carrier phase GNSS integer ambiguity resolution), - others.
[0059] Embodiments of the present invention may be implemented in particular in a communication system for determining an estimate of a vector of information symbols transmitted from one or more transmitter devices to a receiver device, the estimation problem being equivalent to solving a nearest vector problem in a lattice generated by a channel matrix representing the transmission channel.
[0060] The following description of some embodiments of the present invention will be made primarily with reference to communication systems for purposes of example only, but those skilled in the art will readily appreciate that the various embodiments of the present invention may also be applied to other types of systems, such as signal processing systems, cryptography systems, and positioning systems.
[0061] FIG. 1 is a block diagram of an exemplary application to a communication system 100, according to some embodiments. The communication system 100 may be wired, wireless, or optical (e.g., optical fiber-based). 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 a "receiver") through a transmission channel 13. The receiver 15 may include a MIMO decoder 10 (also referred to as a "decoder" or a "space-time decoder") for decoding the information symbols sent by the one or more transmitter devices 11. The transmission channel 13 may be any wired connection, wireless medium, or optical link.
[0062] In an application of the present invention to wireless communication, the communication system 100 may be a wireless single-user MIMO system comprising a wireless transmitter device 11 configured to communicate a flow of information symbols representing input data, and a wireless receiver device 15 configured to decode the symbols transmitted by the transmitter 11.
[0063] The transmitter device 11 may be equipped with one or more transmit antennas, the receiver device 15 may be equipped with one or more receive antennas, and the number of transmit antennas n t , the number of receiving antennas n r is greater than or equal to 1.
[0064] In another application of the present invention to wireless communication, the communication system 100 may be a wireless multi-user MIMO system in which multiple wireless transmitter devices 11 and receiver devices 15 communicate with each other. In such an embodiment, the communication system 100 may further use any multiple access technique, such as Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Code Division Multiple Access (CDMA), and Space-Division Multiple Access (SDMA), either alone or in combination.
[0065] In applications of the present invention to optical communications (e.g., free-space optical communications and satellite communications), the communication system 100 may be an optical fiber-based communication system. Thus, the transmitter 11 and the receiver 15 may be any optical transceiver capable of operating in an optical fiber-based transmission system. The transmission channel 13 may be any optical fiber link designed to carry data over short or long distances. Exemplary applications using optical fiber links over short distances include high-capacity networks such as data center interconnects. Exemplary applications using optical fiber links over long distances include terrestrial and transoceanic transmissions. In such embodiments, the information symbols transmitted by the transmitter 11 may be carried by optical signals polarized according to different polarization states of the fiber. The optical signals propagate along the fiber-based transmission channel 11 according to one or more propagation modes until they reach the receiver 15.
[0066] In another application of the present invention to optical communications, optical signals carrying information symbols may be generated using a single wavelength laser.
[0067] In other embodiments, wavelength division multiplexing (WDM) techniques may be used in transmitter 11 to enable generation of optical signals using multiple independent wavelengths.
[0068] In yet another application of the invention to optical communication systems using multimode and / or multicore fibers, space division multiplexing techniques may be used to multiplex information symbols according to different propagation modes.
[0069] Additionally, multiple access techniques such as WDMA (wavelength division multiple access) may be used in some applications of the present invention to optical communication systems.
[0070] The transmission channel 13 can be any linear Additive White Gaussian Noise (AWGN) channel or a multipath channel using single-carrier or multi-carrier modulation formats such as Orthogonal Frequency Division Multiplexing (OFDM) and Filter Bank Multi-Carrier (FBMC) to mitigate frequency selectivity, interference, and delay.
[0071] For illustrative purposes only, the following description t A transmitter device 11 having ≥ 1 transmitting antenna and n r The description will be made with reference to a wireless single-user MIMO system containing a receiver device 15 with >= 1 receive antenna. However, those skilled in the art will readily appreciate that embodiments of the invention also apply to other communication systems, such as wireless multi-user MIMO systems and optical MIMO systems. More generally, the invention may be applied to any communication system characterized by a linear representation (equivalently, a lattice representation) of the channel output at the receiver device. In addition, without being limited to such embodiments, the invention has particular advantages when there are two or more multiple transmit antennas and / or two or more multiple receive antennas.
[0072] 2, an exemplary wireless single-user MIMO communication system 200 in which various embodiments of the present invention may be implemented is shown. The wireless single-user MIMO communication system 200 may comprise transmitters 20 implementing Space-Time Block Code (STBC) for multiplexing information symbols across time and space dimensions (i.e. across transmit antennas). Each transmitter 20 of a station may exchange data with a receiver 21 of another station associated with the wireless communication system 200.
[0073] The wireless single-user MIMO communication system 200 may have a symmetric configuration. As used herein, a symmetric configuration refers to a configuration in which the transmitter 20 and the receiver 21 have the same number of antennas, n t =n r Alternatively, the MIMO configuration may be asymmetric, with the number of receive antennas n r is the number of transmit antennas, n t Specifically, in one embodiment, in order to avoid the rank deficiency problem, the number of receive antennas n r is the number of antennas at the transmitter, n t An exemplary asymmetric MIMO configuration is, for example, the 2x4 (n t = 2, n r =4) and 4x8(n t = 4, n r =8).
[0074] The transmitter 20 calculates the channel matrix H c The transmitter 20 may transmit a signal to the receiver 21 through a noisy wireless MIMO channel represented by: . The transmitter 20 may be implemented in different devices or systems capable of operating in a wireless environment. Exemplary devices adapted for such applications include mobile phones, drones, laptops, tablets, robots, IoT (Internet of Things) devices, base stations, etc. The transmitter 20 may be fixed or mobile. It may include, for example: - a channel encoder 201 implementing one or more Forward Error Correction (FEC) codes, such as a linear block code, a convolutional code, a polar code, a Low Parity Check Code (LDPC), etc.; - modulated symbol vector s c A modulator 203 that performs a modulation method such as quadrature amplitude modulation (QAM) to transmit a space-time coder 205 for delivering the codeword matrix X, - n transmit antennas, each of which is associated with a single-carrier or multi-carrier modulator, such as an OFDM or FBMC modulator; t 207 transmitting antennas.
[0075] The transmitter 20 may be configured to encode the flow of information bits received as a data input using an FEC encoder 201 implementing, for example, a linear block code, a convolutional code, a low-density parity-check (LDPC) code, or a polar code. The encoded binary signal is then modulated using a modulator 203 to produce a symbol vector s c 2 q 2 with symbols or states q -QAM or 2 q Different modulation schemes can be implemented, such as -PSK. c is a set of к complex-valued symbols s1, s2, ..., s with q bits per symbol. к It can be a complex-valued vector containing:
[0076] Information symbols j is the average power E s and can be written in the form:
number
[0077] In equation (4), i represents a complex number, so that i 2 = -1,
number
number
[0078] 2 q When modulation formats such as -QAM are used, 2 qEach symbol or state is an integer field
number
[0079] 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, a codeword matrix of dimension n belonging to a codebook C, and sent over T time slots. t ×T codeword matrix X. The coding rate of such a code is given by
number
number
[0080] In some embodiments, the space-time encoder 205 may use a spatial multiplexing scheme known as the V-BLAST scheme by multiplexing the received complex-valued information symbols across different transmit antennas without performing coding in the time dimension.
[0081] The codeword thus constructed may be transformed from the time domain to the frequency domain using a multi-carrier modulation technique, for example using an OFDM or FBMC modulator, and spread over the transmit antenna 207. The signal may be sent from the transmit antenna 207 after optional filtering, frequency shifting, and amplification.
[0082] The receiver 21 is subjected to fading and interference and is represented by a complex-valued channel matrix H c The wireless network may be configured to receive and decode signals communicated by transmitter 20 in a wireless network through a transmission channel (also referred to as a "communication channel"), represented by: In addition, the communication channel may be noisy, e.g., affected by Gaussian noise.
[0083] 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 an ad-hoc network, 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 include: - Channel matrix H c and channel output signal Y c From the modulated symbol vector s c Estimation of
number
number
[0084] The receiver 21 performs the inverse process of that performed by the transmitter 20. Thus, if single-carrier modulation is used in the transmitter rather than multi-carrier modulation, then n r Each OFDM or FBMC demodulator may be replaced by a corresponding single-carrier demodulator.
[0085] 3 represents the block structure of a space-time decoder 300 according to some embodiments when applied to a wireless Rayleigh fading multiple antenna system. t The decoder 300 is configured to receive and decode signals sent from a transmitter having n transmit antennas. r The signal processing device is implemented in a receiver device having a receiving antenna.
[0086] According to some embodiments in which the space-time coding is performed at the transmitter using a space-time code of length T that encodes k symbols, the received complex-valued signal may be written in the form: Y c =H c X c +W c (5)
[0087] In formula (5), Y c represents the received signal, r xT denotes the matrix, x c is dimension n t represents the complex-valued codeword matrix of xT.
[0088] According to some embodiments in which V-BLAST spatial multiplexing is used, the received complex-valued signal may be written in the form:
number
[0089] In equation (6), y c is r is a dimensional vector, and c is the dimension n t represents a complex-valued vector of transmitted information symbols.
[0090] Complex value n r ×n t matrix H c represents the channel matrix including the fading gain. In a Rayleigh fading channel, the channel matrix H c The elements of are independent identically distributed (iid) complex Gaussian. The channel matrix can be estimated in coherent transmission at the receiver using estimation techniques such as the least squares estimator. In addition to multipath fading effects, the transmission channel may have noise. The noise may result from thermal noise of the system components, inter-user interference, and interference radiation intercepted by the antenna. The total noise is n r xT complex-valued matrix W c and n r dimensional complex vector w c The variances for each real-valued dimension, σ, are modeled respectively by 2 can be modeled by zero-mean additive white Gaussian noise of
[0091] The decoder uses the complex-valued channel matrix H c into a real-valued equivalent channel matrix H, and to convert the complex-valued received signal into a real-valued signal.
[0092] In one embodiment using V-BLAST spatial multiplexing, the complex-to-real converter 301 may be configured to convert the complex value system into the following equation:
number
[0093]
number
[0094] In another embodiment using linear space-time block coding at the transmitter, the complex-to-real converter 301 may be configured to convert the complex-valued system to a real-valued system that can be written in a linear representation format. The equivalent channel matrix is a real-valued 2n r T×2к matrix H eq Is:
number
[0095] 2n t The T×2k matrix G denotes a real-valued matrix known as the generator matrix or encoding matrix of the linear space-time block code used at the transmitter. T denotes the identity matrix of dimension T, and the operator
number
[0096] To facilitate understanding of the following embodiments, the following description will be made, for illustrative purposes only, with reference to a spatial multiplexing scheme and with an equal number of transmitters and receivers, n t =n r This is done by involving a symmetric MIMO configuration with: y=Hs+w (9)
[0097] In equation (9), the vectors y, s, and w are t =2n rThe equivalent real-valued channel matrix H is a square n × n matrix. c contains the real and imaginary parts of the original complex-valued information symbol contained in q In an embodiment in which -QAM modulation is used, the components of vector s belong to the same finite alphabet A=[-(q-1),(q-1)].
[0098] Given the integer nature of the vector s, any signal of the form x=Hs can be expressed as an n-dimensional lattice Λ of generator matrices, real-valued channel matrices H. H Therefore, a real-valued MIMO system can be associated with a lattice representation: each possible value of the vector s containing the real and imaginary parts of the original complex-valued information symbols is a point on the lattice Λ H Moreover, due to the presence of the noise vector w, the real values of the received signal y do not correspond to lattice points. It is represented by the lattice Λ perturbed by the noise vector w. H can be regarded as a point.
[0099] A lattice is by definition infinite, i.e. it contains an infinite number of lattice points. When modulation such as QAM is used, the set of possible values of the vector s of symbols is finite and is determined by a finite alphabet A. In this case, the lattice points associated with the possible values of the vector s are the lattice Λ H Such lattice points will be referred to as "effective lattice points" in the following description.
[0100] According to the ML decoding criterion, the optimal estimate of vector s is
number
number
[0101] Using the lattice representation of the MIMO system, solving the ML decoding problem can be reduced to solving the lattice ΛH The ML solution then corresponds to the available lattice point that is closest to the received signal in the sense of minimizing the Euclidean distance.
[0102] For practical implementation, an equivalent tree representation of the MIMO system based on QR decomposition can be used. Thus, the decoder 300 derives the orthogonal matrix H by applying the QR decomposition to the real-valued channel matrix, such that H=QR.
number
number
[0103] The decoder 300 receives the signal
number
number
[0104] In the formula (11),
number
number
[0105] The ML metric may be defined by the following formula:
number
[0106] Furthermore, given the upper triangular structure of the matrix R, a tree representation can be associated with the MIMO system. The tree representation is defined by a decoding tree (hereinafter referred to as "tree" or "search tree"). The decoding tree is a graph data structure that includes multiple nodes, levels, branches, and paths. More specifically, the decoding tree includes n levels, each of which includes at most card(A) nodes, where card(A) denotes the cardinality of a finite alphabet A.
[0107] The nodes in the tree correspond to different possible values of the real and imaginary parts of the complex-valued information symbols contained in the vector s.
[0108] The levels correspond in reverse order to the ranks of the decoded symbols in vector s, such that the nodes located in the first level of the tree correspond to the last component of vector s of symbols, the second level corresponds to the penultimate, and so on. Vector s = (s1, s2, ..., s n ) t By writing n-k+1 The nodes located in the last level of the tree are called leaf nodes and correspond to the possible values of the first symbol s1.
[0109] The branches start from a virtual node called the "root node" and connect the nodes located within two successive levels. The root node is s root or s n+1 (s i+1 ,s i ) is a branch between two nodes s located in successive levels ni and n-i+1.i+1 and s i The root node corresponds to the connection between the node s n By convention, the edge that connects to (s n+1 ,s n )
[0110] Each branch is associated with a cost function (hereinafter also referred to as a "partial metric" or "partial Euclidean distance"). i+1 ,s i ) may be defined using the ML metric as follows:
number
[0111]
number
number
number
[0112] Each node in the tree can be associated with a metric. Using the definition of partial metrics of the branches, the metric associated with a given node in the tree can be considered as the sum of the partial metrics of the different branches that make up the path from the root node to this given node. Thus, a node s located at level k has n-k+1 The metric associated with may be expressed as:
number
[0113] The paths from the root node to the leaf nodes are the possible values of the vector s of symbols.
number
number
number
number
[0114] According to the tree representation of the MIMO system, the ML optimization problem can be equivalently solved by performing a tree search in the decoding tree. Thus, the ML solution corresponds to the path in the decoding tree that results in the lowest metric.
[0115] The computational complexity of a tree search is proportional to the number of nodes visited during the tree search, which depends on the number of nodes at each level and the total number of levels of the decoding tree.
[0116] To reduce the number of nodes examined and therefore the decoding complexity, an embodiment of the present invention provides a decoding method and device based on a sphere search based estimation algorithm that reduces the number of nodes visited during the tree search by imposing a search interval for each level of the decoding tree. Only nodes that belong to these search intervals are examined while exploring the path with the lowest metric. With an equivalent lattice representation of a MIMO system, the reduction in the number of visited nodes can be calculated as a function of the number of lattice points visited during the lattice point search, in terms of the real-valued received signal.
number
number
number
[0117] search sphere radius r s Starting from, the sphere search based estimation algorithm estimates the sphere region
number
number
number
[0118] The complexity of the lattice point search stage is the radius of the search sphere r s The present invention is based on a search sphere radius r that allows reducing the complexity of the tree search stage without sacrificing optimal performance. s The present invention provides an efficient device and method for determining
[0119] Therefore, the decoder 300 applies a machine learning algorithm to the received signal
number
[0120] According to some embodiments, the radius determination device 307 performs an iteration number N until a stopping condition (also referred to as an "ending condition") is met. iter Search sphere radius r according to an iterative process by updating the current radius during s The current radius corresponding to the i-th iteration can be configured to determine iter Let us say,
number
number
number
number
number
number
number
number
number
number
number
number
[0121] The termination condition is related to the current estimated number of grid points. More specifically, the termination condition is
number
number
number
number
[0122] According to some embodiments, the radius determination device 307 may be configured to update the current radius using a linear function with a slope parameter equal to 1 / 2 and an intercept parameter equal to 0, which corresponds to dividing the current radius by 2, i.e.
number
[0123] For each iteration i=1,...,N iter In the radius determination device 307, the received signal
number
number
number
number
number
number
[0124] According to some embodiments, the radius determination device 307 determines the noise variance σ noise , the diagonal elements of the channel matrix R, and the received signal
number
[0125] According to some embodiments, the radius determination device 307 may be configured to determine the provisional radius based on the variance of the channel additive noise according to the following formula:
number
[0126] According to some embodiments, the radius determination device 307 may be configured to determine the provisional radius depending on the diagonal elements of the channel matrix R to take into account the dynamics of the transmission channel and the changes in signal fading, according to the following formula: r0 = min(diag(Ht H))=min(diag(R t R)) (19)
[0127] A radius determining device 307
number
number
number
[0128] r th is the threshold N th denotes the radius of the sphere that contains a number of lattice points equal to det(Λ R ) is the lattice Λ R Specify the determinant of the generator matrix of V n is a real vector space
number
[0129] By using a counting function, we can iter During the iterations, the temporary radius
number
number
[0130] The intercept coefficient b is calculated according to the following formula: t , given threshold N th , and the lattice Λ R depends on the determinant of the generator matrix R:
number
[0131] By utilizing a linear function that relates the number of iterations to the signal-to-noise ratio, the radius determination device 307 can determine the search radius without performing a machine learning process.
number
[0132] The decoder 300 generates at least one estimate of the vector s of information symbols by applying a sphere search based estimation algorithm for solving the ML optimization problem.
number
number
[0133] According to some embodiments, the sphere search based estimation algorithm may be selected in the group including the sphere decoder and the SB stack decoder.
[0134] According to some embodiments in which a sphere decoder is considered, the symbol estimation unit 309 estimates the information symbols s=(s1, s2, ..., s n ) t The decoded symbols in the vector s t Every I t =[b inf,t ,b sup,t ], where the search interval I t The lower bound b inf,t and upper bound b sup,t is the radius of the search sphere r s The sphere constraint is determined as a function of radius r according to a branch and bound approach. s A spherical domain of
number
number
[0135] In another embodiment where an SB stack is considered, a best-first tree search may be used to explore the nodes in the decoding tree. Starting from the root node, all or a partial set of child nodes are explored and a partial metric is calculated for each explored child node. Only nodes with partial metrics that satisfy the sphere constraint and the search interval are generated and stored in the stack. The search continues without any update of the search sphere radius until a leaf node is found and an optimal path corresponding to the ML solution is returned.
[0136] The decoder 300 converts the complex-valued vector into complex-valued symbols s c of the original vector
number
number
number
number
number
[0137] (u) j represents the j-th element of vector u.
[0138] According to some embodiments, the machine learning algorithm may be a supervised machine learning algorithm that maps input data to predicted data using a function determined based on labeled training data consisting of a set of labeled input-output pairs. Exemplary supervised machine learning algorithms include, but are not limited to, Support Vector Machine (SVM), linear regression, logistic regression, naive Bayes, linear discriminant analysis, decision trees, k-nearest neighbors algorithms, neural networks, and similarity learning.
[0139] In a preferred embodiment, the supervised machine learning algorithm may be a multi-layer perceptron, which is a multi-layer feed-forward artificial neural network.
[0140] Referring to FIG. 4, a multi-layer deep neural network D(K,θ) is constructed with at least two layers (K≧2) including an input layer and one or more hidden layers 403, and an output layer 405. k=1,...,K , σ) 400 is shown. Each of the input layer 401, one or more hidden layers 403, and the output layer 405 includes a number of artificial neurons or computational nodes 4011.
[0141] The multi-layer deep neural network 400 is fully connected. Thus, each computational node in one layer is connected with some weight to every computational node in the next layer. That is, the input from the connected node from the previous layer is combined with a set of weights that amplify or attenuate the input value. Starting from the input layer 401 configured to receive input data, the output of each layer simultaneously becomes the input of the subsequent layer.
[0142] With the exception of the input computational nodes, i.e., the computational nodes 4011 in the input layer, each computational node 4011 in one or more hidden layers implements a nonlinear activation function σ that maps the computational node's weighted input to the computational node's output.
[0143] According to the multi-layer structure, a deep neural network performs a set of iterations i=1,...,N iter In this case, the input vector
number
number
number
number
number
number
number
number
number
number
[0144] The input-weight product performed at the kth layer computation node is the weight matrix W (k) and the input vector that is treated as input by the kth layer
number
number
[0145] According to some embodiments, the activation function may be implemented in at least one computational node 4011 of a plurality of computational nodes of one or more hidden layers 403 .
[0146] According to some embodiments, an activation function may be implemented at each node of the hidden layer.
[0147] According to some embodiments, the activation function may be selected from the group including a linear activation function, a sigmoid function, Tanh, a softmax function, a rectified linear unit (ReLU) function, and a cube function.
[0148] A linear activation function is an identity function that does not change the signal.
[0149] The sigmoid function converts the nearly infinite range of an independent variable into a simple probability between "0" and "1." It is a nonlinear function that takes a value as input and outputs another value between "0" and "1."
[0150] The tanh function expresses the relationship between hyperbolic sine and hyperbolic cosine: tanh(x)=sinh(x) / cosh(x).
[0151] Softmax activation generalizes logistic regression and returns a probability distribution over mutually exclusive output classes. A softmax activation function can be implemented in the output layer of a deep neural network.
[0152] The ReLU activation function activates a neuron if its input is above a given threshold. Specifically, the given threshold may be equal to zero ("0"), in which case the ReLU activation function outputs a value of 0 if the input variable is negative, and outputs the input variable according to an identity function if the input variable is positive. Mathematically, the ReLU function can be expressed as σ(x)=max(0,x).
[0153] According to some embodiments, the radius determination device 307 may be configured to determine model parameters of the multi-layer deep neural network in advance and update them during the training phase of the training data. The radius determination device 307 determines the search sphere radius r s The procedure carried out to determine N iter A training phase can be configured to be performed offline before performing the iterations. Once determined, the model parameters are then updated with each iteration i=1,...,N until a stopping criterion is reached. iter The training phase (also called the “learning phase”) is used to optimize the model parameters θ in a way that allows the multi-layer deep neural network to minimize the prediction error, which quantifies how close it is to the ideal model parameters that yield the best predictions. k=1,...,K The model parameters may initially be set to initial parameters, which may be generated randomly, for example. The initial parameters are then updated during the training phase and adjusted in a way that allows the neural network to converge to the best prediction.
[0154] According to some embodiments, a multi-layer deep neural network may be trained using backpropagation supervised learning techniques and use the training data to predict unseen data.
[0155] The backpropagation technique is an iterative process of forward and backpropagation of information through different layers of a multi-layer deep neural network.
[0156] During the forward propagation stage, the neural network receives training data including training input values and expected values (also called "labels") associated with the training input values, the expected values corresponding to the expected output of the neural network when the training input values are used as inputs. The expected values are known by the radius determination device 307 when applying supervised machine learning techniques. The neural network passes the training data throughout the multi-layer neural network to determine estimates (also called "intermediate values") corresponding to the predictions obtained for the training input values. The training data is passed in such a way that all the computational nodes included in the different layers of the multi-layer deep neural network apply their transformations or calculations to the input values they receive from the computational nodes of the previous layer and send their output values to the computational nodes of the next layer. When the data has traversed all the layers and all the computational nodes have performed their calculations, the output layer sends out estimates corresponding to the training data.
[0157] The last step of the forward propagation phase consists in comparing the expectation associated with the training data with the estimate obtained when the training data is passed as input to the neural network. The comparison makes it possible to measure how good / bad the estimate is with respect to the expectation and to update the model parameters with the aim of bringing the estimate closer to the expectation so that the prediction error (also called "estimation error" or "cost") is close to 0. The prediction error can be estimated based on a gradient procedure that updates the model parameters in the direction of the gradient of the objective function, using a loss function.
[0158] The forward propagation step is followed by a backpropagation step, during which the model parameters, e.g., the weights of the interconnections of the computational nodes 4011, are gradually adjusted in reverse order by applying an optimization algorithm until a good prediction is obtained and the loss function is minimized.
[0159] First, the calculated prediction error is propagated backwards, starting from the output layer, to all computational nodes 4011 of one or more hidden layers 403 that directly contribute to the calculation of the estimate. Each computational node receives a portion of the total prediction error based on its relative contribution to the output of the deep neural network. The process is repeated layer by layer until all computational nodes in the deep neural network receive prediction errors corresponding to their relative contribution to the total prediction error. Once the prediction error is diffused backwards, the layer parameters, e.g., the first layer parameters (i.e., weights) and the second layer parameters (i.e., biases), can be updated by applying an optimization algorithm that follows the minimization of a loss function.
[0160] According to some embodiments, the radius determination device 307 may be configured to update the model parameters during the training phase by calculating the loss function and updating the model parameters for the entire training data according to a “batch gradient descent approach”.
[0161] According to some embodiments, the radius determination device 307 may be configured to update the model parameters during the training phase by adjusting the model parameters for each sample of the training data according to online learning. With online learning, the loss function is evaluated for each sample of the training data. Online learning is also referred to as "online training" and "stochastic gradient descent".
[0162] According to another embodiment, the radius determination device 307 may be configured to update the model parameters from the training data during the training phase according to mini-batch learning (also referred to as "mini-batch gradient descent") using mini-batches of data, with a radius of size s b A mini-batch of data is s b training samples. Thus, the radius determination device 307 divides the training data into a set of size s b may be configured to partition s of input data into two or more batches of data, each batch being s bThe input data contains samples. The input data is then passed through the network in batches. For each mini-batch of data passed through the neural network, the loss function is evaluated and the model parameters are updated for each mini-batch of data. Thus, forward and backpropagation steps are performed for each mini-batch of data until the final batch.
[0163] According to some embodiments, the radius determination device 307 may be configured to pass all training data through the deep neural network 400 multiple times, called epochs, in the training process. The number of epochs may be increased until an accuracy metric assessing the accuracy of the training data begins to decrease or continues to increase (e.g., when potential overfitting is detected).
[0164]
number
number
number
number
[0165] Based on supervised learning, the training samples can be labeled, or associated with, known expected output values (also called "targets" or "labels") that correspond to the output of the deep neural network when the training samples are used as inputs to the deep neural network. More specifically, m=1,...,Nb s Let each sample x *,m is the radius
number
number
[0166] According to some embodiments in which mini-batch learning is used, the radius determination device 307 may be configured to determine (update or adjust) the model parameters with mini-batches extracted from the received training data during the training phase. In such an embodiment, the radius determination unit 307 divides the received training data into mini-batches x (*,1) , x (*,2) , ..., x (*,NB) The set of training data may be configured to partition into a plurality of NB training data denoted as s b A set of training examples of size s b , i.e., for each mini-batch x (*、l) s b x samples *,m m is 1 to Nb s Varies between mini-batch x (*,l) Also, Nb s S has training samples drawn from training samples l That is, S l ⊂S.
[0167] For each mini-batch x (*,l) is a mini-batch of data x (*,l) The expected number of lattice points that can be expected to be obtained by a deep neural network when is used as an input to the deep neural network.
number
number
[0168] Given the training data and expected output values, the radius determination device 307 may be configured to perform the forward and backpropagation stages of the training process.
[0169] Based on mini-batch training, the training phase may include two or more processing iterations. In each processing iteration, the radius determination device 307: - mini-batch x of multiple training sets (*,l) as input, which processes a deep neural network using a mini-batch x (*,l) Associated with
number
number
number
number
number
number
number
number
[0170] For the first processing iteration, the radius determination device 307 may be configured to determine initial model parameters to be used during the forward propagation stage of the first processing iteration of the training process. More specifically, the radius determination unit 307 determines the initial model parameters of the multi-layer deep neural network D(K,θ k=1,...,K ,σ) associated with each of the K layers.
number
number
[0171] According to some embodiments, the radius determination device 307 may be configured to determine initial first layer parameters and initial second layer parameters associated with different layers of the deep neural network randomly from a random set of values, for example according to a standard normal distribution.
[0172] According to some embodiments, the optimization algorithm used to adjust the model parameters and determine the updated model parameters may be selected from the group including the Adadelta optimization algorithm, the Adagrad optimization algorithm, an adaptive moment estimation algorithm (ADAM) that calculates an adaptive learning rate for each model parameter, the Nesterov accelerated gradient (NAG) algorithm, the Nesterov-accelerated adaptive moment estimation (NADAM) algorithm, the RMSprop algorithm, a stochastic gradient optimization algorithm, and an adaptive learning rate optimization algorithm.
[0173] According to some embodiments, the loss function considered for evaluating the prediction error or loss may be chosen among a group including the mean square error (MSE) function used for linear regression and the exponential log likelihood (EXPLL) function used for Poisson regression.
[0174] According to some embodiments in which a mean squared error function is used, the loss function computed for the lth mini-batch of data may be expressed as:
number
[0175] According to some embodiments, the radius determination device 307 determines for each mini-batch S, l=1,...,NB, from the sphere radius r and the channel matrix R by applying a list sphere decoding (LSD) algorithm or a list sphere boundary stack decoding algorithm. l The expected number of lattice points associated with
number
[0176] Referring to FIG. 5, there is also provided a decoding method for decoding a signal received over a transmission channel in a communication system, the signal being a vector of information symbols s=(s1,s2,...,s) t and the transmission channel is represented by the channel matrix R.
[0177] In step 501, the received signal
number
[0178] In step 503, a machine learning algorithm is applied to the received signal
number
[0179] In step 505, at least one estimate of the vector s of information symbols is generated by applying a sphere search based estimation algorithm to solve the ML optimization problem.
number
number
[0180] According to some embodiments, the sphere search based estimation algorithm may be selected in the group including the sphere decoder and the SB stack decoder.
[0181] According to some embodiments, step 501 includes: noise , the diagonal elements of the channel matrix R, and the received signal
number
[0182] Figure 6 shows the iterative process running for iteration number N iter According to some embodiments, the search sphere radius r s5 is a flow chart showing the method performed in step 502 for determining the search sphere radius r s More specifically, the method includes determining i. applying a machine learning algorithm to input data derived from the received signal, the channel matrix, and a current radius, where the current radius is initially set to a tentative radius, which provides a current predicted number of grid points associated with the current radius; ii. comparing the current predicted number of grid points to a given threshold; and iii. updating the current radius if the current predicted number of grid points is strictly higher than a given threshold, where the current radius is updated by applying a linear function f(.) to the current radius; Includes.
[0183] Steps i-iii may be repeated until a termination condition is met, the termination condition being related to the current prediction number. The method includes setting the search sphere radius to the current radius in response to the termination condition being met.
[0184] More specifically, in step 601, the iteration index of the iteration process may be initialized to i=1, and the current radius may be set to the initial tentative radius
number
[0185] Steps 603 to 607 are repeated N times. iter may be repeated until a stopping condition (also called a "termination condition") is met.
[0186] In step 603, a machine learning algorithm is applied to the received signal
number
number
number
number
number
number
number
number
number
number
[0187] In step 605, the current estimated number of grid points
number
[0188] In step 605, the current estimated number of grid points
number
number
number
[0189] In step 605, a current estimate of the number of grid points
number
number
[0190] According to some embodiments, the linear function may have a slope parameter equal to 1 / 2 and an intercept parameter equal to 0, which updates the current radius by dividing it by 2, thereby:
number
[0191] According to some embodiments, the machine learning algorithm may be a supervised machine learning algorithm selected from a group including, but not limited to, support vector machines, linear regression, logistic regression, naive Bayes, linear discriminant analysis, decision trees, k-nearest neighbors algorithms, neural networks, and similarity learning.
[0192] In a preferred embodiment, the supervised machine learning algorithm is composed of an input layer, at least two layers (K≧2) including one or more hidden layers, and an output layer, and includes model parameters θ k=1,...,K and a multi-layer feedforward artificial neural network D(K,θ k=1,...,K , σ) and the model parameters θ k=1,...,K is the set of layer parameters
number
[0193] According to some embodiments, the activation function may be selected from the group including a linear activation function, a sigmoid function, Tanh, a softmax function, a rectified linear unit function, and a cube function.
[0194] According to some embodiments in which the machine learning algorithm is a multi-layer deep neural network, step 603 may include sub-steps performed to determine updated model parameters according to a back-propagation supervised training or learning process that trains the multi-layer deep neural network using the training data before processing the neural network for the determination of the current radius during the decoding process.
[0195] According to some embodiments, the model parameters may be updated during the training process by computing a loss function and updating the model parameters for the entire training data according to a “batch gradient descent approach”.
[0196] According to some embodiments, the model parameters may be updated during the training process by adjusting the model parameters for each sample of the training data according to online learning and computing a loss for each sample of the training data.
[0197] According to another embodiment, the model parameters may be updated from the training data during the training process according to mini-batch learning using mini-batches of data, each of which may be a set of mini-batches of size s b A mini-batch of data is s b training samples. Thus, the training data is of size s b into two or more mini-batches of data, where each batch is s of the input data. b The input data is then passed through the network in mini-batches. The loss function is evaluated for each mini-batch of data, and the model parameters are updated for each mini-batch of data.
[0198] FIG. 7 illustrates the model parameters θ that provide the best prediction in terms of minimizing the prediction error according to some embodiments using mini-batch learning. k=1,...,K To determine k=1,...,K 1 is a flowchart illustrating a method for training σ.
[0199] In step 701, Nb s training samples
number
number
number
number
number
[0200] In step 703, the training data is divided into a number of sets x (*,1) , x (*,2) , ..., x (*,NB) For each mini-batch x (*,l) is a mini-batch of data x (*,l) The expected number of lattice points that can be expected to be obtained by a deep neural network when is used as an input to the deep neural network.
number
[0201] The training process may include two or more processing iterations that are repeated until a training criterion is reached, which may be related to the number of mini-batches of training data processed and / or to the goodness of the updated model parameters with respect to minimizing the prediction error that results from the updated model parameters.
[0202] In step 705, a first processing iteration may be performed that may determine initial model parameters to be used to process the first mini-batch of data. More specifically, a multi-layer deep neural network D(K,θ k=1,...,K ,σ) associated with each of the K layers.
number
number
[0203] According to some embodiments, initial first layer parameters and initial second layer parameters associated with different layers of a deep neural network may be determined randomly from a random set of values, for example according to a standard normal distribution.
[0204] Steps 707-713 may be repeated to process mini-batches of data until a stopping condition is reached. A processing iteration of the training process consists of steps 709-713, where a number of training sets x (*,l) Mini batch of x (*,l) Related to the processing of.
[0205] In step 709, a mini-batch x of the multiple training sets is (*,l) As input, we can process a multi-layer deep neural network that computes mini-batches x (*,l) Associated with
number
number
[0206] In step 711, the mini-batch x (*,l) The known expected number of lattice points associated with
number
number
number
[0207] In step 713, the mini-batch x (*,l) After processing, the loss function by applying the optimization algorithm
number
number
number
[0208] According to some embodiments, the optimization algorithm may be selected from the group including the Adadelta optimization algorithm, the Adagrad optimization algorithm, the adaptive moment estimation algorithm, the Nesterov accelerated gradient algorithm, the Nesterov accelerated adaptive moment estimation algorithm, the RMSprop algorithm, the stochastic gradient optimization algorithm, and the adaptive learning rate optimization algorithm.
[0209] According to some embodiments, the loss function may be chosen among a group including a mean squared error function and an exponential log-likelihood function.
[0210] According to some embodiments, step 701 derives a mini-batch S for l=1,...,NB from the sphere radius r and the channel matrix R by applying a list-sphere decoding algorithm or a list-sphere boundary stack decoding algorithm. l The expected number of lattice points associated with
number
[0211] Also provided is a computer program product for determining a search sphere radius in a decoder configured to decode a signal received over a transmission channel, the signal being a vector of information symbols s=(s1,s2,...,s) t and the transmission channel is represented by a channel matrix R. The computer program product, when executed by a processor, causes the processor to iteratively update the current radius of the search sphere r by iteratively updating the current radius until a termination condition is met. s The method includes: determining a non-transitory computer readable storage medium for causing a processor to first:
number
number
number
number
number
number
number
number
number
number
number
number
number
[0212] The stopping criterion is the current estimate of the number of lattice points.
number
number
number
number
[0213] The performance of the sphere decoder using the provided sphere radius determination device and method was evaluated in terms of bit error rate, average processing time, and average number of lattice points inside the sphere region. "NN-SD" refers to the implementation of the sphere decoder in which the search sphere radius is determined using a deep neural network, "SDIRS" refers to the implementation of the sphere decoder in which the search sphere radius is determined based on noise statistics, and "SSD" refers to the implementation of the sphere decoder in which the search sphere radius is determined according to a linear function of the signal-to-noise ratio without processing a machine learning algorithm. 8x8 and 16x16 MIMO systems using 16-QAM modulation are considered. A multi-layer deep neural network consisting of one input layer, one hidden layer, and one output layer is used.
[0214] Figure 8 shows a plot evaluating the bit error rate (BER) performance as a function of signal-to-noise ratio for SDIRS, NN-SD, and MMSE decoders obtained for an 8x8 MIMO system. Numerical results show that NN-SD yields optimal ML performance.
[0215] Figures 9 and 10 show diagrams evaluating the average processing time as a function of the signal-to-noise ratio obtained for MMSE, SDIRS, NN-SD, and SSD decoders for 8x8 and 16x16 MIMO systems, respectively. Numerical results show that NN-SD significantly reduces the decoding time compared to the existing SDIRS. This reduction in processing time is given the selection of the search sphere radius, which expects a threshold for the number of lattice points to be visited during the search phase. As the dimension of the MIMO system increases, the increase in processing time and computational complexity becomes significant.
[0216] Figures 11 and 12 show diagrams evaluating the average number of lattice points contained inside a spherical region as a function of the signal-to-noise ratio obtained for SDIRS and NN-SD decoders for 8x8 and 16x16 MIMO systems, respectively. The numerical results show that with NN-SD, the average number of lattice points is an approximately constant function of the signal-to-noise ratio, while with the SDIRS decoder it is higher for low to moderate signal-to-noise ratio values.
[0217] Although embodiments of the present invention have been described primarily with reference to symmetric MIMO configurations characterized by an equal number of transmit and receive antennas, the present invention also relates to MIMO configurations with n t <n r Note that this can also be applied to asymmetric MIMO configurations where
[0218] Furthermore, it should be noted that although some embodiments of the present invention have been described with respect to wireless single-user MIMO systems, the present invention is not limited to such applications. The present invention may be integrated within any receiver device operating in any linear communication system characterized by a linear representation of the channel power. The communication system may be wired, wireless, or optical fiber-based, supporting single or multiple users, using single or multiple antennas, and single or multi-carrier communication techniques. For example, the present invention may be integrated within a receiver device implemented in a wireless distributed MIMO system. Distributed MIMO may be used in cellular communications, for example, as applied in 3G, 4G, LTE, WiFi™, and future 5G standards, or the like. Cooperative communications, for example, as applied in ad-hoc networks (wireless sensor networks, machine-to-machine communications, Internet of Things (IoT), etc.), are also examples of distributed MIMO systems. In addition to wireless networks, the present invention may be integrated within an optical receiver device implemented in optical fiber-based communication systems, such as Polarization Division Multiplexing-OFDM (PDM-OFDM) systems.
[0219] Furthermore, the invention is not limited to communication devices, but may be integrated within signal processing devices such as finite impulse response (FIR) electronic filters used in audio applications such as audio crossover and audio mastering. Thus, some embodiments may be used to determine an estimate of an input sequence given an output sequence of an FIR filter of order M.
[0220] In another application, the methods, devices, and computer program products according to some embodiments of the present invention may be implemented in a Global Navigation Satellite System (GNSS), such as IRNSS, Beidou, GLONASS, Galileo, for example, a GPS that includes at least, by way of example, a GPS receiver for estimating positioning parameters using carrier phase measurements.
[0221] Furthermore, methods, devices and computer program products according to some embodiments of the present invention may be implemented in cryptosystems to determine estimates regarding private secret values used in encryption algorithms 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. Decryption of such encrypted data may be advantageously performed according to some embodiments of the present invention, allowing a high probability of successful recovery of the secret value with reduced complexity.
[0222] The devices, methods, and computer program products described herein may be implemented by various means. For example, these techniques may be implemented in hardware, software, or a combination thereof. For hardware implementation, the processing elements of the lattice prediction device 200 may be implemented, for example, according to a hardware-only configuration (e.g., in one or more FPGAs, ASICs, or VLSI integrated circuits with corresponding memory), or according to a configuration using both VLSI and digital signal processors (DSPs).
[0223] Furthermore, the methods described herein may be implemented by computer program instructions provided to a processor of any type of computer to create a machine having the processor executing instructions to perform the functions / acts specified herein. These computer program instructions may also be stored in a computer-readable medium that can cause the computer to function in a particular manner. To this end, the computer program instructions may be loaded onto a computer to cause the performance of a series of operational steps, thereby creating a computer-implemented process, such that the executed instructions result in the process performing the functions specified herein.
Claims
1. 1. A decoder configured to decode a signal received over a transmission channel represented by a channel matrix using a search sphere radius, the decoder comprising a radius determination device (307) for determining the search sphere radius from a provisional radius, the radius determination device (307) comprising: i. applying a machine learning algorithm to input data derived from the received signal, the channel matrix, and a current radius, where the current radius is initially set to the provisional radius, which provides a current predicted number of lattice points associated with the current radius; ii. comparing the current predicted number of grid points to a given threshold; iii. updating the current radius if the current predicted number of grid points is strictly higher than the given threshold, where the current radius is updated by applying a linear function to the current radius; The device is configured to: the steps i to iii are repeated until a termination condition is met, the termination condition being related to the current predicted number, and the radius determination device (307) is configured to set the search sphere radius to the current radius in response to the termination condition being met.
2. The decoder of claim 1 , wherein the termination condition is met if the current predicted number of lattice points is less than or equal to the given threshold.
3. 3. A decoder according to claim 1 or 2, wherein the linear function has a slope parameter equal to 1 / 2 and an intercept parameter equal to 0.
4. 4. The decoder of claim 1, wherein the machine learning algorithm is a supervised machine learning algorithm selected from the group consisting of support vector machines, linear regression, logistic regression, naive Bayes, linear discriminant analysis, decision trees, k-nearest neighbors algorithms, neural networks, and similarity learning.
5. 5. The decoder of claim 4, wherein the supervised machine learning algorithm is a multi-layer deep neural network (400) including an input layer (401), one or more hidden layers (403), and an output layer (405), each layer including a plurality of computational nodes (4011), the multi-layer deep neural network (400) being associated with model parameters and an activation function, the activation function being implemented in at least one of the plurality of computational nodes of the one or more hidden layers.
6. The decoder of claim 5 , wherein the activation function is selected from the group consisting of a linear activation function, a sigmoid function, a Relu function, Tanh, a softmax function, and a cube function.
7. The radius determination device (307) is configured to determine in advance the model parameters from training data received during a training phase, the radius determination device (307) is configured to determine a plurality of sets of training data from the training data and an expected number of lattice points, each expected number of lattice points being associated with a set of training data of the plurality of sets of training data, and the training phase comprises the following steps: - processing said deep neural network (400) using a set of training data from said plurality of training data as input, which provides an intermediate number of lattice points associated with said set of training data; determining a loss function from the expected number of lattice points and the median number of lattice points associated with the set of training data; and - determining updated model parameters by applying an optimization algorithm according to the minimization of said loss function; 6. The decoder of claim 5, comprising two or more iterations of
8. 8. The decoder of claim 7, wherein the optimization algorithm is selected from the group consisting of an Adadelta optimization algorithm, an Adagrad optimization algorithm, an adaptive moment estimation algorithm, a Nesterov accelerated gradient algorithm, a Nesterov accelerated adaptive moment estimation algorithm, an RMSprop algorithm, a stochastic gradient optimization algorithm, and an adaptive learning rate optimization algorithm.
9. The decoder of claim 7 , wherein the loss function is chosen from a mean squared error function and an exponential log-likelihood function.
10. 8. The decoder of claim 7, wherein the radius determination device (307) is configured to determine in advance the expected number of lattice points from the search sphere radius and the channel matrix by applying a list sphere decoding algorithm or a list sphere boundary stack decoder.
11. 11. The decoder according to claim 1, wherein the radius determination device (307) is configured to determine the provisional radius from at least one parameter of a noise variance, a diagonal element of the channel matrix, and a Euclidean distance expressing a distance between the received signal and an estimation vector, the estimation vector being determined by applying a suboptimal estimation algorithm, the suboptimal estimation algorithm being chosen from among a zero-forcing decision feedback equalizer and a minimum mean square error estimation algorithm.
12. 4. The decoder of claim 3, wherein the radius determination device (307) is configured to determine the number of iterations of steps i to iii as a linear function of a signal-to-noise ratio, the linear function of the signal-to-noise ratio being defined by a slope coefficient and an intercept coefficient, the intercept coefficient being related to a transmission power, to the given threshold value and to a determinant of the channel matrix.
13. The decoder (300) according to any one of claims 1 to 12, further comprising a symbol estimation unit (309) configured to determine at least one estimate of a vector of information symbols conveyed by the received signal by applying a sphere search based estimation algorithm for determining said at least one estimate of a vector of information symbols from lattice points found inside a spherical area centred on a point representing the received signal and defined by the search sphere radius.
14. The decoder of claim 13 , wherein the sphere search based estimation algorithm is selected from among a sphere decoder and a sphere boundary stack decoder.
15. 1. A method for decoding a signal received over a transmission channel represented by a channel matrix using a search sphere radius, the method comprising: determining the search sphere radius from a provisional radius, the method comprising: i. applying a machine learning algorithm to input data derived from the received signal, the channel matrix, and a current radius, where the current radius is initially set to the provisional radius, which provides a current predicted number of lattice points associated with the current radius; ii. comparing the current predicted number of grid points to a given threshold; iii. updating the current radius if the current predicted number of grid points is strictly higher than the given threshold, where the current radius is updated by applying a linear function to the current radius; Including, a step of repeating steps i to iii until a termination condition is satisfied, the termination condition being related to the current predicted number, the method including setting the search sphere radius to the current radius in response to the termination condition being satisfied.
Citation Information
Patent Citations
Radius-adaptive spherical decoding with stochastic noise constraints
JP2011523796A
Sphere Decoder and Decoding Method Thereof
US20080313252A1
Communication devices and methods for signal detection
US20140211831A1
Methods and devices for sequential sphere decoding
US20170294986A1