Introducere
GNU radio este un concept revolutionar dezvoltat de Richard Stallman si presupune ca orice
utilizator sa poata utiliza , experimenta si accesa gratuit resursele software puse la dispozitia unei
comunitati de hobby-isti. Din aceasta comunitate face parte orice radioamator, iar produsele soft
(programele) sunt disponibile in regim deschis (open source si mai ales gratuit) oricui doreste
utilizarea sau accesarea acestora. Conceptul GNU este unul revolutionar pentru ca este croit dupa
nevoile utilizatorului hobby-st fiind un concept ce intra in conflict doar cu politicile inchise (specifice
marilor companii) ce nu satisfac curiozitatea utilizatorul ci doar nevoile lui comerciale. Conceptul
GNU este opusul conceptelor clasice ce abunda pe PC-uri. Sistemul Windows produs de Microsoft este
un sistem inchis (proprietar) la care noi utilizatorii nu putem sa aducem modificari si nici nu putem
contribui activ la imbunatatirea lui. Sistemele propritare sunt aparate in general de licente sau
patente. Aceste sisteme sunt potrivite pentru piata de consum, dar total nepotrivite pentru noi
radioamatorii. Limitarile ce apar in radioamatorism datorita utilizarii software-ului proprietar (in
general scris pentru Windows) am sa incerc sa le evidentiez in cele ce urmeaza. Identificarea unor
solutii devine posibila, in conditile in care devenim constienti de problemele cu care ne confruntam.
Open GNU source vs. open source proprietar
Am pornit analiza de la un articol interesant scris de catre YO2LGX – Delfi
(http://www.radioamator.ro/articole/view.php?id=798) care face un pas important spre un
homemade IF-SDR in extenso cu FT-857D, prin modificarea unui Zeta-SDR. In articol Delfi pleaca de
la un open source (free to try and modify) Power-SDR sub Windows. Am sa incerc fara a aduce critici
cuiva sa descriu limitarile acestui program desi aici apare o mica contradictie in termeni. Limitarile
unui program proprietar in comunitatea radioamatorilor sunt evidente si anume: imposibilitatea
modificarii sursei, a interfetei grafice si mai ales lipsa documentatiei tehnice (doar documentatia de
utilizare este disponibila). Insa PowerSDR nu este un program inchis este un open source cu toate astea
este un program proprietar open source. Astfel, el nu tine cont de conceptul GNU. Este un produs Flex
Radio Systems cunoscuta pentru : SDR Flexradio 1500 – 5000 ce promite cam repede
radioamatorului raiul SDR-urilor. Programul sursa (scris o parte in ANSI C si alta parte in C#) se poate
download-a de la adresa http://support.flexradio.com/Downloads.aspx . Producatorul sustine ca sursele lui sunt usor de modificat, si, ca atare este ideal pentru a satisface 100% curiozitatea experimentarii,
nevoia inovarii etc.
Cu toate astea iti poti da usor seama ca pentru a intelege si modifica sursele lor e nevoie de
cunostinte medii spre mari in C si C#. Programul, asa cum este croit, nu poate lucra decit cu SDR-urile
proprietare (SDR 1500-5000) produse de aceasi firma sau cu anumite modele limitate ICOM, Kenwood
etc. De exemplu cu un IF-SDR cum este cel propus de catre Delfi in tandem cu FT-857D, nu se impaca
deloc. Esti atentionat ca nu poate controla transceiver-ul direct prin cablu serial CAT si se iese din
program.
Conform afirmatiei producatorului ar fi cel putin teoretic simplu de a prelua controlul
transceiver-ului prin simpla modificare a surselor. Evident ca nu este chiar asa de simplu. Doi
radioamator americani (Scott McClements, WU2X si Chad Gatesman, W1CEG) "modifica" sursele
recurgind la o mica cirpeala, utilizeaza un al II-lea program. Binecunoscutul Ham Radio Deluxe
pacaleste PowerSDR dindu-i indirect controlul asupra FT-ului. Programul modificat se gaseste la
http://www.wu2x.com/sdr.html asa cum indica Delfi.
Surprizele nu se opresc aici pentru ca afli ca de fapt ai nevoie de o interfata CAT, pe linga un
PowerSDR cirpit si de urmatoarea configuratie in care Ham Radio Delux pacaleste PowerSDR-ul , sa
schimbe frecventa si modurile de lucru ale FT857D (vezi Fig.1) si asta doar pentru a porni.
Fig 1. Schema bloc prezentata de YO2LGX-Delfi din care reiese necesitatea utilizarii unei interfete
CAT si a unui program suplimentar HamRadioDelux doar pentru a pacali PowerSDR sa porneasca.
Solutia gasita de cei doi radioamatori americani este ingenioasa pentru ca Ham Radio Delux
este un program ce a fost conceput pentru a lucra cu alte programe la care le executa comenzi. Totusi,
solutia este o cirpeala oricit de mult am dori sa evitam exprimarea. De multe ori legatura se pierde intre
cele doua programe, dupa care PowerSDR-ul crapa subit sub Windows. Cu toate ca aproape ne-am
obisnuit cu acest comportament al sistemului Windows mai aflam ca PowerSDR este "aproape
compatibil" cu Windows 7 32/64 biti. Recunosc ca este singurul meu regret de la moartea XP-ului care
desi a raposat de mult si aproape este putrezit mai bintuie prin topul listelor de compatibilitate.
Pe sistemul meu Windows 7 64biti , PowerSDR-ul crapa lamentabil desi Ham Radio Delux
merge bine. Pe Windows Vista 32 biti sistemul merge bine daca procesorul nu este solicitat mai mult
de 30%. Altfel spus, programul se blocheaza daca are un delay mare la procesare. Altfel programul are
o interfata grafica frumoasa specifica programelor proprietare (inchise) orientate spre consum. Aici no
comment! Iti ia fata cit ai zice peste.
Jos palaria in fata celor de la Flex Radio System care au facut o treaba cit se poate de buna sub sistemul
Windows. Concluziile sunt urmatoarele ( pentru ca pestele de la cap se verifica):
- Programul PowerSDR sufera din cauza unor probleme legate de arhitectura sa software
realizata pe o platforma inchisa. Producatorul nu poate oferi eficient si simplu utilizatorului
accesul la toate componentele produsului nici chiar prin simpla deschidere spre sursele
software.
- Programul sufera la fel ca orice produs proprietar din cauza lipsei documentatiei tehnice si a
unor standardizari (vorbeste o limba cunoscuta doar de producator).
- In realitate PowerSDR-ul ar putea functiona fara controlul asupra transceiver-ul. Acest control
nu este neaparat necesar. Este o stratagema clasica de marketing. Dar strategiile de marketing
sunt in contradictie cu interesele user-ilor.
Conceptul GNU radio
Voi incerca sa fac o prezentare a conceptului GNU radio pe care sper sa-l fac apreciat in rindul
radioamatorilor YO ce cocheteaza cu tehnologiile SDR si cu procesarile digitale. Sunt increzator ca in
special tinerii radioamatori vor face repede diferenta, care, face toti "banii".
Conceptul GNU radio nu impune utilizarea unei anumite platforme SDR ci a unui standard pe
care fiecare platforma SDR trebuie sa-l respecte. Acest standard este ca un limbaj care odata ce este
invatat orice producator chiar si unul amator, poate sa construiasca un sistem SDR compatibil cu GNU
radio. Astfel, acest produs poate fi atasat sau i se poate atasa orice alt modul sau componenta soft
realizata de un alt producator, fie el unul profesionist (de ex. ICOM, Kenwood etc). Aceasta afirmatie
are la baza observatia ca oricine cunoaste si foloseste bine un anumit limbaj poate "vorbi" cu un
interlocutor pe care nu la vazut niciodata. Ideea functioneaza, pur si simplu, dar intra in contradictie cu
lacomia producatorului.
Cum? Poate functiona si cu un homemade IF-SDR? Da. Poate fonctiona cu orice SDR ce ofera la
iesire semnalul de IF in domeniul de lucru al placii de sunet. Este unul dintre modurile de lucru prin
care placa de sunet poate fi folosita ca procesor de semnal (baseband processing).
Poate functiona fara modificari software si cu SDR-uri de firma? Da, pentru ca respecta protocolul
GNU radio si USRP. Conectarea la PC se poate face in acest caz pe portul USB. Conversia analog
numerica se face pe dispozitivul SDR atasat. In acest mod, dispozitivul SDR se denumeste in mod
generic USRP si poate fi de tipul 1 sau 2 depinde de performante.
Adica totul e documentat? Protocol, drivere, specificatii tehnice pentru oricine? Da, la adresa
http://gnuradio.org/redmine/projects/gnuradio/wiki/Hardware . Toti vorbesc aceasi limba numita:
Universal Software Radio Peripheral – USRP. Inventatorul acestui limbaj este Ettus Research.
Totul e gratis si deschis. Ca limba materna.
Specificatiile tehnice oferite de Ettus sub umbrela GNU imagineaza o lume SDR in care
cercetarea si inovarea se simt bine atit la nivelurile cele mai inalte din universitati si laboratoarele de
cercetare cit si la nivelul pasionatiilor radioamatori. GNU radio foloseste module soft scrise in C++ si
Pyton. Acestea respecta un anumit format conform specificatiilor USRP descrise la adresa:
http://gnuradio.org/redmine/projects/gnuradio/wiki/Coding_guide_impl.
Ce fac daca eu nu stiu C++ si nici Python? S-au gindit si la asta. In acest caz poti lucra in MATLAB
sau OCTAVE, interpretoare cunoscute in lumea cercetatorilor sau matematicienilor.
Dar eu sunt radioamator! Nu cunosc programare deloc. In acest caz se poate lucra cu Radio
Companion, o modalitate grafica extrem de simpla de realizare a interfetei radio GNU. Radio
Companion respecta limbajul USRP si foloseste componente soft GNU radio prin intermediul unor
simboluri grafice usor de manipulat cu mouse-ul si tastatura intr-un mod eficient (
http://gnuradio.org/redmine/projects/gnuradio/wiki/GNURadioCompanion).
Iata cum arata schema unui SDR receiver cu interfata grafica homemade pe care am dezvoltat-o in
citeva minute cu Radio Companion.
Aceasta schema face aproape tot ceea ce PowerSDR face pentru receptionarea unui semnal
SSB. Programul lucreaza cu IF-SDR -ul propus de Delfi fara sa fie nevoie de interfata CAT. Normal,
comanda statiei si operarea ei se fac manual. Iata cum arata interfata grafica cu FT-857D dupa ce lansez
in executie programul de mai sus.
Se urmaresc grafic procesarile de baza ce se fac pentru demodularea unui semnal SSB. Sufletul
acestei interfete este filtrul digital trece banda ce actioneaza intre 0.3-2.9 Khz (ajustabil). Interfata
include un AGC digital si doua amplificari in IF respectiv AF. Se lucreaza cu semnal complex (in
spatiul Hilbert) asa cum cere teoria la iesirea mixerului IQ. Interfata contine butoane de reglaj a
acordului brut si fin in domeniul 0-15 Khz atita cit cuprinde placa de sunet la o frecventa de esantionare
de 48 KHz. Interfata vizualizeaza si spectrul semnalului inainte de procesare. Ea poate fi insa
modificata dupa gustul utilizatorului care, poate experimenta adaugind noi module sau schimbind
parametrii. Iata lista cu modulele disponibile aranjate pe categorii:
Sunt sute de componente soft ce pot fi utilizate pentru procesarea numerica a semnalului.
Desigur, daca utilizatorul doreste sa faca modificari sau sa adauge propriul modul exista documentatie
si exemple pentru asta. Daca gasesti un bug poti sa-l si corectezi si sa contribui la dezvoltarea
componentelor GNU Radio.
Cum instalez GNU-Radio? Ai nevoie de un sistem Linux instalat pe un PC. Atentie ! Placa de sunet
trebuie sa functioneze. Eu personal folosesc Ubuntu Linux 64 biti. Documentatia de instalare se gaseste
la adresa: http://gnuradio.org/redmine/projects/gnuradio/wiki/GNURadioCompanion.
Sper sa gasiti interesant acest concept si sa ne auzim in banda cu GNU-SDR.
73 tuturor radioamatorilor YO
de YO5OUC - Nicu
- Nicolae Crisan YO5OUC
-