RTLSDR, czyli odbieraj (niemal) wszystko z tunera DVB-T

z.....y
z.....y
Co to SDR?
Można po ludzku?
SDR - radio sterowane programowo w odróżnieniu od radia sterowanego sprzętowo może być sterowane tylko za pomocą komputera. Można odbierać za jego pomocą wszystko, co mieści się w zakresie odbieranych częstotliwości tunera. Jedynymi ograniczeniami są rodzaje modulacji (nie ma programu, który może zdemodulować każdy rodzaj sygnału, albo takiego nie znam) i zakres pracy anteny. W drugim przypadku można oczywiście antenę w miarę potrzeb wymieniać.
Dlaczego warto?
Głównym powodem jest cena. Zamiast standardowych odbiorników SDR można użyć odbiornika DVB-T z odpowiednim tunerem. Warunek konieczny, aby to uruchomić: odbiornik musi bazować na chipsecie RTL2832U. Najlepiej by było, gdyby odbiornik posiadał tuner Elonics 4000 (E4k). Można też korzystać z innych tunerów, jednak ich pasmo jest węższe od wyżej rzeczonego.
Czy zadziała na moim odbiorniku?
Jeśli Twój odbiornik ma chipset RTL2832U, to tak. Te urządzenia mają możliwość odbioru DVB-T i DAB. Lista sprawdzonych odbiorników znajduje się o, tu. Nie jest to oczywiście pełna lista.

Instalacja dla systemu Windows:
-Pobierz paczki instalacyjne programów. Popularnymi programami do odbioru za pomocą SDR-a są HDSDR oraz SDR# (SDRSharp). Paczki instalacyjne: ExtIO_USRP+FCD+rtl2832 & BorIP oraz SDR#, Biblioteki RTLSDR
-Podłącz odbiornik do portu USB. Możesz, ale nie musisz instalować sterowników dołączonych razem z urządzeniem.
Jeśli chcesz używać HDSDR:
-W paczce instalacyjnej nazwanej "ExtIO_USRP+FCD+rtl2832 & BorIP" zaznacz opcję "Download an SDR receiver application" oraz "HDSDR (download latest)". Kliknij Next i postępuj zgodnie z informacjami wywietlanymi na ekranie. W wybranym folderze zostaną umieszczone wszystkie biblioteki. Umieść je w C:/Program Files/HDSDR Po instalacji HDSDR nie będzie trzeba przenosić bibliotek.
-Program Zadig uruchomi się podczas instalacji. Z górnego paska wybierz "Options" i zaznacz "List All Devices". Z rozwijanej listy wybierz Bulk-In, Interface (Interface 0). Następnie nacinij "Install Driver". Jeli w systemie był sterownik zainstalowany wcześniej, zostanie on podmieniony.
-Uruchom program do odbioru. Po uruchomieniu może się Tobie pokazać taki błąd:



Zachowaj spokój i nie panikuj. Wpisz do pola "Device hint" rtl i kliknij "Create". W polu "Sample rate" wpisz ilość próbek na sekundę, które chcesz odbierać. Im więcej próbek, tym szersze odbierane pasmo, a co za tym idzie - większe obciążenie procesora. Możesz spokojnie użyć wartości domyślnej.
-Kliknij "Start" lub naciśnij F2.
-Gotowe!
Jeśli chcesz używać SDR#:
-Uruchom ExtIO_USRP+FCD+rtl2832 & BorIP tak samo, jak opisałem to wyżej. Nie zaznaczaj opcji "Download an SDR receiver application".
-Rozpakuj do dowolnego folderu SDR# i skopiuj tam pliki libusb-1.0.dll oraz rtlsdr.dll z wskazanej wcześniej lokalizacji lub podanych bibliotek. W drugim przypadku Musisz oddzielnie pobrać program Zadig
-Uruchom program i z rozwijanej listy na górze okna wybierz RTL-SDR / USB.
-Kliknij "Play".

