Sunteți pe pagina 1din 7

PNS Lucrarea 2 Semnale numerice

Lucrarea 2
Semnale numerice
Prin semnal se înţelege orice cantitate sau calitate fizică care variază cu timpul,
spaţiul sau oricare altă sau alte variabile independente ce transportă sau conţine informaţie.
Matematic, semnalele sunt modelate ca funcţii de una sau mai multe variabile independente.
Un semnal se numeşte unidimensional dacă este reprezentat în funcţie de o singură
variabilă independentă. Un semnal se numeşte M-dimensional dacă valoarea sa este o funcţie
de M variabile independente.
Prelucrarea numerică a semnalelor se ocupă cu reprezentarea numerică a semnalelor
originale în domeniul variabilei sau al variabilelor sau într-un domeniu transformat şi cu
modificarea algoritmică a acestora cu ajutorul procesoarelor numerice pentru a analiza,
modifica sau extrage informaţii din semnale.
Un semnal definit în timp discret, x[n ] , este o funcţie a cărei variabilă independentă
este un întreg şi este reprezentat de obicei printr-o secvenţă de numere. Modelul matematic al
unui semnal discret poate fi definit ca o aplicaţie:
x :   , n  x[n]
Obişnuit, xk  defineşte al k-lea eşantion al semnalului discret x[n ] , indiferent dacă
acesta provine din eşantionarea unui semnal analogic sau nu. Descrierea secvenţelor poate fi
efectuată prin:
 Reprezentarea funcţională;
 Reprezentarea tabelară;
 Reprezentarea prin secvenţe de numere.

Un semnal x[n ] este periodic, de perioadă N dacă şi numai dacă


xn  N   xn, n   şi N  *
Cea mai mică valoare pozitivă a lui N pentru care relaţia precedentă este îndeplinită se
numeşte perioadă fundamentală. Dacă nu există nici o valoare pentru N care să satisfacă
relaţia, semnalul se numeşte neperiodic sau aperiodic.

1. Generarea unor semnale elementare


Semnalele elementare enumerate mai jos sunt generate cu următoarea secvenţă de comenzi
MATLAB:

Tabelul 1
1. Impulsul unitate delta=[1,zeros(1,N)] generează un vector linie ce
are primul element 1 şi următoarele N sunt zerouri;
2. Semnalul treaptă u=ones(1,N) generează un vector linie cu
unitate N elemente de 1
3. Semnal dreptunghiular d=[ones(1,N), zeros(1,L)] generează un vector
linie cu primele N elemente de 1 şi următoarele L elemente de
0

14
PNS Lucrarea 2 Semnale numerice

4. Semnal sinusoidal s=sin(2*pi*f*n) generează o secvenţă sinusoidală cu


frecvenţa discretă f, n=-M:L.
5. Semnal sinus atenuat sc=sinc(2*f*n) generează un sinus atenuat cu
frecvenţa f după formula:
sc  sin(2    f  n) /(2    f  n) ,n=-M:L.
6. Semnal exponenţial ex=exp(n) unde n=-M:L
en
7. Semnalul exponenţial ex1=pow2(-g*n) unde n=-M:L
 gn
2
8. Semnal exponenţial ex2=p.^n sau
p n ex3=power(p,n) unde n=-M:L
9. Secvenţa aleatorie ran=rand(M,N) generează o matrice de dimensiune
uniformă (M × N) cu elementele alese aleator după o distribuţie
uniformă în intervalul [0 ,1]
10. Secvenţa aleatorie ran=randn(M,N) generează o matrice de dimensiune
gaussiană (M × N) cu elementele alese aleator după o distribuţie normală
cu medie 0 şi dispersie 1

În continuare sunt prezentate câteva programe simple de generare şi vizualizare a unor


semnale elementare pentru anumite domenii de valori ale variabilei independente.
Pentru a obţine impulsul unitate centrat pe valoarea 0 a variabilei independente se
utilizează următorul program MATLAB :

Exemplul 1 Generarea şi reprezentarea impulsului unitate  [n]


% Program P2_1
% Generarea impulsului unitate
clf; % sterge vechiul grafic
% generarea unui vector de la -10 la 20
n = -10:20;
% generarea impulsului
d = [zeros(1,10) 1 zeros(1,20)];
% reprezentarea grafică
stem(n,d);
xlabel('n');ylabel('Amplitudine');
title('Impulsul unitate');
axis([-10 20 0 1.2]); %vezi help axis

Impulsurile  [ n  n0 ] pot fi folosite la construirea trenurilor de impulsuri periodice, de


amplitudine Al, perioadă P şi lungime MP:
M 1
s[n]   Al  [n  lP ] .
l 0

Exemplul 2 Următorul program generează şi reprezintă un tren periodic de impulsuri:


% Program P2_2
P=5;
M=6;
%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(:);

15
PNS Lucrarea 2 Semnale numerice
%reprezentare grafica
n=0:M*P-1;
stem(n,tren);
xlabel('n');ylabel('Amplitudine');
title('Tren de impulsuri unitate');
axis([-2 32 0 1.2]);

