KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI KAR HÍRADÁSTECHNIKA INTÉZET. Mérőrendszerek automatizálása

Hasonló dokumentumok
KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI KAR HÍRADÁSTECHNIKA INTÉZET

Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Mintavételes szabályozás mikrovezérlő segítségével

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Java II. I A Java programozási nyelv alapelemei

Ismerkedés a Python programnyelvvel. és annak micropython változatával

PYTHON. Avagy hosszú az út a BioPythonig

Labor gyakorlat Mikrovezérlők

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

UTP kábelszegmens átviteltechnikai paramétereinek vizsgálata (HW1-B)

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

A/D és D/A konverterek vezérlése számítógéppel

Informatika terméktervezőknek

Occam 1. Készítette: Szabó Éva

Programozási nyelvek JAVA EA+GY 1. gyakolat

Python tanfolyam Python bevezető I. rész

Satel ETHM-1. Ethernet modul.

loop() Referencia:

Készítette: Nagy Tibor István

Első egyéni feladat (Minta)

Yottacontrol I/O modulok beállítási segédlet

A ComEasy Windows NT/98/ME/2000/XP/Vista/7 és Linux/Unix operációs rendszeren használható.

Labor gyakorlat Mikrovezérlők

S z á m í t ó g é p e s a l a p i s m e r e t e k

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Szkriptnyelvek. 1. UNIX shell

Moduláris USB billentyűzet emulátor

Java II. I A Java programozási nyelv alapelemei

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

Automatizált frekvenciaátviteli mérőrendszer

Roger UT-2. Kommunikációs interfész V3.0

Algoritmizálás és adatmodellezés tanítása 1. előadás

Programozási segédlet DS89C450 Fejlesztőpanelhez

DTMF Frekvenciák Mérése Mérési Útmutató

Programozás II. 2. Dr. Iványi Péter

Kameleon Light Bootloader használati útmutató

AWK programozás, minták, vezérlési szerkezetek

Programozási nyelvek Python

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán

AWK programozás, minták, vezérlési szerkezetek

Modbus kommunikáció légkondícionálókhoz

Szoftvertechnológia alapjai Java előadások

Python bevezető foglalkozás Python bevezető foglalkozás

1. Jelgenerálás, megjelenítés, jelfeldolgozás alapfunkciói

ARM mikrovezérlők programozása

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Ethernet - soros vonali eszköz illesztő felhasználói leírás, és használati útmutató

BMF, Kandó Kálmán Villamosmérnöki Kar, Híradástechnika Intézet. Aktív Szűrő Mérése - Mérési Útmutató

Villamos jelek mintavételezése, feldolgozása. LabVIEW 7.1

Mérés, Vezérlés. mérésadat rögzítés CMC - 99 CMC kis és nagytestvér

SZÁMÍTÓGÉPVEZÉRELT IRÁNYÍTÁSOK

Kommunikáció az EuroProt-IED multifunkcionális készülékekkel

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Készítette: Oláh István mestertanár

SZOFTVERFEJLESZTÉS. Földtudományi mérnöki mesterszak / Geoinformatikus-mérnöki szakirány. 2017/18 II. félév. A kurzus ebben a félévben nem indult

MATLAB alapismeretek II.

SR mini PLC Modbus illesztő modul. Modul beállítása Bemeneti pontok kiosztása főmodul esetén Bemeneti pontok címkiosztása kiegészítő modul esetében

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

INFORMATIKAI ALAPISMERETEK

MINTA Írásbeli Záróvizsga Mechatronikai mérnök MSc. Debrecen,

Programozási nyelvek Java

Bevezetés a méréstechnikába és jelfeldolgozásba 7. mérés RC tag Bartha András, Dobránszky Márk

D/A konverter statikus hibáinak mérése

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Nyolcbites számláló mintaprojekt

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

C programozási nyelv Pointerek, tömbök, pointer aritmetika

6.2. TMS320C64x és TMS320C67xx DSP használata

Java programozási nyelv

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

7. fejezet: Mutatók és tömbök

Tisztelt Telepítő! A központ és az alkalmazás összehangolását a következőképpen hajthatja végre:

Imperatív programozás

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

A ChipScope logikai analizátor

Gépi tanulás a Rapidminer programmal. Stubendek Attila

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

MaxiCont. MOM690 Mikroohm mérő

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

Jotával kompatibilis eszközök listája...2. Tájékoztató a Jota pénztárgép és PC csatlakoztatás használatához...5

PLC Versenyfeladat. XIV. Országos Irányítástechnikai Programozó Verseny Budapest, március Összeállította az EvoPro Kft.

C programozási nyelv

UC100 USB CNC mozgásvezérlő MACH3 programhoz Plugin verzió: V2.105

és az instanceof operátor

A Python programozási nyelv

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

3. Gyors útmutató 4. Garanciakártya

Digitális tárolós oszcilloszkópok

DataScope program SE/SP-300 távadókhoz HASZNÁLATI UTASÍTÁS

Labor gyakorlat Mikrovezérlők

A C# programozási nyelv alapjai

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

PMU Kezdı lépések. 6-0 Csatlakozás LG GLOFA-GM és SAMSUNG PLC-hez. 6-1 Kommunikáció LG PMU és LG GLOFA-GM7 / GM6 / GM4 között

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Átírás:

KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI KAR HÍRADÁSTECHNIKA INTÉZET Infokommunikációs Hálózatok laboratóriumi mérési útmutató Mérőrendszerek automatizálása

Tartalomjegyzék 1. Bevezetés a Python programozási nyelvbe, elméleti áttekintés... 5 1.1. Python szintaktikai elemei... 5 1.1.1. Kommentek... 5 1.1.2. Változók... 5 1.1.3. Operátorok... 6 1.1.4. Utasítások... 7 1.1.5. Függvények... 8 1.1.6. Osztályok... 9 1.1.7. Python csomag menedzsment PIP... 10 1.1.8. Castolás a pythonban... 10 1.2. PyVisa... 10 1.2.1. PyVisa eszközkezelő... 11 1.2.2. PyVisa műszerek definiálása... 13 1.2.2.1. GPIB kommunikáció ismertetése... 13 1.3. Matplotlib... 18 1.3.1. Numpy és String Numpy konverzió, Numpy adatformátum mentése... 18 1.3.2. PyPlot a matplotlibben... 19 1.4. PyCharm fejlesztői környezet... 20 1.5. Minta programok... 22 1.5.1. Képpontok feldolgozása... 22 1.5.2. A kommunikáció fölvétele emulált műszerekkel, pyvisa-sim backendben.... 23 1.5.3. Adatok kijelzése vízesés diagrammal... 25 1.6. Feladatok... 27 1.6.1. Képpontok kiírása egyszerű diagramra... 27 1.6.2. Képpontok vízesés diagramon való ábrázolása.... 27 2. Splitter karakterisztikájának mérése... 28 2.1. A mérés általános fölépítése... 28... 28 2.2. Mérési módszerek... 28 2.2.1. Csúcsegyenirányítóval való frekvencia-amplitúdó karakterisztika felvétele... 28 2.2.2. Referencia négyszögjellel való frekvencia-amplitúdó karakterisztika felvétele... 30 2.2.3. Átviteli karakterisztika mérése diszrét pontonként... 30 2.3. Mérendő feladatok... 31 3. Ethernet vonali kódolás vizsgálata... 31 2 Villamosmérnöki Kar

