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:

  1. What is the proper way of doing this equalization?
  2. 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?
  3. 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.


1 Answer 1


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.

  • $\begingroup$ Hi, thanks. I do appreciate your help. About the question number 1. I did exactly this, but I am getting really strange results. I am sending 1e5 bits each iteration, in a total of 20 iterations. In each iteration, the channel response changes (randomly). I am using BPSK modulation, and this is a traditional system (point-to-point). See the image. If I change the channel to be constant, h = [0.2 0.9 0.3], I get a really better result: See this image. $\endgroup$
    – JohnMarvin
    Commented Aug 28, 2015 at 0:10
  • $\begingroup$ It seems to me that varying the channel, even tough it is constant for 1e5 bits, Zero force can't track it. About the other topics, yes, it's really a PNC system. I have just started working on this topic and got stuck on how to equalize the signal once I know both channels (provided that I working with 2 nodes and 1 relay). I am going to look for this book. I was reading the Proakis, Communication System Engineering and the Proakis, Comtemporary Communications Systems Using Matlab, but their approach for Zero-Forcing and the MSE don't use the knowledge of the channel. Thanks, again. $\endgroup$
    – JohnMarvin
    Commented Aug 28, 2015 at 0:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.