Precoding has no universal formula for calculating matrix. The matrix is different for different applications. Single user mimo, multiuser mimo or point to point, spatial multiplexing and so on.
I explain the concept of pre-coding in different scenarios. You consider this as technique done at transmitter to avoid/ease processing at the receiver. Mostly done at the BS so that complexity of MS should be minimized. Also in multiuser MIMO, since users are not coordinated, the interference cancellation can be done easily at BS: pre-coder (ie processing on x) in downlink and equalization (ie processing on y) in uplink.
1. SISO
In the absence of pre-coder, the received signal at receiver is given as Y= HX+N. Using Y and known H, X can decoded easily. This processing at the receiver can be eased if we pre-code symbol X. Before sending X, we multiply it with a weight W, hence. Y= HWX+N. Think what should be a good pre-coder W. A value conjugate of H ie. W= H* is a better, which makes the received signal Y= |H|^2X+N. You see just using magnitude of channel, recovers the X. But base station should know H perfectly i.e CSI at Tx feedback from Rx. You see that there is some trade off.
2. MISO (Diversity)
In the absence of precoder, received signal at a single antenna
Y= (H11+H12+H13...H1M)X+N, where X is symbol transmitted from each antenna . with H1j for j= 1 to M as channel coefficient.
If you see the equation carefully, since the channel coefficients are random, it might happen that total sum can be zero !!! How you will avoid it?
Precode at Tx by multiplying each symbol transmitted from each
antenna with a weight W
Hence, Y= H11W1X+H12W2X+...H1MWmX+N. Again what would be each weights? Simply each should conjugate of channel coefficient making
Y= (|H11|^2+|H12|^2+...+|H1M|^2)X+N. Hence, X can be easily estimated using gain of channel achieving full transmit diversity.
3. MIMO (Multiuser as well point to point)
A MIMO matrix-vector equation:
y=Hx+n, where H is matrix as opposed to scalar value in above two situations, y, x, n are vectors.
To avoid interference at the receiver, we can pre code i.e. avoid effect of channel at the transmit itself. Don't you see a natural precoder of x. Just multiply with H^-1, hence received signal y= HH^-1x+n making y= x+n free of channel distortion. One precaution is that you have to make power of H^-1x same as x. This is known as zero forcing precoder. Similarly linear MMSE, non-linear THP can be derived. Simply put, you derive the pre-coder by optimizing an objective function. In ZF, it is only interference, however MMSE optimizes the mean square error. Just see the derivation of each pre-coder available easily in the literature. It is very few in number.
In this response, I tried to motivate the use of pre-coder. Thanks for reading the whole.
Thanks for detailed answer. I have understood the idea of Precoding Matrix. According to you W is simply complex congjuage of H means according to matrices maths if we mulitply a matrix with its conjugate it will be simple I matrix which confirms the protection of Original Information. so that's a good reason to design the Precoding matrix as W=H* but what we need is just BS must know the full Channel state information to implement it . I would really appreciate if you can refer me some useful link or stuff which deals this in deep details.
One thing , I want to know you have also mentioned that power of information must be same as power of W=H^-1 . What is the basic reason for this statement?
@Naveed, There are hundreds of papers available online through IEEEXplore, and various top Journals/Conferences. I assume you can search them and learn from them. MIMO Wireless Communications by Andrea Goldsmith and Paulraj et.al is a good reference book to start with.
If you carefully observe, I said power of H^-1x should be same as x. This is very important constraint to design a pre-coder. The explanation is very intuitive.Pre-coder H^-1 is a linear transformation used to limit the interference. It should not increase the power of symbols x. You should know that power is limited and any transmitter is allowed to use a maximum limit as per Standards. Suppose, that the power of x is limited at Pt. After pre-coding too, the power transmitted i.e. power of H^-1x should also be limited to Pt. In simple terms, your precoder is used to improve the performance without increasing the transmit power.
One method : From all the possibilities chooswe the one which maximizes the capacity. Note that the capacity depends on the SINRat the output of the detector. Each SINR is a function of precoding index.
thanks to everyone who have replied . SM zaffaruddin ' method is more convenient to me. I have already gone through the way suggested by Sairamesh Nammi.