3.1. A Mérés fölépítése... 32 4. Cat5, Cat5e, Cat6 kábel paramétereinek mérése... 32 4.1. Mérendő feladatok... 33 4.1.1. Beiktatási csillapítás mérése... 33 4.1.2. Reflexiós csillapítás mérése... 33 4.1.3. Áthallási csillapítás mérése... 34 5. Pyvisa szimulációs backenddel szoftverfejlesztés emulált műszerekre... 34 5.1. Mérés menete... 34 5.2. Feladatok... 35 5.2.1. Időtartományú jel kivétele emulált műszerből, ábra kirajzoltatása... 35 5.2.2. Frekvenciatartományú jel kivétele emulált műszerből, ábra kirajzoltatása, (illetve vízesésdiagrammal való megjelenítése... 35 3 Villamosmérnöki Kar

Ezen jegyzet elsősorban az Villamosmérnöki Kar Híradástechnika Intézet hallgatói számára készült, azonban más azonos iparágban dolgozó szakemberek számára is hasznos dolgokat tartalmazhat. A jegyzet tartalmaz egy általános bevezetőt példaprogramokkal, amit célszerű a kedves olvasónak kipróbálnia a tudás elmélyítésének érdekében, a többi rész közvetetten az egyes mérésekhez kapcsolódik, ezen mérési eljárások a jelen kor legmodernebbjeinek tekinthető, ezért minden híradástechnikai szakembernek hasznos ismereteket tartogathat. Bízom benne, hogy e jegyzet elősegíti a kedves olvasót a pályájának elindítására. 4 Villamosmérnöki Kar

1. Bevezetés a Python programozási nyelvbe, elméleti áttekintés A Python mint programozási nyelv a napjainkban egyre inkább előkerülő nyelv, ez elsősorban a széles körben rendelkezésre álló modulállománynak köszönhető. Esetünkben elsősorban a következő modulokat fogjuk használni: - Pyvisa - Matplotlib - Time - Wx Ezek a modulok szabadon felhasználhatók szerkeszthetők, és nem utolsó sorban platformfüggetlenek. 1.1. Python szintaktikai elemei A szintaktikának gyakorlatilag egy adott programozási nyelv helyesírási szabályát szoktuk nevezni, ezen belül vannak az elemek, amik egyes részeit képezik a programozási nyelvnek. 1.1.1. Kommentek Ezeket a program részeket a compiler a program a program futása során figyelmen kívül hagyja Jelölése sor esetén: # karakterrel Jelölése blokk esetén: """ <code> """ 1.1.2. Változók A C programozási nyelvhez hasonlóan megtalálható valamennyi változó típus, azonban a C vel ellentétben itt nem szükséges az egyes változókat deklarálni. Típus Memória hely intiger 1 Byte String - Float 4 Byte long 4 Byte complex - A változók alapértelmezetten lokálisak, tehát csak egy class-on belül használhatók, ahhoz, hogy a modulon belül más class is használhassa az adott változót global kiterjesztéssel kell ellátnunk. global prt 5 Villamosmérnöki Kar

1.1.3. Operátorok A C programozási nyelvhez hasonlóan tudjuk használni az operátorokat. A legfontosabb általunk használt operátorok: Megnevezés szintaktika megjegyzés Összeadás + Két nem karakter típusú változó összeadása Konketenáció + Két sztring összefűzése Szorzás * Két nem karakter típusú változó összeszorzása Exponenciális ** Az első operandus az alap, a második a kitevő. Értékadás = Egy tetszőleges változónak inicializálása Egyenlőség reláció == Egyenlőség feltétel megadása, IF elágazás esetén használhatjuk, figyelve, hogy a két operandus azonos típusú legyen Tagadás reláció!= Tagadás feltétel megadása, IF elágazás esetén használhatjuk, figyelve, hogy a két operandus azonos típusú legyen Tagadás reláció <> Tagadás feltétel megadása, IF elágazás esetén használhatjuk, figyelve, hogy a két operandus azonos típusú legyen Kisebb reláció < Kisebb feltétel megadása, IF elágazás esetén használhatjuk, figyelve, hogy a két operandus azonos típusú legyen Nagyobb reláció > Nagyobb feltétel megadása, IF elágazás esetén használhatjuk, figyelve, hogy a két operandus azonos típusú legyen Kisebb egyenlő <= Feltétel megadása, IF elágazás esetén használhatjuk, figyelve, hogy a két operandus azonos típusú legyen Nagyobb egyenlő >= Feltétel megadása, IF elágazás esetén használhatjuk, figyelve, hogy a két operandus azonos típusú legyen Logikai És and Két operandus közti és kapcsolatot teremti meg Logikai Vagy or Két operandus közti vagy kapcsolatot teremti meg 6 Villamosmérnöki Kar

Bitenkénti És & Két változó bitjei közötti és művelet Bitenkénti Vagy Két változó bitjei közötti vagy művelet Bitenkénti kizáró vagy ^ Két változó bitjei közötti XOR művelet Bitenkénti Negáció ~ Bináris balra shiftelés << Bináris jobbra shiftelés >> 1.1.4. Utasítások 1.1.4.1. IF-Else Feltételt vizsgáló futásidejű utasítás Ha a feltétel teljesül, akkor az ahhoz tartozó program blokk fut le, ha nem akkor folytatódik a vizsgálat, ha sehol nem talált teljesülő feltételt, akkor végül az else ág fut le. if i == (int(1000) - 1): freq_str = freq_str + act_freq_str trac = trac + level else: freq_str = freq_str + act_freq_str + ',' trac = trac + level + ',' 1.1.4.2. For ciklus Hasonlóan a C-ben ismerttel itt a for tartalmazza magát a kezdeti feltételt, lépést illetve a befejezés értékét. for i in range(1, int(1000) - 1, 1): level_sci = float(waveform[i]) level_fl = float(('%f' % level_sci)) level = str(float("{0:.6f}".format(level_fl))) act_freq_str = str(act_freq ) act_freq = (act_freq + freq_step) 1.1.4.3. While ciklus A Python nyelv csak While-t ismer, mindenképpen elől tesztelő ciklusnak kell lennie, a kezdeti értéket nekünk kell megadnunk. 7 Villamosmérnöki Kar

swe_stat=0 while swe_stat==0: #time.sleep(6) stat=inst.query('sweep_state?') swe_stat=stat.split(',') swe_stat=int(swe_stat[0]) 1.1.4.4. Break A break utasítás hatására a program azonnal befejezi az adott ciklusban való futását. for i in range(0, no_of_values_int, 1): level = str(trac_spl[i]) level_dbuv=float(level)+107 level_dbuvm=level_dbuv+k_fact level=str(level_dbuvm) act_freq_str = str(act_freq/1000000) act_freq = (act_freq + freq_step) if i == (no_of_values_int-1) : freq_str = freq_str + act_freq_str trac = trac + level break else: freq_str = freq_str + act_freq_str + ',' trac = trac + level + ',' 1.1.5. Függvények Függvényeket igen célszerű használni, ha sokszor föl akarjuk használni. A függvényeknek[1.1.5.-1] az előnye, hogy a módosítást csak egyszer kell végrehajtanunk az adott függvényben. Ellenben, ha a programkódba implementáltuk volna, akkor sokszor kell módosítanunk és ez mondanom sem kell, hogy növeli a hiba lehetőségét. def write(self, string_wr): self.card.write('++auto 0') self.card.write(string_wr) [1.1.5.-1] return 'succes' A függvény hívása modulon belül igen egyszerűen; az adott függvény nevének hivatkozásával történik. [1.1.5.-2] write('*rst') [1.1.5.-2] 8 Villamosmérnöki Kar

Abban az esetben, ha a függvény más modulban [1.1.5-3] helyezkedik el szintén egyszerűen meghívható. [1.1.5-4] class ResourceManager(): def init (self, backend, port): global be be=backend global prt prt=port #global ip_add #ip_addr=ip_add rm = visa.resourcemanager(backend) [1.1.5.-3] #self.card = rm.open_resource(port + '::INSTR', read_termination='\n', write_termination='\r\n') def list_resources(self): rm = visa.resourcemanager(be) list_res = rm.list_resources() return list_res A függvény a prologix_gpib.py modulban helyezkedik el, ahhoz hogy a saját programkódunk meg tudja hívni az előbb említett modulban lévő függvényt hozzá kell csatolnunk(importálnunk kell) a saját programunkhoz. [1.1.5.-5] import prologix_gpib [1.1.5.-5] E művelet után már könnyedés meghívható az init majd a list_resources függvény. [1.1.5.-6] rm=prologix_gpib.resourcemanager('@py', 'COM7') [1.1.5.-6] rm.list_resources() Ezt dot notation -nak hívják, ezzel a módszerrel igen könnyen átjárhatunk egyik modulból a másikba. 1.1.6. Osztályok A Python objektumorientált programozási nyelv, ezért szükségesek olyan Osztályok, amelyeket, mint objektum tudunk kezelni és a különböző hívásoknak az értékeit külön-külön tárolja el a számítógép memóriájában. [1.1.5.-7] class ResourceManager(): def init (self, backend, port): global be be=backend global prt prt=port #global ip_add #ip_addr=ip_add rm = visa.resourcemanager(backend) [1.1.5.-7] #self.card = rm.open_resource(port + '::INSTR', read_termination='\n', write_termination='\r\n') def list_resources(self): rm = visa.resourcemanager(be) 9 Villamosmérnöki Kar

list_res = rm.list_resources() return list_res A ResourceManager függvényt kívülről az init -nak megfelelő argumentumokkal kell meghívnunk, innentől kezdve az osztály többi függvényére hatással lesz az init -ben végrehajtott művelet. 1.1.7. Python csomag menedzsment PIP Ahhoz, hogy a különböző python modulokat egyszerűen tudjuk letölteni és frissíteni szükségünk van az úgynevezett pip-re, ez gyakorlatilag a python modul könyvtárába letölti a kívánt modult. A pip windows és linux környezetben egyaránt elérhető. Parancssor szintaktikája: C:\WINDOWS\system32>pip install pyvisa-py 1.1.8. Castolás a pythonban Mint minden magasszintű programnyelvben itt is van castolásra lehetőségünk. A castolás gyakorlatilag a változó eredeti típusát képes megváltoztatni az általunk kiválasztott változó típusra. Példák castolásra: level_sci = float(spectrum[i]) #cast the i part of spectrum block to float #type #be careful, not every format supported by casting! Cast típusok: float,int,long, str, cmplx 1.2. PyVisa A Visa (Virtual Instrument Software Architecture) mint a neve is mutatja egy virtuális műszer halmaz, amihez az adott rendszeren belül lévő műszerek mindegyike hozzátartozik. A PyVisa valamennyi ismert interfész típust le tud kezelni természetesen a megfelelő illesztő driver segítségével. Leggyakrabban előforduló interfészek a méréstechnikában: - GPIB - RS232 - Ethernet - USB 10 Villamosmérnöki Kar

1.2.1. PyVisa eszközkezelő Az eszközöket három fajta módszerrel tudjuk lekezelni - Pure python backend - National Instrument Visa backend - Szimulációs backend 1.2.1.1. Pure python backend Ez a backend közvetlen a py-visa-t használja. Az interfész drivereken kívül nem igényel egyéb más vállalatok által kibocsátott drivert. [1.2.1.1.-1] [1.2.1.1.-1] Definiálása a programban a következőképp történik: rm=visa.resourcemanager('@py') Ezt a backendet kezeljük fenntartásokkal, mivel egyes interfészeknek a gyártói (GPIB) nem adtak ki önálló drivert a hardvereikre, az csak az arra készült VISA szoftverrel működik! Lehetőség szerint ezt a backendet csak linux-os környezetben használjuk. 1.2.1.2. Ni Visa backend Ennél a backendnél a PyVisa az NI Visa-val szorosan együttműködve kezeli le a műszereket. Jelen esetben a PyVisa interfész driverekkel közvetlen nem tartja a kapcsolatot, a PyVisa feladata jelen esetben kizárólag a Python kód és a NI Visa driver közötti átjáró létesítése. [1.2.1.2.-1] 11 Villamosmérnöki Kar

[1.2.1.2.-1] Látható, hogy az NI Visa az USB interfészeken kívül a többi lehetséges interfész típus driverét tartalmazza. Az USB-s műszerek driverjeit a műszergyártók általában a műszer belső memóriájába beleteszik, hogy a vezérlőszámítógép automatikusan föl tudja az első csatlakozáskor telepíteni, azonban az idő előre haladtával újabb operációs rendszereknél előfordulhat, hogy a régi driver nem működik megfelelően, ezért az ilyen esetek elkerülésének érdekében a nagyobb műszergyártók egyesített drivereket bocsátanak ki (pl. Agilent Connection Expert) amik valamennyi az adott gyártóhoz tartozó USB-s interfész drivert tartalmaznak. Definiálása a programban a következőképp történik: rm=visa.resourcemanager('@ni') 1.2.1.3. Szimulációs backend Ez a backend tesztelési célokat szolgál, ennél a típusú backendnél nincsen szükség eszközillesztő szoftverre, mivel a műszereket egy Yaml formátumú kóddal emuláljuk. [1.2.1.3.-1] 12 Villamosmérnöki Kar

[1.2.1.3.-1] Ennél a backendél különös figyelemmel kell lennünk a termination beállításokra, mivel itt adatbázisból dolgozunk ezért nem precíz / hiányos műszer definiálás esetén a program hibával térhet vissza. Definiálása a programban a következőképp történik: rm=visa.resourcemanager('@sim') 1.2.2. PyVisa műszerek definiálása Mint minden programozási nyelvben a műszereinket itt is definiálnunk kell ahhoz, hogy kommunikálni tudjunk vele. 1.2.2.1. GPIB kommunikáció ismertetése Ezt a buszt a 60-as években kezdték el fejleszteni (general purpose interface bus=általános célú interfész busz) A cél nyilvánvalóan az egységesítés volt. Előnyeihez tudom sorolni, hogy viszonylag egyszerűen tudunk vele adatokat küldeni, fogadni, címezni, valamint a műszerek jelentős részén még ez az interfész található meg, de hatalmas hátránya, hogy a maximális megengedett hossza a kábelnek kb. 30m, tehát nagyobb távolságok áthidalására alkalmatlan. 13 Villamosmérnöki Kar

Az interfészt kifejezetten méréstechnikai célra fejlesztették ki. A GPIB csatlakozó [1.2.2.1.-1] összesen 24 darab pint tartalmaz, ebből 8 adat, 3 kommunikációs, 5 vezérléshez szükséges pin, valamint ezenkívül tartalmaz 8 darab föld pint is tartalmaz. A rendszerben az eszközök háromféle szerepet tölthetnek be: -hallgató (listener) -beszélő (talker) -vezérlő (controller): a vezérlő képes címezni a többi eszközt A pinek a következő funkciókat látják el: [1.2.2.1.-1] Adatvezetékek: -D0-D7: adat vezetékek, maximális átviteli szimbólum 9600 Baud/s 64 kb/s Kommunikációhoz szükséges vezetékek(státusz flagek): -NRFD: nem áll készen a listener az adatok fogadására -NDAC: jelzi nekünk a vevő, hogy elfogadta vagy nem fogadta el a beérkező adatot. -DAV: adott adat érvényességét jelző státusz. Vezérléshez szükséges vezeték. -ATN(attention): True -a vezérlő adatokat küld az eszközöknek False -a vezérlő fogadta az adatokat a műszerektől -IFC(interface clear): inicializálja a buszt, újraindítja -REN(remote enable): átállítja a műszereket távvezérlési módba 14 Villamosmérnöki Kar

-SRQ(service request): bármelyik a rendszeren lévő eszköz képes erre a vezetékre írni és ezzel egy megszakítás igényt továbbítani a vezérlőnek. -EOI(end or identify): a műszerek erre a vezetékre kiadott jellel jelölik meg az üzeneteik végét, a vezérlő pedig arra használja, hogy a rendszeren lévő eszközöknek megmondja, hogy az üzeneteket vették. Földelő vezetékek. GND18-GND24 Példa a handshakeing-re(4.2.-2 ábra): [1.2.2.1.-2] Az [1.2.2.1.-2] ábrán látható, hogy jelen esetben a vezérlő küld adatokat az eszköznek (ATN=True). A DAV jelzi a rendszerben lévő eszközöknek, hogy adás van a jelfolyam érvényes (DAV=True). Az NRFD jelzi a vezérlő számára, hogy mikor küldheti a következő adatot, jelen esetben ha True akkor küldheti a következő adatot a vezérlő. Az NDAC számunkra azt jelzi, hogy mennyi adatot fogadott el az eszköz, tehát ezt a vevő eszköz állítja be. Általános hálózat fölépítése [1.2.2.1.-3]. 15 Villamosmérnöki Kar

[1.2.2.1.-3] Az [1.2.2.1.-3] ábrán látható, hogy az egyes alkotóelemek a vezérlőn kívül mind vevő és adó funkciót is el látnak. 1.2.2.2. GPIB interfésszel rendelkező műszerek definiálása GPIB interfésszel rendelkező műszerek definiálása a következőképpen zajlik: rm=visa.resourcemanager('@ni') inst=rm.open_resource('gpib0::7::instr', read_termination='\n', write_termination='\n') A sor elemeinek a jelentése rm open_resource GPIB0::7::INSTR -erőforrás kezelő -visa eszközmegnyitó függvény -0 GPIB board-on lévő 7-es GPIB című műszer megnyitása read_termination= \n -a GPIB válaszüzenetnek a végét jelző karakter definiálása write_termination= \n --a GPIB-n küldött üzenet végét jelző karakter definiálása Az utóbbi kettő definiálása a GPIB interfész estén nem kritikus, mivel ennél a fajta interfésznél hardveresen implementálva van egy az üzenet végét jelző huzal eoi, ezt a műszer 1 logikai szintre állítja a sztring küldésének befejeztével. 1.2.2.3. Ethernet interfésszel rendelkező műszerek definiálása Ethernet interfésszel rendelkező műszerek definiálása a következőképpen zajlik: rm=visa.resourcemanager('@ni') inst=rm.open_resource('tcpip0::10.0.2.6::55555::socket',write_termination=' ;',read_termination=';') A sor elemeinek a jelentése rm open_resource -erőforrás kezelő -visa eszközmegnyitó függvény TCPIP0::10.0.2.6::55555::SOCKET -0 Eth board-on lévő 10.0.2.6-es IP címen 55555 portra konfigurált műszer megnyitása read_termination= ; -az Etherneten küldött válaszüzenetnek a végét jelző karakter definiálása write_termination= ; -az Etherneten küldött üzenet végét jelző karakter definiálása 16 Villamosmérnöki Kar

Az utóbbi két argumentum nagyon fontos az Eth kommunikációnál, mivel itt nincs lehetőség hardveres jelzésrendszer fölépítésére. 1.2.2.4. RS232 interfésszel rendelkező műszerek definiálása Ethernet interfésszel rendelkező műszerek definiálása a következőképpen zajlik: rm=visa.resourcemanager('@ni') inst=rm.open_resource('asrl1::instr',read_termination = '\r',write_termination='\r\n') #basic config for communication inst.baud_rate=9600 inst.data_bits=7 inst.timeout=20000 inst.parity=constants.parity.odd #it can be "even" "odd" "none" A sor elemeinek a jelentése rm open_resource ASRL1::INSTR -erőforrás kezelő -visa eszközmegnyitó függvény -ASRL1 porton lévő műszer megnyitása read_termination= ; -az RS232 interfészen küldött válaszüzenetnek a végét jelző karakter definiálása write_termination= ; - az RS232 interfészen küldött üzenet végét jelző karakter definiálása inst.baud_rate inst.data_bits inst.parity - az adott soros porthoz tartozó baud-rate konfigurálása -az adott soros porthoz tartozó adat bitek számának konfigurálása -az adott soros porthoz tartozó paritás bit státuszának megadása Az utóbbi három konfigurálása az RS232 kommunikációban kiemelten fontos, mivel a műszer nem tudja a vezérlő interfész kommunikációs paramétereire szinkronizálni, külön-külön a műszeren és a vezérlő számítógépen is konfigurálni kell ezeket a változókat, a kommunikáció kizárólag abban az esetben lesz csak sikeres, ha a két eszköz soros interfészeinek változói megegyeznek. 1.2.2.5. USB interfésszel rendelkező műszerek definiálása USB interfésszel rendelkező műszerek definiálása a következőképpen zajlik: rm=visa.resourcemanager('@ni') inst=rm.open_resource('usb0::0x0957::0x1722::my45002491::0::instr',read_ter mination = '\r',write_termination='\r\n') A sor elemeinek a jelentése 17 Villamosmérnöki Kar

rm open_resource -erőforrás kezelő -visa eszközmegnyitó függvény USB0::0x0957::0x1722::MY45002491::0::INSTR -USB01 porton lévő műszer megnyitása read_termination= ; -az USB interfészen küldött válaszüzenetnek a végét jelző karakter definiálása write_termination= ; - az USB interfészen küldött üzenet végét jelző karakter definiálása 1.3. Matplotlib A matplotlib pythonban megírt mátrix kezelő modul, függvényeinek funkciói nagyban megegyeznek a MatLab-ban korábban megismert függvényekkel. Ebben a fejezetben csak a számunkra fontos matplotlib függvényeket ismertetem. A matplotlib-et modulként kell importálni a python gyökérkönyvtárból a következő módon: import matplotlib Lehetőségünk van a modulokon belüli funkciók önálló használatának megkönnyítésére, a következő példában a pyplot függvényhez tudunk rövidített definíció szerű nevet készíteni: import matplotlib.pyplot as plt 1.3.1. Numpy és String Numpy konverzió, Numpy adatformátum mentése A numpy a matplotlib szerves részét képezi, mivel e modul nélkül a python stringjeit nem lehetne, vagy csak igen nehéz erőfeszítések mellett a matplotlib számára értelmezhető formátumra alakítani. A matplotlib számára értelmezhető formátumot a következő képpen tudjuk elérni: e = np.fromstring(var, dtype=float, sep=',') A fromstring függvénynek három fő argumentuma van: var dtype sep -a kívánt változó sztring, amit numpy formátumúvá szeretnénk alakítani -a formázás után kívánt adattípus -az átalakítandó sztringben lévő számok közötti szeparátor karakter 1.3.1.1. Numpy adatformátumba való mentés 18 Villamosmérnöki Kar

Igen gyakran előfordul, hogy bizonyos adatokat újra föl szeretnénk használni a későbbiekben, azonban globális változókban való tárolásuk igen bonyolult problémákat vethet fel, ezeknek a problémák kezelésére nyújthat igen nagy segítséget a numpy file illetve adatkezelő függvényei. Numpy adatformátumú változó mentése npy formátumú file-ba np.save("wf_hp.npy", z) Numpy adatformátumú változó visszahívása npy formátumú file-ból z = np.load("wf_hp.npy") Az első mentésnél létrehozza az np.save művelet a wf_hp.npy file-t. 1.3.2. PyPlot a matplotlibben Ez a Class tartalmazza a legfontosabb grafikai függvényeket a matplotlib-ben. Ezeknek a függvényeknek a funkciói nagyban megegyeznek a MatLab-ban már korábban megismert függvények paramétereivel. 1.3.2.1 PyPlot plot Ez a legegyszerűbb virtuális megjelenítés, ennél a függvénynél összesen kettő bemeneti változó van. import matplotlib.pyplot as plt #use the pyplot this name x = np.fromstring(freq, dtype=float, sep=',') y = np.fromstring(trac, dtype=float, sep=',') plt.figure(1) plt.plot(x, y) plt.ion() plt.show() #ploting only an empty picture #plot the x y diagram #enable to refresh the chart #show the figure 1 with the x y plot Kitétel: az x és y numpy tömb elemeinek számának meg kell egyeznie! 1.3.2.2. PyPlot imshow Ez a függvény több rekordból álló numpy tömböt képes megjeleníteni, igen egyszerűen alkalmazható spektrum monitoring rendszereknél úgynevezett waterfall diagramm készítésére. x = np.fromstring(freq, dtype=float, sep=',') y = np.fromstring(freq1, dtype=float, sep=',') z = np.vstack((x, y)) #concetanate the x and y to a numpy format block 19 Villamosmérnöki Kar

plt.imshow(z, cmap='jet') #the Z is an numpy format block plt.ion() plt.show() Kitétel: a z numpy tömb különböző sorainak elemszámának egyenlőnek kell lennie a másik rekord elemszámával! 1.4. PyCharm fejlesztői környezet A méréseinknél a JetBrains által fejlesztett PyCharm fejlesztői környezetet fogjuk használni. Az egyszerű kezelhetőség és a felhasználóbarát felület miatt választottuk ezt az IDE-t. A PyCharm legfrissebb community verziója letölthető az alábbi linkről: https://www.jetbrains.com/pycharm/download/#section=windows A community verzió és a professional verzió között szolgáltatási különbségek vannak. Ahhoz, hogy a PyCharm-ban dolgozhassunk le kell töltenünk hozzá a python-t, ez lesz később interpreterként hozzárendelve a kódunkhoz. A python az alábbi linken keresztül tölthető le: https://www.python.org/downloads/ 2.7-es python verziót használunk, a 3.x és 2.x verziójú python között szintaktikai különbségek vannak. Projekt létrehozása [1.4.-1] File New Project Interpreter kiválasztása [1.4.-2] Create [1.4.-1] 20 Villamosmérnöki Kar

[1.4.-2] A projektben új file létrehozása. [1.4.-3] Létrehozni kívánt file típus kiválasztása. [1.4.-4] [1.4.-3] [1.4.-4] Ha kellő számú saját modullal rendelkezünk, akkor így néz ki az ablakunk. [1.4.-5] 21 Villamosmérnöki Kar

[1.4.-5] 1.5. Minta programok A következő programok hardverek nélkül kipróbálhatók. Jelen mintaprogramokhoz szükség lehet a PyVisa sim backendjére. A pyvisa a pip-en keresztül ingyenesen letölthető. 1.5.1. Képpontok feldolgozása A következő példában egy 500 képpontos idő-feszültség diagrammot olvasunk ki: import time import matplotlib import matplotlib.pyplot as plt import numpy as np waveform= str({wave1_text file ból be kell másolni}) waveform=waveform.split(",") print waveform[1] time_step=1 act_time=200 time_str="" trac="" for i in range(1, int(498), 1): #here we can add correction factors to 22 Villamosmérnöki Kar

the measured points, level_sci = float(waveform[i]) level_fl = float(('%f' % level_sci)) level = str(float("{0:.6f}".format(level_fl))) act_time_str = str(act_time ) #here we can calculate the points for the time axis act_time = (act_time + time_step) if i == (int(498) ): time_str = time_str + act_time_str trac = trac + level else: time_str = time_str + act_time_str + ',' trac = trac + level + ',' #print trac #print freq_str x = np.fromstring(time_str, dtype=float, sep=',') #to numpy type conversion y = np.fromstring(trac, dtype=float, sep=',') #to numpy type conversion #f=np.fft.fft(y) plt.plot(x,y) #plt.ylim((0,500)) plt.show() 1.5.2. A kommunikáció fölvétele emulált műszerekkel, pyvisa-sim backendben. Egyszerű név lekérdezése a megcímzett műszernek: import time import visa rm=visa.resourcemanager('@sim') #print rm.list_resources('?*') print(rm.list_resources()) inst=rm.open_resource('asrl3::instr', read_termination='\n',write_termination='\r\n') print(inst.query('*idn?')) Rövid adatsor kinyerése az emulált műszerből. import time import visa rm=visa.resourcemanager('@sim') #print rm.list_resources('?*') print(rm.list_resources()) inst=rm.open_resource('asrl3::instr', 23 Villamosmérnöki Kar

read_termination='\n',write_termination='\r\n') print(inst.query('trac?')) #('TCPIP0::localhost:4444::inst0::INSTR', 'USB0::0x1111::0x2222::0x4444::0::INSTR', 'ASRL3::INSTR', 'USB0::0x1111::0x2222::0x2468::0::INSTR', 'GPIB0::4::65535::INSTR', 'ASRL2::INSTR', 'ASRL1::INSTR', 'TCPIP0::localhost::inst0::INSTR', 'USB0::0x1111::0x2222::0x3692::0::INSTR', 'USB0::0x1111::0x2222::0x1234::0::INSTR', 'GPIB0::9::65535::INSTR', 'ASRL4::INSTR', 'TCPIP0::localhost:3333::inst0::INSTR', 'TCPIP0::localhost:2222::inst0::INSTR', 'GPIB0::8::65535::INSTR', 'GPIB0::10::65535::INSTR') #2.10938,1.98438,1.78125,1.60938,1.5,1.39063 result Hullámforma kiolvasása emulált műszerből. (Adatfeldolgozási metódusa megegyezik az 1.5.1. részben látottakkal.) import time import matplotlib import matplotlib.pyplot as plt import numpy as np import visa rm=visa.resourcemanager('@sim') #print rm.list_resources('?*') print(rm.list_resources()) inst=rm.open_resource('asrl3::instr', read_termination='\n',write_termination='\r\n') waveform=(inst.query('trace?')) waveform=waveform.split(",") print waveform[1] time_step=1 act_time=200 time_str="" trac="" for i in range(1, int(498), 1): the measured points, #here we can add correction factors to level_sci = float(waveform[i]) level_fl = float(('%f' % level_sci)) level = str(float("{0:.6f}".format(level_fl))) act_time_str = str(act_time ) #here we can calculate the points for the time axis act_time = (act_time + time_step) if i == (int(498) ): time_str = time_str + act_time_str trac = trac + level else: time_str = time_str + act_time_str + ',' trac = trac + level + ',' #print trac 24 Villamosmérnöki Kar