Exemplul 3 Generarea şi reprezentarea treptei unitate u[n]


% Program P2_3
% Generarea treptei unitate
clf; % sterge vechiul grafic
% generarea unui vector de la -10 la 20 cu pasul de 1
n = -10:20;
% generarea treptei unitate
u = [zeros(1,10) ones(1,21)];
% reprezentarea grafica
stem(n,u);
xlabel('n');ylabel('Amplitudine');
title('Treapta unitate');
axis([-10 20 0 1.2]);

Exemplul 4 Generarea şi reprezentarea unei secvenţe exponenţiale reale:


% Program P2_4
% Generarea unei secvente exponentiale reale
clf;
n = 0:35; a = 1.2; K = 0.2;
x = K*a.^n;
stem(n,x);
title('Secventa exponentiala reala');
xlabel('n');ylabel('Amplitudine');

Exemplul 5 Generarea şi reprezentarea unei secvenţe exponenţiale complexe:


% Program P2_5
% Generarea unei secvente exponentiale complexe
clf;
c = -(1/12)+(pi/6)*i;
K = 2;
n = 0:40;
x = K*exp(c*n);
subplot(2,1,1); %vezi help subplot
stem(n,real(x));
xlabel('n');ylabel('Amplitudine');
title('Partea reala a secventei exponentiale complexe');
subplot(2,1,2);
stem(n,imag(x));
xlabel('n');ylabel('Amplitudine');
title('Partea imaginara a secventei exponentiale complexe');

Se observă că x[n] este:


 1 
   
1  1 1
  i n  n i n  n  n
x[n ]  2e  12 6 
 2e 12
e 6
 2e 12
cos  n   i  2  e 12 sin  n 
6  6 

Exemplul 6 Generarea şi reprezentarea unei secvenţe sinusoidale:


% Program P2_6
% Generarea unei secvente sinusoidale

