Sunteți pe pagina 1din 25

Prelucrarea digitala a semnalelor

Lucrarea 1

Semnale si sisteme discrete. Secvente unidimensionale.


Operatii cu secvente: convolutia si corelatia.
Sisteme discrete liniare si invariante in timp (LIT)

Scopul lucrãrii
Scurta introducere in programarea MATLAB, cu prezentarea facilitatilor
oferite pentru domeniul prelucrarii digitale a semnalelor. Semnale si sisteme
discrete. Operatii cu secvente: convolutie, corelatie (linaira, periodica, circulara).
Reprezentarea sistemelor discrete in timp (functia pondere, ecuatia cu diferente
finite, cauzalitate, stabilitate).

1. Introducere teoreticã
1.1 Programul MATLAB

Programul MATLAB, realizat de compania MathWorks este un instrument


software puternic, destinat in special calculului matematic si procesarii digitale a
semnalelor. Cei mai cunoscuti algoritmi din domeniul PDS sunt disponibili sub
forma de functii sau pachete de programe specializate (tools).

1.1.1 Notiuni generale


Programul MATLAB accepta urmatoarele tipuri de fisiere:
• fisiere de tip "script" (contin text ASCII);
• fisiere de tip "functie" (extensie .M, contin text ASCII);
• fisiere de tip "date" (extensie .MAT, contin date binare);
Exista posibilitatea conversiei fisierelor de date generate de programe C, Pascal, in
format MATLAB si invers.

1.1.2 Functii MATLAB


In Anexa 1, sunt prezentate succint functiile MATLAB, sub forma
condensata a unor tabele. Programul ofera in mod "on-line" informatii despre
fiecare dintre aceste functii, la comanda:

>>help <functie>

unde <functie> este subiectul despre care se doresc informatii, iar >> este
prompterul curent al programului. Fiecare dintre functiile mentionate se afla sub
forma unor fisiere cu extensia .M si pot fi apelate direct in program.
Pentru mai multe detalii referitoare la programul MATLAB poate fi
consultata Anexa 1 de la sfarsitul lucrarii. 1
Prelucrarea digitala a semnalelor

Lucrarea 1

1.2 Semnale discrete. Operatii cu secvente. Convolutia si corelatia


1.2.1 Semnale discrete in timp
Un semnal se numeste discret în timp dacã poate fi reprezentat printr-o
secventã ordonatã de numere {s(tn)}. El poate fi considerat ca o functie discreta in
timp si continua in amplitudine, definitã pe un set de momente de timp discrete t1,
t2, ....,tn,…
Discretizarea in domeniul timp reprezinta operatia de esantionare, care poate
fi:
• uniforma: tn = nT, n∈Ζ, cu T = pasul de discretizare constant;
• neuniforma: cu un pas de discretizare T variabil
T este denumita si perioada de esantionare, iar 1/T- frecventa de esantionare. In
continuare ne vom referi numai la esantionarea uniforma.

Exemplu
Semnalul discret in timp x(n) = an, n > 0 este reprezentat grafic in figura
urmatoare:

a>1 x(n) 0<a<1

x(n) 1

1
n n
0 1 2 3 4 5 6 0 1 2 3 4 5 6

Pentru reprezentarea semnalelor discrete se folosesc notatiile: {x(n)},


{x(nT)}, x(n), x(nT), x(t ) t =nT . Se va preciza cind ultimele 3 notatii reprezinta
intreaga secventa sau un element al acesteia. Frecvent perioada de esantionare T se
considera 1.
Secventa {x(n)} poate fi finita sau infinita. Secventele infinite pot fi
periodice sau aperiodice. O secventa periodica, xp(n), de perioada N, este complet
definita daca se da o perioada a sa; de exemplu, valorile elementelor sale pentru
0 ≤ n ≤ N − 1 , ceea ce inseamna ca:
2
Prelucrarea digitala a semnalelor

Lucrarea 1

xp(n) = x(n mod N), n∈Ζ.

Un semnal discret poate fi generat direct la momente discrete de timp de


catre surse de semnale discrete, sau poate proveni din esantionarea unui semnal
continuu in timp.
Douã secvente sunt egale dacã au aceeasi lungime si valorile esantioanelor
lor sunt egale:
{x(k)} = {y(k)} dacã x(k) = y(k), pentru toate valorile k luate în considerare.

† Operatii cu secvente:

Denumirea operatiei Operatia


Adunare {z(n)}, cu z(n) = x(n) + y(n)
InmuLITre cu numar scalar {z(n)}= a {x(n)} = {a x(n) }
Deplasare in timp {z(n)}=Tn0{x(n)}= {x(n-n0)}
InmuLITre {z(n)}, cu z(n) = x(n) y(n)
Operatii liniare {z(n)}={α x(n) + β y(n)} =
α {x(n)} + β {y(n)}

† Secvente simple:
a) secventa impuls unitate

⎧ 1, n = 0
δ ( n) = ⎨
⎩0, altfel

respectiv impuls unitate intirziat,

⎧1, n = k
δ ( n − k ) = δ nk = ⎨
⎩0, altfel

b) secventa treaptã unitate

⎧ 1, n ≥ 0
u( n) = ⎨
⎩0, altfel

1.2.1.1 Convolutia liniarã