#print freq_str x = np.fromstring(time_str, dtype=float, sep=',') #to numpy type conversion y = np.fromstring(trac, dtype=float, sep=',') #to numpy type conversion #f=np.fft.fft(y) plt.plot(x,y) #plt.ylim((0,500)) plt.show() 1.5.3. Adatok kijelzése vízesés diagrammal Lehetőségünk nyílik a numpy és matplotlib segítségével komplexebb kijelzési feladatok ellátására is, mint például a vízesés diagramm. Rendszertechnikai fölépítés adatfeldolgozás: 25 Villamosmérnöki Kar

1.5.3.1. Imshow használata wf = [0.1, 0.01, 0.8, 0.4] #area definition plt.figure(1) wf = plt.axes(wf) # this function is plot the Z data like an image # the Z is a data records of the spectral components wf.imshow(z, cmap='jet', extent=[100,1000, 10, 0],aspect='auto') plt.ion() #enable the interactive diagram refresh plt.show() #show the diagram 1.5.3.2. Konkatenáció használata a WF adathalmazhoz z = np.fromstring(trac, dtype=float, sep=',') e = np.fromstring(trac, dtype=float, sep=',') z = np.vstack((z, e)) # this function is concatenate the z and e array np.save("wf.npy", z) # this function is save the z numpy array to wf.npy 26 Villamosmérnöki Kar