16
PNS Lucrarea 2 Semnale numerice
n = 0:40;
f = 0.1; %frecventa discreta
phase = 0;
A = 1.5;
arg = 2*pi*f*n+phase;
x = A*cos(arg);
clf;
stem(n,x); %afiseaza secventa sinusoidala
axis([0 40 -2 2]);
grid;
title(Secventa sinusoidala');
xlabel('n'); ylabel('Amplitudine');

Exemplul 7 Generarea şi reprezentarea unui semnal netezit prin mediere:


% Program P2_7
% Semnal netezit prin mediere
clf;
R = 51;
d = 0.8*(rand(1,R)-0.5); % generare de zgomot
m = 0:R-1;
s = 2*m.*(0.9.^m); % generarea unui semnalului util
x = s + d; % generarea semnalului util cu zgomot
subplot(2,1,1);
%reprezentarea grafica a semnalelor d, s si x
plot(m,d','r-',m,s,'g--',m,x,'b-.');
xlabel('Time index n');ylabel('Amplitude');
legend('d[n] ','s[n] ','x[n] '); %vezi help legend
x1 = [0 0 x]; %secventa x intirziata cu 2 unitati
x2 = [0 x 0]; %secventa x intirziata cu o unitate
x3 = [x 0 0]; %secventa x neintirziata
y = (x1 + x2 + x3)/3; % medierea celor trei semnale x1, x2, x3
subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,s,'g--'); % afisarea semnalului mediat
legend( 'y[n] ','s[n] ');
xlabel('n');ylabel('Amplitude');

Exemplul 8 Generarea şi reprezentarea unei secvenţe modulate în amplitudine


y[n]  (1  m  sin(2f L n))  sin( 2f H n)

% Program P2_8
% Generarea unei secvenţe modulate în amplitudine
clf;
n = 0:150;
m = 0.4; fH = 0.08; fL = 0.01;
xH = sin(2*pi*fH*n); %purtatoarea
xL = sin(2*pi*fL*n); %modulatoarea
y = (1+m*xL).*xH;
stem(n,y);grid;
title('Secventa modulata in amplitudine')
xlabel('n');ylabel('Amplitudine');

Exemplul 9 Generarea unui semnal de tip chirp (semnal sinus cu frecvenţă liniar
crescătoare în timp: x[n]  sin( 2 ( f  n)  n) n  0,1... )
% Program P2_9
% Generarea unui semnal de tip chirp
n = 0:200;

17
PNS Lucrarea 2 Semnale numerice
a = pi/4/200;
b = 0;
arg = a*n.*n + b*n;
x = cos(arg);
clf;
stem(n, x);
axis([0,200,-1.5,1.5]);
title('Semnal tip chirp');
xlabel('n');
ylabel('Amplitudine');
grid;

2. Analiza proprietăţilor unor secvenţe elementare

Exemplul 10 Determinarea maximului, minimului, mediei şi dispersiei unor semnale


(sinusoidal, dreptunghiular, dinte de fierăstrău)
Se vor folosi funcţiile:
 x=sin(2*pi*f*n) generează o un semnal sinusoidal (vezi Tabelul 1);
 x=square(2*pi*f*n) generează o un semnal dreptunghiular (vezi help
square);
 x=sawtooth(2*pi*f*n) generează o un semnal dinte de fierăstrău (vezi
help square);
 medie=mean(x) returnează media elementelor din vectorul x;
 [m,loc]=min(x) returnează minimul din vectorul x precum şi poziţia
acestuia;
 [M,loc]=max(x) returnează maximul din vectorul x precum şi poziţia
acestuia;
 d=std(x) returnează deviaţia standard a vectorului x calculată cu formula:
1 N
std  
N  1 i 1
( x  mx ) 2

unde N este lungimea vectorului, iar mx este media elementelor sale.


Generarea şi analiza unor semnale sinusoidale, dreptunghiulare, dinte de fierăstrău:

% Program P2_10
%Se genereaza semnalele sinusoidal, dreptunghiular, dinte de
%fierastrau
n=1:50; f=1/13;
xsin=sin(2*pi*f*n);
xdrept=square(2*pi*f*n);
xw=sawtooth(2*pi*f*n);
%Se afiseaza cele trei semnale
clf;
subplot(3,1,1)
stem(n,xsin)
title('Semnal sinusoidal');
xlabel('n');
ylabel('Amplitudine');
subplot(3,1,2)
stem(n,xdrept)
title('Semnal dreptunghiular');
xlabel('n');
ylabel('Amplitudine');

18
PNS Lucrarea 2 Semnale numerice
subplot(3,1,3)
stem(n,xw)
title('Semnal dinte de fierastrau');
xlabel('n');
ylabel('Amplitudine');
%Se calculeaza media, valoarea minima, valoarea maxima si deviatia
%standard pentru cele trei semnale
meds=mean(xsin)
mins=min(xsin)
Maxs=max(xsin)
dss=std(xsin)
medd=mean(xdrept)
mind=min(xdrept)
Maxd=max(xdrept)
dsd=std(xdrept)
medw=mean(xw)
minw=min(xw)
Maxw=max(xw)
dsw=std(xw)
%rezultatele se vizualizeaza în fereastra de comenzi Matlab

3. Aplicaţii propuse

Exerciţiul 1. Să se genereze şi să se reprezinte următoarele secvenţe. Abscisa (n)


trebuie să se cuprindă numai domeniul indicat.

x1[n]=0.8 [n], -15n15


x2[n]=0.9 [n-5], 1n20
x3[n]=1.5 [n-333], 300n350
x4[n]=4.9 [n+7], -10n0
x5[n]=4 u[n], -10n10
x6[n]=1.4 u[n-7], -5n20
x7[n]=2.3 u[n+5], -15n10

Exerciţiul 2. Să se genereze şi să se reprezinte grafic în domeniul indicat următoarele


semnale sinusoidale:

x1[n]=sin(/17n), 0n25
x2[n]=sin(/17n), -15n15
x3[n]=sin(3n +/2), -10n10
x 4  n   cos( / 17  n) , 0n25

Să se dea o formula mai simplă pentru x3[n] şi să se explice de ce x4[n] nu este o secvenţă
periodică.

Exerciţiul 3. Să se genereze şi să se reprezinte grafic următoarele semnale:

1 pentru n  0,1,2,3
x 1[n]   -5n10
0 în rest

19
PNS Lucrarea 2 Semnale numerice

n(1-n) pentru n  2,4


x 2 [n]   -5n10
0 în rest

M 1
n  1 0  n  3
x 3[n]   p  n  i  P  cu p  
i 0 0 în rest
0n20
M  5 , P=4

Exerciţiul 4. Să se construiască o funcţie Matlab care să genereze o sinusoidă de


lungime finită cu 5 argumente de intrare: 3 pentru parametrii sinusoidei şi 2 pentru a
specifica primul şi ultimul indice al secvenţei finite. Funcţia va returna un vector coloană care
va conţine valorile sinusoidei.
Indicaţie. Declaraţia de funcţie va fi:

function s=gensin(ampl,frecv,phase,ninitial,nfinal)

Utilizaţi funcţia respectivă într-un script pentru calculul maximului, mediei şi


dispersiei unei secvenţe sinusoidale cu frecvenţa frecv=1/8, ampl=1, phase  /3 , 0  n  40 .

Exerciţiul 5. Să se modifice funcţia de la exerciţiul 4, astfel încât să se returneze două


argumente: un vector ce conţine valorile semnalului şi un vector al indicilor semnalului.

Indicaţie. Declaraţia de funcţie va fi în acest caz:

function [s,n]=gensin1(ampl,frecv,phase,ninitial,nfinal)

Exerciţiul 6. Să se genereze şi să se reprezinte grafic un semnal dreptunghiular şi


unul dinte de fierăstrău care să aibă 10 eşantioane pe perioadă. Indicele n este cuprins între
0  n  40 .

20

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