• Definitie: Convolutia liniarã (aperiodicã) este un operator care3
Prelucrarea digitala a semnalelor

Lucrarea 1

actioneaza asupra a douã secvente x1(n) si x2(n), pentru a genera secventa:


x1(n) ∗ x2(n) = ∑ x (m ) x 2 (n − m ) (1.1)
m=−∞ 1

Exemplu
Fie secventele: { x1(n) } = { 3, 2, 1}, { x2(n) } = {3, 2, 1}; secventa obtinuta
prin convolutie liniara este {x1(n) ∗ x2(n) } = { 9, 12, 10, 4, 1}

x1(n)*x2(n)
12

10

x1(n)= x2(n) 8

4
6

2
4

0
1 2 3 n 2

n
0
1 2 3 4 5

• Proprietãti
a) comutativitate
x1(n) ∗ x2(n) = x2(n) ∗ x1(n), ∀ x1, x2

b) asociativitate
[x1(n) ∗ x2(n) ]∗x3(n) = x1(n)∗[x2(n)∗x3(n)] , ∀ x1, x2

c) distributivitate
x1(n) * [x2(n) + x3(n)] = x1(n)∗x2(n) + x1(n)∗ x3(n), ∀ x1, x2, x3

d) este o operatie liniarã


[α x1(n) + β x2(n)]∗x3(n) = α x1(n)∗x3(n) + βx2(n)∗ x3(n),
∀ α, β, x1, x2, x3

♦ Observatii
a) convolutia liniarã a douã secvente de lungimi N1, N2 genereaza o
secventã de lungime N1 + N2 - 1 esantioane; deci rezultatul este o secventã cu4
Prelucrarea digitala a semnalelor

Lucrarea 1

valori nenule în intervalul:

n0 ≤ n ≤ n0 + N 1 + N 2 − 2

b) convolutia liniarã poate fi calculatã în douã moduri:


- direct (folosind definitia);
- efectuind transformata Fourier discreta inversã (TFDI) a produsului
transformatelor Fourier discrete (TFD) a celor doua secvente (dacã convolutia
liniarã si circularã conduc la acelasi rezultat).

1.2.1.2 Convolutia periodicã


• Definitie: pentru douã secvente periodice x1p(n), x2p(n), cu aceeasi
perioadã N,

N −1
x3p(n) = ∑ x1p ( l ) x 2 p ( n − l ) = x1p © x2p (1.2)
l=0

 Exemplu
Fie secventele: { x2p(n) } = { x1p(n) } = {3,2,1, 3, 2, 1,....}, atunci
{x1p(n) © x2p(n) } = { 13, 13, 10, 13, 13, 10,...}

x1p(n) x2p(n) x1p(n)© x2p(n)

3 3 13 13
2 2
1 1 … 10 …

0 1 2 n 0 1 2 n 0 1 2 n

♦ Observatii
a) Conform definitiei (1.2) se observa ca in calculul operatiei de convolutie
periodica intervine numai o perioada a secventelor periodice;
b) Operatia de convolutie periodica a doua secvente periodice de perioada N
este la rindul ei o secventa periodica de perioada N;
c) Convolutia periodica poate fi determinata pe doua cai:
- in domeniul timp, cu ajutorul relatiei (1.2);
- in domeniul frecventa, calculind intii seriile Fourier discrete (SFD)
corespunzatoare secventelor periodice, si apoi efectuind transformarea Fourier 5
Prelucrarea digitala a semnalelor

Lucrarea 1

inversa a produsului acestora. Daca X1p si X2p sunt SFD ale secventelor x1p,
respectiv x2p, atunci avem:

x1p© x2p ←⎯
F
→ X1p X2p

1.2.1.3 Convolutia circularã


• Definitie: Fie douã secvente finite {x1(n)}, {x2(n)} cu durata N.
Convolutia lor circulara notata {x3(n)} poate fi definita astfel :

i) in domeniul timp:
daca:
x1(n) este o perioadã a secventei periodice x1p(n)
x2(n) este o perioadã a secventei periodice x2p(n)
atunci
N −1
x3(n) este o perioadã a secventei [ ∑ x1p ( l ) x 2 p ( n − l ) ] =
l=0
= o perioadã a [ x1p(n) © x2p(n) ] = x1(n) © x2(n) (1.3)

unde © marcheazã operatia de convolutie circularã.

ii) in domeniul frecventa:


fie X1(k) si X2(k) TFD ale secventelor {x1(n)}, respectiv {x2(n)}. Notam cu
X3(k) = X1(k)X2(k). Atunci TFDI a lui X3(k) este secventa {x3(n)} care reprezinta
convolutia circulara a secventelor {x1(n)}, {x2(n)}.

Exemplu de calcul
Pentru cazul particular N = 4, avem:

c(0) = x(0) y(0) + x(1) y(-1) + x(2) y(-2) + x(3) y(-3)


c(1) = x(0) y(1) + x(1) y(0) + x(2) y(-1) + x(3) y(-2)
c(2) = x(0) y(2) + x(1) y(1) + x(2) y(0) + x(3) y(-1)
c(3) = x(0) y(3) + x(1) y(2) + x(2) y(1) + x(3) y(0)