1.6. Feladatok Ezek a feladatok lényegében az otthoni önálló felkészülést szolgálják, a feladatok nagyrésze a matplotlib illetve a numpy csomagok használatának megértésére nyújt lehetőséget, illetve betekintést ad az emulált műszerek vezérlésének a világába. 1.6.1. Képpontok kiírása egyszerű diagramra a) írassa ki az alábbi 10 elemű jelfolyamrészletet x-y diagramra: 1.67188,1.60938,1.4375,1.3125,1.28125,1.3125,1.25,1.32813,1.34375,1.40625 Az ábrán az x skálázása tetszőleges lehet, azonban figyeljünk, hogy az x skála elemszámának meg kell egyeznie az y elemszámával. b) írassa ki a wave2_text file-ban lévő 500 elemű jelfolyamrészletet x-y diagramra: Figyeljen, hogy az x skála osztása 0-val kezdődjön és képpontonként 4 [ns]-mal növekedjen az értéke. c) Rajzoltassa ki az előző feladatban megadott jelfolyamnak a spektrumképét, ehhez használja a numpy.fft funkcióját, az eredmény egy valós és képzetes függvény, a diagramon elegendő a valós rész ábrázolása. 1.6.2. Képpontok vízesés diagramon való ábrázolása. Ábrázolja az wave3_text file-ban lévő 800 pontból álló spektrumot vízesés diagrammal, a vízesés diagram 20 lefutást követően álljon le, és a vízesés diagramm mindegyik sora a következő jelfolyamot tartalmazza. 27 Villamosmérnöki Kar

