petak, 19 aprila, 2024
Predstavljamo

GNU Radio

Autor: Stefan Gvozdenović

GNU Radio je program za obradu signala u svrhe softverski definisanog radija (eng. software defined radio) ili SDR. SDR tehnologija omogućava računarski intenzivnim delovima radija koji su tradicionalno izvršavani u hardveru da se izvršavaju i u softveru. Prednost ovakve arhitekture je konfigurabilnost koja može da omogući jednom uređaju da podržava više od jednog radio-protokola. Interesovanje za softverski radio na sceni otvorenog koda je poraslo otkrićem RTL-SDR TV tjunera manipulacijom čijeg firmvera se tjuner pretvara u softverski definisani radio prijemnik za generalnu upotrebu. RTL, skraćenica za Riltek (eng. Realtek) je naziv preduzeća koje proizvodi integrisano kolo demodulatora. Mogućnosti ove tehnologije dotiču i naš region i to se može pročitati na sledećem linku.

Sa stanovišta OSI (eng. open systems interconnection) referentnog modela GNU Radio se uglavnom fokusira na prvi i drugi sloj. GNU radio flougraf (eng. GNU Radio flowgraph) je program pisan u Pajtonu koristeći uređivač teksta ili još češće takozvani GRC (eng. GNU Radio Companion). GRC predstavlja grafički korisnički interfejs koji se sastoji od radne površine, liste postojećih blokova (na desnoj strani prozora) i izlaz sa komandne linije (na dnu prozora) korisne za debagovanje. Radni prostor sadrži flougraf koji je izgrađen iz blokova povezanih signalima čije su vrste podataka označene bojama (Slika 1 ). Ako postojeći blokovi ne ispunjavaju zahteve Vaše aplikacije, možete napisati blok krojen po ličnoj meri, takozvani OOT modul (eng. out-of-tree module). Blokovi obično sadrže jedan ili više ulaza na levoj i jedan ili više izlaza na desnoj strani. Sors (izvorni) blokovi obično sadrže samo izlaze. Slično, sink (ponor) blokovi sadrže samo ulaze. Ulazi i izlazi ne moraju imati iste tipove podataka niti iste brzine prenosa podataka (eng. data rate). Kada otvorite novi GRC prozor, primetićete dva bloka, sadržana u svakom GRC programu: Podešavanja (eng. Options) i promenljivu za brzinu uzorkovanja (eng. Sampling rate variable). Blok podešavanja definiše naziv i opis programa, autora i vrstu generisanog koda (grafički ili ne grafički). Sors i sink blokovi su značajni jer predstavljaju ulaz u ili izlaz iz GNU Radio aplikacije. Primeri sors i sink blokova su: zvučna kartica vašeg ličnog računara, UDP (eng. user datagram protocol) ili TCP port ili hardver posvećen softverski definisanom radiju.

Vrste podataka označene bojama (1)

Blokovi za obradu signala su pisani u C++ programskom jeziku, dok se Pajton koristi kao planer koji dodeljuje izvršno vreme blokovima i koji takođe kontroliše protok signala ili metapodataka predstavljenih različitim vrstama podataka. Blokovi za obradu signala sadrže ulazni i izlazni red (eng. Queue ili FIFO – first in first out) zavisno od čijih sadržaja Pajton planer raspoređuje izvršno vreme. Red je apstraktni tip podatka koji se u ovom slučaju obavlja funkciju bafera ili međuspremnika (eng. buffer) između blokova. Redovi su ugrađeni u blokove jer blokovi mogu da konzumiraju različit broj podataka u isto vreme. Naprimer, FFT blok (eng. Fast Fourier Transformation) zahteva određen broj uzoraka u isto vreme za računanje FFT algoritma dok se algoritmi filter bloka izvršavaju uzorak po uzorak.

Primeri nekih od češće korištenih blokova su: filteri, modulatori, demodulatori, promenljive kao i razne druge matematičke operacije. Pogledajmo ekvivalent „zdravo svete” programa u GNU Radiju.

Ako pokrenemo program klikom na trougao u liniji menija, iskočiće grafički prikaz sinusnog signala u frekventnom domenu.

GNU Radio flougraf ne mora da sadrži hardverski ulaz ili izlaz, što omogućava simulacije i testiranja programa bez nužnog posedovanja hardvera. Signal sačuvan u arhivi pomoću fajl sink bloka može se koristiti kao testni uzorak pomoću fajl sors bloka. Trotl (eng. throttle) blok zamenjuje fizični hardver limitirajući brzinu uzorkovanja. Ako izostavite trotl blok iz datog primera, grafički prikaz će da zatamni nakon nekoliko sekundi što označava izgladnjivanje procesora.

Instalacija GNU Radija na Debijan sistemima se izvršava komandom:

apt-get install gnuradio

Ako želite da probate GNU Radio bez instalacije, postoje Ubuntu žive slike sa unapred instaliranim GNU Radijom kao i Doker (eng. Docker) slike. Za više informacija posetite sledeću stranicu.