Dacã secventa este periodicã de perioadã 4, atunci:

y(-1) = y(4 - 1) = y(3)


y(-2) = y(4 - 2) = y(2)
y(-1) = y(4 - 3) = y(1)
6
Prelucrarea digitala a semnalelor

Lucrarea 1

Relatiile se pot scrie matricial:

⎡ c( 0) ⎤ ⎡ x(0) x(3) x(2) x(1) ⎤ ⎡ y(0) ⎤


⎢ ⎥ ⎢ x(0) x(3) x(2) ⎥ ⎢ y(1) ⎥
⎢ c( 1) ⎥ = ⎢ x(1) ⎥⋅⎢ ⎥
⎢ c( 2) ⎥ ⎢ x(2) x(1) x(0) x(3) ⎥ ⎢ y(2) ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ c( 3) ⎦ ⎣ x(3) x(2) x(1) x(0) ⎦ ⎣ y(3) ⎦

iar algoritmul de calcul reprezentat mai sus se poate întelege grafic dupã cum
urmeazã:

 Exemplu
Fie secventele:{x1(n)} = {3, 2, 1}, {x2(n)} = {3, 2, 1};atunci
x1(n)© x2(n) = {13, 13, 10}

x1(n) x2(n) x1(n)Òx2(n)

3 3 13 13
2 2
1 1 10

0 1 2 n 0 1 2 n 0 1 2 n
a)convolutia circulara

7
Prelucrarea digitala a semnalelor

Lucrarea 1

x1(n)*x2(n)
12
10
9

4
1

0 1 2 3 n

b) convolutia liniara
I
J • Observatii
a) se constatã cã valorile numerice si lungimea secventei rezultate prin
convolutia liniarã si circularã a acelorasi secvente x1(n) si x2(n) sunt diferite. Se
pune problema aflãrii modului de alegere a punctelor de calcul al convolutiei,
astfel încît rezultatul sã fie acelasi.
b) Conform observatiei a) din paragraful 1.2.1.1, se observã cã: adãugarea la
secventa de lungime N1 a N2 - 1 zerouri, si la secventa de lungime N2 a N1 -1
zerouri, conduce la secvente de lungime N1 + N2 - 1, care prin convolutie circularã
vor conduce la acelasi rezultat cu convolutia liniarã.

Exemplu
Fie x1p'(n) = x2p'(n) = {3, 2, 1, 0, 0, 3, 2, 1}

x'1p(n)= x'2p(n)

3 3
2 2
1 1
.....

0 1 2 3 4 5 6 7 n

O perioadã din secventa x3p'(n) = x1p'(n)∗x2p'(n) este {9, 12, 10, 4, 1}


(rezultat identic celui obtinut prin convolutie liniarã):

8
Prelucrarea digitala a semnalelor

Lucrarea 1

x'3p(n)
12 10
9
4
1
.....

0 1 2 3 4 n

1.2.1.4 Corelatia
Este o altã operatie des folositã în prelucrarea digitalã a semnalelor care
ofera o informatie despre gradul de asemnare a doua secvente.

• Definitie: corelatia a douã secvente finite x1(n), x2(n) este o secventa


definita astfel:


R x x ( p) = ∑ x1( m) x 2 ( p + m) , − ∞ ≤ p ≤ ∞ (corelatie mutualã) (1.4a)
12 m=−∞


R x x ( p) = ∑ x1( m) x1( p + m) , − ∞ ≤ p ≤ ∞ (autocorelatie) (1.4b)
11 m=−∞

Exemple
a) Fie { x1(n) } = {0, 0, 1, 1, 1, 1, 1, 1}, { x2(n) } = {0, 0, 5, 4, 3, 2, 1,
0},
n = -2, -1, 0, 1, 2, 3, 4, 5
R x x ( p) = {0, 5, 9, 12, 14, 15, 15, 10, 6, 3, 2, 1}, n = -6, -5, ... 4, 5
12
b) Fie secventele:{ x1(n) } = { x2(n) } = {3, 2, 1}. Secventa de
autocorelatie liniara este: { 3, 8, 14, 8, 3}

x1(n) x1(n)

3 3
2 2
1 1

0 1 2 n 0 1 2 n

9
Prelucrarea digitala a semnalelor

Lucrarea 1

R x 1 x 2 (n )

14

8 8

3 3

-2 -1 0 1 2 n

• Proprietãti ale corelatiei


a) autocorelatia este o secventã parã: R x x ( p) = R x x ( − p) ;
11 11
b) corelatia mutualã satisface relatia: R x x ( p) = R x x ( − p) ;
12 2 1
c) corelatia poate fi realizatã cu ajutorul operatiei de convolutie, astfel:

R x x ( p) = x1( − n) ∗ x 2 ( n) sau R x x ( p) = x1( n) ∗ x 2 ( − n)


12 12

Corelatia mutuala si autocorelatia sunt operatii folosite in analiza semnalelor


si a sistemelor. De exemplu, pe baza secventei de corelatie se poate detecta
prezenta unui semnal util (cunoscut) intr-un semnal cu zgomot sau poate fi
determinata functia pondere a unui sistem.

1.2.1.5 Corelatia circularã


Este analogã convolutiei circulare
• Definitie: Pentru doua secvente de lungimi egale, avem:

