Main Content

omphybweights

Compute hybrid beamforming weights using orthogonal matching pursuit

Description

[wpbb,wprf] = omphybweights(chanmat,ns,ntrf,at)returns the hybrid precoding weightswpbbandwprffor the channel matrixchanmat. The weights are computed using an orthogonal matching pursuit algorithm.nsis the number of independent data streams propagated through the channel.ntrfspecifies the number of RF chains in the transmit array.atis a collection of possible analog weights forwprf. Together, the precoding weights approximate the optimal full digital precoding weights ofchanmat.

example

[wpbb,wprf,wcbb,wcrf] = omphybweights(chanmat,ns,ntrf,at,nrrf,ar)also returns the hybrid combining weightswcbbandwcrf. The inputnrrfspecifies the number of RF chains in the receive array.aris a collection of possible analog weights forwcrf.

[___] = omphybweights(chanmat,ns,ntrf,at,nrrf,ar,npow)also specifies the noise powernpowin each receive antenna element. All subcarriers are assumed to have the same noise power.

Examples

collapse all

Assume an 8-by-4 MIMO system with four RF chains in a transmit array and two RF chains in a receive array. Show that the hybrid weights can support transmitting two data streams simultaneously.

Specify the positions of the transmitters and receivers in uniform line arrays.

txpos = (0:7)*0.5; rxpos = (0:3)*0.5;

Construct the channel matrix.

chanmat = scatteringchanmtx(txpos,rxpos,10);

Specify the number of transmit and receive RF chains.

ntrf = 4; nrrf = 2;

Specify two data streams.

ns = 2;

Set up the steering vector dictionaries for the transmitting and receiving arrays.

txdict = steervec(txpos,-90:90); rxdict = steervec(rxpos,-90:90);

Compute the precoding and combining weights.

[Fbb,Frf,Wbb,Wrf] = omphybweights(chanmat,ns,ntrf,txdict,nrrf,rxdict);

Calculate the effective channel matrix from the weights. A diagonal effective channel matrix indicates the capability of simultaneous transmission of multiple data streams.

chan_eff = Fbb*Frf*chanmat*Wrf*Wbb
chan_eff =2×2 complex1.0000 - 0.0000i 0.0000 - 0.0000i 0.0000 - 0.0000i 1.0000 - 0.0000i

Input Arguments

collapse all

信道响应矩阵,specified as anNt-by-Nrmatrix or a complex-valuedL-by-Nt-by-Nrarray where

  • Ntis the number of elements in the transmitting array.

  • Nris the number of elements in the receiving array.

  • Lis the number of subcarriers.

Data Types:double
Complex Number Support:Yes

Number of independent data streams propagated through the channel, specified as a positive integer.

Data Types:double

Number of RF chains in the transmit array, specified as a positive integer.

Data Types:double

Collection of possible analog weights forwprf, specified as a complex-valued matrix or array.

  • Whenchanmatis anNt-by-Nrmatrix,atis a complex-valuedNt-by-Pmatrix. Each column represents a vector of analog weights.

  • Whenchanmatis anL-by-Nt-by-Nrarray,atis a complex-valuedNt-by-P-by-Larray. Each page is anNt-by-Pmatrix. Each column represents a vector of analog weights.

  • Ntis the number of elements in the transmitting array.

  • Nris the number of elements in the receiving array.

  • Lis the number of subcarriers.

  • Pis the number of vectors of analog weights in the collection.

Data Types:double
Complex Number Support:Yes

Number of RF chains in the receive array, specified as a positive integer.

Data Types:double

Collection of possible analog weights forwprf, specified as a complex-valued matrix or array.

  • Whenchanmatis anNt-by-Nrmatrix,aris a complex-valuedNr-by-Qmatrix. Each column represents a vector of analog weights.

  • Whenchanmatis anL-by-Nt-by-Nrarray,aris a complex-valuedNr-by-Q-by-Larray. Each page is anNr-by-Qmatrix. Each column represents a vector of analog weights.

  • Ntis the number of elements in the transmitting array.

  • Nris the number of elements in the receiving array.

  • Lis the number of subcarriers.

  • Qis the number of vectors of analog weights in the collection.

Data Types:double
Complex Number Support:Yes

Noise power in each receive antenna element, specified as a nonnegative scalar. All subcarriers have the same noise power.

Data Types:double

Output Arguments

collapse all

Hybrid baseband precoding weights, returned as a complex-valued matrix or array.

  • Whenchanmatis anNt-by-Nrmatrix,wpbbis a complex-valuedNs-by-Ntrfmatrix.

  • Whenchanmatis anL-by-Nt-by-Nrarray,wpbbis a complex-valuedL-by-Ns-by-Ntrfarray.

  • Nsis the number of independent data streams specified by thensargument.

  • Ntrfis the number of RF chains in the transmit array specified by thentrfargument.

  • Lis the number of subcarriers.

Hybrid RF precoding weights, returned as a complex-valued matrix or array.

  • Whenchanmatis anNt-by-Nrmatrix,wprfis a complex-valuedNtrf-by-Ntmatrix.

  • Whenchanmatis anL-by-Nt-by-Nrarray,wprfis a complex-valuedL-by-Ntrf-by-Ntarray.

  • Ntis the number of elements in the transmitting array.

  • Ntrfis the number of RF chains in the transmit array specified by thentrfargument.

  • Lis the number of subcarriers.

Hybrid baseband combining weights, returned as a complex-valued matrix or array.

  • Whenchanmatis anNt-by-Nrmatrix,wcbbis a complex-valuedNrrf-by-Nsmatrix.

  • Whenchanmatis anL-by-Nt-by-Nrarray,wcbbis a complex-valuedL-by-Nrrf-by-Nsarray.

  • Nsis the number of independent data streams specified by thensargument.

  • Nrrfis the number of RF chains in the receive array specified by thenrrfargument.

  • Lis the number of subcarriers.

Hybrid RF combining weights, returned as a complex-valued matrix or array.

  • Whenchanmatis anNt-by-Nrmatrix,wcrfis a complex-valuedNr-by-Nrrfmatrix.

  • Whenchanmatis anL-by-Nt-by-Nrarray,wcrfis a complex-valuedL-by-Nr-by-Nrrfarray.

  • Ntis the number of elements in the transmitting array.

  • Nrrfis the number of RF chains in the receive array specified by thenrrfargument.

  • Lis the number of subcarriers.

More About

collapse all

Precoding Weights

The matrix product of the precoding weightswpbbxwprfapproximates the optimal full digital precoding weights of the channel matrixchanmat.

Combining Weights

The combining weightswcbbandwcrf, together with the precoding weights, diagonalize the channel into independent subchannels. The matrix productwpbbxwprfxchanmatxwcrfxwcbbis approximately diagonal.

References

[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.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

版本历史

Introduced in R2019b