%pylab inline
from scipy.optimize import curve_fit
Egy arra alkalmas négyszög jel (ún. trigger) gerjeszti az ultrahangot kibocsátó piezzo-kristályt. A gerjesztés hatására egy csirip keletkezik, ami tovaterjed, majd visszaverődés után detektálható. Vizsgálja meg a csirip és a visszavert jel alakjait oszcilloszkóp segítségével! Mérje meg, hogy mennyi idő telik el a triggerjel és a visszavert jel között. Első közelítésben feltéve, hogy a rendszer késleltetése elhanyagolható, a mért idő és a visszaverő felület távolságának ismeretében határozza meg a hangsebességet! Megjegyzés: adja meg a képletet, ami alapján számol és ne feledkezzen meg a hibák becsléséről sem!
#############
## ##### ##
## ##### ##
##### #######
##### #######
##### ######
## ####### ##
## ####### ##
## ##
#############
A jel kibocsátása és visszaverődése között eltelt idő pontosabb meghatározására a hullámalakokat a számítógép hangkártyájával digitalizáljuk.
A radart állítsa egy-egy adott, jól visszaverő irányba!
Javaslat: közeli falakra merőleges és a sarkokat célzó nyalábok jól detektálhatóak.
Vegyen fel kb. fél másodpercnyi jelet, 44,1 kHz mintavételi frekvenciával egy arra alkalmas program az audacity
segítségével.
A mintában keresse meg a visszhang helyét!
Javaslat: mérje meg, a hogy visszhang hány mintával később érkezik, mint a triggerjel eleje, és a különbségből következtessen az eltelt időre.
A mérési adatokat gyűjtse táblázatba, ábrázolja azokat és illesszen rájuk egyenest.
Mérés száma | Visszaverő felület távolsága (cm) | Visszhangjel ideje (minta) |
---|---|---|
1 | 316 | 824 |
2 | 339 | 917 |
3 | 304 | 784 |
4 | 612 | 1614 |
5 | 690 | 1785 |
6 | 465 | 1203 |
# ábrázolás és illesztés
tavolsag = array([316, 339, 304, 612, 690, 465 ])
idoelteres = array([824, 917, 784, 1614, 1785, 1203])
def linear(x, a0, a1):
return x*a1 + a0
eh, hiba = curve_fit(linear, tavolsag, idoelteres)
figure(figsize=(12, 8))
plot(tavolsag, idoelteres, "o", label="mért adatok")
x = linspace(min(tavolsag), max(tavolsag), 100)
y = eh[0] + eh[1]*x
plot(x, y, label="illesztett egyenes")
xlabel("Felület távolsága [cm]", size=15)
ylabel("visszaverés ideje [mintaszám]", size=15)
title("Ábra címe", size=21)
legend(fontsize=15)
print("együtthatók:", eh)
print("hibamátrix:", hiba)
Az egyenes paramétereiből határozza meg a rendszer késleltetését és a hangsebességet.
Válasszon ki egy jól visszaverő közeli falfelületet. A léptetőmotort egyenként léptetve, tapogassa le a falat. Figyelem: mivel csak egy irányba lehet léptetni a motorral, ezért figyeljen oda, hogy még a merőleges irány előtti pontból indÍtsa a mérést. Egy-egy rögzített irányban a mérés bizonytalansága nagy, akár 20-30%-t is szór csiripenként az amplitudó maximuma a keverőjel fázisától függően. Javaslat: érdemes tehát mindegyik irányban megnézni, hogy több visszaverődés közül mekkora a jel legnagyobb értéke.
A mérési adatokra illesszen Gauss-függvényt. Megjegyzés: a radar kb. 400 lépésben ér körbe.
Mérés száma | Elfordulás | Amplitúdó |
---|---|---|
1 | -0,0785 | 0,0067 |
2 | -0,0628 | 0,0268 |
3 | -0,0407 | 0,0752 |
4 | -0,0314 | 0,1085 |
5 | -0,0157 | 0,1333 |
6 | 0 | 0,1600 |
7 | 0,0157 | 0,0875 |
8 | 0,0314 | 0,0278 |
9 | 0,0407 | 0,0204 |
10 | 0,0628 | 0,0089 |
11 | 0,0785 | 0,0061 |
# ábrázolás és illesztés
szog = array([-0.0785, -0.0628, -0.0407, -0.0314, -0.0157, 0, 0.0157, 0.0314, 0.0407, 0.0628, 0.0785])
amplitudo = array([0.0067, 0.0268, 0.0752, 0.1085, 0.1333, 0.1600, 0.0875, 0.0278, 0.0204, 0.0089, 0.0061])
def gauss(x, a, mu, sigma):
return a/ sqrt(2 * pi * sigma**2) * exp( - (x - mu)**2 / (2 * sigma**2))
eh_gauss, hiba_gauss = curve_fit(gauss, szog, amplitudo, p0=(0.2, 0, 0.2))
figure(figsize=(12, 8))
plot(szog, amplitudo, "o", label="mért adatok")
x = linspace(min(szog),max(szog), 100)
y = gauss(x, eh_gauss[0], eh_gauss[1], eh_gauss[2])
plot(x, y, label="illesztett Gauss-görbe")
legend(fontsize=15)
xlabel("elfordulás", size=15)
ylabel("amplitúdó", size=15)
title("Még egy hangzatos ábracím", size=21)
print("együtthatók:", eh_gauss)
print("hibamátrix:", hiba_gauss)
A rögzített adatokból emelje ki egy visszavert jel hullámcsomagját és végezze el a Fourier-transzformációját. A hullámcsomag Fourier-spektruma jellegzetes maximummal rendelkezik. Megjegyzés: több visszavert hullámcsomagból ügyes szerkesztéssel pontosabb eredményre juthat. Mekkora frekvenciánál van ez a maximum, és mekkora a jel sávszélessége. Megjegyzés: sávszélesség alatt a maximumhoz képest -3 dB esést felölelő tartományt értjük.
Mérje meg különböző geometriájú visszaverő objektum, (így a gömb, a sík (0$^\circ$ és 45$^\circ$), a saroktükör (két állása) és az érdes felület) relatív visszaverőképességét. Tekintse egységnyinek a 90$^\circ$ álló síkfelületet (maximális visszaverőképesség).
A vizsgált szórócentrumok relatív visszaverőképességét adja meg egy táblázatban!
Hogyan korrigálná a mérési adatokat, ha a szórófelületet nem tudja mindig ugyanúgy egység távolra elhelyezni?
Felület | visszaverőképesség |
---|---|
sík felület | 0,0553 |
saroktükör | 0,3073 |
saroktükör külseje | 0,0348 |
gömb | 0,0772 |
tojástartó | 0.0678 |
Rögzítse a mintasorozatot, miközben a radar legalább egy teljes kört bejár. A mellékelt szkript segítségével szerkessze meg a visszaverődési pontok lenyomatát és értelmezze a kapott képet. Diszkutálja a kapott képet.
from feldolgoz import radar_korkep
figsize(12,12)
ax = subplot(111, polar=True)
ax.plot(t[0], t[1], 'r.', ms=3)
ax.set_rmax(2500)
ax.grid(True)
ax.set_title("A line plot on a polar axis", va='bottom')
Kitölteni nem kötelező:
A 6 feladatból 4-t megoldottam a labor ideje alatt. Ezek a feladatok (és ahogy néztem a másik kettő is) abszolút teljesíthetőek voltak leírás és az alaptudásunk alapján (az előző két heti méréssel ellentétben), csak több volt, mint ami megoldható. Talán a konkrét technikai részletek lehetnének kicsit pontosabbak, mert az elején 20 percig nem tudtam dolgozni, mert egyrészt nem tudtam milyen programot kell használni, illetve, hogy az oszcilloszkópon melyik csatornán van a visszavert jel.