Transmit beamforming

by Krishna Sankar on April 13, 2009

In this post lets discuss a closed-loop transmit diversity scheme, where the transmitter has the knowledge of the channel. As there is a feedback path required from the receiver, to communicate the channel seen by the receiver to the transmitter, the scheme is called closed-loop transmit diversity scheme. Recall that the transmit diversity using Space Time Coding (Alamouti STBC) does not require the knowledge of the channel. In this post, we will restrict our discussion to a 2 transmit, 1 receive case. We will assume that the channel is a flat fading Rayleigh multipath channel and the modulation is BPSK.

Channel Model

1. We have 1 receive antennas and two transmit antenna.

2. The channel is flat fading – In simple terms, it means that the multipath channel has only one tap. So, the convolution operation reduces to a simple multiplication. For a more rigorous discussion on flat fading and frequency selective fading, may I urge you to review Chapter 15.3 Signal Time-Spreading from [DIGITAL COMMUNICATIONS: SKLAR]

3. The channel experienced by each receive antenna is randomly varying in time. For the receive antenna, each transmitted symbol gets multiplied by a randomly varying complex number . As the channel under consideration is a Rayleigh channel, the real and imaginary parts of are Gaussian distributed having mean and variance .

4. The channel experience by each transmit antenna to receive antenna is independent from the channel experienced by other transmit antennas.

5. On each receive antenna, the noise has the Gaussian probability density function with

with and .

6. At each transmit antenna, the channel is known.

Figure: 2 transmit 1 receive beam steering

Transmit Beamforming

On the receive antenna, the received signal is,

where,

is the received symbol, is the channel on the transmit antenna, is the transmitted symbol and is the noise on the receive antenna.

When transmit beamforming is applied, we multiply the symbol from each transmit antenna with a complex number corresponding to the inverse of the phase of the channel so as to ensure that the signals add constructively at the receiver. In this scenario, the received signal is,

,

where,

and

.

In this case, the signal at the receiver is,

.

For equalization, we need to divide the received symbol with the new effective channel, i.e,

.

BER Simulation Model

The Matlab/Octave script performs the following

(a) Generate random binary sequence of +1′s and -1′s.

(b) Multiply the symbols with the beam steering matrics – corresponding to the phase of the channel

(c) Perform equalization at the receiver

(d) Perform hard decision decoding and count the bit errors

(e) Repeat for multiple values of and plot the simulation and theoretical results.

Observations

1. Sending the same information on multiple transmit antenna does not provide diversity gain. Intuituvely, this is due to the fact that the effective channel in a 2 transmit antenna case is again a Rayleigh channel; hence the BER performance is identical to 1 transmit 1 receive Rayleigh channel case.

2. If the transmit symbols are multiplied by a complex phase to ensure that the phases align at the receiver, there is diversity gain. However, the BER performance seems to be slighly poorer than the 1 transmit 2 receive MRC case. I guess, the noise is scaled by in the case of transmit beamforming, whereas the noise scaling is different in the case of Maximal Ratio Combining. I need to study bit more for a precise answer.

thanks a lot mate
i want your help. I want to select a dissertation” Implementing adaptive array processing in MATLAB” means simulation in matlab. it easy or difficult do u have any model in matlab about it
thanks

I’m wondering in practice how to cancel the phasor at the transmitter simultaneously even if we know the channel phase terms to all the receiver antennas. Obviously at any time instant, you’ve got only one data at the transmitter but you want to cancel each phasor out at each receiving link.

Hello,
I just want to ask why the informed 2×1 coincides with the 1×2 system regarding the BER? As we know we have ‘Array Gain’ in the latter scenario and we don’t have it in the former one.
Does this have to do with Eb/No instead of SNR?
Thanks
Osama

Hi krishna,
this is raja, i am doing research in the area of transmit beamforming by using SVD and i have use the rayleigh channel and MRC at the receiver…here mainly i concentrate on using different modulatin BPSK and 16-QAM and got the graph for BER vs SNR……i dont know how to derive the equations for BER calculation…..can u help me please…….i am waiting for ur reply plz…….

@victor: My replies
1) Yes
2) The multiplication ensures that there will be no phase reversals. However, you might want to use equalizers to take care of amplitude variations especially when QAM modulation is employed.

i think the outage probability and BER will be equivalent of transmit beamforming and receive beamforming, when path loss and number of antennas are same at tranmit antennas in tranmit beamforing and receive antennas at receive beamforming. so final equations should be the same theoriticaly like MRC!

