Niedawno wdrożyłem korektor CMA w MATLAB, który wykorzystuje metodę najbardziej stromego zejścia w celu uzyskania minimalnego kosztu. (Im na granicy implementacji korektora).
Moje pytania są następujące:
1) Wydaje mi się, że algorytm CMA jest dobry tylko dla kanałów, w których są one względnie „płaskie”. Innymi słowy, czy nie oczekuje się, że będzie działał dla kanałów z głębokimi zanikaniami / zerami? Czy to ogólnie prawda?
2) Używam sygnału BPSK i z pierwszego rysunku widać, że po efektach wielościeżkowych mam rozmazanie na złożonej płaszczyźnie mojego sygnału BPSK - nie ma dwóch ładnych klastrów, jak można by się spodziewać. Zamiast tego widzimy 4 czerwone klastry. Moje pytanie brzmi: dlaczego po korektorze CMA nadal mam 4 klastry? (Pokolorowałem je na niebiesko). Przypuszczam, że ma to jakiś sens, ponieważ CMA po prostu zmusza koperty do wartości 1 i nie dba o to, o jakim klastrze mówisz. Słyszałem jednak, że CMA może mieć problemy z lokalnymi minimami. Czy to byłby tego przykład? (tj. uzyskanie 4 klastrów zamiast 2, ponieważ jest to BPSK). Jeśli nie, co można z tym zrobić?
3) Prawie tak, jak gdyby odpowiadając na pytanie 2, poszedłem do przodu i zmieniłem stały moduł, przed którym staram się zminimalizować błąd. Zamiast wybierać 1 (jak ma być w przypadku BPSK), wybrałem moduł 0,25 jako moduł. Oto konstelacja, którą otrzymałem:
Problem polega na tym, że nawet jeśli jest to „rozwiązanie”, skąd wiadomo, że apriori ma wybrać moduł? Powodem, dla którego uważam to za problem, jest to, że jeśli mam 4 klastry zamiast 2, to komplikacja estymacji / korekcji przesunięcia fazowego / częstotliwości po symbolu jest bardziej skomplikowana, szczególnie gdy oczekuje się 2 klastrów z powodu sygnalizacji BPSK.
(Dla kompletności załączyłem te same wykresy, ale kiedy dodałem przesunięcia częstotliwości)
Z góry dziękuję za wszelkie spostrzeżenia, które możesz przekazać w tym korektorze!