So I recently implemented a CMA equalizer in MATLAB that uses method of steepest descent to converge to the minimal cost. (Im on an equalizer implementation binge).

My questions are the following:

1) It seems to me that the CMA algorithm is only good for channels where they are relatively 'flat'. In other words, it is not expected to work for channels with deep fades/nulls? Is this generally true?

2) I am using a BPSK signal, and we can see from the first figure here, that after the multipath effects I have a smearing on the complex plane of my BPSK signal - there arent two nice clusters as one would expect. Instead, we see 4 red clusters. My question is how come after the CMA equalizer I still have 4 clusters? (I colored those blue). I suppose it makes some sense because the CMA simply forces the envelopes to be 1, and doesnt 'care' which cluster you are talking about. I have heard that CMA can suffer from local minima problems however. Would this be an example of it? (ie, getting 4 clusters instead of 2 since this is BPSK). If not, what can be done about it?

enter image description here

3) Almost as if answering question 2, I went ahead and changed the constant modulus that I seek to minimize the error against. Instead of choosing 1 (as is supposed to be the case for BPSK), I chose 0.25 to be the modulus. This is the constellation I got:

enter image description here

The problem is that even if this is a 'solution', how does one know apriori what to chose the modulus to be? The reason I consider it a problem is that if I have 4 clusters instead of 2 it makes post-symbol phase/frequency offset estimation/correction more complicated especially when one expects 2 clusters due to BPSK signalling.

(For completeness I have attached the same plots but when I added frequency offsets)

enter image description here

enter image description here

Thanks in advance for any insights you can give into this equalizer!

  • $\begingroup$ Nobody, really? :-) $\endgroup$
    – Spacey
    Nov 28, 2011 at 16:39
  • 2
    $\begingroup$ This is a very domain-specific question, so until someone with time and experience with the CMA comes around and digs into the problem, you probably won't get a good answer. I've implemented the algorithm in the past and recall seeing similar behavior, but don't remember in what scenarios. Maybe post your MATLAB code so we can look at it. $\endgroup$
    – Jason R
    Dec 1, 2011 at 16:26

1 Answer 1

  1. In general equalizing a channel with deep fades is a problem for all equalizers. CMA equalizer is no exception. Absence of a training signal makes things worse.

  2. This is obviously an example of the CMA stuck in a local minimum. The inital condition of the CMA equalizer was probably in the vicinity of the local minimum. The equalizer filter to which the CMA converged, convolved with the channel does not yield to an impulse-like overall response.

  3. Remember that the cost functions of CMA equalizers are nonlinear. Modifying the modulus do not have a "linear" effect on the cost function. What happened probably was that your initial condition (which is identical to the one in the previous case) of the "modified modulus" CMA equalizer had now fallen into the vicinity of the global minimum. This is the "beauty" of nonlinearity!


Your Answer

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

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