@lee waen: By receive beamforming, I think you meant Maximal Ratio Combining, correct?
Mathematically, there is a subtle difference between the transmit beamforming and receive MRC, though the end result is close. (as seen in the figure, BER with beamforming is very near to the performance obtained by MRC case).
Can you please point me to a reference for the statements which you have made.

yes, receving beamforming meant MRC.
Actually i think MRC and transmit beamforming are equal in mathematically with the reference of this book, which is iam going to mail you on ur id, this have a proof too.

@lee waen: Thanks for the email.
May I point out a subtle difference between the beamforming mentioned in this paper,
compared to the discussion in this post.
In this paper, the pre-coding matrix at the transmitter is the conjugate of the channel i.e w = h^H.
In this post, I have assumed that the pre-coding matrix is the phase of the conjugate of the channel. i.e w = exp(conj(h))

Quite likely this is the reason for the difference in performance. Hope you agree. Please share your thoughts.

Hi, I think somehow only half the noise power gets added to the BPSK symbols in your code. If you do QPSK instead of BPSK the code would now hold good , since for both QPSK and BPSK the BER is the same. but in this code for BPSK , i guess the adding of noise is incorrect. what are your thoughts on this ?

Hi thanks for the reply. I am suspecting the code for this reason: say we dont scale by sqrt(Nt) for each transmit chain, then the system is equivalent to the MRC case and the BER should be same as in MRC. I find that without power scaling in this code, the 2×1 MRT performs better than 1×2 …which cant be possible please check it.

@karanth: The scaling by 1/sqrt(nTx) is to make the total power radiated from all the transmit antennas to one. If we do not do that, then its not a fair comparison with MRC case. Agree?
Additional comments:
“say we dont scale by sqrt(Nt) for each transmit chain, then the system is equivalent to the MRC case and the BER should be same as in MRC.”
[krishna] Incorrect. With the MRC case, the SNR on each receive chain is |h_i|^2Eb/N0. With beamforming case, the SNR is (|h1|+|h2|)^2*1/2*Eb/N0. Both are not mathematically equivalent.
Agree?

@susanti: Given that we know the channel at the transmitter, the weighting factor just computes the conjugate of the phase of the channel. For eg, if the channel is [h1, h2] the weighting factor used at the transmitter is [conj(angle(h1) angle(h2)].

The script present in the code is the latest one. There is only minor modifications for clarity. Good luck.

@Alvina: As you may have seen from the discussion with Mr. Raja, there is no modification required in the script. The plots and the script are correct. However, as Raja has suggested, for clarity, I have defined a variable called hEff in the script.

@Paul: As you may have seen from the discussion with Mr. Raja, there is no modification required in the script. The plots and the script are correct. However, as Raja has suggested, for clarity, I have defined a variable called hEff in the script.

@Raja: Can you please explain the correct way of applying beamforming. To benefit other readers of this post, may I request you to reply to this comment itself. In anycase, you wish to contact me over email, please find my details in http://www.dsplog.com/contact-us/

@Raja: Thanks for mailing the code. I looked at the code and ran the simulations. My observation is that, you are seeing a better performance for 2×1 beamforming case – because the scaling of transmit power by 1/sqrt(nTx) is not performed for the beamforming case.

Further, scaling by 1/sqrt(nTx) is required, as we are sending the same information multiplied by the phase on both the antennas.

I mailed you the script with minor updations for your review. Please share your feedback.

You are right regarding the scaling and the result. I would also like to point out that heff is a 1×1 matrix not a 1×2 matrix.It does not change the result but i wanted to point it to you for correctness.

I guess beamforming with 1 rx-antenna provides the same performance with MRC-rx diversity if not poorer. A good comparison would be to compare between beamforming and alamouti(both with or without rx diversity).

First off let me thank you for posting relevant topics on signal processing for wireless comm, I visit this website quite often and I find the info useful.

I believe MRC outperforms Tx beamforming because there is a 3 dB penalty for Tx beamforming. For 2×1 transmit beamforming the signal energy is halved at the transmitter in order to constrain the output Tx power to be the same as in the MRC case for comparison.

@Raja: Thanks for confirming the result. For notational clarity, I just modified the script to define the variable hEff. However, as we agree, the results still remain the same.

Yes, 2tx-1rx beamforming seems to be almost comparable (slightly poorer) than 1tx-2rx MRC.

As we had seen from the results with 2transmit-1receive Alamouti STBC, http://www.dsplog.com/2008/10/16/alamouti-stbc/, the Alamouti STBC performance is around 3dB poorer than the 1transmit-2receive MRC. So the 2transmit-1receive beamforming is better than the 2transmit-1receive alamouti by around 2.7dB. Agree?