Equalization knowing the Channel State Information I am trying to simulate a simple communication system using channel estimation. I was able to estimate the channel response using the Least Squares channel estimator, and it is working properly (evaluated by the mean square error between the channel and its estimation). But once I have this knowledge, I need to equalize the signal at the receiver. I have tried to apply the zero-forcing method, but it's not providing a good performance.

My questions are: 


What is the proper way of doing this equalization?
In a system where two transmitters send information at the same time and in the same frequency, I can estimate both channels at the receiver, but how can I equalize the signal once I know both channels?
Is there is any reference that anyone could indicate to read more about this topic and help answer these questions? It wold be enough for now.


Thanks in advance.
To 1.
From the channel impulse response you can build the channel matrix and then compute the ZF equalizer coefficients using the pseudo inverse of the channel matrix.

Once you have the ZF coefficients you can convolve them with the received signal. 

To 2.
I guess you are referring here to a PNC system. The best solution is to use OFDM to solve this problem. In this case, you can use Maximum Likelihood detection per subcarrier by checking which combination minimises the Euclidean distance.

To 3.
You can find the equations for ZF equalizer in the book by J. Kurzweil, An Introduction to Digital Communications, 1st Edition.

BTW, the performance of the time-domain ZF equalizer is not very good in frequency selective channels. You are better off with the decision feedback
equalizer.