MIMO channel block diagonalized weights
[
returns precoding weights, wp
,wc
]
= blkdiagbfweights(chanmat
,ns
)wp
, and combining weights,
wc
, derived from the channel response matrices contained in
a MATLAB® cell array chanmat
.
You can specify multiple user channels by putting each channel in a
chanmat
cell.
chanmat
{k}
represents the
kthchannel from the
transmitter to the user.
For a single frequency, specify the channel cell as a matrix.
For multiply frequencies, specify the channel cell as a three-dimensional array where the rows represent different subcarriers.
Specify multiple subchannels per channel using the
ns
argument. Subchannels represent different
data streams. ns
specifies the number of
subchannels for each user channel. Multiply the data streams by the
precoding weights, wp
.
The precoding and combining weights diagonalize the channel into
independent subchannels so that for the
kthuser, the matrix
wp*chanmat{k}*wc{k}
is diagonal for each
subcarrier.
[1] Heath, Robert W., et al. “An Overview of Signal Processing Techniques for Millimeter Wave MIMO Systems.” IEEE Journal of Selected Topics in Signal Processing, vol. 10, no. 3, Apr. 2016, pp. 436–53. DOI.org (Crossref), doi:10.1109/JSTSP.2016.2523924. Bibliography
[2] Tse, D. and P. Viswanath, Fundamentals of Wireless Communications, Cambridge: Cambridge University Press, 2005.
[3] Paulraj, A. Introduction to Space-Time Wireless Communications, Cambridge: Cambridge University Press, 2003.
[4] Spencer, Q.H., et al. "Zero-Forcing Methods for Downlink Spatial Multiplexing in Multiuser MIMO Channels." IEEE Transactions on Signal Processing, Vol. 52, No. 2, February 2004, pp. 461-471. DOI.org (Crossref), doi:10.1109/TSP.2003.821107.