Compute hybrid beamforming weights using orthogonal matching pursuit

`[`

returns the hybrid precoding weights `wpbb`

,`wprf`

] = omphybweights(`chanmat`

,`ns`

,`ntrf`

,`at`

)`wpbb`

and `wprf`

for the channel matrix `chanmat`

. The weights are computed using an
orthogonal matching pursuit algorithm. `ns`

is the number of independent
data streams propagated through the channel. `ntrf`

specifies the number
of RF chains in the transmit array. `at`

is a collection of possible
analog weights for `wprf`

. Together, the precoding weights approximate
the optimal full digital precoding weights of `chanmat`

.

[1] Ayach, Omar El et al. "Spatially
Sparse Precoding in Millimeter Wave MIMO Systems" *IEEE Trans on Wireless
Communications*. Vol. 13, No. 3, March 2014.

`diagbfweights`

| `ompdecomp`

| `phased.ScatteringMIMOChannel`

| `scatteringchanmtx`