2. Splitter karakterisztikájának mérése Feladat egy ADSL splitter átviteli karakterisztikájának mérése különböző módszerekkel: 2.1. A mérés általános fölépítése [2.2.-1] A splitter a bemenetről érkező jelet 4 khz alatt tovább engedi drasztikus jelcsillapítás nélkül a PSTN készülék felé. A fő mérési feladat a be és kimeneti karakterisztika fölvétele frekvencia függvényében. 2.2. Mérési módszerek 2.2.1. Csúcsegyenirányítóval való frekvencia-amplitúdó karakterisztika felvétele A mérendő áramkörök felépítése [2.2.1.-1]: 28 Villamosmérnöki Kar

[2.2.1.-1] Ennek a mérési elvnek a lényege, hogy a bemenetre egy sweep generátor által adott jel hatására a kimeneten gyakorlatilag a szűrő frekvencia-amplitúdó karakterisztikája olvasható le. Jelen mérésnél a telefon kimenet 600 Ohm-os lezárásától eltekintünk. A mérés megvalósítása: [2.2.1.-2] A mért eredményt az Oszcilloszkóp kijelzőjéről szkript segítségével le kell mentenünk a számítógépre, majd matplotlib programmal ki kell tudnunk íratni egy általunk definiált x-y típusú diagrammra. A diagramm y osztását voltban adjuk meg, az x osztását Hz-ben. Trigger jelként az oszcilloszkóp CH2 -re kötött szinkron jel felfutó élét válasszuk. Frekvencia tengely meghatározása: Start frekvencia (képernyő bal széle): Abban az esetben, ha a felfutó szinkronjelre triggerelünk a képernyő bal széle a sweepelő generátor start frekvenciája (fstart) lesz. Stop frekvencia (képernyő jobb széle): Lehetőség szerint a képernyőn legfeljebb csak 1 teljes periódust lássunk. A jelforma ismétlődésének kezdete jelzi, hogy a következő peridódusba léptünk ez a pont reprezentálja a stop frekvenciát. Δf = span data point [2.2.1.-3] A data point az a pont, ahol a jelforma elkezd ismétlődni, ezt a pontot előzetesen meg kell határozni, és a programban is eddig a pontig szükséges feldolgozni a hullámformát. A Δf megadja a diagram x tengelyéhez nélkülözhetetlen frekvencia léptéket. Az aktuális indexhez tartozó frekvencia értéke a következő: 29 Villamosmérnöki Kar

