Friday, July 11, 2014

802.11 n and ac Transmit Beamforming: Crash Course

Theory


Beamforming: Form the beam in the direction of destination. Simple, isn't it? Well for starters that's the aim, but we have lot of obstacles in the path, read the mathematics part and you will "its not that simple after all." :-).

Traditional antenna, radiates omnidirectionally meaning everywhere, but for some use cases we need to focus on specific areas/directions, like when there are multiple destinations we want to make sure the one with whom we are speaking gets the best SNR.

For 11n, this was simpley a SNR improvement technique, but for 11ac with the introduction of MU-MIMO we need to communicate with multiple users simultaneously without any cross-interference. So the need for beamforming is more in 11ac.

Generally we use this in cases where the No of antennae are more than the no of spatial streams like 4X2, 8X4 etc.

Beamforming gains are expected to be approximately 3 dB in the transmitted direction. In practice, this gain will typically be one step up in data rates (increasing one MCS number) for a mid-range transmission.

Beamforming is achieved by combining elements in a phased array in such a way that signals at particular angles experience constructive interference while others experience destructive interference


Basic Mathematics


Lets take a look at how do we arrive at those angles, and lets try to keep the mathematics simple and not delve in the gory details.

MIMO communication can be modeled as below

Yk = HkXk + n

X ==> Vector of Tx signal using Ntx antennae [ x1 x2 …xNtx]
Y ==> Vector of Rx signal using Nrx antennae [y1 y2 …yNrx]
H ==> Channel Matrxix Ntx X Nrx.
k  ==> Subarrier
n  ==> Constant Noise in the Channel

Now in order to make sure transmitted signal is steered towards the receiver, we have to tune the transmit signal in such way that we control the phase and amplitude so that the resulting signal will be received by that particular receiver with good SNR.

In mathematical form, we need to calculate the matrix Qk referred as steering matrix, such that Yk is optimized.

Yk = HkQkXk + n

Qk has values known as weights to control phase and amplitude for all Transmit Antennae for that particular subcarrier k.

X is the beamformer
Y is the beamformee

Still with me? Lets do the same for MU-MIMO,

Yku = HkuQkuXku + n

u==> user, specific beamformee.

Qku has values known as weights to control phase and amplitude for all Transmit Antennae for that particular subcarrier k and for that particular beamformee u.


Types 

Explicit Feedback


Qk is formed based on the Feedback from the receiver. So Y will send some training data known as sounding data, based on which X estimates the channel characteristics and derives Qk.

This sounding known as NDP (Null Data packet) sounding uses a special packet with Length 0 as the name indicates.

Here channel need not be reciprocal, as feedback is given based on NDP (from beamformer-beamformee) which is same direction as data packet.

Implicit Feedback


Beamformer X chooses Qk, and adjusts it based on the feedback of beamformee Y.There is not extra data being sent by beamformer, it only prepares the feedback based on the normal data signal from beamformee.

But as the feedback is based on the channel characteristics from Y to X, based on which X decides Qk for X to Y, so this only works when the channel is reciprocal.

Uncompressed


The feedback sent by beamformee comprises of entire beamforming feedback matrices, known commonly as Vk based on which Qk is derived.

Compressed

The feedback sent by beamformee comprises of angles instead of the full matrix which will be decompressed in to full matrix Vk at beamformer.

To understand how we derive Qk from Vk we need to understand SVD (Singular Value Decomposition) which is complex matrix factorization technique outside the scope of this article.

For 11ac only compressed beamforming technique is allowed.

That's the most we can go without getting our hands dirty with some advanced mathematics (SVD, matrices) etc. Hope this throws some light on inner details of beamforming.

References:

1) IEEE specs
2) Wikipedia.

Revision Info:


1) Fixed the definitions of explicit and implicit beamforming: Thanks to Ashok Bandi.