~ N −1 N −1
R x x ( p ) = ∑ x1 p ( m) x 2 p ( p + m) =
1 2 m =0 1 ∑
x ( m) x ( p + m), p = 0,1,... N − 1 (1.5)
2
m=0

unde, ca si în cazul convolutiei circulare, folosim extensia periodicã a secventelor10


Prelucrarea digitala a semnalelor

Lucrarea 1

si pãstrãm o singurã perioadã a rezultatului

Exemplu
Fie secventele: { x1(n) } = { x2(n) } = {3, 2, 1}. Rezultatul corelatiei
circulare este: {14, 11, 11}
~
x1(n) = x2(n) Rx1x2 ( n)
3 14
2 11 11
1

0 1 2 n 0 1 2 n

Exemplu de calcul
Pentru cazul particular N = 4:

r (0) = x(0) y(0) + x(1) y(1) + x(2) y(2) + x(3) y(3)


r (1) = x(0) y(1) + x(1) y(2) + x(2) y(3) + x(3) y(4)
r (2) = x(0) y(2) + x(1) y(3) + x(2) y(4) + x(3) y(5)
r (3) = x(0) y(3) + x(1) y(4) + x(2) y(5) + x(3) y(6)

Datoritã periodicitãtii secventelor, y(N + m) = y(m), respectiv:

y(5) = y(4 + 1) = y(1)


y(6) = y(4 + 2) = y(2)

Forma matriciala:

⎡ r(0) ⎤ ⎡ x(0) x(1) x(2) x(3) ⎤ ⎡ y(0) ⎤


⎢ r(1) ⎥ ⎢ x(3) x(0) x(1) x(2) ⎥ ⎢ y(1) ⎥
⎢ ⎥=⎢ ⎥⋅⎢ ⎥
⎢ r(2) ⎥ ⎢ x(2) x(3) x(0) x(1) ⎥ ⎢ y(3) ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ r(3) ⎦ ⎣ x(1) x(2) x(3) x(4) ⎦ ⎣ y(4) ⎦

si forma grafica:

11
Prelucrarea digitala a semnalelor

Lucrarea 1

♦ Observatii
a) se constatã cã rezultatul corelatiei circulare este diferit de rezultatul
corelatiei liniare, pentru aceleasi secvente. Completarea cu zerouri operata pentru
obtinerea aceluiasi rezultat în cazul convolutiei circulare si liniare functioneazã si
aici.Dacã secventa x1(n) are lungimea N1, x2(n) are lungimea N2, corelatia lor are
lungimea (N1 + N2 - 1), deci se adaugã (N2 - 1) zerouri secventei x1(n), respectiv
(N1 - 1) zerouri secventei x2(n).

1.3. Sisteme liniare si invariante in timp. Cauzalitate, stabilitate.


1.3.1 Cauzalitate. Stabilitate.
• Definitie: Un sistem discret este un operator T care transforma un
semnal discret de intrare x(n) (excitatie), generind un semnal discret de iesire, y(n)
(raspuns): T (x(n)) = y(n).
• Definitie: Un sistem discret este invariant in timp sau invariant la
translatie daca la excitatia x(n-n0) corespunde raspunsul y(n-n0), unde T (x(n)) =
y(n).
• Definitie: Un sistem discret este liniar daca la excitatia α x1(n) + β
x2(n) corespunde raspunsul α y1(n) + β y2(n), unde T (x1(n)) = y1(n) si T (x2(n)) =
y2(n), ∀α, β∈ C.
• Definitie: Se numeste functia pondere a unui sistem discret, secventa
{h(n)} de raspuns a sistemului la o excitatie impuls unitate δ(n).
• Definitie: Semnalul x(n) este cauzal daca x(n)=0, pentru n<0. Sistemul
LIT, caracterizat de functia pondere h(n), este cauzal daca h(n)=0, pentru n<0.
12
Prelucrarea digitala a semnalelor

Lucrarea 1

Un sistem liniar invariant în timp LIT poate fi:

a) recursiv, descris de ecuatia:

N M
y( n) = ∑ a k y( n − k ) + ∑ bk x( n − k ) sau
k =1 k =0

N M ⎧ a' k = 1, pt. k = 0
∑ a' k y( n − k ) = ∑ bk x( n − k ) cu ⎨ (1.6)
k =0 k =0 ⎩a' k = − a k , pt. k = 1,K , N

b) nerecursiv, descris de ecuatia:

L
y ( n) = ∑ b k x ( n − k ) (1.7)
k =0

Aceste ecuatii poarta denumirea de ecuatii cu diferente finite si sunt


echivalente cu ecuatiile diferentiale folosite pentru caracterizarea sistemelor
continue. Dupa forma functiei pondere sistemele discrete pot fi:
i)- cu raspuns finit la impulsul unitate - RFI;
ii)- cu raspuns infinit la impulsul unitate - RII
PP
• Definitie: Un sistem discret LIT este stabil in sens Intrare marginita -
Iesire marginita (Bounded Input - Bounded Output: BIBO) daca la o secventa de
intrare marginita (pentru |x(n)| ≤ M1, ∀ n∈Ν, M1 finit) corespunde o secventa de
iesire marginita ( ∃ M2 finit astfel incit | y(n)| ≤ M2, ∀ n∈Ν).

