# Multi-Domain Communication Systems and Networks: A Tensor-Based Approach
## 4 Harnessing the Domain Trade-Off
### Multi-Domain Beamforming (Precoding)  
Assigning the optimal covariance to the input based on (24) can be seen as comprising of two parts: power allocation and transmit precoding. It performs a multi-domain power allocation using tensor water-filling based on the pseudo-diagonal tensor \(\mathcal{P}=(\mu^{-1}\mathcal{I}-\mathcal{D}^{-1})^{+}\). It also performs transmit precoding using the unitary tensor \(\mathcal{V}\) to multi-linearly transform the input signal. The tensors \(\mathcal{P}\) and \(\mathcal{V}\) are essentially the pseudo-diagonal and the unitary tensors in the tensor EVD of the optimal covariance, respectively. Assume an input tensor \(\mathcal{\hat{X}}\in\mathbb{C}^{I_{1}\times\cdots\times I_{N}}\) which has zero mean unit variance i.i.d elements. To generate the transformed input tensor with the optimal covariance given by (24), we perform:  
\[\mathcal{X}=\mathcal{V}*_{N}\mathcal{P}^{1/2}*_{N}\mathcal{\hat{X}} \tag{26}\]  
where \(()^{1/2}\) denotes the square root of a tensor [46]. For a pseudo-diagonal tensor with real non-negative elements, the square root is simply an element wise square root. Since \(\mathcal{\hat{X}}\) has zero mean and identity covariance tensor, it can be readily verified that the covariance of \(\mathcal{X}\) from (26) is indeed given by (24). The unitary tensor \(\mathcal{V}\) is obtained via the tensor EVD of \((\mathcal{H}^{H}*_{M}\mathcal{H})\), and it is the same as the right unitary tensor obtained from the tensor singular value decomposition (SVD) of \(\mathcal{H}\). For details on tensor SVD, please refer to [15; 47]. The multi-linear transformation of the input through the tensor \(\mathcal{V}\) can be seen as multi-domain beamforming, where \(\mathcal{V}\) is the beamformer tensor. The traditional beamforming approach makes use of the unitary matrix from MIMO matrix channel SVD which leads to beamforming in spatial (antenna) domain only, and hence can be seen as single domain beamforming. Multi-domain beamforming, which results naturally in the tensor framework, extends this operation to be performed jointly across all the transmission domains. For instance, consider the MIMO GFDM system from (4). The multi-domain beamformer will be obtained by solving for optimal input covariance \(\mathcal{C}_{\mathcal{D}}\in\mathbb{C}^{S\times K\times M\times S\times K\times M}\) which achieves the capacity of the MIMO GFDM equivalent channel \(\mathcal{H}_{E}\in\mathbb{C}^{S\times K\times M\times S\times K\times M}\). Thus, the beamforming tensor operates across all the spatial, temporal, and frequency domains and accounts for not just the physical channel but also the transmit and receive filter parameters. The choice of the optimal covariance depends on the power constraint at the input. Under a sum-power constraint, the solution is given by (24). However, in a practical system we may have constraints on each transmit antenna [48]. Such per antenna power constraints can be naturally accounted for in the tensor framework. In a practical MIMO system, each antenna may be connected to a separate power amplifier with finite dynamic range on the individual RF chain, creating the need for per antenna power constraints. Another scenario where such constraints are common is distributed MIMO which has transmit antennas located at different physical locations that do not share the same power source [48]. Hence, in a MIMO system, per antenna power constraints rather than a sum-power constraint is an important consideration which is of practical interest [48; 49]. Consider a MIMO GFDM system represented by (4) with 2 transmit and receive antennas. For simplicity of explanation, we assume \(S=N_{T}=N_{R}=2\). Rather than a sum-power constraint \(P\) on the entire input symbol, we may have different power budgets \(P_{1}\) and \(P_{2}\) for the transmit antennas separately. In a MIMO system model where the input is a vector corresponding to a single domain (antenna), this constraint becomes a per element power constraint on the input vector.