05.12
2010

Súčasťou balíčka USRP je TVRX modul. TVRX daughterboard je kompletný VHF a UHF prijímač založený na Microtune 4937 Tuner Moduly. Po pripojení antény dokáže prímať 6 MHz bloky spektra v rozsahu 50-860 MHz. Všetky AGC funkcie sú kontrolované prostredníctvom softvéru (ACG2 blok). Verte, že táto doska dokáže byť užitočná aj v iných smeroch, nie len na zachytávanie televízneho alebo rádiového vysielania :) Typický šum je 8 dB. Po chvíľke váhania sme sa rozhodli upraviť už existujúce GRC schémy - simple AM receiver a simple FM receiver od p. Alexandru Csete, pôvodne určené pre LFRX modul, keďže riešenie, ktoré navrhol je jednoduché a zároveň veľmi prijateľné. Nebudeme predsa znovu objavovať koleso :)

Všetky Simple GNU Radio Companion examples nájdete na adrese:

https://github.com/csete/gnuradio-grc-examples

Upravené súbory budú súčasťou BackTrack USRP Mod s povolením autora samozrejme. Pred použitím je ale nutné ich nakonfigurovať podľa umiestnenia jednotlivých modulov v konkrétnom USRP + individuálne nastavenie vzorkovacej frekvencie zvukovej karty.

Pre testovanie & ladenie & príjem AM / FM / TV signálu slúžia python skripty:

fm_tx_2_daughterboards.py test_dft_synth.py usrp_nbfm_rcv.py usrp_tv_rcv.py usrp_wfm_rcv.py fm_tx4.py usrp_am_mw_rcv.py usrp_spectrum_sense.py usrp_wfm_rcv_fmdet.py usrp_wfm_rcv_sca.py max_power.py usrp_benchmark_usb.py usrp_test_loop_lfsr.py usrp_wfm_rcv_nogui.py usrp_wfm_rcv2_nogui.py test_dft_analysis.py usrp_nbfm_ptt.py usrp_tv_rcv_nogui.py usrp_wfm_rcv_pll.py usrp_wxapt_rcv.py

Nápovedu vyvoláme príkazom –help pri všetkých skriptoch, zvyšok závisí od zručností, hardvéru a ladenia.

Príkladom:

root@bt:/usr/local/share/gnuradio/examples/usrp# python usrp_wfm_rcv.py –help

Usage: usrp_wfm_rcv.py [options]

Options:

-h, –help show this help message and exit

-R RX_SUBDEV_SPEC, –rx-subdev-spec=RX_SUBDEV_SPEC select USRP Rx side A or B (default=A)

-f FREQ, –freq=FREQ set frequency to FREQ

-g GAIN, –gain=GAIN set gain in dB (default is midpoint)

-V VOLUME, –volume=VOLUME set volume (default is midpoint)

-O AUDIO_OUTPUT, –audio-output=AUDIO_OUTPUT pcm device name. E.g., hw:0,0 or surround51 or /dev/dsp

Pri používaní týchto jednoduchých skriptov ale môžete naraziť na odpor zvukovej karty, resp. nastavenie bude neohrabané, príjem chabý, ladenie náročnejšie. Rozhodli sme sa teda využiť GRC a „naprogramovať“ užívateľské rozhrania pre prímanie / ladenie AM a FM rádií. Zopár jednoduchých úprav v špecifikácii zdroja, počiatočnej frekvencie a dvojice ladiacich rozsahov a máme príjemné GUI a súčasne najdrahšie rádio v Českej a Slovenskej republike :)

GNU Radio Companion

Pred tvorbou blokov a následných GRC súborov je nutné naštudovať si obšírnejšie vedomosti z RF oblasti ako (de)modulácia – amplitúdová/frekvenčná, HIGH PASS FILTER (HPF) A LOW PASS FILTER (LPF), FFT, vzorkovacia frekvencia, FIR filter, NBFM, apt. Ako bolo spomínané v našom prípade upravujeme už existujúce súbory, bez pochopenia na čo základné bloky slúžia to ale nepôjde.

Je nutné presne špecifikovať umiestnenie modulu TVRX v bloku USRP Source. Ak ste skladali USRP, najskôr viete kde sú jednotlivé moduly umiestnené, ak nie nápomocný býva príkaz lsusrp, prípadne usrp_probe

 