♦ Observatii:
a) Convolutia este o metodã de aflare a rãspunsului sistemului discret LIT la
secventa de intrare x(n) cind se cunoaste functia pondere a sistemului.

Dacã
δ (n) determinã rãspunsul h(n) (în conditii initiale nule)
δ (n - m) determinã rãspunsul h(n - m)
x(m) δ (n - m) determinã rãspunsul x(m) h(n - m)
∞ ∞
∑ x( m) δ ( n − m) determina raspunsul ∑ x( m) h( n − m)
m=−∞ m=−∞

13
Prelucrarea digitala a semnalelor

Lucrarea 1

Raspunsul unui sistem discret LIT la iesire este:

∞ ∞
y( n) = ∑ h( m) x( n − m) = ∑ x( m) h( n − m) (1.8)
m=−∞ m=−∞

unde x(n) este semnalul de intrare iar h(n) este functia pondere a sistemului.
Relatia (1.8) poate fi utilizata pentru calculul raspunsului doar in cazul sistemelor
RFI, unde secventa pondere are lungime finita. In cazul sistemelor RII raspunsul se
calculeaza cu ecuatia cu diferente finite (1.6)

b) Se poate arata ca stabilitatea in sens BIBO pentru sisteme LIT este


echivalenta cu cerinta ca functia pondere h(n) sa fie de modul sumabila, adica:

∞ ∞
∑ h( n) < ∞ , iar pentru sisteme cauzale: ∑ h( n) < ∞
n=−∞ n= 0

1.3.2 Folosirea convolutiei pentru calculul raspunsului sistemelor LIT


Pentru sisteme cauzale LIT si secvente de intrare cauzale avem:


y( n) = ∑ h( m) x( n − m) = x( n)∗ h( n) , unde operatia desemnata prin simbolul "*"
m= 0

este convolutia liniara. Presupunem ca secventele {x(n)} si {h(n)} sunt de lungime


finita N1 respectiv N2. O metoda eficienta de calcul al convolutiei liniare este
bazata pe folosirea transformatei Fourier discrete:
- se calculeaza TFD a celor doua secvente;
- se efectueaza produsul acestor transformate;
- se calculeaza transformata Fourier discreta inversa pentru obtinerea
secventei de iesire (aceasta metoda se bazeaza pe o proprietate a convolutiei care a
fost amintita in paragraful 1.2.1.1). Deci:

x( n) ⎯⎯
F
( )
→ X e jω
( ) ( ) ( )
−1
Y e jω = X e jω H e jω ⎯F⎯→ y( n)
h( n) ⎯⎯→ H( e )
F jω

Transformata Fourier discreta, poate fi efectuata cu ajutorul unor algoritmi


14
Prelucrarea digitala a semnalelor

Lucrarea 1

eficienti de calcul, denumiti algoritmi pentru calculul transformatei Fourier rapide


(TFR).
Conform unor proprietati ale convolutiei circulare, in relatie cu TFD,
amintite in paragraful 1.2.1.3, operatia de trecere a rezultatului inapoi in domeniul
timp nu conduce la o convolutie liniara (care sa fie y(n)) ci la o convolutie
circulara:

x(n ) ⎯TFD
⎯⎯→ X (k )
Y (k ) = X (k )H (k ) ⎯⎯⎯→ x(n )Θh(n ) ≠ y (n )
TFD −1

h(n ) ⎯TFD
⎯⎯→ H (k )

Pentru ca metoda sa fie aplicata corect utilizand TFD, trebuie ca rezultatul


convolutiei circulare sa fie echivalat cu cel al convolutiei liniare. Conform
discutiilor din paragraful 1.2.1.3 referitoare la legatura intre convolutia liniara si
cea circulara, trebuie ca, inainte de a aplica metoda, secventa {x(n)} sa fie
prelungita cu N2 -1 zerouri, iar {h(n)} sa fie completata cu N1 -1 zerouri. Se aplica
metoda, rezultatul fiind x(n )Θh(n ) (convolutie circulara), care este o secventa de
lungime N= N1+N2-1. Aceasta secventa este aceeasi cu convolutia liniara a
secventelor initiale, deci este egala cu y(n).

2. Desfãsurarea lucrãrii
2.1 Demo si Help

a) Se lanseaaza in executie programul MATLAB.


Mesajul afisat pe ecran informeaza utilizatorul ca are acces la programele
demonstrative demo si help
b) Parcurgeti pas cu pas programele demonstrative disponibile, pentru a
vedea facilitatile oferite de MATLAB
c) Utilizati facilitatea help pentru a obtine informatii despre urmatoarele
comenzi:

load save plot subplot axis xlabel ylabel title

Comentati in scris, folosind informatiile obtinute, programul prezentat in


exemplul 1, retinand faptul ca in MATLAB, comentariile se introduc precedate de
semnul %
15
Prelucrarea digitala a semnalelor

Lucrarea 1