f = f + (Δf i) [2.2.1.-4] Ügyeljünk arra, hogy az x-y diagramm kirajzoltatásakor az y illetve az x tengelyhez tartozó adatsorok elemszáma megegyezzen. 2.2.2. Referencia négyszögjellel való frekvencia-amplitúdó karakterisztika felvétele A mérést egy bizonyos frekvenciát adó négyszögalakú vizsgálójellel mérjük a következő összeállítás szerint: A vizsgáló négyszögjel spektrális összetevői: [2.2.2.-1] [2.2.2.-2] Ennél a típusú mérésnél elegendő a megfelelő eredmény érdekében a 10 felharmonikusig fölvenni a diagrammot. Az oszcilloszkópba a splitteren keresztül menő jelfolyam érkezik, ez a jelfolyam a splitter karakterisztikájának megfelelően módosult. Az oszcilloszkópon kijelzett jelalakot FFT függvény segítségével frekvencia tartományú függvénnyé alakítjuk. Ahhoz, hogy szinthelyes értéket kapjunk először is a végeredményt kompenzálni kell a négyszög felharmonikusainak lecsengéséből adódó hibával ezt *n-el való szorzással tudjuk kompenzálni. Mivel folytonos jelről beszélünk, ezért a jelfolyam valamennyi pontját a k-kompenzációs faktorral be kell szoroznunk. A kompenzációs faktor kiszámítása: k = n data points i [2.2.2.-3] Az i az adott adatpont indexét jelöli. A szűrő átviteli karakterisztikáját burkoló függvény segítségével kaphatjuk meg. 2.2.3. Átviteli karakterisztika mérése diszrét pontonként Ez a mérés nagyon hasonló az előzőkhez, ellenben itt vezérléssel állítunk be a referencia jelet és a multiméterből kiolvasott eredményeket tesszük ki a diagramra, természetesen ezt léptetve végezzük(gyakorlatilag igen lassan sweepelünk a referencia generátorral. A mérés felépítése lényegében kis módosítással a következő: 30 Villamosmérnöki Kar

[2.2.3.-1] A generátort a szintkivétel előtt a kívánt frekvenciára kell léptetni. 2.3. Mérendő feladatok a) Mérje meg a kimeneti jelalakot a splitter adsl kimenetén majd a pstn kimenetén a 2.2.1. módszerrel, a lementett képet csatolja hozzá a jegyzőkönyvhöz. b) Mérje meg a kimeneti jelalakot a splitter adsl kimenetén majd a pstn 2.2.2. módszerrel, a lementett FFT képet csatolja hozzá a jegyzőkönyvhöz. (nem kötelező: rajzoltassa ki a kimeneti FFT spektrumnak a burkolófüggvényét!) c) Mérje meg a kimeneti jelalakot a splitter adsl kimenetén majd a pstn 2.2.3. módszerrel, a generátort GPIB interfészen keresztül vezérelje, a DMM-t RS232 interfészen vezérelje. A lementett képet csatolja hozzá a jegyzőkönyvhöz. A feladatokban használatos mérőjelek paramétereiért kérdezze az oktatót. 3. Ethernet vonali kódolás vizsgálata Feladat 10 Mbits/s keresztmetszetű vonalon differential probe segítségével jelalakot mérni, az adott karaktereket demodulálni. 31 Villamosmérnöki Kar

