2016-04-27 14 views
5

Próbuję zdemodulować sygnał za pomocą GNU Radio Companion. Sygnał jest FSK, z częstotliwościami znakowymi i przestrzennymi odpowiednio 1200 i 2200 Hz.
Dane w danych tekstowych sygnału generowane przez urządzenie o nazwie GeoStamp Audio. Urządzenie generuje dźwięk danych GPS podawanych do niego w czasie rzeczywistym, a także może dekodować ten dźwięk. Mam dekodowaną tekstową wersję audio dla odniesienia.Demodulacja FSK z GNU Radio

Ustawiłem wykres przepływu w GNU Radio (patrz poniżej) i działa on bezbłędnie, ale przy wszystkich odmianach, które wypróbowałem, nadal nie mogę uzyskać danych. Mam więc kilka pytań:
1) Dane wyjściowe wykresu przepływu powinny być binarne (1s i 0s), które mogę później przekonwertować na normalny tekst, prawda?
2) Czy prawidłowe jest podawanie pliku audio wav tak jak ja?
3) Jak mogę odzyskać dane z demodulowanego sygnału - czy brakuje mi czegoś na moim wykresie przepływu?

Flow Graph

Jest to działka FFT pliku WAV przed demodulacji:

FFT Plot before Demod

Jest to wynikiem zlewie zakres po demodulacji (może wygląda obiecująco?): Scope Sink after Demod

AKTUALIZACJA (2 sierpnia 2016): Nadal pracuję nad tym problemem (sporadycznie) i niestety nadal nie mogę odzyskać danych. Rezultatem jest obiecująco wyglądający ciąg liczb 1 i 0, ale nic nie jest zrozumiałe.

Jeśli ktoś ma sugestie dotyczące ustawienia ustawień bloków zegara synchronizacji zegara lub zegara odzyskiwania lub wzmocnienia na bloku Quad Demod, byłbym bardzo wdzięczny.

Oto jedna z wersji uaktualnionej wykresie przepływu w oparciu o odpowiedź Marcusa (również stara inne wersje z odzyskiem zegara wielofazowy): enter image description here

Jednak nadal jestem w stanie odzyskać dane, które ma sensu. Wynikiem jest długi ciąg 1 i 0, ale nie te właściwe. Próbowałem podkręcać prawie wszystkie ustawienia we wszystkich blokach. Myślałem, że może odzyskiwanie zegara było wyłączone, ale próbowałem szerokiego zakresu wartości bez poprawy.
Czy jest coś jeszcze, czego mi brakuje lub powinienem zmienić?

+0

nie należy podłączać FFT tonie na wyjściu twojego demodru kwadraturowego, ale na wejście; to będzie pokazywać tylko częstość symboli jako okresowość. Jednak zakres wykresu wyjściowego demodalnej kwadratury byłby o wiele bardziej interesujący. –

+0

O tak, właśnie eksperymentowałem z tym, aby zobaczyć, jak wyglądał wynik demodulacji. Fabuła zakresu po demodulacji rzeczywiście wyglądała interesująco, będę edytować mój post, aby go dodać. – Bird

+0

Interesujące! Tak, powiedziałbym, to całkiem obiecujące. Rozwijając różne rzeczy, porównałem wyjście zlewu po demodulatorze ze zlewem wodospadowym wejścia audio. –

Odpowiedz

8

Tak, na pierwszy rzut oka, moje podejście tutaj będzie wyglądać następująco:

Flow graph of analysis approach

Co się dzieje jest to, że bierzemy wejście, przesunąć go w dziedzinie częstotliwości, tak aby znak i przestrzeń są w + -500 Hz, a następnie użyj demodulacji kwadraturowej. "Logicznie", możemy wtedy po prostu "podjąć decyzję". będę dzielić konfigurację Xlating FIR tutaj:

Parametrization of the Xlating FIR Filter

Zauważ, że sygnał jest najpierw przesunięte tak, że częstotliwość środkowa (w środku pomiędzy 2200 i 1200 Hz) kończy się na 0 Hz, a następnie filtrowane przez dolne przejście (wzmocnienie = 1,0, Stopband zaczyna się od 1 kHz, Passband kończy się przy 1 kHz - 400 Hz = 600 Hz).W tym momencie rzeczywista szerokość pasma, która jest nadal obecna w sygnale, jest znacznie niższa niż częstotliwość próbkowania, więc możesz również po prostu obniżyć bez strat (ustawić dekimację na coś wyższego, np. 16), ale ze względu na analizę wygraliśmy ". to zrobić.

Ucieczka powinna teraz pokazywać lepsze wartości. Spójrz na krawędzie; prawdopodobnie nie są wyjątkowo strome. Dla synchronizacji zegara polecam po prostu pójść i spróbować odzyskać zegar wielofazowy zamiast Müllera & Mueller; chasing o każdym "nieco okrągłym" kształcie pulsu może zadziałać.


dla zabawy i chichotów, kliknąłem razem szybki demod demo (GRC here):

Demod demo

który pokazuje:

demod demo: Demonstration of demod demo demo output

+0

Wow! Dziękuję bardzo za te wszystkie szczegóły, które rozwiązały kilka mylących punktów, które miałem. Z jakiegoś powodu, kiedy używam synchronizacji zegara polifazowego GRC mówi "Python nieoczekiwanie wychodzi" za każdym razem, więc próbuję zegara odzyskiwania MM. Upływ czasu wygląda teraz naprawdę obiecująco. Próbuję dowiedzieć się, jak odczytać zrzut pliku na podstawie [tej strony] (http://gnuradio.org/redmine/projects/gnuradio/wiki/FAQ#What-is-the-file-format-of-a-file_sink -How-can-I-read-files-produced-by-a-file-sink). – Bird

+0

Z jakiegoś powodu nadal nie mogę odzyskać rzeczywistych danych. Mój wynik wydaje się być na właściwej ścieżce, ale wartości binarne są nonsensem. Nie wiem, czy to moje przetwarzanie, czy sygnał. – Bird

+0

Problem może polegać na tym, że nie wiesz, gdzie są granice bajtów, prawda? A może używają jakiegoś kodowania Manchesteru lub czegoś podobnego? Kod kanału? –