You are on page 1of 1

[Fbb,mFrf] = helperJSDMTransmitWeights(hDp,prm);

hDp = cell(prm.numUsers,1);
prm ( channel parameters)

helperJSDMTransmitWeights function:

Step 1: Partition users into groups that have similar transmit


correlation matrices and induce as small inter-group interference as
possible by the user location geometry.

Step 2: MU-MIMO precoding is obtained in two stages:

Step 2.1: A prebeamforming stage is used to reduce the effective


channel dimension (pre-beamforming stage makes use of only the slowly-
varying covariance information, which can be tracked with low protocol
overhead)

Step 2.2: Multiuser precoding scheme (linear or nonlinear) operates on


the lower dimensional transformed channel (second stage requires
feedback of the instantaneous (transformed) channel realization)

K UTs are selected to form G groups based on the similarity of their


channel correlation matrices.

K' = K/G, M ' = M/G and s' = s/G as the number of UTs, BS antennas and
data streams per group, where K', M ' and s' are integers.

UTs gk in group g have the same covariance matrix Rg = Ug.Λg.U†g, with


rank rg and rg∗ ≤ rg dominant eigenvalues.
1
The channel vector of user gk is given by h gk = Ug. Λ 2 ω .
g gk

H g = [h g 1, · · · ,h gK ' ] and H = [ H 1, · · · , H G] denote the group channel


and the overall system channel matrices

JSDM is based on two-stage precoding given by V = BP , where B ∈ C M × b


is a pre-beamforming matrix that depends only on the channels second-
order statistics (V is the M × s precoding matrix with s the rank of
the input covariance) and P ∈ C bxs is a beamforming matrix that
depends on the instantaneous realization of the system transformed
channel H.

You might also like