3.1. A Mérés fölépítése Az egyik irányi adatvezeték párra szükséges csatlakoztatni a differential probe-ot, ez azért szükséges, mivel az ETH szimmetrikus összeköttetéssel valósítja meg a kommunikációt, végeredmény a két vett jel különbsége (CH1-CH2) [3.1.-1] 4. Cat5, Cat5e, Cat6 kábel paramétereinek mérése Feladat a címben említett kábel különböző villamos paramétereinek mérése: - Beiktatási csillapítás - Reflexiós csillapítás 32 Villamosmérnöki Kar

- Áthallási csillapítás Az előző paramétereket automatizáltan kell elvégezni! 4.1. Mérendő feladatok Az előző három villamos paraméter méréssel történő meghatározása a feladat. Valamennyi mérésnél a mérőtartomány 10 MHz és 200 MHz között van. Mindegyik mérés előtt a kalibrációs készlettel el kell végezni a megfelelő tartományra való kalibrációt! 4.1.1. Beiktatási csillapítás mérése Mérési összeállítás [4.1.1.-1] [4.1.1.-1] A balun transzformátor a spektrumanalizátor trekking generátorának 50 Ohm-os aszimmetrikus kimenetét illeszti a beiktatott kábel 100 Ohm-os szimmetrikus bemenetére, és a másik balun transzformátor a beiktatott kábel 100 Ohm-os szimmetrikus kimenetét illeszti a spektrumanalizátor 50 Ohm-os aszimmetrikus bemenetére. Feladat: Valamennyi beiktatott kábel átviteli karakterisztikájának kimentése és diagram formájában megjelenítése a matplotlib program segítségével. 4.1.2. Reflexiós csillapítás mérése Mérési összeállítás [4.1.1.-2] [4.1.2.-2] A balun transzformátor a spektrumanalizátor trekking generátorának 50 Ohm-os aszimmetrikus kimenetét illeszti a beiktatott kábel 100 Ohm-os szimmetrikus bemenetére, a 100 Ohm-os lezárás a mérendő kábel megfelelő illesztéséért felel. 33 Villamosmérnöki Kar

