Page 1 Postopki obdelave signalov 2. vaja – kompleksni

Postopki obdelave signalov
2. vaja – kompleksni eksponentni signal in fazor
Kompleksni eksponentni signal nam omogočajo alternativni zapis harmoničnega signala. Tak zapis nam v
določenih primerih močno poenostavi delo s harmoničnimi signali. Namen vaje je spoznati kompleksne
eksponentne signale ter pojem fazor.
Za delo s kompleksnimi števili je koristno poznati nekaj osnovnih relacij:
Polarni zapis:
Kartezični zapis:
z = x+ j⋅ y
z = re jθ
x = ℜ{z} = r cosθ
r = x2 + y 2
y = ℑ{z} = r sin θ
θ = arctan xy
Kompleksni eksponentni signal zapišemo kot: x (t ) = Ae j (ω0t +φ ) .
S pomočjo razširjene Euler-jeve formule:
z = re jθ = r cosθ + j ⋅ r sin θ
lahko kompleksni eksponentni signal razširimo v:
x (t ) = Ae j (ω0 t +φ ) = A cos(ω0t + φ ) + jA sin(ω0t + φ )
iz česar je vidna povezava s harmoničnim signalom:
x(t ) = A ⋅ cos(ω0 ⋅ t + φ ) = ℜ{x (t )}
Ko kompleksni eksponentni signal zapišemo nekoliko drugače, in sicer tako da ločimo časovno odvisni
del, pridemo do naslednjega zapisa:
x (t ) = Ae j (ω0 t +φ ) = Ae jω0 t e jφ = Ae jφ e jω0t = Xe jω0 t ,
kjer X imenujemo kompleksna amplituda oziroma fazor. Opazimo lahko, da fazor predstavlja kazalec, ki
se s časom vrti, hitrost vrtenja pa določa krožna frekvenca ω0 . Zato je kompleksni eksponentni signal
poimenovan tudi kot rotirajoči fazor.
Izkaže se, da je vsota harmoničnih signalov, ki imajo enako frekvenco, zopet harmoničen signal:
N
N
⎧N
jφ k
jω 0 t
jφ
jω t ⎫
jφ jω t
A
cos(
ω
t
+
φ
)
=
ℜ
(
A
e
)
e
=
ℜ
⎨∑ ( Ak e k )e 0 ⎬ = ℜ Ae e 0 = A cos(ω0t + φ ) ,
∑
∑
k
k
k
0
k =1
k =1
⎩ k =1
⎭
Iz česar sledi, da lahko namesto seštevanja harmoničnih signalov seštevamo kar njihove fazorje.
{
}
{
Navodila in krajši nasveti za delo z Matlab-om so na zadnji strani.
1.) Podana imamo dva harmonična signala z enako krožno frekvenco ω0 :
x1 = 3 ⋅ cos(ω0t + π3 )
x2 = 2 ⋅ sin(ω0t − π4 )
Predstavite ju kot eksponentna harmonična signala.
}
2.) Zapišite fazorja v obeh oblikah zapisov (polarnem in kartezičnem), ter ju skicirajte. Izračunajte in
skicirajte fazor vsote obeh harmoničnih signalov tako, da seštejete njuna fazorja.
Im{z}
Re{z}
3.) Zapišite vsoto obeh harmoničnih signalov kot nov harmonični (kosinusni) signal – uporabite fazor
vsote, ki ste ga izračunali v prejšni nalogi.
4.) Z uporabo Matlab-a simulirajte oba harmonična signala, in sicer na intervalu [− T0 ,T0 ] . Frekvenca
signalov naj bo 10Hz. Uporabite vsaj sto točk. Vsoto izračunajte tako, da v Matlab-u seštejete niza, ki
predtavljata harmonična signala. V Matlab-u narišite vsoto teh signalov, ter skicirajte.
x(t)
t
a) Iz slike odčitajte amplitudo vsote: ____________
Ali se ujema z vrednostjo, izračunano v nalogi 3) ?
b) Iz slike odčitajte časovni zamik kosinusnega signala ter iz njega izračunajte fazo: ____________
Uporabite povezavo med faznim premikom in časovnim zamikom: φ = −2π ⋅ f 0 ⋅ t z , kjer je f 0
frekvenca harmoničnega signala, t z pa časovni zamik. Ali se fazni premik ujema z vrednostjo,
izrčunano v nalogi 3) ?
Matlab – navodila in nasveti za vajo
Matlab bomo pri vajah uporabili kot orodje za simulacijo. Pomembno je vedeti, da Matlab dela z
diskretnimi signali. Prednosti Matlaba so v širokem naboru transformacij in vizualizaciji signalov. V
nadaljevanju je predtavljenih nekaj postopkov in navodil za delo z Matlab-om, ki vam bodo v pomoč pri
izvajanju vaje.
Vnašanje spremenljivk in nizov:
Spremenljivko določimo tako, da vpišemo njeno ime in ji priredimo vrednost:
>> f=10
Na zavihku 'workspace' lahko vidimo spremenljivko, njeno vrednost in tip (int, double, float ...).
Pozor: Matlab uporablja decimalno piko in ne decimalne vejice kot je sicer v naši navadi.
Če spremenljivka predstavlja niz (ali vektor) ji vrednost priredimo na naslednji način:
>> x=[3,2,1,2,3]
Če se vrednosti v nizu spreminjajo linearno (enakomerno padajo ali naraščajo), lahko niz sestavimo še
hitreje:
>> t=[0:0.1:2]
kjer prvo število predstavlja začetno vrednost v nizu, zadnje število končno vrednost, število na sredi pa
korak – za koliko se poveča/zmanjša vrednost v naslednjem koraku.
Nizi so indeksirani tako, da ima prva vrednost indeks 1. Zato vrednost iz niza preberamo tako, da podamo
njen indeks v nizu. Na primer, če želimo prebrati drugo vrednost, napišemo:
>> x(2)
Na podoben način lahko tudi spreminjamo posamezno vrednost v že obstoječem nizu:
>> x(2)=5
Računske operacije
Poleg pri prejšni nalogi spoznanih osnovnih računskih operacij bomo sedaj potrebovali tudi: kvadrirnje,
korenjenje, sinus, kosinus, arcustangens.
>> x^2
kvadriranje
>> x^0.5
korenjenje
>> sin(x)
sinus (radiani!)
>> cos(x)
kosinus (radiani!)
>> atan(x)
arcustangens (radiani!)
Risanje grafov
Osnovna funkcija za risanje grafov v Matlab-u je plot(...). Ima več načinov uporabe, odvisno od tega, kaj
želimo doseči.
>> plot(x)
Izriše niz x, kjer so na vodoravni osi podani indeksi vrednosti iz niza x. Od leve proti desni se izrisuje
črta, ki povezuje vrednosti podane v nizu.
>> plot(t.*t, t)
Izriše niz t.*t, kjer so na vodoravni osi podane vrednosti iz niza t.
>> plot(t.*t, t, 'r')
Izriše niz t.*t, kjer so na vodoravni osi podane vrednosti iz niza t. Črta, ki povezuje vrednosti je rdeče (r –
red) barve. Modro barvo bi dosegli z vrednostjo 'b' (blue), zeleno pa 'g' (green).
Če želimo na grafu videti koordinatno mrežo, uporabimo:
>> grid on
Pomoč
Še več možnosti uporabe funkcije plot(...) in drugih funkcij v Matlab-u dobite z ukazom help, kateremu
sledi ime funkcije:
>> help plot