Kodowanie i Transmisja Sygnałów

Zagadnienie 5

Modulacja MSK

mgr inż. Grzegorz Kraszewski

Modulacja

Modulacja MSK (Minimum Shift Keying) zalicza się do grupy cyfrowych modulacji z kluczowaniem częstotliwości. Jej cechą szczególną jest brak skoków fazy w zmodulowanym sygnale. Osiąga się to poprzez odpowiedni dobór fazy początkowej każdego fragmentu nośnej o długości trwania równej okresowi modulacji T. Faza początkowa jest zawsze równa fazie końcowej poprzedniego okresu. Pozytywnym skutkiem braku skoków fazy jest znaczne ograniczenie pasma częstotliwości zajmowanego przez sygnał. W porównaniu z modulacjami fazowymi (BPSK, QPSK) transmisja MSK potrzebuje znacznie węższego pasma kanału transmisyjnego.

W modulacji MSK używa się dwóch częstotliwości nośnych (dla bitu 0 i 1). Jeżeli oznaczymy częstotliwość kluczowania jako f (przy czym f = 1/T), to częstotliwości nośne wynoszą: f0 = 3/4 f oraz f1 = 5/4 f. Są więc one rozmieszczone symetrycznie wokół częstotliwości kluczowania z odstępem między nimi równym f/2. W ten sposób w czasie przesyłania 1 bitu danych zostają wyemitowane 3 ćwiartki okresu sinusoidy o częstotliwości f0, albo 5 ćwiartek sinusoidy o częstotliwości f1. Zatem faza początkowa ulega zmianie o ± ćwiartkę okresu, a więc ±π/2. Występujące w sygnale początkowe wartości fazy są wielokrotnościami π/2 (90°).

Sposób modulacji analogowej

Praca modulatora cyfrowego

Ponieważ modulator MSK pracuje z dwiema częstotliwościami, musi posiadać dwie tablice nośnej, każda z nich zawiera 1 okres fali nośnej, f0 i f1. Ile próbek sygnału powinno przypadać na jeden okres modulacji T? Liczba ta musi dzielić się bez reszty przez 3 i przez 5 (w jednym okresie modulacji mieści się odpowiednio 3 lub 5 ćwiartek okresu jednej z fal nośnych), musi być zatem wielokrotnością 15. Jeżeli przyjmiemy N = 15, to tablica niższej częstotliwości będzie sobie liczyła 20 próbek (15 to 3/4 okresu), tablica wyższej częstotliwości będzie sobie liczyła 12 próbek (15 to 5/4 okresu). Oczywiście długości obu tablic muszą być podzielne przez 4, aby dało się sięgnąć do początku każdej ćwiartki okresu. Liczby 12 i 20 spełniają ten warunek.

Ponieważ początkowa faza okresu modulacji jest taka sama jak faza końcowa poprzedniego okresu, należy w modulatorze przechowywać jej wartość pomiędzy emisją kolejnych okresów. Jako fazę początkową dla pierwszego okresu można przyjąć dowolną wielokrotność 90°, np. 0°. W każdym okresie modulacji modulator wybiera jedną z fal nośnych, na podstawie bitu informacj modulującej. Następnie przelicza fazę początkową na numer próbki w wybranej tablicy. Poczynając od wyliczonej próbki, modulator emituje na wyjście N próbek, w przypadku dojścia do końca tablicy przechodząc na jej początek. Następnie oblicza się fazę końcową. W przypadku emisji niższej częstotliwości odejmuje się π/2 od fazy początkowej. W przypadku emisji wyższej częstotliwości dodaje się π/2. Obliczoną fazę końcową zapamiętuje się do wykorzystania jako faza początkowa następnego okresu. W przypadku, kiedy faza końcowa osiąga 2π lub −2π, należy ją rzecz jasna zredukować do 0.

Cyfrowa demodulacja MSK

Podobnie jak demodulatory kluczowanych modulacji fazowych, demodulator MSK pracuje na zasadzie liczenia korelacji odebranego fragmentu sygnału z zestawem sygnałów wzorcowych. Dla modulacji MSK zestaw taki liczy sobie 8 sygnałów (2 częstotliwości nośne × 4 możliwe fazy początkowe). Ponieważ jednak te 8 sygnałów tworzy 4 pary sygnałów wzajemnie przeciwnych (pomnożonych przez -1), do policzenia pozostają 4 korelacje z sygnałami wzorcowymi opisanymi następującymi wzorami:

  1. w1 = sin(2πf0t),
  2. w2 = cos(2πf0t),
  3. w3 = sin(2πf1t),
  4. w4 = cos(2πf1t),