% Exemplul 1
t=0:1:99;
plot(t,sin(2*t)+2*sin(t)),title(' Primul meu grafic! ');
xlabel('timpul t');
ylabel(' y=sin(2*t)+2*sin(t) ');
clg;
%Scalare
v=[0 100 -1.5 +1.5];
axis(v);
subplot(221),plot(t,sin(2*t)),title(' Fereastra stinga sus ');
xlabel('timpul t');
ylabel(' y=sin(2*t) ');
subplot(222),plot(t,sin(2*t)+sin(t)), title(' Fereastra dreapta sus ');
subplot(223),plot(t,sin(2*t)+2*sin(t));
subplot(224),plot(t,sin(2*t)+cos(2*t));
axis;

d) Desenati graficul functiei Bessel pentru α = 0 si α = 1, cu x in


intervalul [0, 10] (pasul 0.25). Graficele se vor realiza in fereastra corespunzatoare
jumatatii superioare a ecranului.
e) Fie vectorul v = [0 1 2 3 4 5 6 7 8 9] Precizam ca indexul elementelor
vectorilor in MATLAB apartine intervalului [1, n] in loc de [0, n -1], corespunzator
altor moduri de lucru.
e1) Testati daca el contine cel putin un element egal cu zero, folosind
functia any(v); Notati definitia functiei any;
e2) Testati daca toate elementele vectorului sunt nule, folosind functia
all(v); Notati definitia functiei all;
e3) Scrieti liniile de program necesare aflarii valorilor maxima (functia
max), minima (functia min), medie (functia mean), mediana (functia median) a
vectorului v;
e4) Scrieti liniile de program necesare calculului abaterii standard a
valorii elementelor vectorului (functia std);
f) Repetati punctul 2.1.e, facand modificarile necesare pentru a functiona
pentru matricea X, creata ca matrice Vandermonde, pornind de la vectorul v;

16
Prelucrarea digitala a semnalelor

Lucrarea 1

♦ Observatie:
Matricea X va avea ca penuLITma coloana vectorul v, iar elementele matricii
au valorile vander(i,j) = v(i)(n -j)

g) Precizati ce realizeaza comenzile de mai jos:

X(: , j) X(j : k) X(i , :) X(:, j : k) X(: , :) X(:)

2.2 Operatii cu secvente (partea I)

a) Fie vectorii x1 = [3 2 1], x2 = [3 2 1], unde N este lungimea maxima a


secventei. Urmariti exemplul 2, care realizeaza convolutia si corelatia vectorilor,
precum si tabelul 1, al rezultatelor obtinute.

% Exemplul 2 Tabelul 1: Rezultate


% Convolutia si corelatia secventelor 1-D
%
x1 = [3 2 1];
x2 = [3 2 1];
% Convolutia liniara
c = conv(x1, x2); c=[9 12 10 4 1]
% Convolutia periodica
x1p = [3 2 1 3 2 1];
x2p = [3 2 1 3 2 1];
d = conv(x1p, x2p); d=[9 12 10 22 25 20 17 14 10 4 1]
% Convolutie circulara
% o posibilitate de calcul in acest caz
a=[3 1 2; 2 3 1; 1 2 3]
circ=a*x2';
c=[0 0 0 13 13 10 0 0]
% Desenarea rezultatelor
t1=0:1:4;
Subplot(221),stem(t1,c),title('Convolutie
liniara');
t2=0:1:2;
Subplot(223),stem(t2,circ),
title('Convolutie circulara');
17
Prelucrarea digitala a semnalelor

Lucrarea 1

%
% Corelatie mutuala
m = xcorr(x1, x2);
%
% Normalizarea val. corelatiei (cu
1/length(x))
%
norm = xcorr(x1, x2, 'biased');
%
% Autocorelatie
a = xcorr(x1);
t3 = 0:1:4;
Subplot(222),stem(t3,m), title('Corelatie
mutuala');
%
% Corelatie circulara
% Folosim scrierea matriciala
a = [ 3 2 1; 1 3 2; 2 1 3];
rcirc = a∗ x1';
t4 = 0:1:2;
Subplot(224),stem(t4,rcirc),title('Corel.
circ.');

b) Modificati programul si notati rezultatele pentru cazurile:


b1) x1p = [ 3 2 1 3 2 1 3 2 1], x2p = [ 3 2 1 3 2 1 3 2 1];
b2) Folositi scrierea matriciala pentru calculul convolutiei circulare;
c) Fie vectorii a = [1 2 3], b = [4 5 6], unde N este lungimea maxima a
secventei;
c1) Realizati (teoretic) convolutia vectorilor a si b;
c2) Scrieti instructiunile necesare in MATLAB pentru a repeta punctul a),
realizand un tabel similar tabelului 1.
c3) inserati secventa:

u=rand(3,1); t=clock; ...operatie... etime(clock,t); pentru a calcula durata


fiecareia dintre operatiile efectuate (convolutie/corelatie);
d) Pentru secventele { x1(n)}, { x2(n)} din figurã, determinati si desenati
convolutia liniarã x1(n) * x2(n)

18
Prelucrarea digitala a semnalelor

Lucrarea 1

x1(n) x2(n)

2 2 2
1 1 1

0 1 2 3 4 5 n 0 1 2 3 4 5 n

e) Se dau douã secvente cu duratele 3 si 6 (fig.): {0, -3, -2, 1, 2, 0},


