In [12]:
%pylab inline
from scipy.optimize import curve_fit
Populating the interactive namespace from numpy and matplotlib

Mérés ultrahang radarral

1. feladat: A hangsebesség közelítő meghatarozása

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 mért időkülönbség, $t=18,5 ms \pm 0.4 ms $
  • A visszaverő felület távolsága, $L=316,5 cm \pm 1 cm$
  • A hangsebesség közelítő értéke, $c=2 L / t = 342 m/s \pm 8 m/s $
In [4]:
#############
##  #####  ##
##  #####  ##
##### #######
##### #######
#####  ######
## ####### ##
## ####### ##
##         ##
#############

2. feladat: A radar kalibrációja és a hangsebesség pontosabb meghatározása

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
In [10]:
# ábrázolás és illesztés
tavolsag = array([316, 339, 304, 612, 690, 465 ])
idoelteres = array([824, 917, 784, 1614, 1785, 1203])
In [13]:
def linear(x, a0, a1):
    return x*a1 + a0
In [58]:
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)
együtthatók: [13.49124796  2.58475881]
hibamátrix: [[ 7.01440589e+02 -1.39158650e+00]
 [-1.39158650e+00  3.06291817e-03]]

Az egyenes paramétereiből határozza meg a rendszer késleltetését és a hangsebességet.

  • Az illesztett egyenes egyenlete: $t = a_0 + a_1 * L$, ahol $t$ a visszaverés ideje, $L$ a visszaverőfelület távolsága, az együtthatók értéke pedig: $a_0 = 13 \pm 26$, $a_1 = 2,58 \frac{1}{cm} \pm 0,06 \frac{1}{cm}$
  • A hangsebesség értéke az illesztésből: $ c = \frac{2}{a_1} = 0,775 \frac{cm}{d} \pm 0,017 \frac{cm}{minta} = 342 \frac{m}{s} \pm 7 \frac{m}{s} $
  • A rendszer késleltetése: $ \Delta t = a_0 = 13 \pm 26 = 295 \mu s \pm 590 \mu s $

3. feladat: A visszavert jel intenzitásának szögfüggése

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
In [45]:
# á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])
In [48]:
def gauss(x, a, mu, sigma):
    return a/ sqrt(2 * pi * sigma**2) * exp( - (x - mu)**2 / (2 * sigma**2))
In [63]:
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)
együtthatók: [ 0.00968012 -0.01015565  0.02526054]
hibamátrix: [[ 2.33665936e-07  2.14608116e-09  4.14390916e-07]
 [ 2.14608116e-09  2.06748668e-06 -1.13519564e-07]
 [ 4.14390916e-07 -1.13519564e-07  2.26715052e-06]]
  • Az illesztett modell egyenlete: $ A = \frac{C}{\sqrt{2 \pi \sigma^2}} \mathrm{e}^{- \frac{(x - \mu)^2}{2 \sigma^2}}$
  • Az illesztés paramétereinek értéke: $C = 0,00968 \pm 0.00048$, $\mu = -0,0102 \pm 0,0014$ valamint $\sigma = 0,0025 \pm 0,0015$
  • Ebből a szögfelbontás értéke (a Gauss-görbe szórása): $\sigma = 0,0025 \pm 0,0015$ (radiánban)

4. feladat: A csirip spektrumának vizsgálata

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.

  • A spektrum maximuma, $f=$
  • Az alsó sávhatár, $f_\mathrm{min}=$
  • A felső sávhatár, $f_\mathrm{max}=$
  • A jel sávszélessége, $C=$

5. feladat: Speciális szórócentrumok visszaverőképességének vizsgálata

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

6. feladat: A terem alaprajzának analízise

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.

In [ ]:
from feldolgoz import radar_korkep
In [ ]:
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')

A méréssel kapcsolatos észrevételek

Kitölteni nem kötelező:

  • Itt kérjük feltűntetni, hogy mennyi idő volt szükséges a feladatok elvégzéséhez.
  • Itt lehet javaslatot tenni a méréssel kapcsolatban.
  • A méréssel kapcsolatban felmerült további ötletek.

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.