Wzory opisują postać ciągłą sygnałów, demodulator posługuje się sygnałami spróbkowanymi, które może odczytać z tablic fal nośnych używanych przez modulator. Warto zauważyć, że wyżej opisane sygnały są niczym innym jak funkcjami bazowymi transformaty Fouriera, liczenie ich korelacji z sygnałem odebranym odpowiada zaś wykonaniu częściowej DFT (dla sygnałów spróbkowanych), która liczy zawartość w sygnale składowych o częstotliwościach f0 i f1. W ten sposób traktując korelację „cosinusoidalną” jako część rzeczywistą, a korelację „sinusoidalną” jako część urojoną liczby zespolonej, możemy obliczyć amplitudę (moduł liczby zespolonej) i fazę (argument liczby zespolonej) dla składowych o naszych częstotliwościach nośnych. Demodulator podejmuje decyzję o zdemodulowanym bicie porównując amplitudy obu składowych. Obliczenie fazy nie jest konieczne, co więcej ponieważ moduły są tylko porównywane, można porównać ich kwadraty, unikając obliczania pierwiastka.

Ćwiczenie z modulacji i demodulacji MSK

Ćwiczenie polega na zdekodowaniu wiadomości zawartej w pliku podanym przez prowadzącego. Plik zawiera zapisane w formacie tekstowtym kolejne próbki sygnału zmodulowanego w modulacji MSK z nałożonym szumem. Poziom szumu jest tak dobrany, że umożliwia prawidłową demodulację (przy dobrym zaprojektowaniu odbiornika). Każda próbka (liczba) umieszczona jest w oddzielnej linii pliku.

Dekodowanie

W każdym zestawie testowym zakodowano wiadomość liczącą sobie 8 znaków 8-bitowych w kodzie ASCII. Łącznie więc każda wiadomość zawiera 64 bity. W wiadomościach użyto wyłącznie dużych i małych liter alfabetu angielskiego oraz cyfr. Z tego względu pierwszy, najstarszy bit każdego bajtu jest równy 0. Wiadomości zostały wygenerowane z różną ilością próbek na okres N. Zgodnie z tym, co napisałem powyżej, każda ilość próbek na okres jest wielokrotnością 15. Każdy z zestawów danych może mieć inną fazę początkową (oczywiście zawsze jest to wielokrotność π/2), oraz inne przyporządkowanie częstotliwości nośnych (niższa dla „0”, wyższa dla „1” lub odwrotnie). Rozwiązując zadanie należy określić trzy powyższe parametry modulacji.

Wyznaczenie poziomu szumów w sygnale testowym

Drugim etapem zadania jest wyznaczenie stosunku mocy sygnał/szum w sygnale testowym. W tym celu można skorzystać z wiedzy, że amplituda czystego sygnału przed zaszumieniem we wszystkich plikach testowych wynosi 1,0. Znając treść zakodowanej informacji i parametry modulacji należy odtworzyć czysty sygnał. Dysponując czystym sygnałem należy po pierwsze policzyć jego energię. Następnie trzeba odjąć od sygnału testowego sygnał czysty, otrzymując w ten sposób sam szum. Kolejnym krokiem jest policzenie energii szumu, a następnie wyliczenie stosunku S/N w decybelach. Po otrzymaniu wartości S/N należy zgłosić ją prowadzącemu zajęcia do sprawdzenia.

Zadania do wykonania

  1. W szkielecie programu do badania modulacji cyfrowych zaimplementować metodę Sygnal::Moduluj() dla modulacji MSK.
  2. Wygenerować 10 okresów przebiegu MSK, zapisać do pliku metodą Sygnal::Zapisz(), obejrzeć przebieg w arkuszu kalkulacyjnym i sprawdzić poprawność pracy modulatora.
  3. Zaimplementować metodę Sygnal::Demoduluj(). Sprawdzić poprawność działania demodulatora bez obecności szumu przez porównanie bitów nadawanych i odbieranych.
  4. Wyłączyć zapis przebiegu do pliku i przeprowadzić pomiar BER w zależności od stosunku sygnał/szum. Zalecana ilość przesyłanych bitów to co najmniej 100 000 dla każdej wartości szumu. Sporządzić wykres zależności BER od S/N i nałożyć go w arkuszu kalkulacyjnym na taki sam wykres dla modulacji BPSK i QPSK.
  5. Zdekodować wiadomość zawartą w pliku wskazanym przez prowadzącego. Określić przyporządkowanie częstotliwości nośnych.
  6. Wyznaczyć stosunek S/N w powyższym pliku.

Źródła

Strona o modulacji MSK na Wikipedii (po polsku).