Quindi di recente ho implementato un equalizzatore CMA in MATLAB che utilizza il metodo della discesa più ripida per convergere al costo minimo. (Im su un binge di implementazione dell'equalizzatore).
Le mie domande sono le seguenti:
1) Mi sembra che l'algoritmo CMA sia valido solo per i canali in cui sono relativamente "piatti". In altre parole, non dovrebbe funzionare con canali con dissolvenze / nulli profondi? È generalmente vero?
2) Sto usando un segnale BPSK, e possiamo vedere dalla prima figura qui, che dopo gli effetti multipath ho una sbavatura sul piano complesso del mio segnale BPSK - non ci sono due bei cluster come ci si aspetterebbe. Invece, vediamo 4 cluster rossi. La mia domanda è: come mai dopo l'equalizzatore CMA ho ancora 4 cluster? (Ho colorato quelli blu). Suppongo che abbia un senso perché il CMA forza semplicemente le buste a essere 1, e non si preoccupa di quale gruppo stai parlando. Ho sentito che tuttavia la CMA può soffrire di problemi minimi locali. Ne sarebbe un esempio? (vale a dire, ottenere 4 cluster anziché 2 poiché questo è BPSK). In caso contrario, cosa si può fare al riguardo?
3) Quasi come se rispondessi alla domanda 2, sono andato avanti e ho cambiato il modulo costante che cerco di minimizzare l'errore. Invece di scegliere 1 (come dovrebbe essere il caso di BPSK), ho scelto 0.25 come modulo. Questa è la costellazione che ho ottenuto:
Il problema è che anche se si tratta di una "soluzione", come si fa a sapere ad apriori cosa scegliere il modulo? Il motivo per cui lo considero un problema è che se ho 4 cluster anziché 2, ciò rende più complicata la stima / correzione dell'offset di fase / frequenza post-simbolo, specialmente quando ci si aspetta 2 cluster a causa della segnalazione BPSK.
(Per completezza ho allegato gli stessi grafici ma quando ho aggiunto gli offset di frequenza)
Grazie in anticipo per eventuali approfondimenti che puoi dare in questo equalizzatore!