Jakie są opcje odzyskiwania fazy sygnału BPSK w oprogramowaniu? Jedyne zasoby, które mogę znaleźć w Internecie, zawierają schematy obwodów - wydaje się, że nikt nie chce wyjaśnić tego osobom niezaznajomionym z obwodami analogowymi.
Chciałbym wyjaśnić, jak teoretycznie działa odzyskiwanie nośnika, a także pokochałbym przykłady pseudokodu lub kodu.
Odpowiedzi:
Aby zdemodulować kluczowany sygnał przesunięcia fazowego, którego BPSK jest najprostszy, musisz odzyskać częstotliwość nośną, fazę i synchronizację symboli.
Sygnały impulsowe Niektóre sygnały są impulsowe i zapewniają znaną sekwencję danych, zwaną preambułą lub mid-amble (w zależności od tego, czy pojawia się na początku czy w środku serii). Demodulatory mogą użyć dopasowanego filtra, który „wyszukuje” znaną sekwencję danych i użyć go do ustalenia częstotliwości serii, fazy i taktowania symboli. Robią to dla każdej serii i nie muszą zawracać sobie głowy „dryfowaniem” (stopniowa odległość, która narasta między demodulatorem a odbieranym sygnałem w miarę narastania małych błędów), ponieważ impulsy są na ogół wystarczająco krótkie, aby dryf nie był problem.
Sygnały ciągłe Następnie pojawiają się sygnały ciągłe. Są one pod wieloma względami trudniejsze do odzyskania niż sygnały impulsowe, ponieważ zwykle nie masz znanej sekwencji danych, aby pomóc w blokowaniu się sygnału, i musisz martwić się dryfowaniem nawet po zablokowaniu sygnału. Spróbuję opisać na wysokim poziomie główne etapy, które są zwykle używane do odzyskiwania ciągłych sygnałów.
Odzyskiwanie nośnika
Zwykle wiesz, na jakiej częstotliwości będzie poszukiwany sygnał, a przynajmniej na jakim zestawie częstotliwości może być. Jednak nawet przy tej wiedzy zwykle musisz być w stanie skorygować przesunięcie częstotliwości, ponieważ żadne dwa nadajniki nie nadają na tej samej częstotliwości. Zawsze występuje jakiś błąd. Zatem zwykłą metodą jest zmieszanie częstotliwości, o której myślisz, że będzie sygnał, a następnie skorygowanie błędu częstotliwości resztkowej. Można to zrobić za pomocą pętli Costaslub pobierając czwartą moc danych sygnału pasma podstawowego i szukając skoku częstotliwości. Przy przesunięciu nośnym * 4 powinien wystąpić skok częstotliwości (np. Jeśli weźmiesz FFT danych do czwartej mocy i zobaczysz skok częstotliwości przy 8300 Hz, oznacza to, że przesunięcie nośnej wynosi 8300/4 = 2075 Hz). Jest to bardzo skuteczny sposób uzyskania początkowej blokady przesunięcia częstotliwości. Możesz go również użyć do kompensacji znoszenia, jeśli od czasu do czasu to robisz. Jest inny sposób na zrekompensowanie znoszenia, o którym później się przekonam.
Faza Przewoźnika
W tym momencie, jeśli narysowałeś swoje złożone dane w płaszczyźnie złożonej (oś x jest rzeczywista, oś y jest urojona), powinna ona wyglądać następująco:
Jeśli przyjrzysz się uważnie, zobaczysz dwa gęste obszary na końcach rozmytej linii. Są to punkty konstelacji BPSK. Punkty pomiędzy są przejściami między punktami konstelacji. Skasują się, gdy otrzymamy czas symbolu. Powodem, dla którego linia jest pod kątem, jest faza nośna. Można to zmierzyć poprzez odbicie lustrzane sygnału przez pomnożenie wszystkich punktów, które mają ujemne wartości rzeczywiste przezej∗π
a następnie biorąc pod uwagę średnią kątów punktów. Po obliczeniu tego odejmij ten kąt od wszystkich punktów, dla których usunięto przesunięcie nośnika, mnożąc punkty przez . Za pomocą tej techniki można również skompensować przesunięcie przesunięcia nośnika, dynamicznie aktualizując przesunięcie fazowe. Po poprawieniu fazy dane powinny wyglądać mniej więcej tak:ej∗−ω
Po skorygowaniu faz danych można usunąć urojoną część danych, ponieważ nie dodaje żadnych informacji.
Czas symbolu
Zwykle powinieneś wiedzieć z góry okres symbolu sygnału, który próbujesz zdemodulować. Jeśli jednak musisz określić okres / częstotliwość symbolu, możesz to zrobić w podobny sposób, jak wykryto przesunięcie nośnej. Możesz obliczyć dane, które spowodują skok częstotliwości przy częstotliwości dwukrotnie większej niż częstotliwość symbolu.
Podobnie jak w przypadku przewoźnika, musisz odpowiednio ustawić fazę (czas), a następnie zrekompensować dryf. Typową metodą dla obu tych problemów jest poszukiwanie zerowych przejść. O ile szum nie jest dość zły, powinien przekraczać punkt zerowy w środku przejścia symbolu od -1 do 1 lub od 1 do -1. Nawet jeśli hałas powoduje, że dzieje się tak w środku symbolu, to nie zdarza się często.
Powyższy obrazek jest zwykle nazywany „schematem oka” lub „wzorem oka”. Ma dwa okresy symboli i wiele symboli „ułożonych” jeden na drugim. Nie wiem, czy znasz oscyloskopy, czy nie, ale możesz uzyskać oscyloskop, aby wyświetlić taki obraz. W każdym razie dwa „X” to przejścia symboli. Wysokie do niskich linii w X mają miejsce, gdy symbol przechodzi od 1 do 1, a niskie do wysokich linii w X mają miejsce, gdy symbol przechodzi od 1 do 1. Punkt pomiędzy, gdzie różowa linia to optymalne miejsce do próbkowania danych w celu sprawdzenia, czy symbolem jest 1 czy -1.
Tej samej techniki można użyć do obsługi przesunięcia taktowania symboli. Weź średnią roboczą odległości od poprzedniego przejścia przez zero i po przejściu przez zero. Jeśli te dwie średnie są mniej więcej takie same, wszystko jest w porządku. Jeśli jeden jest większy od drugiego, musisz zmienić miejsce, w którym pobierasz próbkę.
Po próbkowaniu symboli we właściwych punktach, punkty danych powinny otrzymać coś, co wygląda jak klasyczne punkty konstelacji BPSK.
Mam nadzieję, że to pomoże.
źródło