Documente Academic
Documente Profesional
Documente Cultură
Prelucrarea Semnalelor
Prelucrarea Semnalelor
ÎN SISTEMUL MATLAB
Obiective: însușirea unor elemente de bază din Matlab precum: definirea unei matrice, operații cu matrice, tipuri de
date,.
1.1. Introducere
Se numeşte semnal o mărime fizică măsurabilă, purtătoare de informaţie, care poate fi transmisă la distanţă,
recepţionată şi/sau prelucrată. În cele ce urmează, se va aborda problema modelării formei semnalelor, fără a ne
preocupa de conţinutul în informaţie al semnalelor.
Un semnal unidimensional, numit şi semnal 1D, este o funcţie de timp, notată generic prin x(t), t ∈ ℜ . De regulă,
mărimea fizică variabilă reprezentând semnalul este o tensiune electrică. Totuşi, în echipamentele de automatizări se
utilizează şi semnale de altă natură fizică, aşa cum sunt, de exemplu: curentul electric, presiunea aerului instrumental,
deplasarea unui corp solid. În telecomunicaţii, semnalul 1D este întotdeauna o tensiune electrică variabilă în timp.
Semnalele se pot aplica unor circuite sau, mai general, un LUCRAREA 1
Obiective: însușirea unor elemente de bază din Matlab precum: definirea unei matrice, operații cu matrice, tipuri de
date,.
1.1. Introducere
Se numeşte semnal o mărime fizică măsurabilă, purtătoare de informaţie, care poate fi transmisă la distanţă,
recepţionată şi/sau prelucrată. În cele ce urmează, se va aborda problema modelării formei semnalelor, fără a ne
preocupa de conţinutul în informaţie al semnalelor.
Un semnal unidimensional, numit şi semnal 1D, este o funcţie de timp, notată generic prin x(t), t ∈ ℜ . De regulă,
mărimea fizică variabilă reprezentând semnalul este o tensiune electrică. Totuşi, în echipamentele de automatizări se
utilizează şi semnale de altă natură fizică, aşa cum sunt, de exemplu: curentul electric, presiunea aerului instrumental,
deplasarea unui corp solid. În telecomunicaţii, semnalul 1D este întotdeauna o tensiune electrică variabilă în timp.
Semnalele se pot aplica unor circuite sau, mai general, unor sisteme dinamice. Fie u(t) semnalul aplicat la intrarea
unui sistem şi y(t) semnalul obţinut la ieşirea acestuia, numit şi răspuns al sistemului la semnalul de intrare (fig. 2.1).
Sistemele dinamice realizează prelucrarea semnalelor, conform cu funcţiunile realizate de echipamentele electronice
în care sunt înglobate.
u(t) y(t)
Sistem
dinamic
uk Sistem numeric yk
(realizare software)
Sistem 2D
u(t) y(t)
Sistem
dinamic
uk Sistem numeric yk
(realizare software)
Sistem 2D
Funcția lui Dirac sau funcția delta, numită și „impuls” unitar, notată δ(x), nu este o funcție obișnuită, ci
o funcție generalizată (sau o distribuție).
Un „impuls” unitar analitic se definește astfel:
1, 𝑘 = 0,
𝛿={
0, 𝑘 ≠ 0.
Aria impulsului este egală cu 1 (de aceea se numeşte unitar). Prin trecere la limită se obţine un impuls de
amplitudine infinită şi de durată nulă, notat cu δ(t). Aria acestui impuls, adică
∞
∫−∞ 𝛿(𝑡)𝑑𝑡 = 1,
defineşte „mărimea” impulsului.
Pentru a forma un impuls unitar, poziționat în momentul de timp t=0, se utilizează următoarea secvență de program:
k=-1 0 : 1 0 ;
x2=zeros(size(k));
x2(11)=2.6;
figure; stem(k,x2); grid;
xlabel('k'); ylabel('x2(k)')
P=7; M=8;
%generarea impulsului generator, de lungime P
d=[1;zeros(P-1,1)]; y=d*ones(1,M);
%generarea trenului de impulsuri de lungime P*M
tren=y(:);
%reprezentare grafica
n=0:M*P-1;
stem(n,tren);
xlabel('n');ylabel('Amplitudine');
title('Tren de impulsuri unitate');
axis([-2 28 0 1.2]);
Fig.1.5. Tren de impulsuri unitate.
Semnalul treaptă unitară analitic se definește astfel:
1 pt. t 0
u (t )
0 pt. t 0
În s i s t e m u l M a t l a b f u n c ț i a t r e a p t ă u n i t a r ă p o a t e f i f o r m a t ă u t i l i z â n d p r o c e d u r a o n e s .
t=-0.5:0.002:1.5;
U=[zeros(1,251),ones(1,750)];
plot(t,U);
xlabel('t,s');ylabel('Amplitudine');
title('Treapta unitate');
axis([-0.3 1.3 0 1.3]);
I m p u l s u l d e f o r mă t r i u n g h i u l a r ă ș i a mp l i t u d i n e u n i t a r ă s e r e a l i z e a z ă c u a j u t o r u l p r o c e d u r i i tripuls,
c a r e a r e f o r m a : y=t r i p u l s ( i , w ,s). A r g u m e n t e l e y, t, w , a u a c e l a ş sens c a ş i î n e x e m p l u l d e m a i
sus. A r g u m e n t u l s ( - 1 ≤ s ≤ 1 ) d e t e r m i n ă î n c l i n a r e a t r i u n g h i u l u i . D a c ă s=0, s a u d a c ă n u e s t e i n d i c a t , a t u n c i i m p u l s u l
triunghiular est e sim et ric. Fu ncţia y=tripuls (t, w) formea ză un impuls sim etric de amplitudine unitară și
d u r a t ă w , c e n t r a t f a ţ ă d e t = 0 . În f i g . 1 . 8 s e p r e z i n t ă u n e x e m p l u d e f o r m a r e a u n e i s u c c e s i u n i d e s e m n a l , a l c ă t u i t ă
din trei impulsuri:
t=0:0.01:10;
y=0.4*tripuls(t-2,0.6,1)+1.4*tripuls(t-6,3)+0.6*tripuls(t-9,1.5,-1.5);
plot(t,y); grid
xlabel('timpul(s)')
ylabel('y(t)')
Fig.1.8. Impulsuri triunghiulare.
I m p u l s u l s i n u s o i d a l mo d u l a t d e f u n c ţ i a G a u s s s e e x e c u t ă c u p r o c e d u r a gauspuls, a d r e s a r e a c ă t r e e a
poate avea următoarele forme:
yi=gauspuls(t,fc,bw)
yi=gauspuls(t,fc,bw,bwr)
[yi,yq]=gauspuls(...)
[yi,yq,ye]=gauspuls(...)
tc=gauspuIs('cutoff',fc,bw,bwr,tpe)
F u n c ţ i a yi=gauspuls(t,fc,bw) f o r m e a z ă s e c v e n ţ a e ş a n t i o a n e l o r u n u i i m p u l s , c a l c u l a t e î n m o m e n t e l e d e
t i m p d a t e d e v e c t o r u l t ; f c [ H z ] d e t e r m i n ă f r e c v e n ţ a p u r t ă t o a r e i s e m n a l u l u i ; bw - l ă r g i m e a r e l a t i v ă a benzii de
f r e c v e n ţ ă a s e m n a l u l u i î n d B ( i a v a l o r i p o z i t i v e ) . În m o d i m p l i c i t , s e u t i l i z e a z ă u r m ă t o a r e l e m ă r i m i : f c = 1 0 0 0 H z ş i
bw=0.5 dB (bw=∆f/fc).
F u n c ţ i a yi=gauspuls(t,fc,bw,bwr) c a l c u l e a z ă s e c v e n ţ a e ş a n t i o a n e l o r s e m n a l u l u i c u u r m ă t o r i i p a r a m e t r i :
a mp li t u d i n ea u n i t a ră , lă ţ i me a re la t i vă a b en zi i d e fr ec v e n ţ ă b w, d et er mi n a t ă d e n i ve l u l d e a t en u a re b w r [ d B] î n
rap o rt cu amplitudinea maximală a spect rului semnalu lui. Parametru l bwr treb uie să ia v a lo ri n egative, deoa rec e el
d e t e r m i n ă a t e n u a r e a n e c e s a r ă a f u n c ț i e i s p e c t r a l e f a ț ă d e v a l o a r e a e i m a x i m a l ă . În m o d i m p l i c i t , b w r = - 6 d B .
F u n c ţ i a [yi,yq]=gauspuls(...) c a l c u l e a z ă d o i v e c t o r i . V e c t o r u l y i c o n ţ i n e e ş a n t i o a n e l e s e m n a l u l u i i n i ţ i a l ,
iar vectorul yq c onţine eşa ntioa ne le se mna lului c u un de faza j de 90 0 față d e cel inițial.
F u n c ţ i a [yi,yq,ye]=gauspuls(...) c a l c u l e a z ă a d ă u g ă t o r s e m n a l u l y e , c e r e p r e z i n t ă a n v e l o p a i m p u l s u l u i .
F u n c ţ i a tc=gauspuls('cutoff,fc,bw,bwr,tpe) c a l c u l e a z ă t i m p u l t c , c o r e s p u n z ă t o r m o m e n t u l u i d e t i m p î n
care amp litudinea se mna lu lui scade pâ nă la tpe [dB] față de va loarea maxi mală. Mărimea tpe trebuie să ia va lori
ne ga tive, deo arece se teaz ă ate nuarea necesa ră a în făș uratoa re i în ra po rt c u nive lu l e i ma xima l. În mo d imp lic it tpe = -6 0dB.
S ă c o n s t r u i m c u r b a i m p u l s u l u i Ga u s s i a n c u f r e c v e n ţ a p u r t ă t o a r e i 5 0 k H z ş i b a n d a r e l a t i v ă d e f r e c v e n ţ ă 6 0 % ,
considerând pasul de calcul 1 MHz. Pentru calcu lul şi construcţia impulsului se utilizează intervalul d e timp, p e
durata căruia amplitudinea impulsului se micşorează până la nivelul -40 dB în raport cu valoarea lui maximală.
tc = gauspuls('cutoff', 50e3, 0.6, [], -40);
t = -tc : 1e-6 : tc;
yi = gauspuls(t,50e3,0.6);
plot(t,yi);
grid on
xlabel('timpul(s)')
ylabel('yi(t)')
Fig.1.9. Impuls Gaussian.
t=0:0.01:50;
yi=1.9*sinc(pi*(t-15)/5);
plot(t,yi); grid;
xlabel('timpul(s)');
ylabel('yi(t)');
1 . 3 . F o r ma r e a o s c i l a ț i i l o r p e r i o d i c e
Semnalele armonice și poliarmonice pot fi generate în Matlab cu ajutorul operatorilor trigonometrici sin(x) şi
cos(x).
Expresia analitică a semnalului sinusoidal este:
x(t) A sin(0 t 0).
Considerând că x(t) descrie un semnal electric (tensiune sau curent), parametrii ce-l definesc sunt următorii:
A – amplitudinea semnalului [V] sau [A].
Observaţie: Valoarea efectivă a semnalului este definită astfel:
√2
𝐴𝑒𝑓 = 𝐴 ≈ 0,707𝐴.
2
0 - pulsaţia [rad/s].
Cum 0(2)/T=2f se pot pune în evidenţă alţi doi parametri:
f - frecvenţa semnalului [Hz].
T – perioada semnalului [s].
Observaţie: f 1/T.
0 - faza iniţială [rad].
Scriptul pentru generarea semnalului sinusoidal:
clf;
t=0:0.1:60;
f=0.1;
phase=0;
A=2.6;
arg=1.5*pi*f*t-phase;
x=A*cos(arg);
plot(t,x);
axis([0 60 -3 3]);
grid;
title('Sinusoida');
xlabel('Timpul t');
ylabel('Amplitudinea');
axis;
Fig.1.11.Semnal sinusoidal.
Procedura pulstran p e r m i t e d e a f o r m a o s c i l a ţ i i , c a r e s u n t s e c v e n ţ e a i m p u l s u r i l o r d r e p t u n g h i u l a r e ,
t r i u n g h i u l a r e s a u g a u s s i e n e . Ad r e s a r e a c ă t r e e a a r e f o r m a :
y= p u l s t r a n ( t , d , ' f u n c ' ) ;
y=pulstran(t,d,'func',p1,p2,...);
y=pulstran(t,d,p,Fs);
y=pulstran(t,d,p).
Ai c i p a r a m e t r u l d d e t e r m i n ă v a l o a r e a v e c t o r u l u i m o m e n t e l o r d e t i m p c o r e s p u n z ă t o a r e a x e i d e s i m e t r i e a
i m p u l s u r i l o r ; p a r a m e t r u l func d e t e r m i n ă f o r m a i m p u l s u l u i ş i p o a t e a v e a u n a d i n u r m ă t o a r e l e s e n s u r i : rectpuls ( p e n t r u
i m p u l s d r e p t u n g h i u l a r ) , tripuls ( p e n t r u i m p u l s t r i u n g h i u l a r ) , gauspuls ( s i n u s o i d ă m o d u l a t ă c u f u n c ţ i a Ga u s s ) .
Semnalu l d e ieşire y se calculează p entru valorile arg umentului, date d e vectorul t, după formu la:
y=func(t-d(1))+func(t-d(2))+...N u m ă r u l i m p u l s u r i l o r î n d i a p a z o n u l d a t a l a r g u m e n t e l o r e s t e length(d). P a r a m e t r i i p1,p2...
determină parametrii n ecesari a impulsului în d epend enţă de forma d e adre sare către procedura, care d etermină
acest impuls.
F u n c ţ i a y=pulstran(t,d,p,Fs) p e r m i t e d e a d e t e r m i n a i m p u l s u l c u s e c v e n ţ a e ş a n t i o a n e l o r d a t e î n
v e c t o r u l p. F r e c v e n ţ a d e d i s c r e t i z a r e e s t e d a t ă d e p a r a m e t r u l F s . L a f o l o s i r e a f u n c ţ i e i y=pulstran(t,d,p),
f r e c v e n ţ a d e d i s c r e t i z a r e s e i a e g a l ă c u 1 H z . M a i j o s s u n t p r e z e n t a t e t r e i e x e m p l e d e u t i l i z a r e a p r o c e d u r i i pulstran:
Pentru o succesiune de i mpulsuri dreptunghiulare:
t=0:0.01:70;
d=[0:10:70];
y=0.6*pulstran(t,d,'rectpuls',3.5);
plot(t,y), grid
Fig. 1.15. Utilizarea funcţiei pulstran
în cazul impulsurilor dreptunghiulare.
Pentru o succesiune de i mpulsuri triunghiulare:
t=0:0.01:70;
d=[0:10:70];
yl=0.10*pulstran(t,d,'tripuls',7);
plot(t,yl),
grid
Fig. 1.16. Utilizarea funcţiei pulstran
pentru o succesiune periodică de impulsuri triunghiulare.
P e n t r u o s u c c e s i u n e p e r i o d i c ă de i mp u l s u r i g a u s s i e n e :
t=0:0.01:70;
d=[0:10:70];
y2=0.5*pulstran(t,d,'gauspuls',1,0.5);
plot(t,y2),
grid
Fig. 1.17. Utilizarea funcţiei pulstran
pentru o succesiune periodică de impulsuri gaussiene.
O c o s i n u s o i d ă , f r e c v e n ţ a c ă r e i a v a r i a z ă l i n i a r î n t i mp , s e g e n e r e a z ă c u a j u t o r u l p r o c e d u r i i chirp:
y=chirp(t, f 0 ,t1,f1).
Ea formea ză eşantioan ele semnalului cosinusoidal, fre c ve nţa că ruia c reșt e liniar p entru momentele de timp
date de vec torul t; f0 - frecvenţa instantanee în momentul de timp t=0; f1 - fre c ve nţa insta nta nee în momentul de
timp t=l. Frecvenţele f0 şi f1 se dau în Hz. De exemplu pentru f0=0, t1=l, f1 = 100, utilizăm următoru l script:
t=0:0.001:2;
y=0.10*chirp(t);
plot(t,y),
grid
Fig. 1.18. Formarea unei cosinusoide cu frecvenţa variabilă în timp.
1 . 4 . F o r ma r e a s e m n a l e l o r e x p o n e n ț i a l e
Unul dintre principalele tipuri de semnale elementare este semnalul exponeţial. Acest semnal poate fi generat
cu ajutorul următorilor operatori Matlab: .^ şi exp.
Funcția v=exp(Z) calculează exponenta mărimilor elementelor vectorului Z. Pentru mărimi complexe z=x+iy
este adevărată expresia Euler
ez=ex(cos(y)+i sin(y)),
care reprezintă un semnal cosinusoidal, amplitudinea căruia variază după o exponentă.
Dacă elementele vectorului z sunt mărimi reale, atunci se obține un semnal exponențial.
Calculul valorilor exponențiale ale elementelor unei matrice Z se realizează cu ajutorul unei funcții speciale
expm(Z).
Generarea unui semnal exponenţial complex poate fi efectuată cu ajutorul următorului script:
clf;
c=-(1/14)+i*(pi/7);
K=2;
t=0:0.1:40;
x=K*exp(c*t);
subplot(2,1,1);
plot(t,real(x));
xlabel('Timpul t');
ylabel('Amplitudinea');
title('Partea reala'); grid;
subplot(2,1,2);
plot(t,imag(x));
xlabel('Timpul t');
ylabel('Amplitudinea');
title('Partea imaginara'); grid
Fig. 1.19. Semnal exponenţial complex.
Un semnal sinusoidal, variind exponențial, poate fi realizat și în urma utilizării următoarei funcții analitice:
y=ext sin(0 t 0).
t=0:0.001:1.223;
T=0.001;
k=101:1224;
Z=zeros(1,100);
x=[Z,exp(-(k*T-0.0)/0.2).*sin(3*pi*(k*T-0.1)/0.16)];
plot(t,x); grid on;
title('Proces tranzitoriu');
xlabel('Time(s)');
ylabel('Amplitudine')
Fig. 1.20. Semnal sinusoidal, variind exponențial.