The disclosed technique relates to communication systems and methods in general, and to a system and method for employing linear and nonlinear precoding, in particular.
In multi-user communications where a centralized transmitter transmits data to a plurality of independent (e.g., non-cooperative) receivers (users), the transmitted data may be subject to inter-user noise, known as crosstalk, which interferes with the communication between different communication entities. Attaining an effective contrivance to eliminate or at least partially reduce crosstalk is therefore of high importance. Crosstalk may generally occur in both wireless and wire-line communications systems, that utilize linear precoding (LP) and nonlinear precoding (NLP) techniques, and particularly, in the Gigabit Internet “G.fast” wire-line standard.
Crosstalk cancellation techniques that employ precoding of data prior to its transmission are known in the art as “vectoring”. Crosstalk cancellation typically requires taking into account of power restrictions, which often involve hardware-related considerations. Additionally, the number of bits is limited to predefined constellation sizes. The linear precoder may eliminate crosstalk in part or fully by using an inverse of a channel matrix. Linear precoding, however, may typically require equalization of gains introduced by the inversion operation (i.e., the gains must be suppressed to satisfy power restrictions, which in turn cause a diminished bitrate). The NLP schemes avoid this problem by use of Tomlinson-Harashima Precoding (THP) scheme working through the modulus operation or by seeking a perturbation vector associated with transmission symbols, thereby reducing power consumption. NLP schemes work seamlessly at the receiver after application of the modulus operation.
Systems and method that combine linear precoding and nonlinear precoding, in general, are known in the art. A World Intellectual Property Organization (WIPO) Patent Cooperation Treaty (PCT) International Publication Number WO 2014/054043 A1 to Verbin et al. to the same present Applicant, entitled “Hybrid Precoder” is directed to a hybrid precoder system and method employing linear precoding and nonlinear precoding to provide far-end crosstalk (FEXT) cancellation that enhances performance and lowers complexity during transmission and reception of data between transmitters and receivers of the communication system. The hybrid precoder system and method employs linear precoding and non-linear precoding for transmitting data between at least two transmitters and a plurality of receivers via a plurality of communication channels over a plurality of subcarrier frequencies. The at least two transmitters are communicatively coupled, respectively, with the plurality of receivers. The hybrid precoder system includes a linear precoder, a non-linear precoder, a controller, and an input selector. The linear precoder is for linearly precoding the data. The non-linear precoder is for non-linearly precoding the data. The controller is coupled with the linear precoder, and with the non-linear precoder. The input selector as well, is coupled with the linear precoder and with the non-linear precoder. The controller at least partly evaluates channel characteristics of at least part of the communication channels. The controller further determines a precoding scheme selection that defines for at least part of the communication channels, over which of the subcarrier frequencies the data to be transmitted shall be precoded using either one of linear precoding and non-linear precoding, according to determined channel characteristics. The input selector selects which of the linear precoded data and the non-linear precoded data is outputted by the hybrid precoder system, according to the precoding scheme selection.
U.S. Patent Application Publication No.: US 2017/0279490 A1 to Maes, entitled “Non-linear Precoding with a Mix of NLP Capable and NLP Non-capable Lines” is directed at a method for achieving crosstalk mitigation in the presence of nonlinear precoding (NLP) non-capable and NLP capable multiple customer premises equipment (CPE). Maes provides a particular solution to the general interoperability problem of using different precoding-capable CPE units where the number active CPE units, is equal to the total number of CPE units.
It is an object of the disclosed technique to provide a method for precoding an information symbol conveying data for transmission between a plurality of transmitters and a plurality of receivers via a plurality of communication channels over a subcarrier frequency, where the number of transmitters (N) is different than the number of active receivers (K) for that subcarrier frequency. The method includes the following steps. The method initiates with a step of receiving by the transmitters, information pertaining to supportabilities of the receivers to decode non-linearly precoded data. The method continues with a step of determining a precoding scheme defining for which of the receivers the data to be transmitted by the transmitters shall be precoded using at least one of linear precoding and non-linear precoding, according to the supportabilities. The method continues with a step of constructing a signal by applying a reversible mapping to the information symbol, where the reversible mapping includes elements each respectively associated with a particular one of the receivers, such that those receivers supporting the decoding of non-linearly precoded data are capable of reversing the reversible mapping to the information symbol, while for those receivers not supporting the decoding of non-linearly precoded data the information symbol is unaffected by the reversible mapping. The method continues with a step of constructing a precoder characterized by N≠K such that the precoder is configured to perform regularized generalized inversion of a communication channel matrix.
It is a further object of the disclosed technique to provide a hybrid precoder system for precoding an information symbol conveying data for transmission between a plurality of transmitters and a plurality of receivers via a plurality of communication channels over a subcarrier frequency, where the number of transmitters (N) is different than the number of active receivers (K) for that subcarrier frequency. The hybrid precoder system includes a controller and a processor (coupled therebetween). The controller is configured for receiving information pertaining to supportabilities of the receivers to decode non-linearly precoded data, and for determining a precoding scheme defining for which of the receivers the data to be transmitted by the transmitters shall be precoded using at least one of linear precoding and non-linear precoding, according to the supportabilities. The processor is configured for constructing a signal for transmission, according to the determined precoding scheme, by applying a reversible mapping to the information symbol, where the reversible mapping includes elements each respectively associated with a particular one of the receivers, such that those receivers supporting the decoding of non-linearly precoded data are capable of reversing the reversible mapping to the information symbol, while for those receivers not supporting the decoding of non-linearly precoded data the information symbol is unaffected by the reversible mapping. The processor is further configured for constructing a precoder characterized by N≠K such that the precoder is configured to perform regularized generalized inversion of a communication channel matrix.
It is a further object of the disclosed technique to provide a method for nonlinear precoding of an information symbol at a given precoder input. The information symbol is in a symbol space having a given symbol space size. The nonlinear precoding involves modulo arithmetic and having a plurality of inputs. The method includes the following steps. The method includes an initial step of determining a reference symbol space size which is common to all of the inputs. The method continues with the steps of determining a modulus value according to the reference symbol space size, adapting the given symbol space size according to the reference symbol space size, and nonlinearly precoding the information symbol according to the modulus value, common to all of the inputs.
It is a further object of the disclosed technique to provide a system for nonlinear precoding of an information symbol at a given precoder input, where the information symbol is in a symbol space having a given symbol space size. The nonlinear precoding involves modulo arithmetic and having a plurality of inputs. The system includes a controller and a processor (coupled therebetween). The controller is configured for determining a reference symbol space size that is common to all of the inputs, and for determining a modulus value according to the reference symbol space size. The processor is configured for adapting the given symbol space size according to the reference symbol space size, and for nonlinearly precoding the information symbol according to the modulus value, common to all of the inputs.
In is another object of the disclosed technique to provide a method for nonlinear precoding an information symbol conveying data for transmission between a plurality of transmitters and a plurality of receivers via a plurality of communication channels defining a channel matrix H over a particular subcarrier frequency. The method includes the steps of determining a weighting matrix G, whose number of rows is equal to the number of transmitters; then determining a modified channel matrix equal to HG; and constructing a nonlinear precoder for performing nonlinear precoding of the modified channel matrix.
It is a further object of the disclosed technique to provide a system for nonlinear precoding an information symbol conveying data for transmission between a plurality of transmitters and a plurality of receivers via a plurality of communication channels defining a channel matrix H over a particular subcarrier frequency. The system includes a processor configured for determining a weighting matrix G, whose number of rows is equal to the number of transmitters; for determining a modified channel matrix equal to HG; and for constructing a nonlinear precoder for performing nonlinear precoding of the modified channel matrix.
The disclosed technique will be understood and appreciated more fully from the following detailed description taken in conjunction with the drawings in which:
The disclosed technique overcomes the disadvantages of the prior art by proposing a general solution to the interoperability problem between a data providing entity communicatively coupled with multiple data subscriber entities in a communication network, where part of the data subscriber entities do not support nonlinear precoding (NLP) while another part does. The disclosed technique generally relates to multi-user multiple input multiple output (MIMO) communications systems in which there is a data provider side, typically embodied in the form of a data providing entity, such as a distribution point (DP) that is interconnected via a plurality of communication channels to a plurality of data subscriber entities (i.e., a data subscriber side), typically embodied in the form of multiple corresponding customer premises equipment (CPE) units. The terms “data provider side”, “data provider”, “transmitter side”, “distribution point”, and “distribution point unit” (DPU) used herein are interchangeable. The terms “data subscriber side”, “data subscriber”, “receiver side”, “CPE”, “CPE unit”, and “CPE receiver unit” used herein are interchangeable. The disclosed technique proposes a system and a method configured and operative to unite or unify linear and nonlinear schemes, for a particular subcarrier frequency, at the data provider side, in such a way that enables interoperability in the use of nonlinear precoding for CPE units supporting nonlinear precoding and linear precoding for CPE units not supporting nonlinear precoding.
The system and method of the disclosed technique is configured and operative for precoding an information symbol conveying data for transmission between a plurality of transceivers at the data provider side (i.e., operating in the downstream (DS) direction as transmitters) and a plurality of transceivers at the data subscriber side (i.e., operating in the DS direction as receivers) via a plurality of communication channels over a subcarrier frequency (denoted herein interchangeably ‘tone’). A symbol generally refers to a waveform, a signal, or a state of a communication medium (e.g., link, channel) that transpires over a particular time period (e.g., a time slot). A symbol typically encodes bits (i.e., “information symbol”). According to one (typical) implementation the communication channels are wire-lines (e.g., physical wire conductors such as twisted pairs). According to another implementation the communication channels are realized by the transmission and reception of signals (e.g., via antennas in wireless communication techniques) propagating through a wireless medium (e.g., air). The communication channels whether wired or wireless are susceptible to interference known as crosstalk between the communication channels, more specifically known as far-end crosstalk (FEXT). The communication channels may as be susceptible to near-end crosstalk (NEXT). Precoding is used for mitigating the effects of FEXT, while adaptive filtering may be used for mitigating the effects of NEXT.
The prior art teaches a specific solution, limited to a very special case where the number of transmitters at the transmitter side is equal to the number of active receivers at the receiver side at any particular subcarrier frequency. The disclosed technique offers a solution to the general case, where the number of transmitters is not necessarily equal to the number of active receivers at the receiver side at a particular subcarrier frequency. An ‘active receiver’ (e.g., an active CPE unit) is a receiver that (i) is switched on and is ready to receive data or in a process of receiving data; (ii) is switched on and is ready to receive data or in a process of receiving data at a particular subcarrier frequency (or plurality thereof) and not for other subcarrier frequencies (i.e., the receiver is ‘active’ at particular subcarrier frequencies and ‘inactive’ at other subcarrier frequencies) or (iii) is either one of (i) and (ii) stipulated by a decision rule determined by at least one criterion related to communication performance (e.g., max-mean rate, max-min rate, minimal bit loading value, etc). Examples for (ii) include situations where a particular active CPE unit is unable to receive information at high subcarrier frequencies due to a low signal-to-noise ratio (SNR), or due to the peculiarity of the communication channel or binder structure, etc. Thus, a CPE unit may be active at some subcarrier frequencies, and inactive at others. The system and method of the disclosed technique provide a general solution to the more difficult interoperability problem for the general case, where the number of transmitters (N) is not necessarily equal to the number of active receivers (K). The general solution also solves the special case where N is equal to K.
The following is a succinct summary of the system and method of the disclosed technique; the summary is followed by a comprehensive description. The system includes a controller and a processor implemented at the transmitter side (e.g., in the DPU). The controller is typically embodied in the form of, and interchangeably denoted herein, a ‘vectoring control entity’ (VCE). The processor is typically embodied in the form of, and interchangeably denoted herein, a ‘vectoring processing entity’ (VCE). The controller is configured and operative for receiving information pertaining to supportabilities of the receivers (i.e., CPE units) to decode nonlinearly precoded data. In general, a ‘supportability’ of a receiver defines whether that receiver supports the decoding of nonlinearly precoded data (and linear precoded data). It is assumed herein that if a particular receiver does not support the decoding of nonlinearly precoded data, then its default supportability is the capability to decode linearly precoded data. The controller is further configured and operative for determining a precoding scheme defining for which of the receivers (at the receiver side) the data to be transmitter by the transmitters (at the transmitter side) shall be precoded using at least one of linear precoding (LP) and nonlinear precoding (NLP) according to the supportabilities of the receivers.
The processor is configured and operative for constructing a signal for transmission, according to the determined precoding scheme, by applying a reversible mapping (i.e., a reversible transformation) to the information symbol. A reversible mapping is a function or algorithm that can be reversed (i.e., reversibility yields the operand that is, the object of the mapping operation). As will be described in greater detail hereinbelow, a reversible mapping can be realized by various entities and techniques. Several such techniques include use of modulo arithmetic, a use of a perturbation vector, use of transformations in a lattice reduction technique, and the like. The reversible mapping includes elements (e.g., represented by matrix elements) each respectively associated with a particular one of the receivers, whereby those receivers supporting the decoding of nonlinearly precoded data are capable of reversing the reversible mapping to the information symbol, while for those receivers not supporting the decoding of nonlinearly precoded data the information symbol is unaffected by the reversible mapping. The processor is then configured and operative to construct a precoder characterized by N≠K such that the precoder is configured to perform regularized generalized inversion of a communication channel matrix. The communication channel matrix (or simply “channel matrix”) represents the channel information conveyed between transmitter side and receiver side. Regularized generalized inversion, which will be discussed in greater detail hereinbelow and used in the context of the disclosed technique, relates to a generalization of generalized inversion. Basically, generalized inversion of the channel matrix essentially involves finding a matrix that serves as an inverse of the channel matrix that is not necessarily invertible. An example of generalized inverse includes the Moore-Penrose pseudoinverse. Regularization of the generalized inverse, known herein as “regularized generalized inversion” involves use of the principles of regularization by introducing a regularization term to the mathematical expression representing the generalized inverse.
According to the disclosed technique there is thus provided a method for precoding an information symbol conveying data for transmission between a plurality of transmitters (i.e., defining a transmitter side) and a plurality of receivers (i.e., defining a receiver side) via a plurality of communication channels over a subcarrier frequency. The number of transmitters (N) is different than the number of active receivers (K) for that subcarrier frequency. The method includes the following steps including an initial step of receiving by the transmitter side (e.g., transmitters), information pertaining to supportabilities of the receivers to decode nonlinearly precoded data. The method proceeds with the step of determining a precoding scheme defining for which of the receivers the data to be transmitted by the transmitters shall be precoded using at least one of linear precoding and nonlinear preceding, according the supportabilities. The method proceeds with the step of constructing a signal by applying a reversible mapping to the information symbol. The reversible mapping includes elements each respectively associated with a particular one of the receivers, such that those receivers supporting the decoding of nonlinearly precoded data are capable of reversing the reversible mapping to the information symbol, whereas the information symbol is unaffected by the reversible mapping for those receivers not supporting the decoding of the nonlinearly precoded data. The method proceeds with the step of constructing a precoder characterized by N≠K such that the precoder is configured to perform regularized generalized inversion of a communication channel matrix. The method proceeds with the step of transmitting the signal by the transmitters.
At the receiver side, the CPE units are configured and operative to receive the signal from the transmitters. Both types of CPE units, namely, those supporting the decoding of linearly precoded data as well as those supporting the decoding of nonlinearly precoded data are configured and operative to perform equalization by multiplication of the received signal by a scalar (i.e., not necessarily the same scalar for each CPE unit). The CPE units supporting the decoding of nonlinearly precoded data are further configured and operative to reverse the reversible mapping (e.g., by applying modulo operation in accordance with the selected reversible mapping).
In other words, users who have hardware (e.g., DSL modems), software, firmware, and the like supporting nonlinear precoding (e.g., modulo arithmetic capable) may choose to use at least one of nonlinear precoding and linear precoding, whereas users who don't have hardware (software, firmware, etc.) supporting nonlinear precoding may still use linear precoding. A particular CPE unit whose supportability includes nonlinear precoding is not necessarily limited only to nonlinear precoding as that CPE unit may opt to employ linear precoding for the benefit of system performance, or alternatively, for the reduction of nonlinear precoder dimensionality (consequently reducing computational complexity).
Particularly, in the case of the system employing orthogonal frequency-division multiplexing (OFDM) for encoding data on multiple subcarriers, all users (corresponding to CPE units) may be divided into three groups at every tone: (1) a group of CPE unit(s) (user(s)) employing nonlinear precoding; (2) a group of CPE unit(s) employing linear precoding; and (3) a group of CPE unit(s) that are inactive (i.e., are not precoded at that particular tone and are thus excluded from the transmitted signal). There are also derivative logical groups, e.g., a group that is an intersection of groups (1) and (2), and the like. The communication channels (e.g., lines) of the inactive CPE unit(s), at a specific tone, are exploited to transmit information for the benefit of other CPE unit(s). The division of CPE unit(s) (user(s)) between these three groups may vary from tone to tone since the channel matrix and the signal-to-noise ratio (SNR) are usually frequency dependent. For the above mentioned group (2) of users which employ linear precoding, modulo arithmetic (e.g., the modulus operation) is not utilized (applied) at the receiver side (CPE units).
The ability to allocate CPE units that support nonlinear precoding among linear and nonlinear precoding schemes also improves system performance by diverting nonlinear precoding enabled CPE units exhibiting large power and coding gain losses (typically belonging to small bit constellations) to utilize linear precoding. In addition, this allocation enables part of the CPE units to process data via linear precoding, while enables the remaining (active) CPE units to utilize techniques of nonlinear precoding, such as vector precoding, which reduces the dimensionality of the search space for a perturbation vector (i.e., given that the complexity of such a search is known to lie between polynomial and exponential in dimension size). Consequently, the allocation of the CPE units into three groups for every tone (i) effectively facilitates attainment a solution of the interoperability problem between different CPE units, which either have or don't have nonlinear precoding supporting hardware, and (ii) serves as an instrument to achieve system performance optimization.
Where reversible mapping is implemented via use of modulo arithmetic, the disclosed technique also proposes an option of utilizing a constant modulus size for NLP, and particularly for Tomlinson-Harashima precoding (THP) schemes. This brings about a constant power requirement to be satisfied automatically, facilitating an increase in hardware efficiency involving execution of the modulus operation, as well as averts the need for different modulus values for different constellation sizes. The disclosed technique is implementable to any number of CPE units that may be split arbitrarily between NLP-supporting CPE units and CPE units not supporting NLP.
Notation: The notation used herein for the operation diag(A) applied to a matrix A yields a vector equal to its diagonal, and the operation diag(a) applied to a vector a yields a matrix with a diagonal a and all other non-diagonal elements are zeroes. The notation for the component-wise multiplication (also known as the Hadamard product) is a⊙b, which signifies that every component of the product, c, is constructed by multiplication of components a and b: ck=akbk. The Hermitian conjugation of a matrix R (i.e., matrix transpose and complex conjugation of every element) is denoted by RH. The notation R−H is used herein to denote (R−1)H. In the Figures and Detailed Description, the prime symbol, ′, denotes the Hermitian conjugation: e.g., H′ signifies a Hermitian conjugation of matrix H. The inverse of a diagonal matrix D is also a diagonal matrix given by simple inversion of the diagonal components: for G=inv(D),
and all non-diagonal components being zero. Vectors and matrices are represented in bold-italics.
Without loss of generality, the disclosed technique will be described in the context of a wire-line communication system, though the principles of the disclosed technique likewise apply for wireless communication systems. Reference is now made to
At the receiver side, each one of CPE units 1061, 1062, 1063, . . . , 106N-1, 106N respectively includes a corresponding transceiver (XCVR), also denoted herein interchangeably as “remote-end fast transceiver unit” (FTU-R) 1181, 1182, 1183, . . . , 118N-1, 118N. Particularly, each transceiver (XCVR) 1161, 1162, 1163, . . . , 116N-1, 116N at the network side is communicatively coupled with its respective CPE unit 1061, 1062, 1063, . . . , 106N-1. 106N via its respective communication line 1081, 1082, 1083, . . . , 108N-1, 108N (i.e., index-wise). Each remote-end fast transceiver unit is configured and operative to receive and to transmit data to-and-fro its respective FTU-O at the DPU 104. Specifically, each transceiver at the network side, i.e., FTU-O; (where i is an integer running index) is configured to be in communication with a corresponding transceiver at the receiver side, i.e., FTU-R.
The terms “communication channel”, “communication line”, “communication link” or simply “link” are interchangeable and are herein defined as a communication medium (e.g., physical conductors, air) (whether wired or wireless) configured and operative to communicatively couple between DPU 104 and CPE units 1061, 1062, 1063, . . . , 106N-1, 106N. The communications channels are configured and operative to be propagation media for signals (information symbols) for wireless as well as wire-line communication methods (e.g., xDSL, G.fast services). DPU 104 is typically embodied as a multiple-link enabled device (e.g., a multi-port device) having a capability of communicating with a plurality of nodes (e.g., CPE units). Alternatively, DPU 104 is a single-link device (not shown) having a capability of communicating with one node (e.g., a CPE unit). A transmission from DPU 104 to at least one of CPE units 1061, 1062, 1063, . . . , 106N-1, 106N is defined herein as a downstream (DS) direction. Conversely, a transmission from at least one of CPE units 1061, 1062, 1063, . . . , 106N-1, 106N to DPU 104 is defined herein as an upstream (US) direction.
Each one of CPE units 1061, 1062, 1063, . . . , 106N-1, 106N is partly characterized by its respective inherent supportability 1201, 1202, 1203, . . . , 120N-1, 120N to decode at least one type of precoded data, namely, linear precoded (LP) data, and nonlinear precoded (NLP) data (or both linear and nonlinear precoded data). It is assumed that if a particular CPE unit does not support the decoding of NLP data it supports by default the decoding of LP data. In a typical case, it is assumed that all CPE units possess supportability to decode LP data. The point is which of the CPE units further possess supportability to decode NLP data. The system and method of the disclosed technique are configured and operative to receive information pertaining to supportabilities 1201, 1202, 1203, . . . , 120N-1, 120N to decode LP and especially NLP data (represented in
DPU 104 (controller 112 thereof) is further configured and operative to continually determine activity levels 1221, 1222, 1223, . . . , 122N-1, 122N (represented “ACT./INACT.” in
Following the determination of the supportabilities (and activity levels) of the CPE units, the system and method of the disclosed technique are configured and operative to determine a precoding scheme defining for which of the CPE units the, data transmitted by the DPU shall be precoded using at least one of linear precoding and nonlinear precoding, according to the determined supportabilities (and activity levels). In other words, signals transmitted from transceivers 1161, 1162, 1163, . . . , 116N-1, 116N of DPU 104 to respective transceivers 1181, 1182, 1183, . . . , 118N-1, 118N of CPE units 1061, 1062, 1063, . . . , 106N-1, 106N (respectively) have to take into account respective supportabilities 1201, 1202, 1203, . . . , 120N-1, 120N and respective activity levels 1221, 1222, 1223, . . . , 122N-1, 122N. As will be described in greater detail hereinbelow, the precoding scheme defines how a transmitted signal by the DPU is precoded given the supportabilities and activity levels of the CPE units.
At this stage, for the purpose of highlighting the differences between the solution of the disclosed technique and known solutions of the prior art, reference is now further made to
With reference to linear precoding scheme 10 of
With reference to nonlinear precoding scheme 30 of
With reference to the nonlinear precoding scheme 50 of
The QR precoding scheme in
In conjunction with
In hybrid-interoperability precoding scheme 150A information symbols (represented by vector s) are inputted to a reversible mapping block 154A. Reversible mapping block 154A is configured and operative to apply a reversible mapping to the information symbols. A reversible mapping (i.e., a reversible transformation) is defined as a function or algorithm that can be reversed so as to yield the operand that is, the object of the reversible mapping. For example, a reversible mapping is an association between two sets S1 and S2 in which to every element of S1 there is an associated element in S2, and to every element in S2 there is the same associated element in S1. Reversible mapping block 154A may be implemented by various techniques, such as dirty paper coding techniques of applying modulo operation to the information symbols, vector precoding by the use of a perturbation vector, lattice precoding techniques, and the like.
The reversible mapping includes elements, each of which is respectively associated with a particular one of receivers (CPE units) 1061, 1062, 1063, . . . , 106N-1, 106N. For example, a reversible mapping is represented by a vector of rank N: W={w1, w2, w3 . . . wN-1wN}, where each i-th vector element, wi, is associated with the i-th CPE unit (i.e., index-wise). An example of a simple reversible mapping is an offset function, where information symbol vector s is vector added (i.e., element-wise) with an offset function (vector), i.e.: s+W. For a NLP supporting CPE unit, its associated reversible mapping element (of the reversible mapping (vector)) is offset by a nonzero set value (e.g., an integer value). For example, for CPE unit 1064, its associated reversible mapping element w4≠0 equals the reversible offset integer. For a CPE unit not supporting NLP, its associated reversible mapping element is zero. For example, if CPE unit 1065 does not support NLP, its associated reversible mapping element w5=0. In general, for those CPE units supporting NLP, their respectively associated (e.g., index-wise) reversible mapping elements (e.g., of a reversible mapping vector) are nonzero, while for those CPE units not supporting NLP, their respectively associated reversible mapping elements are zero.
According to one implementation, hybrid-interoperability precoding scheme 150A employs dirty paper coding techniques in which case the reversible mapping is an offset function typically represented by a vector whose integer elements are nonzero for those NLP-supporting CPE units, and zero for those CPE units not supporting NLP (as exemplified above). According to another implementation, hybrid-interoperability precoding scheme 150A employs vector precoding in which case the reversible mapping is a perturbation vector whose elements are nonzero (i.e., at least one vector element or component is nonzero) for those NLP-supporting CPE units, and zero for those CPE units not supporting NLP. According to yet another implementation, hybrid-interoperability precoding scheme 150A employs lattice techniques for precoding in which symbols are reversibly mapped to lattice points having known boundaries. According to this implementation, lattice precoding (or lattice dirty-paper coding) is employed. Generally, a lattice is a regular arrangement of a set of distanced-apart points (a discrete subgroup of n (n-dimensional field of rational numbers). A symbol constellation S is a subset of size 2D of a D-dimensional lattice. Information symbols are reversibly mapped to the symbol constellation. Lattice precoding involves performing modulo reduction in relation to a precoding lattice Λp into a fundamental (e.g., Voronoi) region (Λp) of precoding lattice Λp (practical for a finite number of points). The symbol constellation is an intersection of the lattice symbol space (e.g., 22, where D=2) and of precoding lattice Λp, namely (Λp). (A Voronoi region of a lattice is a region having a Voronoi site, where all points are distanced closer to the Voronoi site than to another Voronoi site in the lattice.) The symbol constellation is extended in a periodic manner via addition (or other reversible mapping or transformation) as: V=S+Λp={s+d|sϵS∩(Λp), dϵΛp}, where each point vϵV is equivalent modulo Λp. Thus, symbols propagating via the communication channel (“channel symbols”) from transmitter side to receiver side consequently fall within (Λp). At the receiver side NLP supporting CPE units reverse the reversible mapping by reducing the received signal to the region via the modulo operation: mod(Λp). Generally, reversible mapping block 154A is configured and operative to apply a reversible mapping to input information symbols 154A as described, and to output a result 156A to a precoding matrix block 158A, P.
Precoding matrix block 158A, P, is configured and operative to perform regularized generalized inversion (hereby denoted “reg.-gen.-inv.”) of a channel matrix H. Regularized generalized inversion is a generalization of general inversion, which in turn is a generalization of inversion. Inversion of a matrix or “matrix inversion” of an invertible matrix A is a procedure of finding a matrix B such that AB=I, where I represents the n×n identity matrix. In the simplest (and less typical) case where the number of transmitters (N) is equal to the number of active receivers (K) (i.e., N=K) the precoding matrix 158A is reduced to a conventional inverse of the channel matrix. At any point in time, however, there is no assurance that the number of active receivers (users) would be equal to the total number of transmitters. This case can be encapsulated by N≠K. In this case (N≠K) channel matrix H is noninvertible by conventional inversion, as non-square matrices (i.e., m×n, where m≠n) don't have a conventional inverse. (Conventional matrix inversion is limited to regular (non-generate square n×n, and non-singular) matrices.)
Generalized inversion of the channel matrix H essentially involves finding a matrix that serves as an inverse of the channel matrix that is not necessarily invertible. An example of a generalized inverse is generally given by:
P=AH(HAH)−1 (1A),
where HϵK×N and AϵK×N. In the case for channel matrix H where: A=H an example of generalized inverse can be a pseudoinverse (notation: pinv(H)), such as the Moore-Penrose pseudoinverse given by:
P=HH(HHH)−1 (1B),
employed when the total number of active receivers (users), K, is less than (also viable when equal to) the total number of transmitters N: K≤N where HϵK×N. This case is reduced to the simple case when K=N thus we obtain pinv(H)=inv(H), i.e., the pseudoinverse is a conventional (“simple”) inverse of channel matrix H. It is noted that for the case K≤N, the construction of the pseudoinverse is not unique. For example, given
there may be found matrices
such that
It is emphasized that the disclosed technique is not restricted to the specific pseudoinverse or to the method of pseudoinverse construction. In general, one may observe that for the case K≤N there may be an infinite number of pseudoinverses satisfying the relation HP=I, where HϵK×N, PϵN×K and I is the identity matrix (K×K). To demonstrate this let: P=AH(HAH)−1, where HϵK×N and AϵK×N. A is an arbitrary matrix such that the matrix (HAH) whose dimension is K×K is invertible. Invertibility implies:
HP=HAH(HAH)−1=I (2).
It may be seen that an arbitrary matrix A is a generality of a matched filter (for the Moore-Penrose pseudoinverse A=H) while the term HAH is a generality of a correlator (for the Moore-Penrose pseudoinverse this term is HHH), and consequently the term (HAH)−1 is a generality of a de-correlator. Since there are an infinite number of possible matrices AϵCK×N, there may be an infinite number of generalized inverses. For the case of K=N the relation of generalized inverse reduces to the conventional inverse matrix: AH(HAH)−1=AH(AH)−1(H)−1=H−1. Returning to the above-presented purely illustrative example, for
we obtain PA by taking
which leads to a particular case of the Moore-Penrose pseudoinverse, and we obtain PB by taking
Regularization of the generalized inverse, known herein as “regularized generalized inversion” involves use of the principles of regularization by introducing a regularization term to the mathematical expression representing the generalized inverse. A regularized generalized inverse is generally given by:
P=AH(HAH+β1)−1 (3A),
where the scalar β≥0 is the regularization factor, and 1 is the regularization term (in this case, the identity matrix, also interchangeably denoted herein I). A typically employed regularized generalized pseudoinverse of the disclosed technique, for A=H is given by:
P=HH(HHH+β1)−1 (3B),
The regularization factor controls the impact of the regularization term, and can be selected to optimize (e.g., maximize) the signal-to-interference-plus-noise ratio (SINR) at the receiver side. Note that the case where β=0 reduces equation (3) into the Moore-Penrose pseudoinverse of equation (1B). In an analogous manner regarding the selection of the pseudoinverse, the disclosed technique is likewise not limited to a particular regularized generalized inverse. Precoding matrix block 158A is configured and operative to perform precoding in the sense of the disclosed technique, i.e., regularized generalized inversion of the channel matrix according to equation (3B) and to produce an output 160A, denoted by output vector o representing precoded symbols, thenceforward communicated via communication channel 162A to the receiver side.
At the receiver side, a received vector 180A, r, is the sum of a vector 164A, y, and an additive noise vector 166A, n, denoting that the precoded information symbols propagated through the communication channel include additive 168A noise 166A. For each one of CPE units 1061, 1062, 1063, . . . , 106N-1, 106N (
Inverse mapping block 186A is configured and operative to “reverse” the reversible mapping applied at the transmitter side by reversible mapping block 154A. For example, for a reversible mapping that is a function, the inverse mapping is a corresponding inverse function. If hybrid-interoperability precoding scheme 150A employs dirty paper coding and vector precoding techniques, inverse mapping block 186 is typically embodied as a modulo operation block (e.g., a modulus operation applied to an operand (e.g., an integer offset)). In the case hybrid-interoperability precoding scheme 150A employs lattice techniques it is as aforementioned.
For a CPE unit supporting the decoding of NLP data, the output of inverse mapping block 186A (following path 184A (“a”)) results in an estimated output symbol 190A, ŝ. For a CPE unit not supporting the decoding of NLP data, received vector 180A follows path 188A (“b”) the output of which is an estimated output symbol 190A, ŝ.
With reference now to hybrid-interoperability precoding scheme 150B of
Precoding matrix block 158B, P, is configured and operative to perform regularized generalized inversion of a permuted channel matrix W=ΠTH, where ΠT represents the transpose of permutation matrix Π and H represents the channel matrix (in accordance with the principles of equations (3A) and (3B)). The precoding matrix is denoted by P=reg.-gen.-inv(W)D, where D represents a scaling matrix that depends on the permutation used. Precoding matrix block 158B is configured and operative to perform precoding thereby producing an output 160B that is communicated via a communication channel 162B that is represented by a block 162B and given by H=ΠW, to the receiver side.
At the receiver side, a received signal 180B, represented by a vector, r, is a sum of a vector 164B, y, and an additive 168B noise vector 166B, n (respectively similar to 180A, 164A, and 166A of
In an alternative optional implementation to hybrid-interoperability precoding scheme 150B, reversible mapping block 154B and permutation block 157B are in reversed order (i.e., information symbols 152 are inputted first to permutation block 157B an output of which is provided to reversible mapping block 154B) (not shown).
According to a different implementation, with reference being made to hybrid-interoperability precoding scheme 150C of
The following operational blocks and procedures of general hybrid-interoperability preceding scheme 150C in
At the receiver side, a received signal 180C, represented by a vector, r, is a sum of a vector 164C, y, and an additive 168C noise vector 166C, n (respectively similar to 180B, 164B, and 166B of
To explicate the particulars of the disclosed technique in greater detail, an example of a specific implementation will now be described. Reference is now made to
As an example to the dynamic nature of this division, users with relatively small constellation sizes are assigned to a first group (e.g., 1 or 2 bits) employing LP, while remaining users of relatively larger constellation sizes are assigned to a second group employing NLP. Alternatively, constellations are not assigned for those users having a low signal-to-noise ratio (SNR) thus not allowing the loading of constellations of larger size than the predetermined value (e.g., the bit loading is less than one bit). This state effectively corresponds to the case where K≤N. The precoder employed in this case is determined according to the regularized generalized inverse of the channel matrix (utilizing communication channels of inactive CPE units at a specific tone). Noteworthy also in this case is the analogous wireless implementation where the number of transmitting antennas is greater than the number of receiving antennas.
The dynamic division of users into groups involves allocating: group 1 for users employing LP and having no supportability for inverse mapping (e.g., modulo operation capable) functionality (e.g., hardware, software, firmware) or having such functionality but preferably using linear precoding due to optimization issues; and group 2 for users employing NLP having supportability for inverse mapping functionality. This dynamic division merges system optimization (i.e., according to different criteria, such as, max-mean rate, max-min rate, etc.) with resolution of the interoperability issues. This issue is elaborated further hereinbelow. In the description that follows, the operation per frequency tone is described, assuming principles of an OFDM system.
With reference to
s=[s1T,s2T]T, where s1ϵCK
With further reference to
To elucidate the role of permutations in the system and method of the disclosed technique, reference is now further made to
Further detail of permutation block 304 is described in conjunction with
Generally, an arbitrary permutation of information symbol elements is achieved by permuting their indices via a permutation matrix Π0, i.e.:
[s1T,s2T]T=Π0Ts (5).
The example given in
s1(Π
The following short notations are hereby introduced: x1=s1(Π
Permutation block 204 (
Output signal 206 (
The perturbation vector, which can be any addition that may be eliminated by modulo arithmetic operations at the receiver, is one particular example of a reversible mapping. The employment of the perturbation vector approach effectively connotes that for every k-th index the point (sk+ck) belongs to an expanded constellation set for the k-th user. Generally, various algorithms may be used to determine the perturbation vector. Particularly, perturbation vector c is attained by taking into account system constraints that serve several objectives. An example objective involves minimizing the output power of the precoder signal (thus aiding to avoid intensive pre-scaling of the transmitted signal, consequently increasing the SNR at the receiver). Another example objective concerns the minimization of the bit error rate (BER) of the received signal.
Alternatively, the permutation matrix is applied directly to the vector sum of the symbol vector and the perturbation vector, s+c, since c+x=c+ΠTs=ΠT(s+Πc)=ΠT(s+{tilde over (c)}), where {tilde over (c)} represents an auxiliary perturbation vector. The perturbation vector and auxiliary perturbation vector are related thusly: {tilde over (c)}=c(Π)=Πc. Arranging c as c=[c1T, c2T]T we obtain:
{tilde over (c)}=Π[c1T,c2T]T (9).
Perturbation vector c1, whose components are all zero, is added to s1. c1(Π
Block 214 (
HH=QRΠT hence H=ΠRHQH (10),
signifying that the QR decomposition is constructed from:
HHΠ=QR (11),
where HϵCK×N is the channel matrix, RϵCK×K is an upper triangular matrix, QϵCN×K is an orthogonal matrix such that QHQ=1K×K, and ΠϵCK×K is a permutation matrix. The multiplication expression ΠX permutes the rows of a matrix X; the multiplication expression XΠT permutes the columns of matrix X. In particular, the determination of matrix R in the QR factorization process depends not only on the channel matrix but also on the permutation matrix Π. Permutation matrix Π consists of K elements, such that all elements but one is zero and just one element is equal to 1, for each row and each column of Π. The position (i.e., index value) of this element (the 1) is different for every row and column so that these positions determine the permutation sequence. With reference to the 5-user example of
In particular, this also demonstrates an example of:
where the 2×2 permutation matrix Π1 permutes the first two indices and the 3×3 permutation matrix Π2 permutes last three indices.
The construction of precoder a P represented by precoder matrix PϵCN×K (referenced 220 in
P=αQR−HDΠT,o=P(s+c), (14).
PϵN×K is a generalized vector precoder matrix, s is the information symbol vector and c is the perturbation vector. For the LP group of CPE units the respective components of c are zero, while for the NLP group of CPE units the respective components of c are nonzero. Alternatively, there might be NLP supporting CPE units whose respective components of c are constrained (forced) to be zero for the purposes of optimization (e.g., dimensionality reduction in decreasing the number of nonzero components of c, thus reducing computational load), effectively treating NLP supporting CPE units as part of the LP group of CPE units. The perturbation vector is added for the NLP group of CPE units for example via search-based criteria, implicitly via the THP scheme, and the like.
Scalar power gain blocks 3101, 3102, 3103, 3104, and 3105, (collectively denoted 3101-5) (
m=R−HDΠT(s+c)=L−1DΠT(s+c) (16),
which means that:
Since L is lower diagonal, for the LP group we obtain:
L1m1=D1s1(Π
or equivalently,
m1=L1−1D1s1(Π
where D1=diag(d1).
Reference is now further made to
Diagonal scaling vector d1 can represent the degrees of freedom for optimization under constraints. Optimization involves use of the diagonal scaling vector d1 in conjunction with the degrees of freedom afforded by the permutation. The elements of the diagonal (power) scaling vector d (D=diag(d)) are typically selected to be real-valued and non-negative (although it is not a required restriction). It is noted that different precoder outputs may be scaled by gains of different values (not shown in
Following determination of diagonal scaling vector d1, vector m1 is calculated directly via equation (18*), or sequentially via equation (18). The direct path allows calculation of the components of m1 independently from each other, thus allowing for parallel processing to be employed.
The NLP scheme for the NLP group of CPE units (users) will now be described in greater detail. Reference is now made to
The operation of adders 3762, 3763, 3764, and 3765, and that of modular arithmetic calculation units 3781, 3782, 3783, 3784, and 3785, which are relevant to the group of NLP users, will now be described in detail. Analogously to equation (18) relating to the LP group of users, for all LP and NLP groups of users we have:
Lm=DΠ(s+c) (19).
Referencing
L2m2+M21m1=D2Π2T(s2+c2) (20).
The following notations are hereby defined: D2=diag(d2), where d2=diag(L2). The objective now is to construct a unit diagonal matrix LU:
LU=DL−1L (21),
where DL=diag(dL), and dL=[diag(L1)T, diag(L2)T]T. The modular arithmetic calculation units are configured and operative to facilitate construction of the diagonal matrix LU in a recursively manner according to:
Particularly, multiplication of equation (17) the left side by DL−1 results in:
LUm=[(f(1)⊙s1(Π
where ⊙ denotes the component-wise multiplication, and f is a gain vector calculated as according to:
diag(f(1))=(diag(diag(L1)))−1D1 (23),
hence:
According to equation (20) the first α×α elements of the scaled matrix:
L1=diag(diag(L1))Lu1 (25).
Thus:
L1−1=Lu1−1(diag(diag(L1)))−1 (26).
By using equation (23) we may rewrite equation (18*) as:
m1=L1−1D1s1(Π
then obtain an expression for m1 by means of the scaled matrix, Lu1−1, and gain vector f:
m1=LU1−1 diag(f(1))s1(Π
(which is an alternative expression for m1).
We observe that a sequential solution of the system of equations LUm=b+{tilde over (c)} can be given by:
where we denote:
b=diag(f)Πs=diag(f)s(Π) (30),
and discuss the following general scheme derived from equation (19):
LUm=diag(f)s(Π)+{tilde over (c)} (31).
From equations (29) and (30) we arrive at:
For any index k we may choose an auxiliary perturbation vector {tilde over (c)}(k) to be proportional to the modulus size such that:
Reference is now made to
The gains, represented by vector f, are calculated according to: f(k)=d1(k)/L(k,k), where d1 represents (pre-calculated) diagonal coefficients for the linear precoder.
The presented scheme is a convenient way to embed the LP and NLP groups of users together into the THP structure, concomitantly with NLP/LP control mechanisms configured and operative to respectively apply modulus arithmetic operations to groups of users classified according to supportability. The implementation of permutations by permutation block 304 is achieved via equation (8) such that the permutation block matrix can be represented in the form of
acting on [s1T,s2T]T as its input. Alternatively, the permutation block may also include a matrix Π0T (see equation (8)) acting on the natural order of information symbols, which can be represented by:
There are various implementations to preprocessing block 306 (
Reference is now further made to
In accordance with another example implementation of preprocessing block 306, reference is now further made to
In accordance with another example implementation of preprocessing block 306, reference is now further made to
In particular, preprocessing block 306 performing the sequential calculations for determining the k-th output, m(k), given in equation (36), may be viewed as follows. Subsequent to determining m1 we may calculate:
Then, the remaining K2 sequential equations may be represented by:
for k=K1+1, . . . , K2, where δ is an offset vector, which may be represented in the vector form as:
δ=−MU21m1 (39),
where matrix Mu12 is based on partition of the scaled unit diagonal matrix Lu (i.e., Mu12=LU(rows: K1+1 to K, columns: 1 to K1)). Offset vector δ may also be written in terms of D2 as:
δ=−D2−1M21m1, where D2=diag(diag(L2)) (40).
Since the offset vector δ is known, it may be separately calculated (independently of the sequential calculations). The outputs of adders 434 and 436 constitute outputs of calculation block 432 represented by offset vector δ, whose two components are δ1 (inputted to adder 3764) and δ2 (inputted to adder 3765). This configuration typically reduces real-time precoding complexity as noted.
Alternatively, according to another implementation (not shown), calculation block 422 in
Returning now to
Precoder 220 (
H=(Q*R*ΠT)H=Π*RH*QH (41).
If a direct substitution of the factorized channel matrix (equation (41) above) is made into an expression for the pseudoinverse pinv(R′)*D of block 214 (
pinv(H){tilde over (D)}=HH(HHH)−1{tilde over (D)}=QRΠT(ΠRHQHQRΠT)−1{tilde over (D)}=QRΠTΠ−T(RHR)−1Π−1{tilde over (D)}=QRR−1(RH)−1ΠT{tilde over (D)}=Q(RH)−1DΠT (42),
where ΠT{tilde over (D)}=DΠT, QϵN×K, RϵK×K and D is a diagonal matrix of size (dimension) K×K and ΠT is the permutation matrix of size K×K (where the columns of matrix Q are orthonormal) based on the so-called thin (or reduced) QR factorization (due to K<N). The relation between the diagonal matrix which scales the channel pseudoinverse and the scaling utilized by THP block 220 is D=Π−1{tilde over (D)}Π=ΠT{tilde over (D)}Π. Alternatively, it is: {tilde over (D)}=ΠDΠT. The scaling is not arbitrary (e.g., as in the prior art) but THP block 220 is configured to scale according to D=diag(diag(RH)). Note that the QR decomposition presented is based on THP that represents the precoder utilizing the Moore-Penrose pseudoinverse and its corresponding specifically chosen diagonal: {tilde over (D)}=Π diag(diag(RH))ΠT.
The transmitter side outputs outputted signal 222 (vector o), which propagates through communication channel 224, the result of which is a signal 226 (represented by a vector y) received at the receiver side. A received signal 232 at the receiver side, represented by a vector r is the sum of signal 226 (y) with additive noise 228 (represented by a vector n), signifying that the precoded information symbols propagated through the communication channel includes additive 230 noise. Received signal 232, vector r may be represented by:
r=Ho+n=HP(s+c)+n=ΠRHQHαQR−HDΠT(s+c)+n==αΠDΠT(s+c)+n (43),
where rϵK×1 is the received signal, oϵK×1 is the output to the communication lines (i.e., the transmitted signal) and nϵK×1 is the additive noise at the receiver side. The expression ΠDΠT represents the permuted diagonal:
DΠ=ΠDΠT (44),
therefore:
r=αDΠ(s+c)+n=αdΠ⊙(s+c)+n (45).
The permutation matrix Π orders (i.e., permutes) the constructed diagonal:
dΠ=diag(DΠ)=Πd (46),
where d=diag(D). In THP, the input signal is first permuted as ΠTs, then the sequence {tilde over (c)} is added via the THP scheme:
ΠTs+{tilde over (c)}=ΠT(s+Π{tilde over (c)})=ΠT(s+c) (47),
where c=Π{tilde over (c)}.
Continuing at the receiver side, received signal 232 (
For non-cooperative receivers (i.e., receivers that do not share or use information they process between themselves) received signals, r1 and r2, are processed: (i) independently for every user (as the users are non-cooperative); and (ii) by using scalar scaling of the received signals. These can be represented in the matrix-vector form as diagonal gain corrections, diag(g(1)) and diag(g(2))) for both LP and NLP groups of users, and additionally by modulus operations applied only to the NLP group of users, as may be represented by the following equations for outputted estimated symbols:
ŝ1=G(1)r1=diag(g(1))r1=g(1)⊙r1 (48),
ŝ2=mod(G(2)r2)=mod(diag(g(2))r2)=mod(g(2)⊙r2) (49),
where s1 and s2 respectively signify information symbols for the LP and NLP groups of users and ŝ1 and ŝ2 denote their corresponding estimates (which may be further inputted into error correction blocks (not shown) as known in the art).
The application of complex-valued scalar gain factors F(1), F(2), F(3), F(4), F(5) shown in
where DΠ=ΠDLΠT; DL=diag(diag(L)); and fΠ=diag(Π diag(f)ΠT), as the received symbol is prior to frequency equalization at the receiver side (CPE units) is given by (prior to addition of noise):
y=ΠDL(diag((f))ΠTs+{tilde over (c)})=ΠDLΠT(Πdiag((f))ΠTs+Π{tilde over (c)}) (51).
Recalling that the diagonal matrix D (after factorization) in
(ΠDLΠT)−1y=Πdiag((f))ΠTs+Π{tilde over (c)} (52).
Subsequently the modulo operation is performed on the permuted auxiliary perturbation {tilde over (c)}=Πc after which the second scaling step is performed, in accordance with equation (50), thereby obtaining:
(Πdiag((f))ΠT)−1mod(ΠDLΠT)−1y=s (53).
In practice, this procedure is applied to received vector r, thereby arriving at equation (50).
Note that for the standard THP case where F(k)≡1, the k-th estimated symbol reduces to:
The estimated symbol ŝNLP(k) corresponds to the NLP group of users at the receiver side (CPE units). At the transmitter side (DPU) the processor applies the modulus operation to symbols whose indices correspond to the NLP group of users after the permutation block (i.e., while not applied to symbols whose indices correspond to the LP group of users. For the LP group of CPE receiver units, the estimated symbol for a l-th CPE receiver unit is:
which is performed in one step (while two steps are also possible). Equation (31) may be rewritten to account for the THP scheme in the case where f(k)=1 for index k corresponding to the permuted NLP group of users as: LUm=diag(f)ΠT(s+c), where c=ΠT{tilde over (c)}.
It is noted that the precoder given by: P=QR−H, where QϵN×K and RϵK×K (where the columns of matrix Q are orthonormal) based on the so-called thin (or reduced) QR factorization (due to K<N) performed for HH as HH=QR and hence H=RHQH) leads to the Moore-Penrose pseudoinverse. We straightforwardly observe that:
P=HH(HHH)−1=QR(RHQHQR)−1=QR(RHR)−1==QR(R−1R−H)=QR−H (56).
Therefore, the precoder based on the QR decomposition represents a particular pseudoinverse. One may readily observe that the same is true for QR decomposition with permutations, as described hereinabove.
It is assumed that the number of transmitters is N, and that K≤N. In a wireless system, N represents the number of transmitting antennas and in a wire-line system N is the number of CPE units (e.g., modems) transmitting through binder 110 (
Database 450 shown in tabulated form includes a CPE number field 452, a supportability field 454, and an activity level field 456. CPE number field 452 includes a numbered list of CPE units 1061, 1062, 1063, . . . , 106N-1, 106N (
Further reference is made to
A memory (not shown) is configured and operative to store database 450. The memory is typically configured to be coupled with at least one of controller 112 and processor 114 of DPU 104 (
The precoder constructed according to the disclosed technique to solve the interoperability problem of CPE units having different supportabilities relates to the general case where K≤N, but more specifically relates to the more typical and tougher case where K<N at a particular subcarrier frequency. As aforementioned, a solution to the special simple case where K=N is already proposed by the prior art. The case where K<N may also arise for example in situations where some CPE units might not have a large enough SNR (e.g., due to significant channel signal attenuation in a high frequency portion of the transmitted spectrum of frequencies (e.g., corresponding to moderate and lengthy communication lines)). This case can be expressed, for example, when there's an insufficient SNR for transmitting a certain number of bits in a constellation at a particular frequency (e.g., calculated when bit-loading is less than a specific value). The communication lines corresponding to these CPE units may be reused to transmit information (i.e., precoding them with information symbols for other users) intended for the benefit of the remaining CPE units (i.e., or subset thereof), instead of for themselves. For example, if the ZF precoder is utilized it can be based on the communication channel pseudoinverse. In an extreme case (i.e., beam forming) where all but one CPE unit is active (or operational), all communication lines are utilized to transmit to that CPE unit. Note that a particular CPE unit may be active at some subcarrier frequencies and inactive at the other subcarrier frequencies. The solution of the disclosed technique relates and is attained on a subcarrier frequency basis.
The disclosed technique is configured and operative to employ an algorithm for determining active users from a total number of users according to various criteria, e.g., depending on optimization criteria such as the maximization of average rate, maximization of max-min rate, etc. In that regard, let's recall equation (19), which may be rewritten as:
L2m2=D2Π2T(s2+c2)−M21m1 (57).
Noting that m1 is already known, we introduce:
{tilde over (δ)}1=−D2−1Π2M21m1 (58).
For a general vector preceding scheme there is not assumption that D2=diag(diag(L2)). The diagonal D2 represents additional degrees of freedom. Then we have:
m2=L2−1D2Π2T(s2+{tilde over (δ)}1+c2) (59),
where perturbation vector c2 is determined by applying optimization criteria which for a given D2 that minimizes a power criterion applied to vector m2. For example, optimization involves minimization of a q-dimensional (absolute-value) norm ∥m2∥q, where the following standard notation is used:
for a vector z of a length L. Such minimization may be applied for every realization of s2 and s1 (where s1 governs m1 and therefore {tilde over (δ)}1). Alternatively, minimization is applied to the statistical power averages. Different types of norms of different dimension q may be used. For example, the norm ∥m2∥2 is related to the total power of all m2 components, while minimization of ∥m2∥∞ minimizes the maximal power per component. The components of c2 are c2(k)=τkpk. The modulus τk depends on the constellation size of s2 or according to c2(k)=τpk, where the same modulus value is applied to all constellations (i.e., determined by the maximal allowed constellation size as described below). The complex number pk is what is sought via the optimization process (typically in the form of signed integer components (i.e., its real and imaginary components are signed integers)). For a constant modulus, the disclosed technique may minimize the instantaneous power value related to the currently transmitted symbols or, alternatively, the average power value for a given time period.
To further elucidate the disclosed technique, reference is now made to
Initially, it is noted that vectors s1, m1, δ1, d1, y1, n1, r1, and {tilde over (s)}1 are of dimension K1, and vectors s2, m2, d2, Y2, n2, r2, and {tilde over (s)}2 are of dimension K2. Starting from LP path 502, information symbols, represented by a vector s1 (intended for being linearly precoded) are inputted to a permutation block 506 configured and operative to perform permutation of vector elements of s1 according to a permutation matrix Π1′ (where Π1′ is a K1×K1 permutation matrix) (similarly to permutation matrix of block 334 in
Referring now to NLP path 504, information symbols represented by a vector s2 (intended for being nonlinearly precoded) are inputted to a permutation block 516 configured and operative to perform permutation of vector elements of s2 according to a permutation matrix Π2′ (where Π2′ is a K2×K2 permutation matrix) (similarly to permutation matrix of block 336 in
Concatenation block 526 is constructed and operative to perform concatenation of K1 vector components of m1 and K2 vector components of m2 into a concatenated vector m of K vector components. Essentially, vector 256, m (
At the receiver side, LP path 502 corresponds to LP CPE units configured and operative to receive a signal, represented by a received vector r1 which is the sum of a vector y1 and noise n1, denoting that the received information symbols propagated through communication channel 530 includes additive 532 noise. The received signal (vector r1) is inputted to a block 534, which in turn is configured and operative to perform scaling of the received signal per component according to inv(Π1D1Π1T) the result of which yields outputted estimated symbols ŝ1. NLP path 504 corresponds to NLP-supporting CPE units configured and operative to receive a signal, represented by and operative to receive a signal, represented by a received vector r2 which is the sum of a vector y2 and noise n2, denoting that the received information symbols propagated through communication channel 530 includes additive 536 noise. The received signal (vector r2) is inputted to a block 538, which in turn is configured and operative to perform scaling of the received signal per component according to inv(Π2D2Π2T) the resulting signal is fed into modulo operation block 540, which in turn is configured and operative to apply a modulo operation to the signal outputted by block 538, the result of which yields outputted estimated symbols ŝ2.
The optimized selection of the scaling values of D1, D2, the permutation matrices Π1, Π2, as well as the perturbation vector c2 may be determined, for example according to various criteria such as the minimization of the power involving m2 as discussed hereinabove in conjunction with equation (59). It is noted that the dimension of the perturbation vector is K2 corresponds to the dimension of the input information symbol vector s2. The functional split to linear and nonlinear precoders solves the interoperability problem, improves performance of the nonlinear precoder for small constellations, as well as well as reduces the dimensionality of the nonlinear precoder. Regarding NLP dimensionality reduction, it is known that determining the perturbation vector may involve large computational complexity (increasing significantly with vector dimension), therefore it may be beneficial to reduce it by reducing the number of the NLP users and the system and method of the disclosed technique allows to perform this by allocating part of the NLP users to the LP users (i.e., all users remain precoded).
Alternatively, optional scaling of the output from the transmitter side by use of a scaling gain factor α is also viable. To further elucidate this implementation, reference is now made to
Initially, and similarly to the description heretofore described in conjunction with
Starting from LP path 552, information symbols, represented by a vector s1 are inputted to the following blocks 556, 558, 560, 562 which are all respectively configured and operative identically to blocks 506, 508, 510, 512 in
Turning now to NLP path 554, information symbols represented by a vector s2 are inputted to a permutation block 516 configured and operative identically to permutation block 516 in
Vectors m1, and m2 are inputted to a concatenation block 574 and then to a Q block 576, both of which are respectively identical in construction and operation to blocks 526 and 528 in
At the receiver side, following LP path 552 corresponds to LP CPE units configured and operative to receive a signal, represented by a received vector r1 which is the sum of a vector y1 and additive 582 noise n1. The received signal (vector r1) is inputted to a block 584, which in turn is configured and operative to perform scaling of the received signal per component according to
the result of which yields outputted estimated symbols ŝ1. NLP path 554 corresponds to NLP-supporting CPE units configured and operative to receive a signal, represented by and operative to receive a signal, represented by a received vector r2 which is the sum of a vector y2 additive 586 and noise n2. The received signal (vector r2) is inputted to a block 588, which in turn is configured and operative to perform scaling of the received signal per component according to
the resulting signal is fed into a modulo operation block 590, which in turn is configured and operative to apply a modulo operation to the signal outputted by block 588, the result of which yields outputted estimated symbols ŝ2.
Alternatively, according to another implementation of system 102, the scalar factor may be distinctive (e.g., not common, different) for different CPE units (users). In accordance with this alternative implementation, reference is now made to
The weighting matrix G is diagonal having diagonal elements representing individual gains each associated with a particular one of the transmitters. In this case we denote the individual scalar factors by means of a vector α, where each vector element represents an individual scalar factor, each of which is associated with a particular CPE unit (i.e., elements in vector α represent specific power scaling factors that are distinctive for each one of the CPE units). Permutation of inputted information symbols 602 may be performed optionally. In this case, information symbols 602, s, are inputted into a permutation block 604, which is configured and operative to permute information symbol elements in vector s, according to a permutation matrix Π′. Each information symbol element in vector s is associated with a particular CPE unit. The permutation takes into consideration the partition of CPE units into two groups (those that employ NLP and those that don't). Adder 610 combines an output from permutation block 604 with a perturbation vector 608 denoted by c, the result of which is a signal 612 that is inputted to a block 614, which in turn is configured and operative to perform the operation: inv(R′)*D, and to output a signal 616 represented by a vector m. Signal 616 is inputted into a Q block 618 configured to perform QR decomposition the result of which is inputted into a gain block 619 denoted by α*G. Gain block 619 is configured and operative to construct a diagonal square weighing matrix G, according to: {tilde over (G)}=diag(α) whose number of rows is equal to the number of transmitters, and to output an output signal 622 that is communicated over a communication channel, denoted by a block 624. Block 614 in conjunction with Q block 618, permutation block 604, block 619, and perturbation vector 608 collectively constitute a precoder 620, denoted by P, which in turn is configured and operative to perform pseudo-inversion of a communication channel matrix H. In the general case, implementation 600 of the disclosed technique uses QR decomposition to determine a modified channel matrix equal to HG. In a particular case involving permutations (i.e., a permutation block 604 Π′), where the processor is further configured for permuting information symbol elements in the information symbol vector, per subcarrier frequency, where each information symbol element is associated with a particular one of the CPE units. The disclosed technique utilizes an inverse of matrix G for precoding, and in particular, for factorizing the communication channel matrix H according to (in the specific case utilizing permutations):
H=ΠRHQH{tilde over (G)}−1 (60).
A signal 626 is a result from propagation through communication channel 624, received at the receiver side. A received signal 632 at the receiver side, represented by a vector r is the sum of signal 626 (y) with additive noise 628 (represented by a vector n), signifying that the precoded information symbols propagated through the communication channel includes additive 630 noise. Received signal 632 is inputted to a block 634 configured and operative to perform scaling by inverting the permuted diagonal vector the output of which is denoted by an output signal 636. For NLP supporting CPE units, output signal 636 represents an input to a modulo operation block 638, which is configured and operative to apply modulo arithmetic operation to received signal 636, and to output an output signal 640 of estimated symbols, represented by a vector ŝ. For those CPE units whose supportability does not include NLP (i.e., LP group of users) output signal 636 is effectively output signal 640 (i.e., no modulo operation is applied).
Alternatively, {tilde over (G)} consists of a combination of a variable gain factor with a common gain factor (to all CPE units). This may be expressed by: δ=α*η, where a scalar η represents a common gain factor and the vector α represents the variable gain factor (individual to each CPE unit). Thus, we may choose:
{tilde over (G)}=diag(δ) (61).
The QR decomposition in such case is calculated via the modified channel as follows:
H{tilde over (G)}=ΠRHQH (62),
i.e., ΠHH{tilde over (G)}=RHQH, hence (H{tilde over (G)})HΠ=QR and thus {tilde over (G)}HHHΠ=QR. The introduced gains do not affect channel diagonalization. They represent additional degrees of freedom, which may be used for the performance optimization.
Reference is now further made to
In procedure 654, a modified channel matrix equal to HG is determined. With reference to
In procedure 656, a nonlinear precoder is constructed for performing nonlinear precoding of the modified channel matrix. With reference to
Reference is now made to
In procedure 684, a precoding scheme defining for which of the receivers the data to be transmitted by the transmitters shall be precoded using at least one of linear precoding and non-linear precoding, according to the supportabilities is determined. With reference to
In procedure 686, a signal is constructed by applying a reversible mapping to the information symbol, where the reversible mapping includes elements each respectively associated with a particular one of the receivers, such that those receivers supporting the decoding of nonlinearly precoded data are capable of reversing the reversible mapping to the information symbol, while for those receivers not supporting the decoding of nonlinearly precoded data the information symbol is unaffected by the reversible mapping. With reference to
In procedure 688, a precoder characterized by N≠K is constructed, such that the precoder is configured to perform regularized generalized inversion of a communication channel matrix. With reference to
The system and method of the disclosed technique combines linear and nonlinear precoding (precoders) and have the following advantages:
According to another embodiment of the disclosed technique it is thus provided a method and a system for NLP where the modulus value is constellation-independent. In the prior art, NLP techniques utilize a modulus value that is constellation-dependent. The disclosed technique proposes a method and system for nonlinear precoding of an information symbol at a given precoder input, the information symbol is in a symbol space (i.e., a construct for representing different symbols, e.g., a constellation) having a given symbol space size (e.g., a constellation size). The nonlinear precoding involves modulo arithmetic and has a plurality of inputs. The method includes initially the step of determining a reference symbol space size, which is common to all inputs. Then, the method determines a modulus value according to the reference symbol space size. The method adapts the given symbol space size according to the reference symbol space size. The step of adapting involves scaling the given symbol space size to the boundaries of the reference symbol space size. Subsequently the method nonlinearly precodes the information symbol according to the determined modulus value, common to all of the inputs. The disclosed technique further provides a system for nonlinear precoding of an information symbol at a given precoder input, where the information symbol is in a symbol space size having a given symbol space size. The nonlinear precoding involves modulo arithmetic and has a plurality of inputs. The system includes a controller and a processor. The controller is configured for determining a reference symbol space size that is common to all of the inputs, and for determining a modulus value according to the reference symbol space size. The processor is configured for adapting the given symbol space size according to the reference symbol space size, and for nonlinearly precoding the information symbol according to the determined modulus value common to all of the inputs.
The disclosed technique is implementable for various NLP techniques such as THP, including inflated lattice precoding techniques, which work with non-Gaussian interference and typically outperform THP for all SNR levels, including low SNRs.
In the traditional Tomlinson-Harashima precoding design, the modulo operation is defined per symbol space size (e.g., constellation size), and it is different for different symbol spaces (e.g., constellations). The modulo operation for user number k is denoted as Γτ
where └ . . . ┘ is the floor function, and for a real-valued x, whereas for complex values the modulo operation is performed separately for the real, Re(x), and imaginary, Im(x), parts [we denote the imaginary unit as j]:
Reference is now made to
Information bits B={(b(1), b(2), b(3), b(4), b(5)}(interchangeably denoted “data bits”) are inputted into mapper 722, which is configured and operative to map the information bits (bit streams) into respective information symbols x={x(1), x(2), x(3), x(4), x(5)}, which in turn are inputted into vectoring processor 702. Specifically, the information symbols are correspondingly inputted into individual gain blocks 7061, 7062, 7063, 7064, and 7065 of preprocessing subblock 710 of vectoring processor 702. The gain blocks are configured and operative to apply respective gain components f(1), f(2), f(3), f(4), and f(5) of gain a vector f to the corresponding information symbols (i.e., index-wise) the outputs of which are inputted to adders 7122, 7123, 7124, 7124 (except for an output of gain block 7061 that is directly provided into modular arithmetic calculation unit 7081). Each adder 7122, 7123, 7124, 7124 can be respectively viewed as a part of a respective modular arithmetic calculation unit 7082, 7083, 7084, and 7085. Modular arithmetic calculation units 7081, 7082, 7083, 7084, and 7085 are generally configured and operative to facilitate construction of the diagonal matrix LU in a recursively manner according to:
The disclosed technique formulates a way to set the modulo value that is employed in THP to be independent on the symbol space size (constellation size). In the prior art, and in particular with the Tomlinson-Harashima precoder, the modulo value is dependent on a symbol space size (e.g., the constellation size).
A customary modulus value is τ=Mdmin for pulse amplitude modulation (PAM) and τ=√{square root over (M)}dmin for a two-dimensional (2-D) square symbol space (constellations) of digital quadrature amplitude modulation (QAM), where dmin is the quantized symbol position (constellation point) spacing. See for example G. Ginis and J. M. Cioffi, “A multi-user precoding scheme achieving crosstalk cancellation with applications to DSL systems,” in Proc. 34th Asilomar Conf. Signals, Systems, and Computers, Pacific Grove, Calif., October 2000, pp. 1627-1631, and the discussion for square constellations. For 4-QAM the modulus value is τ=2dmin (due to √{square root over (4)}=2), and for 16-QAM the modulus value is τ=4dmin (while the symbol positions (constellation points) in the symbol space are traditionally located at integer positions (n1, n2) taking independently the values {−3,−1,1,3}). Other, non-integer even values, are different for different symbol space sizes (constellation sizes), where dmin (i.e., a symbol position spacing for a symbol space).
The average energy, Ē (or <E>) in M-QAM, where M is the number of symbol positions (e.g., constellation points) in the symbol space (e.g., constellation) and is square (i.e., for square symbol spaces (constellations)) is given by: Ē=(M−1)dmin2/6, thus the average energy for 4-QAM with constellation points ±1±j, where M=4 (points) and dmin=2 is:
and the constellation square boundary is at 2 (and hence the initial modulo value is 4). The average energy for a symbol space size (constellation) having M-symbol positions (constellation points) is given by:
where the m-th constellation point is expressed as zm=xm+jym and xm and ym are respectively real and imaginary coordinate values in the complex plane. For 16-QAM, the average energy for we obtain:
Reference is now further made to
For 64-QAM it is readily observed that the average energy is equal to 10 and the initial modulo size is 8. Scaling of the initial modulus value by the root of the average energy yields
Thus, unit energy scaling produces closed but different modulus values for every symbol space (constellation) which are mutually exclusive
It is noted that if one approximates the symbol space (constellation) square with a large number of uniformly distributed integer symbol positions (constellation points), then the modulo value of the symbol space (constellation) with unit average energy would equal τ=√{square root over (6)} (i.e., for M-QAM the un-scaled τunscaled=√{square root over (M)}dmin and after rescaling τ with √{square root over (Ē)} we obtain:
For large M we obtain τ→√{square root over (6)}). For finite and especially small values for M the scaled modulus value is symbol space size (constellation size) M-dependent, (i.e., consequently depending on dmin). Such moduli are a costly operation and they may be made much less costly as discussed hereinbelow. Reference is now further made to
According to a typical implementation, controller 704 determines the reference symbol space size that is a maximum symbol space size thereby enabling the transmission of a maximum number of bits per information symbol. Vectoring processor 702 and particularly scaler 706 (
NLP 708 (
Q block 714 is configured to perform QR decomposition the result of which is inputted into G block 716. G block 716 is a gain scaling block configured and operative to apply gain scaling and to output signals (not shown) that are communicated over a communication channel (e.g., 1081, . . . , 108N,
The system and method of disclosed technique uses of same modulus value for any symbol space size (constellation size). This serves several purposes:
Hence, the new locations of the 16-QAM constellation points are at n1+jn2 with n1, n2ϵ{−3·16, −16·1, 16·1, 3·16}={−48, −16, 16, 48}. Note, that multiplication by 16 may be achieved efficiently just as a shift by 4 binary positions. The above chosen modulo example namely τ=128 is convenient for constellations up to 4096-QAM (i.e., representing 12-bits, since 212=4096), which can be validated via the above-mentioned general relation τ=2√{square root over (M)}=2√{square root over (212)}=2*26=128); the points of this constellation, denoted as n1+jn2, are integers n1,n2ϵ{−63, −61, . . . , −1, 1, . . . , 61, 63}. If a 14-bit constellation is to be included a modulus value of: 2·√{square root over (214)}=28=256 is proposed. The 12 and 14-bit constellations mentioned above are given as examples. These are the current maximum constellation sizes in the current G.fast standard. In another example, for a modulo value of 8, symbol positions (constellation points) for 16-QAM (are not needed to be scaled) and 4-QAM (which needs to be scaled by factor of 2, is again effectively represented by a shift), with reference now being made to
Note that while “conventional” modulo arithmetic operation may be performed according to dmin*√{square root over (M)}, the system of method of the disclosed technique typically select to perform this operation according to 2√{square root over (Mmax)} where Mmax represents the maximal number of symbol positions M for a modulation scheme (e.g., M-ary QAM) of a communication standard (e.g., 12 or 14 for G.fast).
Reference is now made to
In procedure 804 a modulus value is determined according to the reference symbol space size). With reference to
In procedure 806, the given symbol space size is adapted according to the reference symbol space size. With reference to
In procedure 808, the information symbol is nonlinearly precoded according to the modulus value that is common to all of the inputs. With reference to
System 700 and method 800 are configured and operative for utilization in a multiple-user multiple-input-multiple-output (MIMO) matrix channel environment, employing NLP, for normalizing the given symbol space size according to the determined modulus symbol space size (i.e., fundamentally, based on the boundary and not on energy considerations).
It will be appreciated by persons skilled in the art that the disclosed technique is not limited to what has been particularly shown and described hereinabove. Rather the scope of the disclosed technique is defined only by the claims, which follow.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IL2017/051402 | 12/28/2017 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2018/122855 | 7/5/2018 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6879639 | Verbin | Apr 2005 | B1 |
7200180 | Verbin | Apr 2007 | B2 |
7580490 | Suh | Aug 2009 | B2 |
7809116 | Rhee | Oct 2010 | B2 |
7894507 | Kent | Feb 2011 | B2 |
8279985 | Liu | Oct 2012 | B2 |
8837268 | Verbin | Sep 2014 | B2 |
8879644 | Reuven | Nov 2014 | B2 |
8952567 | Reuven | Feb 2015 | B2 |
9191067 | Reuven | Nov 2015 | B2 |
9425929 | Ashikhmin | Aug 2016 | B2 |
9503985 | Verbin | Nov 2016 | B2 |
9509484 | Verbin | Nov 2016 | B2 |
9900064 | Verbin | Feb 2018 | B2 |
9906353 | Verbin | Feb 2018 | B2 |
9985686 | Maes | May 2018 | B2 |
10057024 | Verbin | Aug 2018 | B2 |
10164691 | Verbin | Dec 2018 | B2 |
10284423 | Reina | May 2019 | B2 |
10355990 | Sterenson | Jul 2019 | B2 |
20030223505 | Verbin | Dec 2003 | A1 |
20090046568 | Xu | Feb 2009 | A1 |
20100135374 | Kozek | Jun 2010 | A1 |
20100254444 | Clausen | Oct 2010 | A1 |
20100303136 | Ashikhmin | Dec 2010 | A1 |
20100315939 | Verbin | Dec 2010 | A1 |
20100329444 | Ashikhmin | Dec 2010 | A1 |
20110075834 | Ashikhmin | Mar 2011 | A1 |
20110142111 | Sands | Jun 2011 | A1 |
20120161543 | Reuven | Jun 2012 | A1 |
20120163435 | Reuven | Jun 2012 | A1 |
20120177132 | Reuven | Jul 2012 | A1 |
20130156021 | Ashikhmin | Jun 2013 | A1 |
20140119536 | Strobel | May 2014 | A1 |
20150071336 | Kerpez | Mar 2015 | A1 |
20150244418 | Verbin | Aug 2015 | A1 |
20150280892 | Verbin | Oct 2015 | A1 |
20150282144 | Tomeba | Oct 2015 | A1 |
20150295621 | Wang | Oct 2015 | A1 |
20150326380 | Verbin | Nov 2015 | A1 |
20160043786 | Maes | Feb 2016 | A1 |
20160119025 | Strobel | Apr 2016 | A1 |
20160142255 | Reina | May 2016 | A1 |
20160156383 | Nuzman | Jun 2016 | A1 |
20160173682 | Lu | Jun 2016 | A1 |
20160191117 | Vanderhaegen | Jun 2016 | A1 |
20160286037 | Emad | Sep 2016 | A1 |
20170048035 | Verbin | Feb 2017 | A1 |
20170054473 | Jochen | Feb 2017 | A1 |
20170070335 | Verbin | Mar 2017 | A1 |
20170111270 | Sterenson | Apr 2017 | A1 |
20170279490 | Maes | Sep 2017 | A1 |
20180316386 | Verbin | Nov 2018 | A1 |
20190058502 | Tsiaflakis | Feb 2019 | A1 |
20190075202 | Nuzman | Mar 2019 | A1 |
Number | Date | Country |
---|---|---|
106060950 | Oct 2016 | CN |
2017118487 | Jul 2017 | WO |
Entry |
---|
Examination Report dated Sep. 23, 2019 for Application No. GB1910648.3 (3 pages). |
Airy M. et al, “Practical Costa Precoding for the Multiple Antenna Broadcast Channel”, IEEE Global Telecommunications Conference, 2004. GLOBECOM '04. |
Ginis G. et al, “A Multi-user Precoding Scheme achieving Crosstalk Cancellation with Application to DSL Systems”, Conference Paper in Circuits, Systems and Computers, 1977. Conference Record. 1977 11th Asilomar Conference on Dec. 2000. |
Ginis G., “Vectored Transmission for Digital Subscriber Line Systems”, IEEE Journal on Selected Areas in Communications, vol. 20, No. 5, Jun. 2002. |
Hekrdla M. et al, “Ordered Tomlinson-Harashima Precoding in G.fast Downstream”, IEEE Globecom , Selected Areas in Communications:Access Networks and Systems, Dec. 6-10, 2015. |
Proakis, Salehi, John Proakis, Masoud Salehi—Digital Communications -5e- (2007)(Section 16.4). |
Spencer QH et al, “An Introduction to the Multi-User MIMO Downlink”, IEEE Communications Magazine, Oct. 2004. |
Strobel R et al, “Zero-Forcing and MMSE Precoding for G.fast”, 2015 IEEE Global Communications Conference (GLOBECOM), Dec. 6-10, 2015. |
Strobel R et al, “Achievable Rates with Implementation Limitations for G.fast-based Hybrid Copper/Fiber Networks”, IEEE International Conference on Communications (ICC), Jun. 8-12, 2015. |
Windpassinger C, “Detection and Precoding for Multiple Input Multiple Output Channels”, published by Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU), 2004. |
Yao W et al, “Improved MMSE Vector Precoding Based on the MBER Criterion”, VTC Spring 2009—IEEE 69th Vehicular Technology Conference, Apr. 26-29, 2009. |
Zhang R et al, “Expanded Constellation Mapping for Enhanced Far-End-Cross-Talk Cancellation in G.fast” IEEE Communications Letters, Aug. 11, 2016, pp. 56-59. |
Number | Date | Country | |
---|---|---|---|
20190349224 A1 | Nov 2019 | US |
Number | Date | Country | |
---|---|---|---|
62610751 | Dec 2017 | US | |
62439501 | Dec 2016 | US |