Documente Academic
Documente Profesional
Documente Cultură
Dsplab
Dsplab
KERTSZ Csaba-Zoltn
Laureniu-Mihail IVANOVICI
NDRUMAR DE LABORATOR
2009
Cuvnt nainte
n tehnica electronic actual, n care o mare parte a semnalelor este transferat n domeniul numeric (digital), procedeele de prelucrare digital a semnalelor au o deosebit
importan. Din aceast perspectiv la formarea specialitilor din domeniul ingineriei
electronice i a telecomunicaiilor, dar i a celor de la spscializrile din domeniul de calculatoare i tehnologia informaiei, planul de nvmnt prevede discipline sau module
de discipline, care au ca subiect prelucrarea digital a semnalelor, care are abrevierea
bine cunoscut DSP (Digital Signal Processing).
ndrumarul de laborator de fa se adreseaz n primul rnd studenilor de la programele de studii ce aparin domeniilor sus-menionate: Electronic aplicat, Tehnologii i
sisteme de telecomunicaii, Calculatoare, Tehnologia informaiei, Inginerie electric i
calculatoare, toate ind studii de licen la Facultatea de Inginerie Electric i tiina
Calculatoarelor, la Universitatea Transilvania din Braov.
Lucrrile incluse n prezentul ndrumar se desfoar n mediul software Matlab.
Considernd c studenii nu au avut ocazia s cunoasc n prealabil acest mediu
software, prima lucrare (care poate avea o extensie elastic de 2-3 edine de laborator,
n funcie de gradul de cunoatere i/sau de avansare a formaiei de lucru) constituie
o iniiere de baz, dac este cazul o iniiere mai avansat, n Matlab prin exerciii i
activitate individual supravegheat.
n continuare lucrrile au cursivitatea de a parcurge cteva din cele mai importante
procedee de prelucrare digital de semnale: eantionarea, cuantizarea, convoluia, corelaia, autocorelaia, analiza n frecven a semnalelor (domeniul Z, DFT, FFT), ltre
digitale (analiz, sintez). Lucrrile sunt concepute astfel nct studenii s aib posibilitatea de a lucra individual, s cunoasc gradual noiunile, s aib cte un scurt
breviar teoretic i s ntocmeasc referatul de lucrarare.
Cu sperana c ndrumarul de laborator de fa va util (lucrrile de laborator
au fost rulate de mai muli ani), vom bucuroi s primim observaii, sugestii de
mbuntire pentru a crete gradul de impact i de profunzime a conotinelor ce
dorim a transmise studenilor.
Autorii
Cuprins
Cuprins
iii
.
.
.
.
.
.
1
2
3
3
6
9
11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Discretizarea semnalelor
2.1 Semnale analogice i procesarea digital .
2.2 Eantionarea . . . . . . . . . . . . . . . .
2.3 Cuantizarea . . . . . . . . . . . . . . . .
2.4 Exerciii . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
15
16
17
19
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
21
22
23
23
23
25
25
28
28
29
29
29
31
32
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
iii
6 Filtrarea semnalelor
6.1 Noini teoretice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Filtrarea n matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
33
35
36
37
37
38
41
43
43
44
46
47
47
48
51
10 Corelaia semnalelor
10.1 Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 Desfurarea lucrrii . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
53
55
56
11 Dreapta de regresie
11.1 Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2 Desfurarea lucrrii . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
59
60
62
Bibliograe
65
iv
Mulumiri
Autorii doresc s mulumeasc domnului profesor Iuliu Szkely, conductorul catedrei de Electronic i Calculatoare, din cadrul Facultii de Inginerie Electric i
tiina Calculatoarelor, Universitatea Transilvania din Braov, pentru sprijinul acordat pentru publicarea lucrrii de fa.
De asemenea autorii mulumesc studenilor care au contribuit la mbuntirea
coninutului acestui ndrumar de laborator, venind cu ntrebri i comentarii pertinente
de-a lungul anilor.
Lucrarea 1
http://www.mathworks.com
http://www.gnu.org/software/octave
3
http://octave.sourceforge.net
2
1.1.
Dup acest prompter se pot introduce comenzile matlab. Comanda introdus este
interpretat, dup care este aat rspunsul (dac este cazul). De exemplu, comanda
pwd va aa calea ctre directorul curent:
pwd
ans =
/home/user
Prin intermediul aceastei linii de comand pot executate toate operaiile oferite de
limbajul matlab (care este un limbaj bazat pe linii de cod tocmai din aceast cauz),
respectiv lansate programele scrise n limbajul matlab i stocate n iere aate n
directorul curent.
2
Variabile
Pe lng aceast linie de comand, octave ofer i o integrare cu interpretorul de
comenzi din Linux (bash) prin posibilitatea rulrii scripturilor care ncep n forma
consacrat a scripturilor: #!/usr/bin/octave
Pentru a prsi mediul matlab se poate folosi comanda exit.
1.2.
Variabile
Elementul de baz al operaiilor matlab este matricea, toate variabilele sunt considerate
ca ind de tipul matrice. Un caz particular este cnd matricea respectiv conine un
singur element, care poate considerat ca o valoare scalar. De asemenea, dac toate
dimensiunile unei matrici cu excepia uneia sunt 1, atunci vorbim de un vector. Aceste
cazuri sunt tratate n mod special n anumite situaii: de exemplu vectorii permit
accesul la elementele lor prin precizarea unei singure poziii (indiferent dac este un
vector rnd sau un vector coloan), iar valorile scalare pot extinse n orice dimensiune
pentru a uura operaiile cu matrici.
Intern matlab lucreaz implicit cu valori de tip double (virgul mobil, dubl precizie), dar n anumite condiii poate precizat un tip cu reprezentare pe mai puini bii
(ntreg reprezentat pe 8 sau 16 bii), care ns la efectuarea unei operaii va transformat automat la o valoare double. De asemenea dac rezultatul unei operaii este un
numr complex, variabila va transformat ntr-o structur de tip complex, care are
dou valori double: partea real i partea imaginar. Transformrile automate se fac
numai n direcia creterii preciziei, de aceea o varibil care a devenit de tip complex
va rmne de tip complex pe durata vieii (pn cnd este tears sau suprascris).
Denirea unei variabile se face utilizns operatorul = :
x = 10
x =
10
Numele de variabil poate format din caracterele alfanumerice i _, pe prima proziie neind permise cifre. Dup ecare operaie, Matlab aeaz rezultatul operaiei,
care n cazul atribuirii unei variabile este variabila nsi. Pentru a nu aa rezultatul,
la sfritul comenzii trebuie adugat operatorul ; :
y = 2;
1.3.
Operatori
Matlab cunoate operaiile matematice de baz reprezentate cu simbolurile: + (adunare), - (scdere), * (multiplicare), / (mprire la stnga), \ (mprire la dreapta)
3
Trebuie avut grij c aceste operaii sunt denite implicit ca operaii matriciale, i
funcioneaz ca operatori obinuii numai n cazul valorilor scalare.
Operaii cu matrici
Pentru operaii cu matricii mai sunt denii urmtorii operatori: [] i (). Operatorul
[] permite crearea matricilor prin enumerarea elementelor acestora ntre parantezele
ptrate, insernd cte un spaiu ntre valorile de pe aceai linie i un caracter ; pentru
delimitarea liniilor.
Astfel, pentru a crea un vector de tip linie se folosete comanda:
v1 = [1 2 3]
v1 =
1 2 3
Operatori
Un vector poate generat n mod automat folosind operatorul :. Aceasta va genera
o serie de valori, sintaxa ind: valoare nceput : increment : valoare sfrit. De exemplu:
i = 1:2:9
i =
1 3 5 7 9
n cazul n care operatorul () se folosete pentru vectori cu mai multe elemente, rezultatul va o matrice cu valorile din poziiile combinate ale parametrilor:
m(1 ,1:2)
ans =
1
2
m([2 1], [2 1])
ans =
4
1
2
1
7
3
2
3
1
4
Alte operaii importante asupra matricilor sunt realizate prin intermediul unor funcii, de exemplu inv pentru calcularea inversei unei matrici sau det pentru calcularea
determinantului:
inv(m)
ans =
0.8000
-0.2000
det(m)
ans =
5
-0.6000
0.4000
1.4. Funcii
O funcie este un set de operaii efectuate asupra unor argumente, care returneaz un
set de valori. Funcia este apelat sub forma:
[r1 r2 rn ] = nume_funcie(p1 , p2 , pn )
unde r1 rn sunt valorile returnate, iar p1 pn sunt parametrii functiei. Dac funcia
returneaz o singur valoare, atunci parantezele drepte nu sunt necesare. Dac nu sunt
6
Funcii
specicate variabilele care s e returnate, atunci dac funcia returneaz unul sau mai
multe valori, prima dintre acestea va salvat n variabila special ans, iar restul se
pierd.
Fiiere .m
O secven repetat de comenzi se poate salva ntr-un ier cu extensia *.m. Aceste
iere pot rulate ulterior prin introducerea numelui ierului (fr extensie) n linia
de comand. La introducerea unei comenzi, Matlab va verica dac exist un ier .m
n directorul curent cu numele introdus, caz n care va interpreta comenzile din acel
ier. Dac nu se gsete ierul n directorul curent, Matlab va mai cuta ntr-o serie
de directoare implicite (unde sunt stocate de altfel toate funciile disponibile n Matlab.
Funciile se denesc n iere .m, cu acelai nume ca funcia respectiv. Pentru ca o
funcie s e recunoscut ca atare, prima linie de cod trebuie s conin cuvntul cheie
function i s aib urmtorul format:
function [r1 r2 rn ] = nume_funcie(p1 p2 pn )
Parantezele drepte trebuie s apar chiar dac funcia nu returneaz nici o valoare.
Dac ierul ncepe cu un comentariu sau n liniile imediat urmtoare dup deniia
funciei exist un comentariu, atunci comentariul respectiv va reprezenta documentaia
funciei, accesibil prin comanda help.
Un exemplu pentru o funcie care calculeaz ptratul unei valori este:
%patrat(a) calculeaz patratul lui a
function [r] = patrat (a)
r = a*a
return
Fiecare funcie din Matlab are inclus o astfel de documentaie accesibil cu funcia
help.
Structuri de control
Pentru a crea o bucl n matlab pot folosite instruciunile for sau while. Comanda
for va parcurge un vector atribuind unei variabile contor valoare ecrui element din
vector. Sintaxa aceste comenzi este urmtoarea:
for contor = vector
...
end
Comanda while va crea o bucl care se repet att timp ct o condiie logic este
adevrat:
while condiie
...
end
Evaluarea condiionat a anumitor secvene poate realizat prin intermediul comenzii if, avnd urmtoarea sintax:
if condiie1
...
else if condiie2
...
else
...
end
ramurile else sunt opionale, respectiv ramura else if poate prezent de mai multe
ori.
Condiiile logice n cazul comenzilor while respectiv if trebuie s e valori logice ce
pot realizate prin intermediul operatorilor logici: == (egal), ~= (diferit), < (mai mic),
<= (mai mic sau egal), > (mai mare), >= (mai mare sau egal), & (i logic), | (sau logic)
respectiv ~ (negare).
Toate aceste structuri de control trebuie terminate cu comanda end, ceea ce permite
ca aceste structuri s poate folosite att n iere .m, ct i n linia de comand, caz
8
Grafice n Matlab
n care interpretarea comenzilor introduse este suspendat pn cnd se ntlnete
comanda end, dup care sunt realizate buclele respectiv instruciunile condiionate.
Trebuie remarcat faptul c matlabul ind orientat asupra operaiilor cu matrici,
aceste operaii sunt optimizate i se execut mult mai rapid dect parcurgerea matricii
i executarea operaiei pentru ecare element n parte. Astfel o structur for folosit
pentru parcurgerea unei matrici n vederea executrii unei operaii asupra elementelor
sale se va executa mult mai lent dect operaia matricial corespunztoare. De aceea
trebuie evitat pe ct posibil folosirea structurilor for
1.5.
Grace n Matlab
Pentru crearea gracelor se folosesc urmtoarele comenzi: plot, xlabel, ylabel, title,
grid, axis, subplot. Comanda plot aeaz un vector sub forma unui grac. Sintaxa
acestei comenzi este:
plot(x,y)
care va aa un grac format din puncte obinute din perechi de valori din vectorii x
i y. Vectorii x i y trebuie s aib aceai dimensiune.
Pentru modicarea aspectului gracului, se pot specica anumite opiuni cu privire
la forma, culoarea sau dimensiunea punctelor sau a liniilor ce unesc punctele gracului:
plot(x,y,option )
unde option este un text care poate conine culoarea, tipul de linie i/sau simbolul.
Culoarea poate s e r (rou), g (verde), b (albastru), c (cian), m (magenta), y (galben),
w (alb), k (negru). Tipul de linie poate - (linie continu), -- (line ntrerupt), -. (linie
punct linie), : (linie punctat). Linia poate conine markere pentru ecare punct din
y sub forma unor simboluri: +, *,o,x, triunghi, romb, etc.
De exemplu:
plot(x,y,r)
care va scala axele ntre xmin i xmax (axa Ox) i ntre ymin i ymax (axa Oy).
Pentru a aa mai multe grace se folosete comanda subplot astfel:
subplot (m,n,p),plot(x,y);
respectiv
surf(x,y,z)
Exerciii
Exemple de grace
Pentru aarea funciei y = f (x) = x2 +x+1 se folosete urmtoarea secven rezultnd
gracul prezentat n gura 1.1:
x = -2:0.1:2;
y = x.^2 + x + 1;
plot(x,y,r);
title (Exemplu plot );
xlabel (x);
ylabel (x^2+x+1 );
1.6.
Exerciii
1. Implementai funcia fib care calculeaz recursiv al n-lea element din irul lui
Fibonacci denit cu formula:
(
1
dac n <= 2,
f ib(n) =
f ib(n 1) + f ib(n 2) altfel.
Creai o funcie care va genera n mod iterativ un vector cu irul lui Fibonacci
cu n elemente.
2. Rezolvai sistemul de ecuaii de mai jos folosind metoda Cramer:
2x + y z = 1
x + 3y + z = 10
x y + 2z = 5
Rezolvai aceai ecuaie prin mprire matricial pornind de la scrierea matricial
urmtoare:
2 1 1 x
1
1 3
1 y = 10
1 1 2
z
5
11
Exemplu plot
7
6
x2 + x + 1
5
4
3
2
1
-2
-1.5
-1
-0.5
0
x
0.5
1.5
Exemplu mesh
12
10
8
6
4
2
02
1.5
0.5
-0.5
-1
-1.5
-2 -2
-1.5 -1
-0.5 0
0.5 1
12
1.5 2
Exerciii
3. Aai o form de und sinusoidal denit prin formula
s = A sin(2 f x)
Modicai programul astfel nct s aeze o form de und dreptunghiular
respectiv triunghiular prin nlocuirea funciei sin cu square respectiv sawtooth.
4. Realizai o funcie care creaz urmtoarele trei grace n aceeai fereastr: o
form de und sinusoidal, o form de und sinusoidal cu frecvena dubl fa
de prima i rezultatul nsumrii acestora.
13
14
Lucrarea 2
Discretizarea semnalelor
2.1.
Semnalele analogice sunt semnale continue ce pot reprezentate din punct de vedere
matematic ca funcii reale continue n timp. Pentru a putea procesa un semnal cu
ajutorul unui procesor de uz general sau cu a unuia specializat1 , semnalele continue
trebuie convertite ntr-un format potrivit cu reprezentarea datelor dintr-un procesor.
Pentru conversia unui semnal analogic ntr-un semnal digital, trebuie realizate dou
operaii de baz: discretizarea n timp i n amplitudine a semnalului.
Discretizarea n timp poart numele de eantionare i se realizeaz cu ajutorul unui
bloc de eantionare-memorare (vezi gura 2.1). Discretizarea n amplitudine se numete
cuantizare i este realizat cu un circuit de tip convertor analog-digital (CAD).
Intrare analogic
Ieire digital
CAD
10011
n
fe
Circuitul de eantionare-memorare va preleva valorile semnalului de intrare la anumite momente discrete de timp, iar convertorul analog-digital va converti aceste valori
reale n reprezentarea lor numeric.
15
2. Discretizarea semnalelor
2.2.
Eantionarea
-fm
fm
irul de eantioane este echivalent unui vector n matlab, ale crui elemente sunt
valorile semnalului luate la momentele de timp corespunztoare eantionrii. Trebuie
menionat faptul c informaia despre frecvena de eantionare nu este stocat n vector
ci numai se presupune cunoscut pentru calcule. Astfel orice vector din matlab poate
considerat un semnal eantionat presupunnd c i se face corespondena cu un set
de parametri de eantionare.
Pentru a genera un semnal tiind funcia care descrie semnalul analogic, se va genera
n prealabil un vector de timp care reprezint momentele de timp la care se va realiza
practic eantionarea:
t = 0 : 1/ fs : 1;
x = sin (2* pi*f*t);
n acest caz x va conine eantioanele unui semnal sinusoidal, dar pentru a cunote
semnalul cruia acest vector corespunde, trebuie s tim unitatea metric pentru t i
frecvena de eantionare fs : astfel, acest semnal poate o sinusoid cu durata de 1
16
Cuantizarea
secund i eantionat la fs Hz, cu durata de 1 ms i eantionat la fs kHz, sau cu durata
de 2 s i eantionat la f2s Hz.
Semnalul sinusoidal eantionat din exemplu precedent este prezentat n Figura 2.3.
0.5
0.5
1
0
0.2
0.4
0.6
0.8
2.3.
Cuantizarea
2. Discretizarea semnalelor
8
1
0.5
0
x
0.5
(2.3)
x 10
2
zgomot
2
0
0.5
1.5
2
t
2.5
3.5
18
Vef semnal
Vef zgomot
(2.4)
Exerciii
n cazul unui CAD bipolar cu N = 2m nivele de cuantizare, pentru un semnal
sinusoidal ideal raportul semnal zgomot este:
p
xmax / 2
SN R = 20 lg
= 20 lg 3/2 N 6, 02 m + 1, 76
(2.5)
q/ 12
| {z }
zg.mediucuant.
1
u
2 dx = t
(x
q
)
(dj+1 qj )3 (dj qj )3 =
j
t N q
N q j=0 3
j=0
dj
r
=
2.4.
(2.6)
1
1
1
N q 3 = q/ 12
N q 3
4
Exerciii
1. Reprezentai grac 1024 de eantioane ale unui semnal alctuit din 2 sinusoide
(una de frecvena de 50 Hz, defazaj 0 i amplitudine 0.5 V, iar cealalt de frecvena
de 230 Hz, defazaj 3 i amplitudine 0.2 V) folosind o frecven de eantionare de
8 kHz.
2. Cuantizai acest semnal pe 8 respectiv, 16 bii, reprezentai semnalul cuantizat
alturi de zgomotul de cuantizare i calculai media ptratic a zgomotului i
raportul semnal-zgomot.
19
2. Discretizarea semnalelor
20
Lucrarea 3
(3.1)
-fs-fm
fs
fm fs/2 fs-fm
fs
fs+fm f
Dac criteriul Nyquist nu este respectat, atunci replicile spectrale se vor suprapune,
fenomen ce poart numele de aliere (Figura 3.2). n acest caz, semnalul analogic original
nu mai poate refcut corect din eantioanele sale.
Cu ct frecvena de eantionare este mai mare, spectrele duplicate vor cu att
mai ndeprtate. Pentru a reface semnalul original din cel eantionat este nevoie de
ltrarea trece jos a semnalului eantionat pentru a nltura spectrele duplicate.
Filtrarea trece jos trebuie fcut la etapa de conversie digital analogic cu ltre
analogice, ceea ce nseamn c este foarte costisitoare folosirea unor ltre de ordin superior (necesar pentru a nltura spectrele foarte apropiate). De aceea este de preferat
folosirea unei frecvene de eantionare ct mai ridicate permind folosirea unor ltre
de ordin inferior.
21
fs
-fm -fs/2
fs/2 fm
fs
Creterea prea mare a frecvenei de eantionare ns va necesita circuite de eantionare cuantizare mai performante (i implicit mai scumpe).
De aceea se practic schimbarea ratei de eantionare n interiorul blocului de procesare digital unde ltrarea de ordin superior poate uor implementat la un cost
extrem de redus.
3.2.
x[n]
0.5
0.5
1
0
10
15
n
20
25
30
3.3.
Scderea ratei de eantionare sau decimarea este realizat prin renunarea la anumite
eantioane. Este o tehnic complementar cu interpolarea (pentru exemplul din Figura 3.3, eliminm eantioanele marcate cu , rmnnd doar eantioanele marcate
cu ptrele).
Trebuie avut ns grij pentru evitarea apariiei fenomenului de aliere: dac exist
frecvene mai mari dect 12 din noua frecven de eantionare, acestea se vor suprapune
frecvenelor joase distrugnd semnalul. Pentru a evita acest lucru nainte de decimare,
semnalul original trebuie trecut printrun ltru trece jos cu frecvena de tiere de f2s .
3.4.
Interpolare
Decimare
ieire
3.5.
Exerciii
2. Observai efectul de aliere prin aarea pe acelai grac a unui semnal eantionat corespunztor i acelai semnal decimat la o frecven mai mic dect cea
corespunztoare criteriului Nyquist.
3. Convertii un semnal eantionat la 44100 Hz la o rat de eantionare de 48000 Hz.
Gsii calea optim pentru a realiza conversia. Pentru a gsi calea optim pornii
de la ideea c interpolarea cu un factor foarte mare va necesita foarte multe
calcule.
Pentru a calcula cel mai mic multiplu comun a dou numere folosii funcia lcm,
iar pentru factorizarea unui numr funcia factor.
24
Lucrarea 4
Transformata z
Transformata z este o tehnic similar cu transformata Laplace, ind o form generalizat a transformatei Fourier. Aceasta este folosit la analiza spectral att a semnalelor
continue ct i pentru semnale discrete. Transformata Laplace are urmtoarea form:
Z+
x(t)et ejt dt
X(, ) =
(4.1)
(4.2)
sau nlocuind r ej cu z:
X(z) =
+
X
x[n]z n
(4.4)
n=
x(t)
0.5
180
0
330
210
0.5
240
1
0
10
t
Semnal constant [r = 1]
0.5
x(t)
300
20
180
210
0.5
330
240
1
0
10
t
270
300
20
180
10
x(t)
270
210
330
240
10
0
10
t
270
300
20
Figura 4.1. Semnale pentru diferite valori ale lui r i spectrele polare asociate
Transformata z
z = czt(x);
z = z / ( length (z )/2);
Spectrul semnalului calculat conine acelai numr de eantioane ca semnalul original organizat n felul urmtor: prima jumtate a eantioanelor indic spectrul frecvenelor ntre 0 i jumtatea frecvenei de eantionare, iar celelalte eantioane indic
spectrul frecvenelor oglindite (frecvenele negative).
Aadar pentru a aa corect spectrul se poate folosi urmtoarea secven:
w = 0 : 8000/1024 : 8000*1023/1024;
subplot (2 ,1 ,1) , plot(w,zm), subplot (2 ,1,2), plot(w,zf);
zm
0.6
0.4
0.2
0
0
1000
2000
3000
4000
w
5000
6000
7000
8000
5000
6000
7000
8000
Faza
60
zf
40
20
0
20
0
1000
2000
3000
4000
w
Spectrul calculat de funcia czt n mod implicit este spectrul complet de pe cercul
27
4.2.
Transformata z este folosit ndeosebi pentru calculul rspunsului n frecven ale ltrelor. Pentru un ltru oarecare este valabil urmtoarea expresie:
a(1) y(n) = b(1) x(n) + b(2) x(n 1) + + b(B) x(n B + 1)
a(2) y(n 1) a(A) y(n A + 1)
(4.5)
Cunoscnd transformatele z ale semnalelor x[n] i y[n], adic X[z] i Y [z] se pot
calcula funcia de transfer H[z] a sistemului ltrului ca ind:
H[z] =
Y [z]
X[z]
(4.6)
b1 + b2 z 1 + b3 z 2 + . . .
1 a2 z 1 a3 z 2 . . .
(4.7)
(normalizat la a1 ).
Rescriind relaia de mai sus ca:
(z z1 )(z z2 )(z z3 ) . . .
(4.8)
(z p1 )(z p2 )(z p3 ) . . .
pot identicai zerourile z1 , z2 , z3 , . . . i polii p1 , p2 , p3 , . . . funciei de transfer.
Pornind de la polii i zerourile dorite, se pot calcula coecienii ltrului.
Pentru calculul rspunsului n frecven a unui ltru se poate folosi funcia Matlab
freqz sau, pentru a aa direct polii i zerourile, funcia zplane.
H[z] =
4.3.
Exerciii
28
Lucrarea 5
Transformata Fourier discret este varianta eantionat a transformatei Fourier continue. Transformata Fourier discret a unui semnal x[n] format din N eantioane este
calculat cu formula:
X(k) =
N
1
X
x(n) ej N kn ,
2
k = 0, N 1
(5.1)
n=0
Pentru calculul unei singure valori din spaiul transformatei sunt necesare N operaii, prin urmare complexitatea algoritmului de calcul al transformatei Fourier pentru
o secven de N eantioane, este O(N 2 ). n 1965 Cooley i Tukey au inventat un algoritm de calcul rapid al tranformatei Fourier1 care reduce ordinul acestor calcule la
O(N log2 N ) prin exploatarea proprietilor transformatei Fourier (simetriei i periodicitii funciilor sin i cos) i refolosirea coecienilor la nmulirile complexe.
5.2.
Se exprim spectrul eantionat separat n funcie de secvena par respectiv cea impar
a semnalului:
1
2
X
X(k) =
1
2
X
N
2kn
x(2n)wN
+
n=0
k(2n+1)
x(2n + 1)wN
(5.2)
n=0
(5.3)
29
1
2
X
N
X(k) =
|n=0
X
1
2
k
kn
kn
k
x(2n)w N +
x(2n + 1)w N wN
= Xpar (k) + wN
Ximpar (k) (5.4)
2
2
n=0
{z
}
|
{z
}
Xpar (k)
Ximpar (k)
Am notat cu Xpar (k) transformata Fourier discret a eantioanelor pare ale secvenei
x(n) iar cu Ximpar (k) a celor impare.
Dat ind faptul c secvena FFT este simetric fa de mijloc avem:
N
) = Xpar (k)
2
N
k
Ximpar (k + ) = wN
Ximpar (k)
2
Xpar (k +
k+ N
2
wN
(5.5)
(5.6)
k
X(k)
= Xpar (k) + wN
Ximpar (k)
N
k
X(k + 2 ) = Xpar (k) wN
Ximpar (k)
(5.7)
Aceast formul poate reprezentat grac ca aripile unei uture (de aici vine
denumirea celulei din FFT: buttery) reprezentat grac n Figura 5.1.
X par k
X impar k
w kN
X k
X k N /2
n Figura 5.2 se poate vedea uturele de calcul pentru algoritmul FFT pentru 8
eantioane.
30
X(0)
x(4)
X(1)
x(2)
X(2)
x(6)
X(3)
x(1)
X(4)
x(5)
X(5)
x(3)
X(6)
x(7)
X(7)
5.3.
X(2k) =
N
1
X
1
2
X
N
2kn
x(n)wN
=
n=0
n=0
1
X
1
X
2kn
x(n)wN
n=0
N
2
x(n)wkn
N +
2
X(2k + 1) =
(2k+1)n
n=0
N
2
N
2
2kn n
wN +
x(n)wN
n=0
n=0
1
X
1
X
N
2
n=0
x(n +
N kn
)w N
2
2
1
2
X
N
(2k+1)n
x(n)wN
x(n +
N
2
kn
x(n)w N
2
n
wN
n=0
x(n +
n=0
(5.8)
N 2k(n+ N2
)w
2 N
N 2kn 2k N2
)w wN
}
2 N | {z
n=0
x(n +
n=0
N
2
x(n)wN
x(n +
n=0
N
2
n=0
N
1
X
2kn
x(n)wN
+
n=0
N
2
N
2
1
2
X
x(n +
N (2k+1)(n+ N2 )
)w
2 N
N 2kn n 2k N2 N2
)w w wN wN
} |{z}
2 N N | {z
1
(5.9)
N kn n
)w N wN
2
2
31
X(2k)
= Xinf (k) + Xsup (k)
n
n
X(2k + 1) = Xinf (k) wN
Xsup (k) wN
(5.10)
unde s-a notat cu Xinf (k) transformata Fourier a primelor N2 eantioane i cu Xsup (k)
transformata Fourirer a ultimelor N2 eantioane.
Fluturele pentru algoritmul cu decimare n frecven este reprezentat n Figura 5.3.
x(0)
X(0)
x(1)
X(4)
x(2)
X(2)
x(3)
X(6)
x(4)
X(1)
x(5)
X(5)
x(6)
X(3)
x(7)
X(7)
5.4.
Exerciii
1. Implementai algoritmul FFT (una din cele dou variante) i comparai rezultatul
i timpul de execuie cu timpul de execuie al algoritmului clasic ne-optimizat i
cel al funciei fft din Matlab.
2. Calculai spectrul Fourier pentru cteva semnale cunoscute (de exemplu o sum
de dou su trei sinusoide de diverse frecvene, un semnal dreptunghiular, etc.)
folosind funcia fft din Matlab. Vizualizai spectrul de amplitudine i cel de faz.
32
Lucrarea 6
Filtrarea semnalelor
Filtrarea este o operaie fundamental de procesare dintr-un sistem de procesare a semnalelor. Filtrarea este utilizat de regul pentru eliminarea zgomotului care afecteaz
un semnal. n funcie de tipul ltrului (trece jos, trece band sau trece sus), acesta va
lsa s treac anumite frecvene ale semnalului, dintr-o band specicat, rejectnd
frecvenele din afara benzii de trecere.
6.1.
Noini teoretice
Operaia de ltrare reprezint de regul trecerea unui semnal x(t) printr-un sistem
liniar invariant n timp, a crui funcie pondere h(t) este cunoscut (vezi Figura 6.1)
x(t)
h(t)
y(t)
6. Filtrarea semnalelor
urmtoarea formul:
Z+
Z+
y(t) = h(t) x(t) =
h( ) x(t ) d =
h(t ) x( ) d
(6.1)
(6.2)
unde Y (), H() i X() reprezint spectrele Fourier ale lui y(t), h(t) respectiv y(t).
H() poart numele de funcie de transfer a sistemului/ltrului
Convoluia poate imaginat ca o fereastr glisant (g. 6.2) reprezentat de funcia ponder h(t), care se deplaseaz peste semnalul de la intrare, realizndu-se o sum
a eantioanelor de intrare ponderate cu coecienii ltrului. Suma nu este altceva dect
rspunsul ltrului la un moment dat.
x(t)
h(t)
y(n) =
h(k) x(n k)
(6.3)
k=
i descrie rezultatul cnd funcia x trece prin sistemul caracterizat prin funcia pondere
h.
Dac funcia pondere a sistemului (rspunsul la impuls) este un vector de lungime
K atunci convoluia devine:
y(n) =
K
X
h(k) x(n k)
(6.4)
k=0
Filtrarea n matlab
Astfel ltrarea se poate descrie cu formula:
a(1) y(n) = b(1) x(n) + b(2) x(n 1) + + b(B) x(n B + 1)
a(2) y(n 1) a(A) y(n A + 1)
(6.5)
Aceast formul poate realizat zic prin folosirea unor blocuri de ntrziere
i amplicare asupra intrrii i ieirii, i nsumarea acestor semnale rezultate, ca n
Figura 6.3.
b3
z-1
b2
z-1
b1
+
z-1
a2
z-1
a3
6.2.
Filtrarea n matlab
n acest caz x este vectorul ce conine semnalul de la intrare, iar b i a sunt doi
vectori ce conin coecienii ltrului. Dac vrem s realizm o ltrare cu o funcie de
transfer de lungime nit (adic o convoluie) putem folosi urmtorul apel al funciei
filter:
35
6. Filtrarea semnalelor
y = filter (h,1,x);
6.3.
Exerciii
36
Lucrarea 7
Filtre FIR
Filtrele FIR1 sunt ltre de convoluie la care semnalul de intrare este convolut cu
coecienii sau funcia pondere a ltrului:
yk = b1 xk + b2 xk1 + . . .
(7.1)
fir1(N,
fir1(N,
fir1(N,
fir1(N,
Wn );
Wn , high );
Wn , stop );
Wn , wind );
unde N este ordinul ltrului (ltrul va avea N+1 coecieni), Wn este frecvena de tiere
raportat la frecvena maxim a semnalului (frecvena de eantionare / 2). Dac Wn
este un vector de 2 sau mai multe elemente atunci ltrul va un ltru trece band cu
banda ntre cele perechile de valori din Wn. Dac este specicat high (n cazul n care
Wn este scalar) atunci ltrul va un ltru trece sus n loc de ltru trece jos, iar dac
este specicat stop (n cazul n care Wn este vector de mai multe elemente) atunci
ltrul va deveni ltru oprete band. wind este o fereastr folosit la generarea ltrului.
Implicit fereastra folosit este o fereastr Hamming. Diferite tipuri de ferestre pot
generate cu comenzile: boxcar, bartlett, hamming, hann, kaiser, chebwin, blackman.
Comanda fir2 are urmtoarea sintax:
1
37
unde N este ordinul ltrului, iar F i M reprezint rspunsul dorit n frecven al ltrului
specicat sub form grac (ca i cum ar desenat cu o comand gen plot(F,M)).
Comanda fir2 va genera un ltru care aproximeaz acest rspuns n frecvent.
Funcia de transfer (coecienii) i rspunsul n frecven a unor ltre trece jos,
trece band i trece sus este prezentat n gura 7.1.
7.2.
Filtre IIR
Filtrele IIR2 sunt ltre recusive la care pentru calcularea valorii curente a semnalului de
ieire sunt folosite att valorile semnalului de intrare ct i valorile vechi ale semnalului
de ieire. Astfel se poate realiza un rspuns aproape innit fr a utiliza foarte muli
coecieni. Ecuaia care implementeaz un ltru IIR este urmtoarea:
a(1) y(n) = b(1) x(n) + b(2) x(n 1) + + b(B) x(n B + 1)
a(2) y(n 1) a(A) y(n A + 1)
(7.2)
Avantajul acestor ltre este c se poate realiza o ltrare cu rspuns lung cu calcule
puine, dezavantajul ind c nu avem control la fel de precis asupra rspunsului ltrului,
putnd aprea ripluri3 (oscilaii nedorite) n banda de trecere i n banda de tiere.
De asemenea ltrul poate deveni instabil dac coecientul pentru eantioanele de ieire
depete 1, caz n care semnalul la ieire va intra n saturaie.
n Matlab proiectarea ltrelor IIR se pot face cu funciile butter, cheby1, cheby2,
ellip i yulewalk.
Funcia butter genereaz un ltru Butterworth i are urmtoarea sintax:
[b a] = butter (N, Wn );
[b a] = butter (N, Wn , high );
[b a] = butter (N, Wn , stop );
38
Filtre IIR
Raspunsul in timp
Raspunsul in frecventa
0.4
50
0.3
H() [dB]
h(t)
0.2
0.1
50
100
0
0.1
20
10
0
t
10
150
0
20
0.1
0.2
0.3
[ 2 fs]
0.4
0.5
Raspunsul in frecventa
0.3
20
0.2
40
H() [dB]
h(t)
0.1
0
60
80
0.1
100
0.2
120
0.3
20
10
0
t
10
140
0
20
0.1
0.2
0.3
[ 2 fs]
0.4
0.5
Raspunsul in frecventa
0.3
0.2
20
H() [dB]
h(t)
20
0.1
0
40
60
0.1
80
0.2
100
0.3
20
10
0
t
10
20
120
0
0.1
0.2
0.3
[ 2 fs]
0.4
0.5
Figura 7.1. Funcia de transfer i rspunsul n frecven a unor ltre trece jos (a), trece
band (b) i trece sus (c)
39
Magnitude (dB)
0
100
200
300
0
0.2
0.4
0.6
0.8
1
Normalized Frequency ( rad/sample)
Phase (degrees)
Phase (degrees)
Magnitude (dB)
Acest ltru prezint ripluri att n banda de trecere, ct i n banda de tiere, aceste
ripluri pot controlate cu parametrii Rp i Rs similar cu ltrele Chebyshev.
Un exemplu pentru aceste ltre reprezentate grac prin intermediul comenzii freqz
poate vizualizat n gura 7.2.
200
400
600
0
0.2
0.4
0.6
0.8
1
Normalized Frequency ( rad/sample)
50
100
0
0
200
400
600
0
Magnitude (dB)
50
100
0
0.2
0.4
0.6
0.8
1
Normalized Frequency ( rad/sample)
0
200
400
600
0
0.2
0.4
0.6
0.8
1
Normalized Frequency ( rad/sample)
(c) Elliptic
0.2
0.4
0.6
0.8
1
Normalized Frequency ( rad/sample)
(b) Chebyshev I
Phase (degrees)
Phase (degrees)
Magnitude (dB)
(a) Butterworth
0
0.2
0.4
0.6
0.8
1
Normalized Frequency ( rad/sample)
50
100
0
0.2
0.4
0.6
0.8
1
Normalized Frequency ( rad/sample)
200
400
0
0.2
0.4
0.6
0.8
1
Normalized Frequency ( rad/sample)
(d) Chebyshev II
Exerciii
[b a] = yulewalk (N, F, M)
Pentru a calcula ordinul minim al unui ltru IIR care corespunde anumitor constrngeri asupra riplurilor n banda de trecere i banda de tiere i frecvenele limit
se pot folosi funciile buttord, cheb1ord, cheb2ord i ellipord.
7.3.
Exerciii
1. Generai cteva ltre FIR cu ajutorul comenzilor fir1 i fir2, de diferite tipuri
(trece jos, trece band, trece sus), pentru diferite frecvene folosind diferite ferestre i comparai rspunsul la impuls, rspunsul n frecven i rezultatul ltrrii
unor semnale compuse din mai multe sinusoide i zgomot.
2. Generai cteva ltre IIR cu comenzile butter, cheby1, cheby2, ellip i yulewalk,
de diferite tipuri (trece jos, trece band, trece sus), pentru diferite frecvene
folosind diferite ferestre i comparai rspunsul la impuls, rspunsul n frecven
i rezultatul ltrrii unor semnale compuse din mai multe sinusoide i zgomot.
3. Separai semnalul de 300 Hz din semnalul stocat n ierul s.mat (frecvena de
eantionare pentru acest semnal ind de 8 kHz). Vizualizai semnalul nainte i
dup implementarea operaie de ltrare.
41
42
Lucrarea 8
Breviar teoretic
Filtrul adaptat la semnal este un tip aparte de ltru, proiectarea acestuia fcndu-se
prin specicarea funciei pondere n domeniul timp, nu prin specicarea funciei de
tranfer n domeniul frecven ca la ltrele prezentate anterior. Acest ltru se folosete
de regul pentru detecie, de exemplu ntr-un lan de transmisiune, mai exact, atunci
cnd se cunoate forma semnalului original transmis, care la recepie este afectat de
zgomot.
Pentru un semnal determinist de durat nit, s(t), se denete ltrul adaptat la
semnal ca ind ltrul liniar invariant n timp care are urmtoarea funcie de transfer:
h(t) = K s((t t0 ))
(8.1)
Figura 8.1. Exemplu de ltru adaptat la semnal - semnalul original i funia pondere a
ltrului.
Z
H() = K
h(t) ejt dt = K
s((t t0 )) ejt dt
(8.2)
(8.3)
H() = KS ()ejt0
(8.4)
unde S() este transformata Fourier a semnalului s(t), iar S () complex conjugata
acesteia.
O proprietate foarte important a acestui ltru este faptul c maximizeaz raportul
semnal/zgomot [1].
8.2.
Desfurarea lucrrii
Desfurarea lucrrii
x = x + rand (1 ,1000);
Semnalul y(t) de la ieirea ltrului adaptat la semnal (vezi Figura 8.5) se va calcula
cu ajutorul funciei Matlab conv, care va realiza convoluia dintre semnalul x(t) i
funcia pondere h(t) a ltrului.
45
Valoarea maxim din semnalul y(t) indic poziia n care ltrul adaptat la semnal
a detectat un impuls dreptunghiular similar cu funcia pondere, adic locul n care
potrivirea dintre semnalul x(t) de la intrarea ltrului i semnalul h(t) a fost cea mai
bun. Semnalul original ar putea recuperat prin prguirea semnalului y(t).
8.3.
Probleme
46
Lucrarea 9
9.1.
Breviar teoretic
Un semnal aleator este un proces care se desfoar n timp i este guvernat de legi
probabilistice. Din punct de vedere matematic, un semnal aleator este o funcie de
dou variabile (k, t) = (k) (t), unde k ia valori n spaiul eantioanelor, iar t ia valori
pe axa real a timpului. Funcia (k) (t) face parte din mulimea sau clasa de semnale
(t) i se numete o realizare particular a procesului (t).
Pentru a caracteriza un semnal aleator la un moment de timp t arbitrar sau pentru
o realizare particular, se folosesc funciile de repartiie i cea de densitate de probabilitate. Alte mrimi caracteristice larg utilizate sunt momentele statistice, cele mai
importante ind media i variana.
Funcia de repartiie, denit ntr-un punct x, este probabilitatea ca variabila aleatoare la momentul t s e mai mic sau egal dect pragul x:
F (x, t) = P {(t) x}
Densitatea de probabilitate este derivata funciei de repartiie, i anume:
dF (x, t)
dx
Valori medii statistice larg utilizate n diverse aplicaii:
w (x, t) =
1. Valoarea medie
Z+
(t) =
xw (x, t)dx
47
3. Variana
2
9.2.
Desfurarea lucrrii
Se vor genera trei tipuri de semnale aleatoare: x(n) cu distribuie uniform, y(n) cu
distribuie normal (Gaussian) i z(n) cu distribuie Rayleigh. Aceste trei semnale
aleatoare vor avea media m i variana 2 specicate i vor generate folosind urmtoarele formule [8]:
x(n) = m +
y(n) = m +
3(2 1)
(9.1)
2 lncos(2)
(9.2)
2 ln
(9.3)
z(n) = m +
unde funcia reprezint o variabil aleatoare distribuit uniform n intervalul [0, 1],
obinut cu ajutorul funtiei Matlab rand. Acelai lucru este valabil i pentru variabila
. De exemplu, putei genera semnalele x, y i z ca ind formate din N = 1000
eantioane, pe baza a N valori ale variabilei aleatoare (vezi Figura 9.1). Pentru
aceasta putei utiliza comanda Matlab urmtoare:
xi = rand (1 ,1000);
N = 1000;
eta = rand (1,N);
xi = rand (1,N);
y = m + sqrt (2)* sqrt (-1* log(xi )).* cos (2* pi*eta )* sigma;
Pentru generarea unei variabile aleatoare cu distribuie Rayleigh, se folosete comanda urmtoare.
z = m + sqrt (2)* sqrt (-1* log(xi ))*s;
48
Desfurarea lucrrii
Se vor vizualiza diferite realizri particulare ale celor trei semnale, folosind funiile
figure i plot din Matlab, pentru mai multe valori ale mediei i ale varianei.
Cu ajutorul funciilor mean i var din Matlab se vor calcula mediile i varianele
celor trei semnale i se vor compara cu mediile i varianele specicate. Cum explicai
diferenele?
Se va determina funcia de repartiie pentru ecare din cele 3 realizri particulare
ale semnalelor aleatoare, dup algoritmul de mai jos:
Se alege un numr N de nivele de cuantizare (de exemplu N = 100).
n funcie de valorile minime i maxime ale semnalelor, determinate cu funciile
Matlab min, respectiv max, se va calcula pasul de cuantizare:
=
max min
N
dF (xj )
dxj
Fj Fj1
Fj Fj1
=
xj xj1
pentru j = 2..N .
Reprezentai grac funcia de densitate de probabilitate.
S se calculeze histograma valorilor semnalelor, folosind funcia Matlab hist i
s se reprezinte grac. Histograma reprezint un estimat al funciei de densitate de
probabilitate. Comparai rezultatul obinut cu gracul anterior. Ce observai?
n gurile 9.2 i 9.3 putei observa forma histogramei pentru o variabil aleatoare
distribuit uniform, respectiv pentru una distribuit normal, pentru do valori ale lui
N . Cum explicai diferenele? De notat faptul c funcia hist calculeaz histograma
ne-normat.
(a) N=10
(b) N=20
Histograma cumulativ hc (x) reprezint estimatul funciei de repartiie i se calculeaz pe baza histogramei h(x) folosind formula:
Zx
hc (x) =
h( )d
n cazul discret, integrala se transform ntr-o sum, iar formula de calcul a histogramei cumulative devine:
50
Probleme
(a) N=10
(b) N=20
hx (x) =
x
X
h(k)
k=
9.3.
Probleme
1. Determinai i reprezentai grac histograma pentru urmtoarea secven de valori aleatoare reprezentate pe 2 bii: 1 1 3 2 3 2 0 0 0 0 0 1 1 0 3 0 2 0 0 0 0 3 3
3.
2. Calculai i reprezentai grac histograma cumulativ.
51
52
Lucrarea 10
Corelaia semnalelor
Scopul lucrrii este acela de a studia funciile de autocorelaie i intercorelaie n cazul
unor semnale aleatoare cu densitate de probabilitate uniform, normal i Rayleigh.
10.1.
Breviar teoretic
Funcia de autocorelaie
Funcia de autocorelaie pentru un semnal aleator (t) se denete ca ind corelaia
dintre (t1 ) i (t2 ), t1 , t2 R, adic dintre la momentul de timp t1 i la momentul
t2 :
Z Z
R (t1 , t2 ) = (t1 )(t2 ) =
(10.1)
(10.2)
unde = t1 t2 .
Un estimat al funciei de autocorelaie [7] pentru o secven aleatoare x(n) este dat
de formula:
1
R (m) =
N
N m1
X
x(n)x(n + m)
(10.3)
n=0
Funcia de intercorelaie
Fie (t) i (t) dou semnale staionare. Funcia de intercorelaie ntre (t) i (t) se
denete ca ind corelaia dintre la momentul de timp t1 i la momentul t2 :
Z Z
x1 y2 w2 (x1 , y2 ; t1 , t2 )dx1 dy2
(10.4)
(10.5)
54
N m1
X
n=0
x(n)y(n + m)
(10.6)
Desfurarea lucrrii
(a)
(b)
Figura 10.1. Diagrama de stare pentru dou variabile independente distribuite a) uniform;
b) normal.
Diagrama n spaiul strilor asociat unui semnal aleator este o reprezentare bidimensional a unei variabile aleatoare care reprezint eantionul de la momentul t
al semnalului n funcie de variabila aleatoare asociat semnalului la momentul t p.
Reprezentarea se face pe o durat de observaie T .
Cu ajutorul diagramei n spaiul strilor putem vizualiza legtura ntre cele dou
variabile aleatoare pentru diferite intervale de ntrziere p, obinnd o evaluare calitativ referitoare la corelaia coninut n semnal i la natura (aleatoare sau determinist)
a semnalului.
Pentru semnalele deterministe aspectul diagramei corespunde legturilor funcionale dintre eantioanele semnalului, diagrama ind o reprezentare grac a acestora.
Pentru semnalele aleatoare aspectul diagramei se prezint sub forma unei mulimi de
puncte care pot incluse ntr-un contur nchis cu o anumit form. Aceast form ne
poate da informaii cu privire la corelaia dintre eantioane.
10.2.
Desfurarea lucrrii
Se vor genera trei secvene de numere aleatoare, cu media i dispersia cunoscute (vezi
lucrarea precedent). Pentru ecare din cele trei secvene aleatoare se va reprezenta
55
N m1
X
x(n)x(n + m)
n=0
Se determina i reprezenta grac funcia de intercorelaie pentru dou dintre secevenele aleatoare generate anterior, folosind funcia Matlab xcorr. S se implementeze
o funcie de calcul al intercorelaiei pe baza formulei:
R (m) =
1
N
N m1
X
x(n)y(n + m)
n=0
Se va considera cazul unui semnal determinist obinut la ieirea unui sistem descris
de ecuaia:
x(n) = cx(n 1)[1 x(n 1)]
S se genereze acest semnal determinist, pornind de la x(0) = 0.2 i c = 4. S se
reprezinte grac diagrama n spaiul strilor pentru aceast secven determinist. S
se determine i reprezinte grac funcia sa de autocorelaie.
Calculai funcia de auto-corelaie pentru un semnal cu distribuie Gaussian, folosind funcia Matlab xcorr. Rezolvare:
x = randn (1 ,1000);
plot( xcorr (x,x) );
10.3.
Probleme
56
Probleme
57
58
Lucrarea 11
Dreapta de regresie
11.1.
Breviar teoretic
(a)
(b)
(c)
Figura 11.1. Forma norului de puncte pentru dou variabile a) independente statistic; b)
dependente dar decorelate i c) dependente i corelate.
Dac diagrama n spaiul strilor indic faptul c ntre cele dou variabile aleatoare
ar exista o dependen aproximativ liniar, de forma celei din Figura 11.1c) atunci se
poate determina dreapta de regresie (vezi Figura 11.3) care ar putea aproxima cel mai
bine aceast dependen [1].
Ecuaia dreptei de regresie, care minimizeaz eroarea ptratic medie [1] este:
59
K
( ) +
2
(11.1)
unde K reprezint covariaia dintre cele dou variabile, este media statistic a
lui , iar media lui .
Covariaia dintre i reprezint momentul centrat mixt de ordinul doi, K =
( )( ) i difer de corelaie doar printr-o constant: K = R . Dou variabile se numesc decorelate atunci cnd K = 0. Dou variabile aleatoare independente
sunt implicit decorelate.
Coecientul de corelaie
Pornind de la expresia erorii ptratice medii minime dintre variabila aleatoare i cea
care o aproximeaz cel mai bine, :
"
2 #
K
min = ( )2 = 2 1
(11.2)
se denete coecientul de corelaie, notat cu :
=
(11.3)
i care reprezint valoarea normat a covariaiei dintre cele dou variabile aleatoare. n acest fel, coecientul de corelaie permite cuanticarea absolut a gradului
de dependen liniar dintre i .
Dac rescriem expresia erorii ptratice medii ca ind:
min = 2 (1 2 )
(11.4)
11.2.
Desfurarea lucrrii
Desfurarea lucrrii
(a) = 1
(b) = 0.9
(c) = 0.5
(d) = 0.5
(e) = 0.9
(f) = 1
Figura 11.2. Forma diagramei n spaiul strilor pentru i , pentru diverse valori ale
coecientului de corelaie.
0.8949
1.0000
b = robustfit (x,y,ols )
ans =
3.0232
2.0082
61
11.3.
Probleme
62
Anex
Lista funciilor Matlab des ntlnite:
abs
acos
all
angle
any
asin
atan
axis
butter
cd
ceil
cheby1
cheby2
colormap
conv
cos
czt
det
diag
ellip
exist
exit
exp
fft
filter
find
fir1
Modul
Arccosinus
Veric dac toate valorile unei matrici sunt nenule
Faza unei valori complexe
Veric dac cel puin o valoare dintr-o matrice este nenul
Arcsinus
Arctangent
Modicarea axelor unui grac
Crearea unui ltru Butterworth
Schimbare director de lucru
Rotunjire n sus
Crearea unui ltru Chebyshev de tipul I
Crearea unui ltru Chebyshev de tipul II
Crearea unei hri de culoare pentru aarea suprafeelor
Convoluia ntre dou semnale
Cosinus
Transformata z
Determinant
Creare o matrice cu valori nenule pe diagonal
Crearea unui ltru eliptic
Existena unei variabile
Ieire din Matlab
Exponenial
Trasformat Fourier Rapid
Filtrarea unui semnal
Gsete valorile nenule unei matrici
Crearea unui ltru FIR
63
Rotunjire n jos
Rspunsul n frecven a unui ltru
Aarea liniilor ajuttoare pe grac
Aarea documentaiei asociate unei funcii
Inversa unei matrici
Verc dac o matrice este vid
Aarea unei suprafee prin model wireframe
Crearea unor matrici din combinaia a doi vectori
Lungimea unui vector
Logaritm natural
Logaritm baz 10
Logaritm baz 2
Creare o matrice cu valori de 1
Aarea unui grac
Aare director de lucru
Crearea unei forme de und triunghiular
Sinus
Dimensiunea unei matrici
Radical
Crearea unei forme de und dreptunghiular
Crearea mai multor grace pe o gur
Aarea unei suprafee solide
Creare o matrice cu numere aleatoare
Restul mprii
Creare unei matrici mai mari prin replicarea unei matrici
Rotunjire
Tangent
Modicarea titlului gracului
Corectarea unui vector de faze
Modicarea etichetei de pe axa Ox
Modicarea etichetei de pe axa Oy
Creare o matrice cu valori de 0
Pentru o descriere mai detaliat a acestor funcii consultai documentaia lor disponibil folosind comanda help.
64
Bibliograe
[1] Ciuc, M., Vertan, C., Prelucrarea Statistic a Semnalelor, Editura MatrixRom,
2005
[2] Glmeanu, H., Bazele procesrii i transmiterii semnalelor II ndrumar de laborator, Editura Universitii Transilvania, Braov, 2002
[3] Kalechman, M., Practical Matlab Applications for Engineers, CRC Press, Boca
Raton, FL, 2008
[4] Kalechman, M., Practical Matlab Basics for Engineers, CRC Press, Boca Raton,
FL, 2008
[5] Murgan, A.T., Dogaru, R., Comaniciu, C., Teoria Transmisiunii Informaiei: Detecia, Estimarea i Filtrarea Semnalelor Aleatoare lucrri practice, Editura POLITEHNICA Bucureti, 1995
[6] Murgan, A.T., Spnu, I., Gavt, I., Sztojanov, I., Neagoe, V.E., Vlad, A., Teoria
Transmisiunii Informaiei probleme, Editura Didactic i Pedagogic, Bucureti,
1983
[7] Oppenheim, A.V., Schafer, R.W., Digital Signal Processing, Prentice-Hall, Englewood Clis, New Jersey, 1975
[8] Press, W.H., Flannery, B.P., Teukolsky, S.A., Vetterling, W.T., Numerical Recipes
in C - The Art of Scientic Computing, 2 ed., Cambridge University Press, 1992
[9] Smith, J.O., Introduction to Matlab and Octave, Center for Computer Research in
Music and Acoustics, Stanford University, Stanford, CA, februarie 2009
[10] Smith, S.W., The Scientist and Engineers Guide to Digital Signal Processing, 2
ed., California Technical Publishing, San Diego, 1999
[11] Sptaru, A., Teoria Transmisiunii Informaiei, Editura Didactic i Pedagogic,
Bucureti, 1983
[12] Stahel, A., Octave at HTI Biel, University of Engineering and Information Technology, Biel, 2008
65