Po otvorení súboru meníme v pôvodných schémach hlavne USRP Source – side, RX antena, frekvenciu v text boxe, zosilnenie, minimálne a maximálne hodnoty v ladiacich poliach – Coarse tune a Fine tune. Tieto nastavenia závisia od konfigurácie USRP, modulu a rovnako od požiadaviek užívateľa. Pri nastaveniach Coarse tune a Fine tune ide hlavne o voľbu užívateľa, akú širokú škálu a s akou presnosťou si želá ladiť pri zadaní frekvencie. Ideálne je aj rozšíriť maximálnu hodnotu pre filter odstraňujúci vysoké frekvencie – low pass filter.

GRC FM receiver

Štandardný GRC FM audio receiver pozostáva z blokov USRP / USRP2 source , FFT Sink, WBFM, Multiply Const, Audio Sink a ich súvisiacich nastavení pomocou Variable Slide, Variable a Options blokov. Programovanie pomocou GRC (okrem iného) názorne opisuje bakalárska práca by Matthias Fähnle pod názvom Software-Defined Radio with GNU Radio and USRP/2 Hardware Frontend: Setup and FM/GSM Applications.

Schéma:

Pri pokuse o vykonanie sa môžete stretnúť s chybovou hláškou:

audio_alsa_sink[hw:0,0]: Device or resource busy Traceback (most recent call last): ,self.audio_sink_0 = audio.sink(44100, „“, True), File „/usr/local/lib/python2.5/site-packages/gnuradio/audio_alsa.py“, line 299, in sink, return _audio_alsa.sink(*args, **kwargs), RuntimeError: audio_alsa_sink

Alsa – Advanced Linux Sound Architecture je blokovaná predchádzajúcou aplikáciou, ktorá využívala zvukovú kartu. Akýkoľvek inteligentný pokus (/etc/init.d/alsa-utils start|stop|restart) o odstránenie chybovej hlášky a spustenie GRC súboru skončil neúspechom. Zaberá reštart počítača, po spustení napr. MP3 sa znova zablokuje a znova reštarť… Jednoducho povedané, ak pracujete s USRP, žiadna iná aplikácia nesmie pristupovať na zvukovú kartu. Ak máte niekto jednoduchšie riešenie budeme radi ak sa oň podelíte v komentároch. Druhá nezrovnalosť sa môže týkať vzorkovacej frekvencie zvukovej karty v počítači. Bežne si vystačíte s 44100 Hz (CD kvalita), výnimočne je nutné zmeniť na 48kHz a rovnako špecifikovať rozhranie – plughw:0,0 Na testovanie vzorkovacej frekvencie zvukovej karty slúži skript test_resampler.py

Ak sa stretnete s takouto chybou pri GNU Radio Companion, je nutné okrem zmeny frekvencie v Audio Sink upraviť aj bloky AM Demod a Rational Resampler. Úspešné vykonanie takéhoto súboru teda spustí ladiace okno s parametrami podľa predchádzajúceho nastavenia spolu s grafickým zobrazením. Vyladením „tej správnej“ frekvencie stúpa amplitúda a ozýva sa rozhlasové vysielanie:

GRC AM receiver

Nenáročná schéma, zdroj signálu, FIR filter, FFT, filter prepúšťajúci nízke fekvencie, ACG – automatic gain control, demodulácia a následný výstup na zvukovú kartu spolu so súvisiacimi nastaveniami…

Rovnako ako v predchádzajúcom prípade, vyladená schéma zachytáva AM vysielanie:


usrp_tv_rcv

Dostupné je kódovanie PAL a NTSC. Obraz nie je vyladený, v tomto momente, to ale nie je priorita… Ako môžete vidieť na screenshote, použili sme defaultný usrp_tv_rcv python skript:

Vďaka patrí autorovi pôvodných schém – Alexandru Csete (OZ9AEC) Seriál pokračuje, sledujte nás…

Súvisiace články: BackTrack 4 & USRP pt.1, BackTrack 4 & USRP pt.2, |USRP| + |OpenBTS| + |Asterisk| ?!?, SUPER SIM & SIM MAX, DBSRX2 + TVRX = 50 MHz to 2.4 GHz receiver system Welcome to OpenBTS! |64 MHz clock| X-Lite & Twinkle @ Asterisk BackTrack R2 USRP Test shot |RFX900|, USRP |OpenBTS| 52MHz clock, Fake GSM base station = „IMSI catcher“ , Light BTS discovering

Žádný komentář.

Přidat komentář