SDR# czy HDSDR?
Zalecam SDR#, ponieważ ma, moim zdaniem, najlepszą jakość dźwięku i najmniej obciąża procesor. Działa dobrze nawet na moim, 1,5 GHz procesorze. Przy HDSDR obserwuję zacinanie dźwięku.
Jak to obsługiwać?
Ustawiamy żądaną częstotliwość będącą w zakresie odbioru tunera. W tym celu ustawiamy zgrubnie częstotliwość LO (generatora lokalnego) i częstotliwość odbioru (tune). Uwaga! Te częstotliwości nie mogą być takie same! LO posiada spore szumy własne, przez co gdy ustawi się dwie takie same częstotliwości dobry odbiór nie jest możliwy, co widać na screenie:



Co niezwykłego na początek?
Na przykład częstotliwości lotnicze. Ta opcja jest dobra dla początkujących nasłuchowców. Częstotliwości lotnicze mieszczą się w zakresie od 118 MHz do 135 MHz z modulacją AM. Sygnał nie jest nadawany ciągle. Przykładowo - jestem w Warszawie i chcę posłuchać EPWA APP (Warszawa Zbliżanie), które jest nadawane na 128.800 MHz. Ustawiam częstotliwość LO na 128.600 MHz, następnie ustawiam odbiór na 128.800 MHz. Powiększam fragment pasma, które mnie interesuje. Czekam cierpliwie na nadanie sygnału. Po nadaniu widzę na wskaźniku wodospadowym, że został nadany. Dostrajam następnie dokładnie częstotliwość odbioru i szerokość pasma.. Po lewej stronie znajduje się wskaźnik Squelch. Odcina on program od karty dźwiękowej, o ile program nie odbiera sygnału o określonej mocy. W taki sposób nie trzeba słuchać szumów.
Co jeszcze oprócz nasłuchu na Windowsa?
Na przykład ACARS
Jak?
Pobieramy program do odbioru depesz ACARS, np. ACARSd lub AirNav ACARS Decoder i instalujemy. Następnie uruchamiamy RTLSDR i SDR#/HDSDR, ustawiamy odbiór na 131.725 MHz AM, w razie potrzeby precyzyjnie stroimy. Uruchamiamy program do depesz, maksymalnie zwiększamy głośność systemową. W czasie uruchomionego odbioru ACARS nie może być włączony żaden inny program, który również używa karty dźwiękowej. Po uruchomieniu program powinien pokazywać depesze. Uwaga! Do poprawnego odbioru konieczna jest bardzo dobra moc sygnału.
Jak sprawdzić, czy mój program jest dobrze skonfigurowany?
Uruchom go, maksymalnie zwiększ głośność systemową i uruchom ten filmik. Program do depesz musi zacząć pokazywać depesze. W innym przypadku oznacza to, że masz go źle skonfigurowanego. W przypadku odbioru depesz ACARS niezbędny jest ciągły odbiór dźwięku. W przypadku słabszych komputerów dźwięk może się przycinać - w takiej sytuacji nic się nie odbierze.
Skrócona instrukcja obsługi SDRSharp:



  1. Tu ustawiamy rodzaj modulacji (dla radia FM ustawiamy WFM - Wide FM (szeroki FM))
  2. Częstotliwość odbioru
  3. Częstotliwość lokalnego generatora
  4. Szerokość odbieranego pasma (można regulować również myszą na zobrazowaniu widma)
  5. RDS
  6. Powiększenie fragmentu odbieranego widma - przydatne przy precyzyjnym strojeniu
  7. Kontrast wskaźnika wodospadowego
  8. Szybkość wskaźnika wodospadowego
    Dla modulacji FM nie można ustawić poziomu Squelch, co jednak można zrobić w programie HDSDR automatycznie, klikając prawym przyciskiem myszy na wskaźnik Squelch:




Instalacja RTLSDR na Linuksa (przykład - Ubuntu)
Wymagane programy:
rtl-sdr:
Wymagane programy przed instalacją rtl-sdr:
git (sudo apt-get install git)
//sdr.osmocom.org/trac/wiki/rtl-sdr
Gnu-radio:
Wymagane programy przed instalacją:
//gnuradio.org/redmine/projects/gnuradio/wiki/UbuntuInstall?version=112#Install-the-Pre-Requisites
Sposoby instalacji:
//gnuradio.org/redmine/projects/gnuradio/wiki/InstallingGR
Zalecam instalację za pomocą skryptu. Jest pewna, ale może trwać bardzo długo (u mnie trwała ponad 3 godziny).
Po instalacji GNU-radio powinno pojawić się w menu (gnuradio-companion).
Na dobrą sprawę już same gołe GNU-radio wystarcza do tego, aby używać SDR-a. Jednak ten program nie posiada wskaźnika wodospadowego, tylko FFT (dla niekumatych - widmo sygnału), przez co korzystanie z niego jest dość problematyczne. Po uruchomieniu dodajemy plik (blok) w którym mamy zadeklarowane urządzenia, filtry i inne składowe. Poniżej znajduje się plik z rozszerzeniem .grc bez źródła, czyli bez bloku SDR-a. Aby dodać źródło przejdź w menu po prawej [Sources]>RTLSDR Source. Celowo nie zamieszczam kompletnego pliku, ponieważ z uwagi na różne urządzenia kompletny plik nie musi działać u każdego. Bloki łączymy klikając wyjście źródła RTLSDR, a następnie wejście następnego bloku (Throttle).



Tutaj można pobrać blok do uruchomienia w GNU-radio
gr-baz:
https://github.com/balint256/gr-baz
gr-osmosdr
Nie jest wymagane, można stosować zamiennie jako blok źródła sygnału w GNU-radio.
//sdr.osmocom.org/trac/wiki/GrOsmoSDR
Po instalacji wyżej wymienionych programów podłącz odbiornik do portu USB. Po podłączeniu wpisz do terminala polecenie lsusb. Powinny pokazać się podłączone urządzenia USB.



W moim przypadku urządzenie jest przedstawione tak:
Bus 001 Device 005: ID 1f4d:c803 G-Tek Electronics Group
Teraz należy (z uprawnieniami roota) stworzyć nowy plik. Wpisujemy (lub kopiujemy) do terminala:
sudo gedit /etc/udev/rules.d/20.rtlsdr.rules
Potwierdzamy hasłem i wklejamy:
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f4d", ATTRS{idProduct}=="c803", GROUP="adm", MODE="0666", SYMLINK+="rtl_sdr"
ID jest unikalny dla każdego odbiornika. Zapisujemy plik.
Testujemy!
Wpisz do terminala:
rtl_test -t
Jeśli posiadasz odbiornik z tunerem Elonics4000 (E4k) powinny się pokazać możliwe wzmocnienia (Gain) zakresy odbieranych sygnałów. W innym przypadku (jak w moim) pokażą się tylko możliwe wzmocnienia:



Możemy zainstalować teraz "normalny" program do odbioru. Polecam, podobnie jak dla Windowsa, SDRSharp albo GQRX. Ten pierwszy nie działa u mnie wcale, ten drugi potrafi się często zacinać (i muszę zabijać jego proces).
GQRX:
Wymagania i instalacja:
https://github.com/csete/gqrx
Uwaga! Do kompilacji jest konieczny (o ile nikt nie znajdzie innego kompilatora, który sobie z tym poradzi, za co byłbym wdzięczny) QtCreator, który nie lubi Unity. U mnie skończyło się na kompletnym odinstalowaniu Unity. Z Gnome i Xfce się nie gryzie. Program kompilujemy wskazując programowi QTCreator lokalizację pliku gqrx.pro lub za pomocą terminala:
qtcreator sciezka_do_pliku gqrx.pro



SDRSharp (Linux):
Wymagania i instalacja:
//rtlsdr.org/softwarelinux
Niestety, zrzutów nie będzie, bo u mnie program kompletnie nie chce się uruchomić.
Oprócz zwykłych programów SDR-owych można na Linuksa zainstalować dużo więcej programów korzystających z tego urządzenia. Lista programów cały czas jest rozwijana. Programy, których nazwa zaczyna się od "gr-" wymagają do uruchomienia GNU-radio: //sdr.osmocom.org/trac/wiki/rtl-sdr#KnownApps

Zdaję sobie sprawę z tego, że przedstawione przeze mnie rozwiązania mogą być nieprecyzyjne albo źle objaśnione. Cały projekt nadal się rozwija i nadal powstają na niego nowe programy, których wymienienie i objaśnienie tutaj mogłoby zająć za dużo miejsca.
Życzę miłego odbioru!