General questions on the CMA equalizer 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?



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:



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)





Thanks in advance for any insights you can give into this equalizer!
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.
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.
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!