Feladat: Valamennyi mérendő kábel reflexiós karakterisztikájának kimentése és diagram formájában megjelenítése a matplotlib program segítségével. 4.1.3. Áthallási csillapítás mérése Mérési összeállítás [4.1.3.-3] [4.1.3.-3] A balun transzformátor a spektrumanalizátor trekking generátorának 50 Ohm-os aszimmetrikus kimenetét illeszti a beiktatott kábel 100 Ohm-os szimmetrikus bemenetére, és a másik balun transzformátor a beiktatott kábel 100 Ohm-os szimmetrikus kimenetét illeszti a spektrumanalizátor 50 Ohm-os aszimmetrikus bemenetére, a 100 Ohm-os lezárások a mérendő kábel megfelelő illesztéséért felelnek. A két érpár ugyanazon a kábelen értendő! Feladat: Valamennyi beiktatott kábel áthallási karakterisztikájának kimentése és diagram formájában megjelenítése a matplotlib program segítségével. 5. Pyvisa szimulációs backenddel szoftverfejlesztés emulált műszerekre 5.1. Mérés menete 34 Villamosmérnöki Kar

- Új project létrehozása - Pyvisa, matplotlib könyvtárak beimportálása - Resource Managerként a szimulációs backend kiválasztása - 1) részfeladat megoldása ábra lementése képként. - 2) részfeladat megoldása ábra lementése képként. 5.2. Feladatok A feladatokat képként kell lementeni és a jegyzőkönyvhöz csatolva hozzá kell tenni! 5.2.1. Időtartományú jel kivétele emulált műszerből, ábra kirajzoltatása Olvassa ki az 'ASRL3::INSTR' emulált műszerből a hullámformát, a műszer további adatai: - Baud rate, stop bit, paritásbit nem szükséges - Write_termination= \r\n - Read_termination= \n - Kiolvasása a hullámformának: TRAC{gép_száma} - A hullámforma képpont száma 500 - Ábra kirajzoltatása matplotlibbel - Az ábrán ügyeljen az x [idő] tengely megfelelő skálázására, start time=0 sec, stop time=10 sec - Mentse le a kapott ábrát 5.2.2. Frekvenciatartományú jel kivétele emulált műszerből, ábra kirajzoltatása, (illetve vízesésdiagrammal való megjelenítése Olvassa ki az 'ASRL3::INSTR' emulált műszerből a spektrumot, a műszer további adatai: - Baud rate, stop bit, paritásbit nem szükséges - Write_termination= \r\n - Read_termination= \n - Kiolvasása a hullámformának: TRACE{gép_száma} - A hullámforma képpont száma 401 - Ábra kirajzoltatása matplotlibbel - Az ábrán ügyeljen az x [frekvencia] tengely megfelelő skálázására, start freq=100 MHz, stop_freq=200 MHz - Mentse le a kapott ábrát - (csináljon vízesésdiagrammot az adott emulált spektrumképhez) 35 Villamosmérnöki Kar