{2, 3, 2, -1}
e1) Scrieti instructiunile MATLAB pentru determinarea lui
y1(n) = x1(n) ∗ x2(n), folosind operatia de convolutie. Reprezentati grafic
rezultatul;
e2) Scrieti instructiunile MATLAB pentru determinarea lui
y2(n) = x1(n) ∗ x2(n) folosind operatia de convolutie. Reprezentati grafic
rezultatul.

2.3 Proprietãtile operatiilor cu secvente

a) Verificati proprietãtile de comutativitate, asociativitate,


distributivitate, liniaritate ale convolutiei, scriind în MATLAB instructiunile
corespunzãtoare. Se vor considera secventele:

x1(n) = { 1, 1, 1, 0, 0 , 0}, n = 0, 1, 2, 3, 4, 5
x2(n) = { 1, 2, 0, -3, 4, 2, -1, 1, -2, 3, 2, 1, -3}
x3(n) = {1, 0, 1, 0, 1}

b) Pornind de la definitia convolutiei discrete:


x1 ( n ) ∗ x 2 ( n ) = ∑ x ( m ) x2 ( n − m )
m=−∞ 1

arãtati cã:

b1) dacã x1(n) = 0 pentru n < 0, atunci


x1 ( n ) ∗ x 2 ( n ) = ∑ x1 ( m ) x 2 ( n − m )
m= 0 19
Prelucrarea digitala a semnalelor

Lucrarea 1

b2) dacã x2(n) = 0 pentru n < 0, atunci

m
x1 ( n ) ∗ x 2 ( n ) = ∑ x ( m ) x2 ( n − m )
m=−∞ 1

b3) dacã x2(n) = 0 pentru n < 0 si x1(n) = 0 pentru n < 0, atunci

n
x1 ( n ) ∗ x 2 ( n ) = ∑ x1 ( m ) x 2 ( n − m )
m= 0

Se vor considera secventele:


⎧1, n = 0,1
πn ⎪
x1(n) = cos( ), n = 0, 1, 2 , 3, 4 , 5, 6 x2(n) = ⎨0, n = 2,3,4
2 ⎪ 1, n = 5

♦ Observatii
- Retineti faptul ca o modalitate interesantã de generare a valorii π cu
MATLAB este urmatoarea:
log(-1) (calculeazã logaritmul natural: log(z) = log(abs(z) + i atan2(y,x))
care determinã rãspunsul: 0.0000 + 3.1416 i
- Pentru generarea secventelor x1(n), x2(n) se poate folosi secventa de
instructiuni MATLAB urmatoare:

for n = 1: 7
x1(n) = cos((pi ∗ n) / 2);
end;
x2 = [1 1 0 0 0 1];

c) Stiind cã importanta operatiei de convolutie constã si în faptul cã


operatii elementare (exceptie: operatiile neliniare) pot fi reprezentate prin
convolutii cu semnale elementare alese corespunzãtor, scrieti instructiunile
MATLAB necesare pentru a arãta cã:
c1) convolutia cu secventa impuls unitate lasã secventa x(n) neschimbatã;
c2) multiplicarea cu un scalar este echivalentã convolutiei cu secventa
a δ(n) ("a" scalar);
c3) întîrzierea în timp este echivalentã convolutiei cu δ(n - m):
{ x(n - m) } = { x(n) * δ(n - m) }
20
Prelucrarea digitala a semnalelor

Lucrarea 1

c4) sumarea este echivalentã convolutiei cu secventa treaptã unitate:

⎧1, n ≥ 0
u(n) = ⎨
⎩0, n < 0

Se va considera secventa x(n) = {1, 2, 3, 3, 2, 1, }, se va nota si se va


desena rezultatul fiecãrei operatii.

2.4 Operatii cu secvente (partea II-a)

a) xp(n) si rp (n) sunt secvente periodice cu perioada N = 6, date de:

⎧1, n = 0
πn ⎪
xp(n) = cos ( ) r p(n) = ⎨ 0, n = 2,3,4
3 ⎪ 1, n = 5

Scrieti instructiunile MATLAB necesare calculului convolutiei periodice a


secventelor xp(n) si rp(n), notati si reprezentati grafic rezultatul.
b) Fie secventele periodice:
x1(n) = { 1, 2, 3, 4, 5, 0, 0}, x2(n) = { 1, 1, 1, 1, 0, 0, 0}
b1) Calculati cu ajutorul MATLAB convolutia circularã în 7 puncte a
acestor secvente;
b2) Presupunînd cã secventele sunt finite si neperiodice, gãsiti convolutia
lor liniarã;
b3) Sunt rezultatele identice sau nu ? Explicati si indicati solutia pentru
obtinerea aceluiasi rezultat. Verificati cu ajutorul MATLAB solutia propusã;
c) Calculatii si reprezentati grafic convolutia liniarã, periodicã si
circularã, a douã secvente de lungime 4, date în tabelul de mai jos:

n x1p(n) x2p(n)
0 1 3
1 2 2
2 -1 0
3 0 1

21
Prelucrarea digitala a semnalelor

Lucrarea 1

d) Douã secvente de lungime N = 3, x1(n) si x2(n) sunt desenate mai jos:

x1(n) x2(n)

3 3 2

1 2
2 0 n
0 1 n -1
-2 -2

Calculati cu ajutorul programului MATLAB si reprezentati grafic:

d1) convolutia liniarã x1(n) * x2(n);


d2) convolutia circularã x1(n) ∗ x2(n);
d3) corelatia mutualã R x x ( p )
1 2
d4) autocorelatia secventei x1(n), R x x ( p )
11
~
d5) autocorelatia circularã a secventei x1(n), R x1x1 ( p )

2.5 Aplicatii ale operatiilor cu secvente. Sisteme LIT

a) Fie sistemul discret cu functia pondere h(n) = an u(n). Daca la intrare


1 k
se aplica secventa x(n) = ( ) , calculati secventa de raspuns, y(n), folosind
2
convolutia. Realizati calculul teoretic si cu ajutorul programului MATLAB.
πn π
b) Pentru sistemul al cãrui h(n) = ( 0.707 )n+1 cos( − ), n≥0
4 4
folositi operatia de convolutie pentru a calcula rãspunsul sistemului la secventa
treaptã unitate, cu ajutorul MATLAB. Notati secventa de instructiuni folosite si
rezultatul obtinut.
1 1 1
c) Fie secventa de rãspuns la δ(n): h(n) = { 1, , , , 0, 0 }
2 3 4
c1) Reprezentati grafic secventele: δ(n), h(n), δ(n - m), h(n - m)
c2) Determinati si desenati rãspunsul sistemului la secventa de intrare:

⎧4, n ≥ 0
x(n) = ⎨
⎩ 0, n < 0 22
Prelucrarea digitala a semnalelor

Lucrarea 1

d) Fie secventele h(n) si x(n) din figurã. Determinati rãspunsul sistemului


LIT cu ajutorul operatiei de convolutie.

h(n)
4
3
2
1
0

0 1 2 3 4 5 n

h(n)

4
2 2
5 6 7 8
0 1 2 3 4 n

e) Rãspunsul unitar al unui sistem liniar invariant în timp (LIT) este dat
în tabelul urmãtor:

n 0 1 2 3 4 5 6
h(n) 0.0 0.0 3.0 0.75 0.56 0.23 0.0

Semnalul de intrare în sistem este x(n) = 5 u(n), unde u(n) este secventa
treaptã unitate. Folositi operatia de convolutie pentru a afla rãspunsul sistemului
y(n), pentru n = 0, 1, 2, 3, 4.

Anexa 1

Programul MATLAB este dedicat calculului numeric si reprezentarilor


grafice in domeniul stiintei si ingineriei. El integreaza analiza numerica, calculul23
Prelucrarea digitala a semnalelor

Lucrarea 1

matriceal, procesarea semnalului si reprezentarile grafice, intr-un mediu usor de


utilizat. La baza calculelor efectuate cu MATLAB stau operatiile matriceale.
O caracteristica importanta a MATLAB este usurinta cu care acesta poate fi
extins prin crearea de noi functii sau proceduri pe baza celor existente. MATLAB
include pachete de functii sau proceduri numite Toolbox-uri. Acestea sunt pachete
de functii (fisiere .m) grupate dupa anumite domenii. Exista urmatoarele toolbox-
uri:
Signal Processing: pentru prelucrarea semnalelor si analiza seriilor
temporale.
Image Processing: pentru prelucrarea imaginilor si a semnalelor
bidimensionale.
Symbolic Math: pentru calculul simbolic matematic.
Neural Networks: pentru proiectarea si simularea retelelor neurale.
Statistics: pentru analiza si modelarea statistica.
Spline: pentru aproximare si modelare pe baza functiilor spline.
Control System Design: pentru analiza si proiectarea sistemelor automate de
control.
Robust Control: pentru control robust (in prezenta incertitudinii).
System Identification: pentru modelare parametrica, identificarea sistemelor,
analiza spectrala.
µ-Analysis and Synthesis: pentru µ-analiza si sinteza.
Optimization: pentru optimizarea liniara si neliniara.
Genetic Algorithms, GAOT: pentru optimizare cu algoritmi genetici.
Fuzzy: pentru implementarea sistemelor bazate pe muLITmi vagi.

Bibliografie
[1] Richard A. Haddad, Thomas W. Parsons - Digital Signal Processing.
Theory, Applications and Hardware; Computer Science Press, USA, 1991;
[2] Emmanuel C. Ifeachor, Barrie W. Jervis - Digital Signal Processing. A
Practical Approach; Addison - Wesley Publ. Comp., USA, 1993;
[3] Vasile Lãzãrescu - Prelucrarea digitalã a semnalelor; Amco Press,
Bucuresti, Romania, 1995;
[4] John J. Proakis, Dimitris G. Manolakis - Digital Signal Processing.
Principles, Algorithms and Applications; Maxwell MacMillan Intl, Singapore,
1992;
[5] Robert D. Strum, Donald E. Kirk - First Principles of Discrete Systems
and Digital Signal Processing; Addison - Wesley Publ. Comp., USA, 1988;
[6] Alan V. Oppenheim, Roland W. Schaffer - Discrete Time Signal
Processing - Prentice-Hall International, Inc., 1988
[7] Marin Ghinea, Virgil Fireteanu - MATLAB- calcul numeric, grafica,24
Prelucrarea digitala a semnalelor

Lucrarea 1

aplicatii, Teora, 1995

25

S-ar putea să vă placă și